WS小世界网络模型的程序代码(matlab)

合集下载

课题:WS小世界网络模型构造

课题:WS小世界网络模型构造

课题:WS小世界网络模型构造姓名赵训学号 2班级计算机实验班一、WS 小世界网络简介1998年, Watts和Strogatz 提出了小世界网络这一概念,并建立了WS模型。

实证结果表明,大多数的真实网络都具有小世界特性(较小的最短路径) 和聚类特性(较大的聚类系数) 。

传统的规则最近邻耦合网络具有高聚类的特性,但并不具有小世界特性;而ER 随机网络具有小世界特性但却没有高聚类特性。

因此这两种传统的网络模型都不能很好的来表示实际的真实网络。

Watts 和Strogatz建立的WS小世界网络模型就介于这两种网络之间,同时具有小世界特性和聚类特性,可以很好的来表示真实网络。

二、WS小世界模型构造算法1、从规则图开始:考虑一个含有N个点的最近邻耦合网络,它们围成一个环,其中每个节点都与它左右相邻的各K/2节点相连,K是偶数。

2、随机化重连:以概率p随机地从新连接网络中的每个边,即将边的一个端点保持不变,而另一个端点取为网络中随机选择的一个节点。

其中规定,任意两个不同的节点之间至多只能有一条边,并且每一个节点都不能有边与自身相连。

在上述模型中,p=0对应于完全规则网络,p=1则对应于完全随机网络,通过调节p的值就可以控制从完全规则网络到完全随机网络的过渡,如图a所示。

图a相应程序代码(使用Matlab实现)ws_net.m (位于“代码”文件夹内)function ws_net()disp('WS小世界网络模型')N=input('请输入网络节点数');K=input('请输入与节点左右相邻的K/2的节点数');p=input('请输入随机重连的概率');angle=0:2*pi/N:2*pi-2*pi/N;x=100*cos(angle);y=100*sin(angle);plot(x,y,'r.','Markersize',30);hold on;%生成最近邻耦合网络;A=zeros(N);for i=1:Nif i+K<=Nfor j=i+1:i+KA(i,j)=1;endelsefor j=i+1:NA(i,j)=1;endfor j=1:((i+K)-N)A(i,j)=1;endendif K<ifor j=i-K:i-1A(i,j)=1;endelsefor j=1:i-1A(i,j)=1;endfor j=N-K+i:NA(i,j)=1;endendenddisp(A);%随机化重连for i=1:Nfor j=i+1:Nif A(i,j)==1pp=unifrnd(0,1);if pp<=pA(i,j)=0;A(j,i)=0;b=unidrnd(N);while i==bb=unidrnd(N); endA(i,b)=1;A(b,i)=1;endendend%根据邻接矩阵连线for i=1:Nfor j=1:Nif A(i,j)==1plot([x(i),x(j)],[y(i),y(j)],'linewidth',1); hold on;endendendhold offaver_path=aver_pathlength(A);disp(aver_path);对应输出(取网络节点数N=16,K=2;p分别取0,0.1,1)。

进化论构建网络的方法

进化论构建网络的方法
ki i kj
j
《分子生物网络分析》(Molecular Biology Network Analysis)
Page 5
2.BA无标度网络
经过t步后,该算法程序产生一具有N=t+m0 个节点,mt条边的网络。
例: m0 = 3, m = 2
t=1 t=2 t=3
《分子生物网络分析》(Molecular Biology Network Analysis)
回顾
小世界网络模型
BA无标度网络模型及其构造
生物分子网络特征
《分子生物网络分析》(Molecular Biology Network Analysis)
Page
1
1.小世界网络模型
WS小世界模型构造算法如下:
1.从规则图开始:考虑一个含有N个点的最近邻耦合 网络,它们围成一个环,其中每个节点都与它左 右的各K/2节点相连,K是偶数。 2.随机化重连:以概率P随机地重新连接网络中的每 个边,即将边的一个端点保持不变,而另一个端 点取为网络中随机选择的一个节点。其中规定, 任意两个不同的节点之间至多只能有一条边,并 且每一个节点都不能有边与自身相连。
Page
7
主要内容
10.1 随机复制模型
10.2 偏爱复制模型
10.3 节点删除变异模型
10.4 删边变异模型
《分子生物网络分析》(Molecular Biology Network Analysis)
Page
8
引言
众所周知,从自然选择和生物进化来看, 复制和变异是生物分子网络进化的内在基 本机制。
近几年来,不少研究者提出了各种不同的 基于复制变异准则的生物网络构建模型, 这里我们简称为DD模型。

