文档

构建Watts-Strogatz小世界图模型

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

算法描述

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

  1. 用。创建一个环状格子平均度节点.每个节点都连接到它的两边距离最近的邻居。

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

在第一步之后,图是一个完美的环格。所以,当,没有边被重新连接,模型返回一个环晶格。相反,当,所有的边被重新布线,环格被转换成一个随机图。

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

查看文件WattsStrogatz.m

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

环晶格

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

h = WattsStrogatz(0) 500年25日;情节(h,“NodeColor”“k”“布局”“圆”);标题('Watts-Strogatz Graph with $N = 500$ nodes, $K = 25$, and $\beta = 0$'...“翻译”“乳胶”

一些随机的边缘

通过提升来增加图表中的随机性数量β0.150.50

h2 = WattsStrogatz(500年,25岁,0.15);情节(h2,“NodeColor”“k”“EdgeAlpha”, 0.1);标题('Watts-Strogatz Graph with $N = 500$ nodes, $K = 25$, and $\beta = 0.15$'...“翻译”“乳胶”

h3 = WattsStrogatz(500年,25岁,0.50);情节(h3,“NodeColor”“k”“EdgeAlpha”, 0.1);标题('Watts-Strogatz Graph with $N = 500$ nodes, $K = 25$, and $\beta = 0.50$'...“翻译”“乳胶”

随机图

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

h4 = WattsStrogatz(1) 500年,25日;情节(h4,“NodeColor”“k”“EdgeAlpha”, 0.1);标题('Watts-Strogatz Graph with $N = 500$ nodes, $K = 25$, and $\beta = 1$'...“翻译”“乳胶”

度分布

在不同的Watts-Strogatz图中,节点的度分布是不同的。当β为0时,所有节点的度数相同,2 k,所以度分布只是一个狄拉克函数的中心2 k.然而,随着β增加,度分布改变。

这张图显示了的非零值的度分布β

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

中心的形成

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

计算每个值的平均路径长度和轮毂节点数β.对于本例来说,中心节点是度数大于或等于55的节点。这些节点的度都比原来的环点阵增加了10%或更多。

n = 55;D = [mean(mean(distance (h))), nnz(degree(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 table Beta AvgPathLength NumberOfHubs ____ _____________ ____________ 0 5.48 0 0.15 2.0715 20 0.5 1.9101 85 1 1.9008 92

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

画出Watts-Strogatz模型图,使每个节点的大小和颜色与其程度成比例。这是可视化枢纽形成的一种有效方法。

colormaphsv度=学位(h2);nSizes = 2 *√(deg-min(度)+ 0.2);nColors =度;情节(h2,“MarkerSize”nSizes,“NodeCData”nColors,“EdgeAlpha”, 0.1)标题('Watts-Strogatz Graph with $N = 500$ nodes, $K = 25$, and $\beta = 0.15$'...“翻译”“乳胶”) colorbar

这个话题有用吗?