复杂网络学习笔记:networkx实现网络的基本拓扑性质

1、复杂网络的连通性

1.1、无向网络中的巨片

首先考虑地球上所有人类组成的社会网络的连通性;很显然整个网络是不连通的,因为只要有一个人没有朋友或者说只要有一小群人没有除了这群人之外的朋友那么整个网络就不连通。
由此可见,对于大规模网络来说,连通性非常脆弱,只要单个节点或者小部分节点的行为都有可能破坏连通性。
我们可以看出大规模复杂网络可能会出现一个大的连通片,这个连通片包含整个网络中的大部分节点,那么称这个连通片为巨片

1.2、有向网络中的蝴蝶结结构

1、强连通核(Strongly Connected Core,SCC):也成为强连通巨片,位于网络中心。SCC中任意两个节点之间都是强连通的,即存在从任意节点到另一节点的有向路径。
2、入部(IN):
3、出部(OUT):
4、卷须(Tendrils):
5、管子(Tube):

2、节点的度与网络稀疏性

2.1、 度与平均度

度(Degree)是刻画单个节点属性的最简单而又最重要的概念之一。
无向网络中节点 i 的度定义为与节点 i 直接相连的边的数目。
网络中所有节点的度的平均值成为网络的平均度(average degree),记为 <k> 。

import networkx as nx
#生成一个n=1000,起始节点为3的BA无标度网络
G = nx.random_graphs.barabasi_albert_graph(1000,3) 
#返回某个节点的度  
G.degree(0)
#返回所有节点的度                                  
G.degree()
#返回图中所有节点的度分布序列(从1至最大度的出现频次)                                     
nx.degree_histogram(G)    
#可返回单个节点的度,也可返回所有节点的度
def degree(G, nbunch=None, weight=None):
    """Returns a degree view of single node or of nbunch of nodes.
    If nbunch is omitted, then return degrees of *all* nodes.
    """
    return G.degree(nbunch, weight)
#返回图中所有节点的度分布序列(从1至最大度的出现频次) 
def degree_histogram(G):
    """Returns a list of the frequency of each degree value.

    Parameters
    ----------
    G : Networkx graph
       A graph

    Returns
    -------
    hist : list
       A list of frequencies of degrees.
       The degree values are the index in the list.

    Notes
    -----
    Note: the bins are width one, hence len(list) can be large
    (Order(number_of_edges))
    """
    counts = Counter(d for n, d in G.degree())
    return [counts.get(i, 0) for i in range(max(counts) + 1)]

2.2、出度与入度

有向网络中节点的度包括出度和入度
节点 i 的出度是指从节点 i 指向其他节点的边的数目

'''
	通过邻接矩阵来表示
'''
i的出度
k_out = 0
i = 任意节点数
for j in num_of_node:
	if a[i][j] != 0:
		k_out = a[i][j] + 1

节点 i 的入度是指从其他节点指向节点 i 的边的数目

'''
	通过邻接矩阵来表示
'''
i的入度
k_in = 0
i = 任意节点数
for j in num_of_node:
	if a[j][i] != 0:
		k_out = a[j][i] + 1

2.3、网络稀疏性与稠密化

一个包含N个节点的网络的密度(Density)ρ定义为网络中实际存在的边数M与最大可能边数之比。对于无向网络,我们有:
ρ = M 1 2 N ( N − 1 ) ρ=\frac{M}{\frac{1}{2}N(N - 1)} ρ=21N(N1)M
平均度和网络密度之间的关系:
< k > = 2 M N = ( N − 1 ) ρ ≈ N ρ <k> = \frac{2M}{N} = (N - 1)ρ ≈ Nρ <k>=N2M=(N1)ρNρ
将t时刻的网络中的节点数和边数分别记为N(t),M(t),如果两者呈线性比例关系,即N(t) ~ M(t),

3、平均路径长度与直径

4、聚类系数

5、度分布

6、幂率分布

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xMathematics

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值