WS小世界网络模型的程序代码(matlab)

WS小世界网络模型的程序代码(matlab)
for i=1:N for j=i+1:N if A(i,j)~=0 plot([x(i),x(j)],[y(i),y(j)],'linewidth',1.2); hold on; end end end axis equal; hold off
for j=i+1:i+K/2
jj=j; if j>N
jj=mod(j,N); end p1=rand(1,1); if p1<p
A(i,jj)=0;A(jj,i)=0;A(i,i)=inf;a=find(A(i,:)==0); rand_data=randi([1,length(a)],1,1); jjj=a(rand_data);A(i,jjj)=1;A(jjj,i)=1;A(i,i)=0; end end end
hold on; A=zeros(N); for i=1:N for j=i+1:i+K/2 jj=j; if j>N jj=mod(j,N); end A(i,jj)=1; A(jj,i)=1; end end
%WS 小世界网络的代码 p=input('请输入随机化重连的概率 p:'); for i=1:N
程序仿真实例
例一、请输入最近邻耦合网络中节点的总数 N:30 请输入最近邻耦合网络中每个节点的邻居数 K:4 请输入随机化重连的概率 p:0.9
100
80
60
40
20
0
-20
-40
-60
-80
-100
-100
-50
0
50
100
例二、请输入最近邻耦合网络中节点的总数 N:40 请输入最近邻耦合网络中每个节点的邻居数 K:2 请输入随机化重连的概率 p:0.7

经典网络仿真

经典网络仿真

经典网络仿真一.WS与NW小世界模型1.WS小世界模型构造算法:(1)从规则图开始:给定一个含有N个节点的环状最近邻耦合网络,其中的每个节点都与它左右相邻的各K/2个节点相连,K为偶数。

(2)随机化重连:以概率p随机的重新连接网络中的原有的每一条边,即把每一条边的一个端点保持不变,另外一个端点改取网络中随机选择的另外的一个端点,其中规定不可以有自边和重边。

2. NW小世界模型构造算法:(1)从规则图开始:给定一个含有N个节点的环状最近邻耦合网络,其中的每个节点都与它左右相邻的各K/2个节点相连,K为偶数。

(2)随机化重连:以概率p随机在随机选取的NK/2对节点之间添加边其中规定不可以有自边和重边。

3. WS与NW小世界网络仿真结果(N=1000,K/2=5)(a)(b) (c)图1.(a)WS小世界的平均最短路径和聚类系数归一化处理后的曲线;(b)平均最短路径曲线;(c)聚类系数曲线由图可知,小世界网络具有较高的聚类系数与较短的平均路径长度。

图2.p=0,0.5,1时的WS模型构建示意图由图可知,随着重连概率的增大,网络由规则图转化为随机图。

图3.p=0.1,0.4,0.8,1.0时的WS度分布图由图可知,WS模型度分布呈现泊松分布,且中心在K=10处,几乎不变。

图4.p=0,0.5,1时的NW模型构建示意图图5.p=0.1,0.4,0.8,1.0时的WS度分布图由图可知,NW模型度分布也呈现泊松分布,但中心在随着p增大往右侧偏移。

二.BA无标度网络模型1. BA无标度网络模型构造算法:(1)增长:从一个具有m0个节点的连通网络开始,每次引入一个新的节点,并且连到m 个已经存在的节点上,这里m≤m0。

(2)优先连接:一个新的节点与一个已经存在的节点i相连的概率p i与节点i的度k i之间满足关系:p i=k i/Σk i。

