无标度网络matlab建模.docx
《无标度网络matlab建模.docx》由会员分享,可在线阅读,更多相关《无标度网络matlab建模.docx(22页珍藏版)》请在冰豆网上搜索。
无标度网络matlab建模
Lastrevisionon21December2020
无标度网络matlab建模
复杂系统无标度网络研究与建模
XXX
南京信息工程大学XXXX系,南京210044
摘要:
21世纪是复杂性的世界,基于还原论的世界观与方法论已经无法满足当前人们对作为一个整体系统的自然界和人类社会的认识和研究,利用系统科学的方法对科学重新审视已近变为迫切的需要。
现实生活中众多复杂网络都具有无标度性,这种无标度网络的增长性和择优连接性很好的解释了富者越富的“马太效应”。
对无标度网络的深入研究,让人们深刻的认识到其在Internet、地震网、病毒传播和社会财富分布网中的理论与现实意义。
本文通过对复杂网络中的无标度网络的分析与研究,介绍了无标度网络区别于一般随机网络的特性与现实意义,并利用了Matlab生成了一个无标度网络。
关键词:
无标度网络,幂律特性,模型建立
1引言
任何一种网络都可以看作是由一些节点按某种方式连接在一起而构成的一个系统,曾经关于网络结构的研究常常着眼于包含几十个到几百个节点的网络,而近几年关于复杂网络的研究中则常常可以见上万个节点的网络,网络规模尺度上的改变也促使网络分析方法做相应的改变,而复杂网络是近年来随着网络规模、理论和计算机技术的飞速发展而出现的一个新的研究方向。
它的出现不仅顺应了现代科技的发展趋势,而且反映了在以信息科学为支柱的新世纪中,各学科理论及应用交叉、渗透和融合的发展趋势[1]。
复杂系统主要研究其个体之间相互作用所产生的系统的整体性质与行为“复杂系统的复杂性体现在系统的整体性质与行为往往不是系统各个个体的状态的简单综合”因此,复杂系统的研究不能采用还原论的方法,而要从整体上进行研究。
在对复杂系统的研究中,美国物理学家Barabasi和Albert通过对万维网的研究,发现万维网中网页连接的度分布服从幂律分布,而万维网中少数网页(Hub点)具有非常大的连接,大多数网页的连接数甚小Barabasi等把度分布为幂律分布(Powerlaw)的复杂网络称为无标度网络(scale-freenet)[2]。
经过众多的科研工作者的努力,已经证实了现实世界中无论是自然界还是人类社会都广泛的存在着具有度分布符合幂律分布的无标度网络,如生物网络、Internet网、WWW网、演员合作网、科学研究合作网、财富分布网、地震网、电站供电网、科技引文网和病毒传播网等。
Newman将这些复杂网络粗略地分成四类:
社会网络、信息网络、技术网络和生物网络[3]。
2无标度网络
无标度网络简介
传统的随机网络[4](如ER模型),尽管连接是随机设置的,但大部分节点的连接数目会大致相同,即节点的分布方式遵循钟形的泊松分布,有一个特征性的“平均数”。
连接数目比平均数高许多或低许多的节点都极少,随着连接数的增大,其概率呈指数式迅速递减,故随机网络亦称指数网络。
在科学界,这种方法主导了半个世纪。
但这种方法是静态的,对于普遍存在的动态的演化系统所显示的重要特性,如“马太效应”(即“富者愈富”现象)不能进行分析研究。
1998年,Barabasi等开展一项对万维网进行描绘的研究工作。
他们原本以为会发现一个满足泊松分布的随机网络钟形图,但结果出乎他们的意外:
万维网基本上是由少数高连通性的页面串连起来的,80%以上页面的连接数不到4个,而占节点总数不到万分之一的极少数节点,却和1000个以上的节点连接。
随机网络具有特征意义的多数节点大致相同的连接数——“平均数”不见了。
于是他们把这种度分布范围很大的的网络称为“无标度网络”。
他们在计算恰好拥有k个连接的万维网页面的数目时,发现网页的连接分布遵循“幂次定律”,即:
任何节点与其他k个节点相连接的概率正比于k(P(k)∝k)。
他们还发现万维网具有“小世界”效应,即在网络中任选两个网页,从一个网页平均点击19次就可找到另一个网页。
经过更多的实证研究发现大量复杂系统,诸如互联网、细胞代谢系统、以及好莱坞的演员合演网络,都存在这种少数但高连通的节点,遵循“幂次定律”。
这种节点可称为“集散节点”(Hub,hub-node)。
许多不同的复杂系统,其网络结构,都是无标度网络,都是由少数集散节点主控的系统[5]。
无标度网络的特性
随着国内外对无标度网络研究的扩展,科学家们发现越来越对的网络具有无标度性,并且这些不同领域的各式网络不仅遵循“幂次定律”,而且还有一个普遍的共同点:
幂次定律中k项中的幂指数值,通常介于2-3之间。
见表1[5]。
表1.各种网络的度分布幂指数
网络
规模(节点数)
聚类系数
平均直径长途
连接度分布的负幂指数
互联网域层
32711
万维网
153127
电话线路
329
电影演员合演
225226
数学家合作
70975
图1幂律分布
对于为什么无标度网络会遵循幂律分布,Baralasi和Albert进一步分析了无标度网络遵循幂次定律的原因,和为什么随机网络理论不能解释集散节点的存在。
他们认为随机模型(如RE模型)未能反映现实网络的两个重要特征:
1)增长性,即现实网络是由持续不断地向网络加入新的节点演化而成。
2)择优连接性,现实网络中,并非所有的节点都是平等[6]的。
例如万维网,在选择将网页连接到何处时,人们可以从数十亿网站中进行选择。
可是我们大部分人跟多的是只对Sina、Sohu或者Yahoo!
比较了解。
这一小部分中往往包含那些拥有较多连接的网站,只要连接到这些站点,就等于造就或加强了对它们的偏好。
分中往往包含那些拥有较多连接的网站,只要连接到这些站点,就等于造就或加强了对它们的偏好。
这种“择优连接”的过程,也发生在其他网络中。
在好莱坞,连接关系较多的影星更容易受到新秀们的重视。
而在互联网上,那些连接较多的路由器通常还拥有更大的带宽,因而新用户就更倾向于连接到这些路由器上。
增长和择优连接这两种机制,有助于解释集散节点的存在:
当新节点出现时,它们更倾向于连接到已经有较多连接的节点,随着时间的推进,这些节点就拥有比其他节点更多的连接数目。
这也就解释了“富者愈富”的过程。
而在随机网络中是不可能出现集散节点的。
无标度网络具有一些重要的特性值得系统科学界高度重视。
如具有的稳健性和脆弱性,不但对说明系统进化的机理有重要的理论意义,而且在系统工程的应用方面也具有重要的实际价值。
在随机网络中,若有较大部分的节点被攻击,随机网络必然溃散成彼此孤立存在的小型孤岛。
但无标度网络经过模拟,情况却和随机网络截然不同,例如:
即使从互联网路由器中随机选择的失效节点比例高达80%,剩余的路由器还是能组成一个完整的集群以及任意两个节点间存在通路。
要打击细胞内的蛋白质交互网络也同样困难,即使在细胞内随机制造较高比例的突变,那些没有改变的蛋白质还是会正常地继续合作。
无标度网络[7]对意外故障具有的这种惊人的稳健性,其本质源于这些网络的非同质拓扑结构。
由于绝大部分的节点是非集散节点,因而,按大体上是等概率的随机去除方式,所破坏的主要是非集散节点。
与几乎连接所有节点的集散节点相比,那些非集散节点只拥有少量的连接,因而去除它们不会对网络拓扑结构产生重大的影响。
但是,如遭遇针对集散节点的蓄意攻击时,网络可能不堪一击。
通过一系列的模拟,发现只要去除少数几个主要集散节点,就可导致互联网溃散成孤立无援的小群路由器。
类似地,对酵母的实验也显示,去除那些高连接性的蛋白质,比去除其他节点更容易导致酵母菌死亡。
这些高连接性的蛋白质(集散节点)是决定性的,一旦发生使它们无法运作的突变,极有可能会导致整个细胞死亡。
这是无标度网络因存在集散节点而带来的脆弱性的一面。
无标度网络具有稳健性和脆弱性这种双重特性,都源于其存在集散节点。
这种普适的特性,对系统科学有着极其重要的理论意义和工程应用价值。
就理论意义来说,我们认为,系统的有序进化,如生命系统的出现和多样化的发展,就和系统的这个特性相关。
至于工程应用的价值是显而易见的。
例如,对互联网和细胞而言,虽然具有能够应付随机出现的意外故障的重要优点,但为了避免因蓄意攻击带来网络的大规模破坏,最有效的办法就是还要保护好集散节点。
我们还可从积极的方面利用对集散节点的依赖,如药物研究者有可能找到这样的药物,能针对性地攻击细胞或者细菌的集散节点,以便杀死它们而又不会影响健康的组织。
SARS的传播,也使我们看到无标度网络的稳健性和脆弱性所具有的现实的重要性.
无标度网络的研究意义
无标度网络理论的提出,冲击了人们对网络的认识,在统治了半个多世纪的随机网络理论之外,人们又认识到一种崭新的网络形式,即具有scale-free特性的无标度网络。
这种无标度网络具有的增长性和择优选择性,很好的解释了无论在自然界,还是在社会领域一直困扰着人们的“马太效应”。
除此之外,从上文中也可以看出,对无标度网络的研究,不仅让人们认识到越来越多的系统具无标度特性,并且对无标度网络的稳健性和脆弱性的这种双重热性的深入研究,使人们可以更好的利用这种双重特性,来保护整个网络或者是摧毁一个具有危害性的网络。
1)因为复杂网络上的动力学行为通常会依赖于复杂网络的拓扑结构,因此研究复杂网络的无标度性对于理解复杂网络的动力学行为具有重要的理论意义。
2)复杂网络的无标度性导致了现实社会中“富者更富”的现象出现,也就是说,无标度网络在连接边时,总是遵循一定的“择优性”,使网络中连接边数越大的节点,获取新的连接边的概率越大,从而导致网络中大多数节点仅拥有很少的连边,而极少数节点(被称为Hub节点)连接了大量的连边,对于互联网来说,这意味着如果不人为对网络的连接进行控制,就很容易对网络进行有效地攻击,使整个网络崩溃。
对于财富网络来说,这说明社会的贫富差距在自然演变过程中会逐渐变大,最终导致社会制度的变革。
另一方面,如果对互联网上的Hub节点进行保护,就可以有效地控制计算机病毒的传播。
如果对这些节点进行时时监控,确保其正常运行,则整个网络也处于正常运行的状态之中。
3)具有无标度性质的复杂系统在内、外部作用下的动力学行为,可称为无标度现象。
由于复杂网络的无标度现象表现出两面性,因此就针对不同情况采取对人们有利的措施。
复杂网络的动力学行为,如传播、同步、自组织临界等,在无标度网络拓扑结构下具有其独特的性质,必须进行深入研究。
例如,由于在无标度网络中,网络传染病传播的临界值为0,即说明只要一个无标度网络中有一个节点被病毒传染,如果不加以控制,则网络中所有节点最终都会被传染,而与传播概率无关。
4)一些具有Scale-free性的复杂系统,特别是工程界、经济界、社会界的一些复杂系统对国计民生有重要意义,我们必须对其加强研究。
目前对于复杂系统的研究方法集中于钱学森提出的综合集成研讨厅体系,如果把无标度网络的特性引入这方面的研究,则可能会对整个国民经济起到至关重要的作用。
3无标度网络建模
无标度网络生成机制
基于增长和择优连接特性的Baralasi一Albert模型,该模型指出的具有幂律度分布的无标度网络模型算法如下[8]:
(1)增长:
开始于少量节点m0,在每个时间间隔添加一个具有m(≤m0)条边的新节点(连结到已存在于系统中的m个节点上)。
(2)择优连结:
当选择与新节点连结时,假设新节点连结到节点i的概率π取决于该节点的连通度ki,即
(1)
在t个时间间隔后,模型产生一有N=m0+t个节点和mt条边的随机网络,随着t的增大,该网络演化进入标度不变状态。
其度分布P(k)∝k。
其中=±。
标度指数与模型中唯一的参数m无关,即系统自组织进入无标度静止状态。
无疑,BA模型较之随机网络模型比较准确地把握了现实世界中网络的最基本的特点,抽象建立了复杂网络,其算法较好地解释了无标度网络的形成机制。
对于指导现实现象有较高的应用价值。
其具体Matlab算法如下:
N=X;m0=3;m=3;%初始化网络数据
adjacent_matrix=sparse(m0,m0);%初始化邻接矩阵
fori=1:
m0
forj=1:
m0
ifj~=i%去除每个点自身形成的环
adjacent_matrix(i,j)=1;%建立初始邻接矩阵,3点同均同其他的点相连
end
end
end
这样就建立了一个初始节点数为3,度为3,节点数由程序员自行设定的一个网络。
其中,因为adjacent_matrix矩阵记录着网络中节点是否存在连接,1表示连接上,0表示两节点之间无连接,所以为了节省空间,使用稀疏矩阵进行存储。
r1=rand
(1)*total_degree;%算出与已存在点相连的概率
fori=1:
iter-1
if(r1>=cum_degree(i))&&(r1choose
(1)=i;
break
end
end
这一段程序,根据公式
(1)的择优性,依概率选择网络中一个点和新产生的点进行连接。
然后,程序再选出第二个网络中已经有的点和新生成的点连接,依次类推,每次执行的过程中若与前两次连接到相同的点上,则重新进行择优,以此保证生成的网络能够满足网络的无标度性。
下面给出一个由100个节点组成的无标度网络的部分节点连接关系。
图2无标度网络部分节点链接关系
通过C++,我们也得到了一个无标度网络的邻接矩阵和聚类系数。
图3无标度网络邻接矩阵及其聚类系数
在生成无标度网络后,通过编程,绘制了一张由100个节点组成的无标度网络图。
图3无标度网络模型
其部分实现代码解释如下:
len=r_size
(1);
rho=10;%限制图尺寸的大小
r=5/^len;%设置点的半径
theta=0:
(2*pi/len):
2*pi*(1-1/len);%利用极坐标绘制一个由100各点组成的圆
[pointx,pointy]=pol2cart(theta',rho);
theta=0:
pi/36:
2*pi;
[tempx,tempy]=pol2cart(theta',r);
point=[pointx,pointy];
holdon%保留已经绘制好的点不给覆盖
绘制无标度网络分为两个步骤:
1.按一定规则绘制出给定个数的点。
2.保持这些已经绘制好的点,然后根据邻接矩阵绘制各点之间的关系
fori=1:
len
forj=1:
len
ifrel(i,j)
link_plot(point(i,:
),point(j,:
),r,control);%将有关系的点进行连接
end
end
end
这样就将网络中所有相连的节点进行了连接,建立了无标度网络的模型。
参考文献:
[1]WattsDJ,StrogatzSH。
Collectivedynamicsof‘small-world’networks[J]。
Nature,1998,393(6684):
397-498.
[2]asi,。
Emergenceofscalinginrandomnetworks。
,286(5439):
509-512.
[3].Thestructureandfunctionofcomplex
ReView#2003,45
(2):
167-256.
[4]方小生.《随机网络控制系统的性能分析与鲁棒控制》.上海交通大学博士学位论文.2009.
[5]车宏安.顾基发.无标度网络及其系统科学意义.系统工程理论与实践:
2004.(4):
11-16.
[6]theoryforscale-freerandomnetworks,
PhysicaA,1999,272:
173-187,cond-mat/9907068.
[7]孙金土.《复杂系统中的有关特性和动力学行为》.兰州大学博士学位论文.2010.
[8]刘美玲.《BA无标度网络模型的应用及扩展》.武汉理工大学博士学位论文.2005.
ResearchonScale-FreeNetworkandModelingofComplexSystem
XiaYouliang
DepartmentofSystemScience,NanjingUniversityofInformationScience&Technology,
Nanjing210044
ABSTRACT
The21stcenturyisthecomplexityoftheworld,Beenunabletomeetthecurrentunderstandingofnatureandhumansocietyasawholesystemandresearch-basedthereductionismworldviewandmethodology,Theuseofsystemssciencemethodstore-examinesciencealmostbecomesanurgentneed.Inreallife,thenumerousandcomplexnetworkisascale-freenature,suchgrowthinscale-freenetworksandpreferredconnectivityverywellexplaintherichgettingricher"Mattheweffect”.Researchonscale-freenetworks,thereisaprofoundunderstandingoftheirInternet,seismicnetworks,viralandsocialwealthdistributionnetworkinthetheoreticalandpracticalsignificance.Thisarticlethroughacomplexnetworkofanalysisandresearchonscale-freenetwork,introducestheGeneralrandomscale-freenetworksfromnetworkcharacteristicsandpracticalsignificance,anduseMatlabtogenerateascale-freenetwork.
Keyword:
powerlawcharacteristics,
附录:
C++程序:
#include<>
#include<>
#include<>
constintN=20;
intn;
intselect(floatbit[]);
classBA
{
public:
ints,v,h;
floatmax;
inta[N+1][N+1];
intb[N+1][N+1];
intk[(N+1)*(N+1)];
floatnum[(N+1)*(N+1)];
floatp[(N+1)*(N+1)];
voidbegin(BA&t);
voidGetp(BA&t);
voidGetsv(BA&t);
voidGetMaxNum(BA&t,ints,intv);
voidadd(BA&t);
voidjlxs();
};
intselect(floatbit[])
{
floatbet=(float)rand()/RAND_MAX;
intj=0;
floatpsum=;
while(psum{
psum=psum+bit[j];
j=j+1;
}
return(j-1);
}
voidBA:
:
begin(BA&t)
{
for(inti=0;i<3;i++)
{
for(intj=0;j<3;j++)
{
if(i==j)
[i][j]=0;
else
[i][j]=1;
}
}
}
voidBA:
:
Getp(BA&t)
{
intsum=0;
for(inti=0;i{
[i]=0;
for(intj=0;j{
sum+=[i][j];
[i]+=[i][j];
}
}
for(i=0;i{
[i]=float[i])/float(sum);
}
}
voidBA:
:
Getsv(BA&t)
{
inti,j,k=0;
for(i=0;i<10;i++)
{
[i]=0;
}
srand
(1);
for(j=1;j<=10;j++)
{
k=select;
[k]=[k]+1;
}
}
voidBA:
:
GetMaxNum(BA&t,ints,intv)
{
=[0];
for(inti=0;i{
if<=[i])
{
=[i];
=i;
}
}
[]=0;
=num[0];
for(i=0;i{
if(max<=num[i])
{
max=num[i];
=i;
}
}
}
voidBA:
:
add(BA&t)
{
for(inti=0;i{
for(intj=0;j{
b[i][j]=0;
if(i{[i][j]=[i][j];}
elseif(i==n&&j==
{[i][j]=1;}
elseif(i==&&j==n)
{[i][j]=1;}
elseif(i==n&&j==
{[i][j]=1;}
elseif(i==&&j==n)
{[i][j]=1;}
[i][j]=[i][j];
}
}
}
voidBA:
:
jlxs()
{
doubleC;
C=9*(log*log(N-2)*log(N-2)/(N-2);
cout<<"聚类系数:
"<}
voidmain()
{
BAt;
(t);
cout<<"BA网络的邻接矩阵为:
"<for(n=3;n{
(t);
(t);
(t,,;
(t);
}
for(inti=0;i{
for(intj=0;j{
cout<<[i][j]<<"";
}
cout<}
cout<();
}
Matlab程序
functionmatrix=FreeScale(X)
N=X;m0=3;m=3;%初始化网络数据
adjacent_matrix=sparse(m0,m0);%初始化