主要内容

建立Watts-Strogatz小世界图模型

这个例子展示了如何构造和分析Watts-Strogatz小世界图。Watts-Strogatz模型是一种随机图,具有小世界网络特性,如聚类和短平均路径长度。

算法描述

创建Watts-Strogatz图有两个基本步骤:

  1. 创建一个环晶格N美元平均度节点2 k美元.每个节点都与它的节点相连K美元两边最近的邻居。

  2. 对于图中的每条边,用概率重新连接目标节点β\美元.重新布线的边不能是重复的或自循环的。

在第一步之后,图是一个完美的环晶格。所以,当$\beta = 0$,没有边被重新布线,模型返回一个环格。相反,当$\beta = 1$,将所有的边重新布线,并将环格转换为随机图。

该文件WattsStrogatz.m为无向图实现此图算法。输入参数为N,K,β根据上面的算法描述。

查看文件WattsStrogatz.m

版权所有The MathWorks, Inc.函数h = WattsStrogatz(N,K,)% H = WattsStrogatz(N,K,beta)返回一个含有N的Watts-Strogatz模型图%节点,N*K条边,平均节点度2*K,重布线概率beta。% beta = 0是一个环格,beta = 1是一个随机图。将每个节点连接到它的K个下一个和上一个邻居。这个结构%索引的环晶格。s = repelem((1:N)',1,K);t = s + repmat(1:K,N,1);t = mod(t-1,N)+1;%以概率beta重新连接每条边的目标节点=1:N switchEdge = rand(K, 1) < beta;newTargets = rand(N, 1);newTargets(source) = 0;newTargets(s(t==source)) = 0;newTargets(t(source, ~switchEdge)) = 0;[~, ind] = sort(newTargets,“下”);t(source, switchEdge) = ind(1:nnz(switchEdge));结束H =图(s,t);结束

环晶格

构造一个具有500个节点的环晶格WattsStrogatz函数。当β为0时,函数返回一个节点都有次的环格2 k

h = WattsStrogatz(500,25,0);情节(h,“NodeColor”,“k”,“布局”,“圆”);标题($N = 500$节点,$K = 25$, $\beta = 0$的Watts-Strogatz图,...“翻译”,“乳胶”

一些随机边

通过提升来增加图中的随机性β0.15而且0.50

h2 = WattsStrogatz(500,25,0.15);情节(h2,“NodeColor”,“k”,“EdgeAlpha”, 0.1);标题(“$N = 500$节点,$K = 25$, $\beta = 0.15$的Watts-Strogatz图”,...“翻译”,“乳胶”

h3 = WattsStrogatz(500,25,0.50);情节(h3,“NodeColor”,“k”,“EdgeAlpha”, 0.1);标题(“$N = 500$节点,$K = 25$, $\beta = 0.50$的Watts-Strogatz图”,...“翻译”,“乳胶”

随机图

通过递增生成一个完全随机的图β的最大值1.0.这重新连接了所有的边。

h4 = WattsStrogatz(500,25,1);情节(h4,“NodeColor”,“k”,“EdgeAlpha”, 0.1);标题($N = 500$节点,$K = 25$, $\beta = 1$的Watts-Strogatz图,...“翻译”,“乳胶”

度分布

在不同的Watts-Strogatz图中,节点的度分布不同。当β为0,所有节点都有相同的度数,2 k,所以度分布就是一个以。为中心的狄拉克函数2 k,\δ(x-2K)美元.然而,随着β增加,度分布改变。

的非零值的度分布β

直方图(学位(h2),“BinMethod”,“整数”,“FaceAlpha”, 0.9);持有直方图(学位(h3),“BinMethod”,“整数”,“FaceAlpha”, 0.9);直方图(学位(h4),“BinMethod”,“整数”,“FaceAlpha”, 0.8);持有标题(Watts-Strogatz模型图的节点度分布)包含(“节点度”) ylabel (“节点数量”)传说('\beta = 1.0','\beta = 0.50','\beta = 0.15',“位置”,“西北”

中心的形成

Watts-Strogatz图具有较高的聚类系数,因此节点倾向于形成小团,或紧密连接的节点组成的小组。作为β的最大值1.0时,可以看到越来越多的枢纽节点,或者说相对程度较高的节点。枢纽是图中其他节点和派系之间的公共连接。中心的存在允许团的形成,同时保持较短的平均路径长度。

计算每个值的平均路径长度和枢纽节点数β.在本例中,枢纽节点是度数大于或等于55的节点。这些节点的度都比原来的环晶格增加了10%或更多。

N = 55;D = [mean(mean(距离(h)))), nnz(度(h)>=n);...平均(平均(距离(h2))), nnz(学位(h2) > = n);...平均(平均(距离(h3))), nnz(学位(h3) > = n);平均(平均(距离(h4))), nnz(学位(h4) > = n)];T = table([0 0.15 0.50 1]', d(:,1), d(:,2),...“VariableNames”, {“β”,“AvgPathLength”,“NumberOfHubs”})
T = 4x3表Beta AvgPathLength NumberOfHubs ____ _____________ ____________ 0 5.48 0 0.15 2.0715 20 0.5 1.9101 85 1 1.9008 92

作为β增加时,图中的平均路径长度迅速下降到其极限值。这是由于高度连接的枢纽节点的形成,它们变得越来越多β增加。

画出$\beta = 0.15$Watts-Strogatz模型图,使每个节点的大小和颜色与其度成正比。这是一种可视化集线器形成的有效方法。

colormaphsvDeg =度(h2);nSizes = 2*√(deg-min(deg)+0.2);nColors = deg;情节(h2,“MarkerSize”nSizes,“NodeCData”nColors,“EdgeAlpha”, 0.1)标题(“$N = 500$节点,$K = 25$, $\beta = 0.15$的Watts-Strogatz图”,...“翻译”,“乳胶”) colorbar

另请参阅

|