2. BA无标度网络模型仿真结果(N=5000,m=m0=3,6,9)(a)m=m0=3(b)m=m0=6(c)m=m0=9图6. (a)(b)(c)(d)分别为m=m0=3,6,9的度分布图和双对数坐标下的图由图可知,BA无标度网络的度分布是呈指数衰减的,在双对数坐标下度分布近似为一条直线。

(完整版)小世界网络简介及及MATLAB建模

(完整版)小世界网络简介及及MATLAB建模

小世界网络MATLAB建模1.简介小世界网络存在于数学、物理学和社会学中,是一种数学图的模型。

在这种图中大部份的结点不与彼此邻接,但大部份结点可以通过任一其它节点经少数几步就可以产生联系。

若将一个小世界网络中的点代表一个人,而联机代表人与人之间是相互认识的,则这小世界网络可以反映陌生人通过彼此共同认识的人而起来产生联系关系的小世界现象。

在日常生活中,有时你会发现,某些你觉得与你隔得很“遥远”的人,其实与你“很近”。

小世界网络就是对这种现象的数学描述。

用数学中图论的语言来说,小世界网络就是一个由大量顶点构成的图,其中任意两点之间的平均路径长度比顶点数量小得多。

除了社会人际网络以外,小世界网络的例子在生物学、物理学、计算机科学等领域也有出现。

许多经验中的图可以用小世界网络来作为模型。

因特网、公路交通网、神经网络都呈现小世界网络的特征。

小世界网络最早是由邓肯·瓦茨(Duncan Watts)和斯蒂文·斯特罗加茨(Steven Strogatz)在1998年引进的,将高聚合系数和低平均路径长度作为特征,提出了一种新的网络模型,一般就称作瓦茨-斯特罗加茨模型(WS模型),这也是最典型的小世界网络的模型。

由于WS小世界模型构造算法中的随机化过程有可能破坏网络的连通性,纽曼(Newman)和瓦茨(Watts)提出了NW小世界网络模型,该模型是通过用“随机化加边”模式来取代WS小世界网络模型构造中的“随机化重连”。

在考虑网络特征的时候,使用两个特征来衡量网络:特征路径长度和聚合系数。

特征路径长度(characteristic path length):在网络中,任选两个节点,连同这两个节点的最少边数,定义为这两个节点的路径长度,网络中所有节点对的路径长度的平均值,定义为网络的特征路径长度。

这是网络的全局特征。

聚合系数(clustering coefficient):假设某个节点有k个边,则这k条边连接的节点之间最多可能存在的边的个数为k(k-1)/2,用实际存在的边数除以最多可能存在的边数得到的分数值,定义为这个节点的聚合系数。

WS以及NW小世界网络的生成(MATLAB)

WS以及NW小世界网络的生成(MATLAB)

WS以及NW⼩世界⽹络的⽣成(MATLAB)WS⼩世界⽹络⽣成算法,⼀般⼩世界⽹络⽣成算法速度慢,节点度分布与数学推导不符,在⽹络仿真中造成不便,这⾥针对实际⽹络动⼒学仿真过程撰写了WS⼩世界⽹络的MATLAB⽣成算法,并考虑了矩阵化,具有较⾼的速度。

以下是対应的代码:% The simulation of WS-smallworld network% the algorithm of WS-smallworld's generation has been improved in speed,% and tend to be easily understood% writen by winter-my-dream@% Example:% N = 100; %network size (number of nodes)% m = 6; %2*m is the average edges of each nodes% p = 0.1; %rewiring probability% matrix = small_world_WS_new(N,m,p);function matrix = small_world_WS_new(N,m,p)rng('default')rng('shuffle')matrix=zeros(N,N);% generate regular networkfor i=m+1:N-mmatrix(i,i-m:i+m)=1;endfor i=1:mmatrix(i,1:i+m)=1;endfor i=N-m+1:Nmatrix(i,i-m:N)=1;endfor i=1:mmatrix(i,N-m+i:N)=1;matrix(N-m+i:N,i)=1;end% rewiring the networkfor i = 1:N% then rewiring the edges with the probability of p[series1,series2] = range_sort(N,m,i);index0 = series1(rand(2*m,1)>1-p);if(~isempty(index0))matrix(i,index0) = 0;matrix(i,series2(randperm(length(series2),length(index0))))=1;endendmatrix = matrix -diag(diag(matrix));endfunction [series1,series2] = range_sort(N,m,i)% select the index of nodes in row i for rewiringif(i-m>0 && i+m<=N)series1 = i-m:i+m;series2 = setdiff(1:N,series1);elseif(i-m<=0)series1 = [1:i+m,N-m+i:N];series2 = setdiff(1:N,series1);elseseries1 = [1:m-N+i,i-m:N];series2 = setdiff(1:N,series1);end% Without considering the connection of diagonal elementsseries1(series1==i) = [];end参考⽂献:Watts D J, Strogatz S H. Collective dynamics of ‘small-world’networks[J]. nature, 1998, 393(6684): 440-442.NW⼩世界⽹络的⽣成⽅法相对简单,我这⾥附加对应代码:% 基于Matlab 的⼩世界⽹络仿真% 经过矩阵化修改后,⽣成速度已经⼤⼤加快function matrix = small_world_NW(N,m,p)% N=50;m=3;p=0.1;% matrix=sparse([]);matrix = zeros(N,N);for i=m+1:N- mmatrix(i,i- m:i+m)=1;endfor i=1:mmatrix(i,1:i+m)=1;endfor i=N- m+1:Nmatrix(i,i- m:N)=1;endfor i=1:mmatrix(i,N- m+i:N)=1;matrix(N- m+i:N,i)=1;end% Random add edgekk=(rand(N,N)<p);matrix = logical(matrix + kk);matrix = matrix -diag(diag(matrix));对应⽣成⽹络的测试图的代码:clear,clc,close all% load A.txtN=10;m=2;p=0.1;% A= small_world_WS_new(N,m,p);A = small_world_NW(N, m, p);t=linspace(0,2*pi,N+1);x=sin(t);y=cos(t);figureset(gcf,'color','w')plot(x,y,'o','markerfacecolor','k'),hold onfor i=1:Nfor j=1:Nif (A(i,j)==1)fp1=plot([x(i),x(j)],[y(i),y(j)],'r-'); hold on set(fp1,'linesmoothing','on')endendendaxis([-1.05,1.05,-1.05,1.05])axis squareaxis offsum(sum(A))。

(完整)复杂网络模型的matlab实现

(完整)复杂网络模型的matlab实现

(完整)复杂网络模型的 matlab 实现(完整)复杂网络模型的matlab实现编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)复杂网络模型的matlab 实现)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)复杂网络模型的 matlab 实现的全部内容。

(完整)复杂网络模型的 matlab 实现度分布function [DeD,aver_DeD]=Degree_Distribution(A )%%求网络图中各节点的度及度的分布曲线%%求解算法:求解每个节点的度,再按发生频率即为概率,求 P(k)%A-———————网络图的邻接矩阵%DeD-—-——-——网络图各节点的度分布%aver_DeD——-———-网络图的平均度N=size(A,2);DeD=zeros(1,N);for i=1:N% DeD(i)=length(find ((A(i,:)==1)));DeD(i)=sum(A(i,:));endaver_DeD=mean(DeD);if sum(DeD)==0disp('该网络图只是由一些孤立点组成’);return;elsefigure;bar([1:N],DeD);xlabel(’节点编号n’);ylabel(’各节点的度数K');title('网络图中各节点的度的大小分布图');endfigure;M=max(DeD);for i=1:M+1;%网络图中节点的度数最大为 M,但要同时考虑到度为0 的节点的存在性N_DeD(i)=length(find(DeD==i-1) );%DeD=[2 2 2 2 2 2]endP_DeD=zeros(1,M+1);P_DeD(:)=N_DeD(:)。

如何利用Matlab进行网络分析与优化

如何利用Matlab进行网络分析与优化

如何利用Matlab进行网络分析与优化引言:在当今信息时代,网络技术的发展已经成为人们生活和工作的重要组成部分。

因此,网络的分析与优化,尤其是对于大规模网络的分析与优化,成为了重要的研究领域。

Matlab作为一种强大的科学计算软件,在网络分析与优化中扮演着重要的角色。

本文将围绕如何利用Matlab进行网络分析与优化展开探讨。

一、网络分析在网络分析中,我们可以利用Matlab进行网络的建模与分析。

首先,我们需要将网络表示为一个图,其中节点表示网络中的实体,边表示节点间的连接关系。

利用Matlab的图论工具包,我们可以方便地进行网络的可视化、统计特性的计算以及网络模型的构建。

1.1 网络可视化Matlab的图论工具包提供了各种绘制网络图的函数和工具,让我们能够直观地展示网络的拓扑结构。

通过对网络进行可视化,我们可以更好地理解网络的结构和特性,并有助于后续的分析与优化工作。

1.2 统计特性计算网络的统计特性是了解网络行为和性质的重要指标。

在Matlab中,我们可以利用图论工具包计算网络的度分布、聚类系数、路径长度等统计特性。

这些特性可以帮助我们深入了解网络的性质,为后续的优化工作提供基础。

1.3 网络模型构建为了更好地理解和分析网络,我们可以利用Matlab构建各种经典的网络模型,如随机网络、小世界网络和无标度网络等。

通过这些模型,我们可以模拟真实网络中的一些特性,从而更深入地研究网络的结构和行为。

二、网络优化网络优化旨在改善网络的性能和效率,使得网络能够更好地满足用户和应用的需求。

在网络优化中,我们可以利用Matlab进行网络流量优化、资源分配优化以及拓扑结构优化等方面的工作。

2.1 网络流量优化网络流量优化是指通过合理的路由和调度策略,使得网络中的数据能够以最优的方式传输,从而提高网络的传输效率和吞吐量。

在Matlab中,我们可以利用线性规划、整数规划和最优化算法等进行网络流量的优化设计,从而改善网络的性能和效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序仿真实例
例一、请输入最近邻耦合网络中节点的总数N:30请输入最近邻耦合网络中每个节点的邻居数K:4
请输入随机化重连的概率p:0.9
例二、请输入最近邻耦合网络中节点的总数N:40请输入最近邻耦合网络中每个节点的邻居数K:2
请输入随机化重连的概率p:0.7
Matlab的m文件代码如下:
N=input('请输入最近邻耦合网络中节点的总数N:');
K=input('请输入最近邻耦合网络中每个节点的邻居数K:');
if K>floor(N-1)|mod(K,2)~=0;
disp('参数输入错误:K值必须是小于网络节点总数且为偶数的整数'); return ;
end
angle=0:2*pi./N:2*pi-2*pi/N;
angle=0:2*pi/N:2*pi-2*pi/N;
x=100*sin(angle);
y=100*cos(angle);
plot(x,y,'ro','MarkerEdgeColor','g','MarkerFaceColor','r','MarkerSize',8);
hold on;
A=zeros(N);
for i=1:N
for j=i+1:i+K/2
jj=j;
if j>N
jj=mod(j,N);
end
A(i,jj)=1;
A(jj,i)=1;
end
end
%WS小世界网络的代码
p=input('请输入随机化重连的概率p:');
for i=1:N
for j=i+1:i+K/2
jj=j;
if j>N
jj=mod(j,N);
end
p1=rand(1,1);
if p1<p
A(i,jj)=0;A(jj,i)=0;A(i,i)=inf;a=find(A(i,:)==0);
rand_data=randi([1,length(a)],1,1);
jjj=a(rand_data);A(i,jjj)=1;A(jjj,i)=1;A(i,i)=0;
end
end
end
for i=1:N
for j=i+1:N
if A(i,j)~=0
plot([x(i),x(j)],[y(i),y(j)],'linewidth',1.2);
hold on;
end
end
end
axis equal;
hold off。

相关文档
最新文档