复杂网络及其matlab模拟
基于复杂网络的配电网拓扑模型研究

基于复杂网络的配电网拓扑模型研究谷骞;李红娇;马路林;谷曦【摘要】利用Matlab工具将无尺度网络、小世界网络、随机网络3种典型的复杂网络可视化,通过随机删除网络结点模拟网络攻击,比较了3种网络模型的关键参数和趋势走向.根据地区特点和对配电网的要求,选择合适的模型结构.【期刊名称】《上海电力学院学报》【年(卷),期】2017(033)005【总页数】5页(P487-490,510)【关键词】配电网;复杂网络;拓扑分析;网络结构【作者】谷骞;李红娇;马路林;谷曦【作者单位】上海电力学院计算机科学与技术学院,上海200090;上海电力学院计算机科学与技术学院,上海200090;上海电力学院计算机科学与技术学院,上海200090;漳泽电力侯马热电分公司发电运行部,山西临汾043000【正文语种】中文【中图分类】TP393.02;TM715随着化石能源的日益枯竭和电能需求的增大,分布式能源和储能技术的应用越来越广泛.国内外学者提出了“能源互联网”的概念[1],利用互联网及其他相关技术,促进能源之间的信息交互,实现能源生产与消耗的实时平衡.而直接与用户相连接的配电网决定了用户侧的供电可靠性和安全性,是新能源接入的重要载体.配电网结构复杂,有多种网络模型,不同地区对配电网的需求也不相同.根据复杂网络的主要参数和特点,将配电网模型抽象化,并进行相应的拓扑分析,通过比较关键参数的走向,选择适用的模型结构.复杂网络属于图的一部分.数学建模中用邻接矩阵来表示图模型.一个具有n个结点的图G用n×n阶邻接矩阵A表示[2]:目前,典型的复杂网络模型主要有无尺度网络模型(Scale Free Network,1996年由美国圣母大学BArabasi与Albert发现,简称BA网络),随机网络模型(Random Network,1959年由匈牙利数学家Erdos和Renyi发现,简称ER网络)和小世界网络模型(Small World Network,1998年由美国康奈尔大学的Watts和Strogatz 提出,简称WS网络).BA网络是一种在成长过程中的连接偏好依附性的网络.BA网络会不断地添加新结点,并且在连接时会优先选择结点度较高的结点.WS网络是介于随机网络和规则网络之间的一种网络模型.由一个具有N个结点的环开始,环上每一个结点与两侧各有m条边相连,然后对每条边以概率p随机重连.ER网络则是在由N个顶点和条边构成的图中,随机连接g条边形成的,记为GN,g,由这样的N个结点、g条边组成的网络共有种,每一个网络出现的概率是相等的.相同结点的3种网络模型如图1所示. 度(Degree)也称为连通度(Connectivity),结点的度指的是与该结点连接的边数.度可以表征结点的影响力和重要程度,度越大,其影响力就越大.某简单网络结构如图2所示.由图2可以看出,结点1,结点2,结点5的度为1,结点3的度为3,结点4的度为2.BA网络的大部分结点度数处于均匀状态,存在少数度数很高的结点.WS网络和ER 网络的整体度分布则相对比较均匀[3].平均最短路径(Average Path Length,APL)表示可连通性,一个网络结点数为n的无向网络中,整个网络的平均最短路径L定义为所有结点对i和j之间的最短路径的平均值,在配电网中,平均路径越短,则传输成本越低.较短的平均路径表示传输效率较高.计算公式为:式中:dij——结点i和j之间的最短路径.聚集系数(Clustering Coefficient)又称簇系数,指的是网络的集团化程度,往往与度分布有一定的联系.结点i的簇系数描述的是网络中与该结点直接相连的结点之间的连接关系,计算公式为:式中:ki——结点i的度;ei——结点i的邻接点之间实际存在的边数.网络的簇系数C为所有结点簇系数的算术平均值,即:效率是所有可能结点对之间最短路径的调和平均数的倒数,计算公式为:配电网结点行为复杂,连接结构、规模巨大,具有很明显的复杂网络特征,但对配电网的复杂特性尚未有普适性结论.将配电网抽象成图模型,具体原则如下.(1) 配电网中的结点类型主要有分段开关、负荷点、断路器、熔断器、变压器、分布式电源、储能装置等.(2) 电力潮流为双向潮流,为了简便分析,所有电力线路均简化为无向有权边,权重就是线路输送的能耗.这里进行简化,所有边的权重设置为1[4].(3) 消除电网中的自环和多重边.传统配电网主要是辐射状模型,该模型结构简单,属于高度聚集的网络.随着新能源的使用,这种结构单一的网络已经远远不能满足需求.未来配电网将会有很大规模的扩充,包括电动汽车、分布式电源、储能设备等子系统的接入,使得配电网结构更加复杂和灵活,能量和信息的交换和互动日益频繁,衍生出微电网等主动型负荷.未来电网的供电单位结构如图3所示,每个用户都可以看做是可调节负荷或电源.在配电网中,度数较高的结点一般是变压器母线或负荷较高的地区.平均最短路径的变化幅度往往代表着网络的鲁棒性.聚集系数越高,表示网络中具有大量交替路径.网络效率用于测量配电网对结点或级联故障和恢复的响应,即灵活性[5-6].图4为3种网络结点参数随结点数量的变化曲线.由图4可以看出,聚集系数和网络效率都随着结点数量的增大而减小,变化幅度越来越小,APL则相反.结点数量相同时,APL的大小顺序为WS网络>ER网络>BA网络;聚集系数的大小顺序为WS网络>BA网络>ER网络;网络效率的大小顺序为BA网络>ER网络>WS网络[7-9].根据定义,某国家A地区配电网结构类似于WS模型,B地区配电网结构类似于ER模型,以及BA网络1 000个结点模型,抽象为图模型后具体参数如表1所示.攻击分为主动攻击和随机攻击.对于任何网络来说,主动攻击的破坏力远大于随机攻击.主动攻击容易使网络变得支离破碎,不能形成连通图,相应参数无法对比.因此,本文只考虑随机攻击.通过观察随机删除结点后各项参数的变化趋势,可以预测网络的弹性能力、连通性以及响应能力.根据配电网的特性,删除结点的比例不宜过高,因此对每种模型随机删除最多20个结点.图5为3种网络随着结点数量的删除,聚集系数、网络效率和APL的变化情况.由图5的仿真结果可以看出,WS网络的APL较BA网络和ER网络更高,虽然BA网络的APL较小,但对结点进行随机删除时表现出较大的波动性.APL的变化幅度越小,则鲁棒性越强[10].ER网络的APL变化幅度相对较小,因此具有更好的鲁棒性.随着聚集系数的增加,越来越多的交替路径存在于结点中[11].因此,一个高度平均聚集系数的网络有较多的路径,网络具有更强的弹性,但是会造成较大冗余,维护成本较高.从图5b可以看出,WS网络的聚集系数远远高于其他两种模型.图5c显示BA网络的灵活性明显高于其他两种结构.选择拓扑模型时需要参考地区特点.配电网的规划分析因素主要有可靠性、经济性、灵活性、安全性等.对于负荷密集度较高的地区来说,应该着重考虑网络的稳定性,可以优先选择WS网络.对于普通地区来说,稳定性和经济性都是需要考虑的因素,可选择BA网络,它具有较强的自我恢复能力和连通性,维护成本相对较低.而对于负荷密集度较低的地区,ER模型维护成本较低,其连通性和响应能力处于中间水平,可以作为参考重点.但是,配电网的建设和规划也会受到其他因素的限制.例如,聚集系数较大,则该模型具有较强的稳定性,但实际设备的容量不一定满足.除此之外,由于地理环境的限制,某些重要地区可能无法进行大规模集中式配电网建设.由于配电网的复杂性和规划方法的多样性,如何对配电网模型进行准确描述和处理仍然需要更深入的研究,从而为指导实际工程建设发挥应有的作用[12-13].利用复杂网络理论研究复杂系统是当今科学研究的趋势.复杂网络理论已帮助人们认识到实际的配电网结构类似于复杂网络图,利用图论进行配电网相关分析是一种相对简便的方法.通过构建几种典型复杂网络图,并模拟随机攻击来比较和总结,绘制出不同的复杂网络模型关键参数的变化趋势,为使用复杂网络相关理论研究配电网的复杂性问题提供了基础.【相关文献】[1] RIFKIN J.The third industrial revolution:how lateral power is transforming energy,the economy,and the world[M].New York:Palgrave Macmillan,2013:31-46.[2] 盛夏.复杂网络模型发展综述[J].赤峰学院学报(自然科学版),2016(5):8-10.[3] BARABASI A L,ALBERT R.Emergence of scaling in randomnetworks[J].Science,1999,286:509.[4] 束洪春,刘宗兵,朱文涛.基于图论的复杂配电网可靠性评估方法[J].电网技术,2006(21):46-49.[5] 盛万兴,段青,梁英,等.面向能源互联网的灵活配电系统关键装备与组网形态研究[J].中国电机工程学报,2015(15):3 760-3 769.[6] 刘涤尘,彭思成,廖清芬,等.面向能源互联网的未来综合配电系统形态展望[J].电网技术,2015(11):3 023-3 034.[7] 王波,王万良,杨旭华.WS与NW两种小世界网络模型的建模及仿真研究[J].浙江工业大学学报,2009(2):179-182.[8] 王光增,曹一家,包哲静,等.一种新型电力网络局域世界演化模型[J].物理学报,2009(6):3 597-3 602.[9] 冯乾,马天琳,齐程,等.发展演化的复杂电力网络鲁棒性分析[J].现代电力,2013(6):16-20.[10] 徐成,梁睿,程真何,等.面向能源互联网的智能配电网安全态势感知[J].电力自动化设备,2016(6):13-18.[11] DONG Hwan Kima,DANIEL A,EISENBERG B,et work topology and resilience analysis of South Korean power grid[J].Physica A,2017,465:13-24.[12] 梅生伟,龚媛,刘锋.三代电网演化模型及特性分析[J].中国电机工程学报,2014(7):1 003-1 012.[13] 董朝阳,赵俊华,文福拴,等.从智能电网到能源互联网:基本概念与研究框架[J].电力系统自动化,2014(15):1-11.。
复杂网络聚类系数和平均路径长度计算的MATLAB源代码

复杂网络聚类系数和平均路径长度计算的MATLAB源代码复杂网络的聚类系数和平均路径长度是度量网络结构特征的重要指标。
下面是MATLAB源代码,用于计算复杂网络的聚类系数和平均路径长度。
首先,我们需要定义一个函数,用于计算节点的聚集系数。
这个函数的输入参数是邻接矩阵和节点的索引,输出参数是节点的聚类系数。
```matlabfunction cc = clustering_coefficient(adj_matrix, node_index) neighbors = find(adj_matrix(node_index, :));k = length(neighbors);if k < 2cc = 0;elseconnected_count = 0;for i = 1:k-1for j = i+1:kif adj_matrix(neighbors(i), neighbors(j))connected_count = connected_count + 1;endendendcc = 2 * connected_count / (k * (k - 1));endend```接下来,我们定义一个函数,用于计算整个网络的平均聚合系数。
```matlabfunction avg_cc = average_clustering_coefficient(adj_matrix) n = size(adj_matrix, 1);cc = zeros(n, 1);for i = 1:ncc(i) = clustering_coefficient(adj_matrix, i);endavg_cc = sum(cc) / n;end```然后,我们需要计算网络的平均最短路径长度。
这里我们使用了Floyd算法来计算每对节点之间的最短路径。
```matlabfunction avg_path_length =average_shortest_path_length(adj_matrix)n = size(adj_matrix, 1);dist_matrix =graphallshortestpaths(sparse(double(adj_matrix)));avg_path_length = sum(dist_matrix(:)) / (n^2 - n);end```最后,我们可以使用这些函数来计算一个复杂网络的聚类系数和平均路径长度。
如何利用Matlab进行模拟和仿真实验

如何利用Matlab进行模拟和仿真实验Matlab是一种功能强大的数学计算和数据可视化软件。
它不仅可以进行数学模拟和仿真实验,还可以处理数据、绘制图表和实施算法。
在工程、物理学、生物学等领域,Matlab被广泛用于解决各种实际问题。
本文将介绍如何利用Matlab进行模拟和仿真实验,并探讨其在实验设计和结果分析中的应用。
一. Matlab的基本功能Matlab具有很多基本功能,如矩阵操作、数值计算、符号计算等。
这些功能使得Matlab成为进行模拟和仿真实验的理想选择。
在Matlab中,可以定义和操作矩阵,进行线性代数运算,如求解方程组、矩阵求逆等。
此外,Matlab还提供了许多内置函数,可以进行数值计算和符号计算,如求解微分方程、积分、数值优化等。
二. 模拟实验的设计在进行模拟实验之前,首先需要设计实验方案。
实验设计包括选择合适的模型和参数设置,确定实验变量和观测指标等。
在Matlab中,可以使用函数或脚本来定义模型和参数,通过修改参数值来观察实验结果的变化。
比如,可以使用Matlab的模型库来选择合适的模型,然后使用函数传入参数值进行求解。
此外,Matlab还提供了绘图功能,可以绘制实验结果的图表,以便更直观地分析数据。
三. 仿真实验的实施在设计好实验方案后,就可以开始进行仿真实验了。
在Matlab中,可以使用已定义的模型和参数进行仿真计算。
可以通过Matlab的编程功能来实现计算过程的自动化。
比如,可以使用循环语句来迭代计算,以观察参数变化对结果的影响。
此外,Matlab还提供了随机数生成和统计分析函数,可以用于生成随机变量和分析实验数据。
四. 实验结果的分析在完成仿真实验后,需要对实验结果进行分析。
Matlab提供了丰富的数据处理和分析工具,可以对实验数据进行统计分析、绘图和可视化展示。
可以使用Matlab的数据处理函数来计算均值、标准差、相关系数等统计指标。
此外,Matlab还可以通过绘图函数来绘制直方图、散点图、线图等图形,以便更好地理解和展示数据。
利用Matlab进行数值模拟的方法

利用Matlab进行数值模拟的方法引言数值模拟是现代科学领域中不可或缺的一种工具,它通过数学模型和计算机算法,模拟和预测实际系统的行为。
随着科学技术的不断发展,数值模拟方法逐渐成为各个学科的重要组成部分。
Matlab作为一种强大的科学计算工具,为数值模拟提供了丰富的函数库和易于使用的编程环境。
本文将介绍一些利用Matlab进行数值模拟的方法,以及其在不同领域的应用。
一、常微分方程的数值解法常微分方程在物理、工程、生物等领域中广泛存在。
利用Matlab进行常微分方程的数值解法,可以有效地求得方程的近似解。
Matlab中的ode45函数是常用的数值解法之一,它基于龙格-库塔算法,可以处理非刚性和刚性问题。
通过设定初始条件和方程形式,利用ode45函数可以得到系统的数值解,并绘制出相应的曲线图。
例如,考虑一个一阶常微分方程dy/dx = -2xy,初始条件为y(0) = 1。
可以通过以下代码进行数值模拟:```Matlabfun = @(x, y) -2*x*y;[x, y] = ode45(fun, [0, 10], 1);plot(x, y)xlabel('x')ylabel('y')title('Solution of dy/dx = -2xy')```运行以上代码后,可以得到方程解的图像,从而对其行为有更直观的理解。
二、偏微分方程的数值解法偏微分方程在物理、流体力学、电磁学等领域中具有重要应用。
常用的偏微分方程的数值解法有有限差分法(Finite Difference Method)和有限元法(Finite Element Method)等。
在Matlab中,可以利用pdepe函数进行偏微分方程的数值模拟,其中包含了一维和二维问题的求解算法。
以热传导方程为例,假设一个长为L的均匀杆子,其温度分布满足偏微分方程∂u/∂t = α*∂²u/∂x²,其中u(x, t)表示温度分布。
Matlab中的复杂网络与图论分析方法

Matlab中的复杂网络与图论分析方法在当今数字时代,数据网络正在成为各行各业的核心,这就给研究网络结构和分析网络行为提供了前所未有的机会。
而复杂网络和图论分析方法则成为了研究数据网络的一种重要手段。
本文将介绍在Matlab中应用的复杂网络和图论分析方法,探讨其原理和应用。
一、复杂网络:拓扑结构的研究复杂网络是指由大量节点和链接组成的网络,其中节点代表实体,链接代表实体之间的关系。
通过研究复杂网络的拓扑结构,我们可以揭示数据网络中的规律和性质,了解网络中节点的连接模式和信息传播机制。
1.1 网络拓扑结构的描述在复杂网络研究中,一种常用的描述方法是邻接矩阵和度矩阵。
邻接矩阵是一个由0和1组成的矩阵,其中的元素表示节点之间的连接关系,1表示连接,0表示未连接。
度矩阵是一个对角矩阵,用于描述每个节点的度数,即与该节点相连的链接数。
1.2 网络节点的度分布节点的度数是指与该节点相连的链接数,而节点的度分布则是指不同度数的节点在网络中的分布情况。
在复杂网络中,节点的度分布往往符合幂律分布,即少数节点的度数非常大,而大部分节点的度数相对较小。
通过分析节点的度分布,可以了解网络中的核心节点和边缘节点,以及网络的鲁棒性和可靠性。
1.3 网络中的社区结构社区结构是指网络中节点的聚集现象,即节点之间的连接更密集,而与其他社区的联系较弱。
通过识别和研究网络中的社区结构,可以帮助我们揭示网络中的隐含规律、发现重要节点和子网络,并理解网络的分层结构和功能。
二、图论分析:探索网络行为的机制图论是研究网络结构和图形模型的数学理论,主要关注网络中节点和链接之间的关系。
通过图论分析,我们可以量化和描述网络中的节点和链接的特性,揭示网络的演化机制和行为规律。
2.1 网络中的中心性度量中心性是衡量网络中节点重要性的指标,可以帮助我们识别重要节点和影响网络动态行为的因素。
在复杂网络中,常用的中心性度量包括度中心性、接近中心性和介数中心性等。
使用Matlab进行复杂系统的建模与仿真技巧

使用Matlab进行复杂系统的建模与仿真技巧使用 Matlab 进行复杂系统的建模与仿真技巧概述:在当今科技高速发展的时代,越来越多的系统趋于复杂化。
因此,建立准确的模型以进行系统建模和仿真是至关重要的。
Matlab 是一款功能强大的科学计算软件,它提供了丰富的工具和函数以便于系统建模和仿真的研究。
本文将介绍使用Matlab 进行复杂系统建模和仿真的一些技巧和方法。
第一部分: 建立系统模型1.1 了解系统特性在开始建模之前,必须对所研究的系统有一个清晰的了解。
这包括系统的输入、输出、状态和参数等。
通过对系统特性的分析,可以帮助我们确定建立适合的模型类型和仿真方法。
1.2 选择合适的模型类型根据系统的特性,选择合适的模型类型是至关重要的。
在 Matlab 中,常用的模型类型包括线性模型、非线性模型、离散模型和连续模型等。
根据系统的特点选择适合的模型类型能够更好地反映系统的行为和响应。
1.3 系统建模方法系统建模是根据实际情况将系统抽象成一个数学模型的过程。
在 Matlab 中,可以使用不同的建模方法,如物理建模、数据建模和基于状态空间法的建模等。
根据系统的特征选择合适的建模方法能够提高模型的准确性和可靠性。
第二部分: 数学工具与仿真技巧2.1 使用符号计算工具Matlab 提供了符号计算工具箱,可以对数学表达式进行符号计算,如求解方程、导数和积分等。
使用符号计算工具能够简化复杂系统的数学推导和计算。
2.2 优化算法与工具在系统建模过程中,通常需要优化模型参数以使模型与实际系统更好地匹配。
Matlab 提供了各种优化算法和工具,如遗传算法、模拟退火算法和最小二乘法等,可以帮助我们自动化地调整参数并优化模型。
2.3 频域分析与控制设计频域分析是研究系统在不同频率下的响应特性的方法。
Matlab 提供了丰富的频域分析工具,如傅里叶变换、频谱分析和波特图等,可以帮助我们更好地理解系统的频率响应,并设计相应的控制系统。
matlab通信仿真实例

matlab通信仿真实例在Matlab中进行通信系统的仿真,可以涉及到多种不同的通信技术和协议,包括调制解调、信道编码、多址接入等。
以下以OFDM系统为例,介绍Matlab 中通信仿真的实例。
OFDM(正交频分复用)是一种常用于现代通信系统中的技术,它将高速数据流分割成多个较低速的子流,并将每个子流分配到不同的子载波上。
优点是能够抵抗多径效应和频率选择性衰落,并提供高数据速率。
首先,我们需要创建一个包含OFDM系统参数的结构体。
例如:ofdmParam.M = 16; % 子载波数量ofdmParam.K = 4; % 用于混合多路复用的用户数量ofdmParam.N = ofdmParam.M * ofdmParam.K; % 总子载波数量ofdmParam.CP = 16; % 循环前缀长度接下来,我们可以生成用于OFDM仿真的数据流。
例如,我们可以使用随机整数生成器生成一系列整数,并将其转换为复数形式的调制符号:data = randi([0, ofdmParam.M-1], 1, ofdmParam.N);dataMod = qammod(data, ofdmParam.M);然后,我们可以创建一个包含OFDM信号的函数。
在OFDM系统中,生成的数据符号将分配到不同的子载波上,然后在时域中通过插入循环前缀进行叠加:function[ofdmSignal] = createOFDMSignal(dataMod, ofdmParam) ofdmSignal = [];for k = 0:ofdmParam.K-1% 提取相应的数据符号,并进行IFFTofdmData =ifft(dataMod(k*ofdmParam.M+1:(k+1)*ofdmParam.M));% 添加循环前缀ofdmDataWithCP = [ofdmData(end-ofdmParam.CP+1:end), ofdmData];% 将OFDM符号添加到OFDM信号中ofdmSignal = [ofdmSignal, ofdmDataWithCP];endend将OFDM信号传输到信道中,我们可以使用加性高斯白噪声(AWGN)信道模型来模拟实际通信环境:EbNo = 10; % 信噪比snr =10*log10(ofdmParam.N*ofdmParam.M/(ofdmParam.N*ofdmParam.M+1 )*(10^(EbNo/10)));ofdmSignalNoisy = awgn(ofdmSignal, snr, 'measured');最后,我们可以对接收到的OFDM信号进行解调和信号恢复。
复杂网络聚类系数和平均路径长度计算的MATLAB源代码

复杂网络聚类系数和平均路径长度计算的MA TLAB源代码申明:文章来自百度用户carrot_hy复杂网络的代码总共是三个m文件,复制如下:第一个文件,function [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types)% CCM_ClusteringCoef calculates clustering coefficients.% Input:% gMatrix adjacency matrix% Types type of graph:'binary','weighted','directed','all'(default).% Usage:% [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types) returns% clustering coefficients for all nodes "Cp_Nodal" and average clustering% coefficient of network "Cp_Global".% Example:% G = CCM_TestGraph1('nograph');% [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(G);% Note:% 1) one node have vaule 0, while which only has a neighbour or none.% 2) The dircted network termed triplets that fulfill the follow condition % as non-vacuous: j->i->k and k->i-j,if don't satisfy with that as% vacuous, just like: j->i,k->i and i->j,i->k. and the closed triplets % only j->i->k == j->k and k->i->j == k->j.% 3) 'ALL' type network code from Mika Rubinov's BCT toolkit.% Refer:% [1] Barrat et al. (2004) The architecture of the complex weighted networks.% [2] Wasserman,S.,Faust,K.(1994) Social Network Analysis: Methods and % Applications.% [3] Tore Opsahl and Pietro Panzarasa (2009). "Clustering in Weighted % Networks". Social Networks31(2).% See also CCM_Transitivity% Written by Yong Liu, Oct,2007% Center for Computational Medicine (CCM),% National Laboratory of Pattern Recognition (NLPR),% Institute of Automation,Chinese Academy of Sciences (IACAS), China.% Revise by Hu Yong, Nov, 2010% E-mail:% based on Matlab 2006a% $Revision: , Copywrite (c) 2007error(nargchk(1,2,nargin,'struct'));if(nargin < 2), Types = 'all'; endN = length(gMatrix);gMatrix(1:(N+1):end) = 0;%Clear self-edgesCp_Nodal = zeros(N,1); %Preallocateswitch(upper(Types))case 'BINARY'%Binary networkgMatrix = double(gMatrix > 0);%Ensure binary networkfor i = 1:Nneighbor = (gMatrix(i,:) > 0);Num = sum(neighbor);%number of neighbor nodestemp = gMatrix(neighbor, neighbor);if(Num > 1), Cp_Nodal(i) = sum(temp(:))/Num/(Num-1); end endcase 'WEIGHTED'% Weighted network -- arithmetic meanfor i = 1:Nneighbor = (gMatrix(i,:) > 0);n_weight = gMatrix(i,neighbor);Si = sum(n_weight);Num = sum(neighbor);if(Num > 1),n_weight = ones(Num,1)*n_weight;n_weight = n_weight + n_weight';n_weight = n_weight.*(gMatrix(neighbor, neighbor) > 0);Cp_Nodal(i) = sum(n_weight(:))/(2*Si*(Num-1));endend%case 'WEIGHTED'% Weighted network -- geometric mean% A = (gMatrix~= 0);% G3 = diag((gMatrix.^(1/3) )^3);)% A(A == 0) = inf; %close-triplet no exist,let CpNode=0 (A=inf)% CpNode = G3./(A.*(A-1));case 'DIRECTED', % Directed networkfor i = 1:Ninset = (gMatrix(:,i) > 0); %in-nodes setoutset = (gMatrix(i,:) > 0)'; %out-nodes setif(any(inset & outset))allset = and(inset, outset);% Ensure aji*aik > 0,j belongs to inset,and k belongs to outsettotal = sum(inset)*sum(outset) - sum(allset);tri = sum(sum(gMatrix(inset, outset)));Cp_Nodal(i) = tri./total;endend%case 'DIRECTED', % Directed network -- clarity format (from Mika Rubinov, UNSW) % G = gMatrix + gMatrix'; %symmetrized% D = sum(G,2); %total degree% g3 = diag(G^3)/2; %number of triplet% D(g3 == 0) = inf; %3-cycles no exist,let Cp=0 % c3 = D.*(D-1) - 2*diag(gMatrix^2); %number of all possible 3-cycles% Cp_Nodal = g3./c3;%Note: Directed & weighted network (from Mika Rubinov)case 'ALL',%All typeA = (gMatrix~= 0); %adjacency matrixG = gMatrix.^(1/3) + (gMatrix.').^(1/3);D = sum(A + A.',2); %total degreeg3 = diag(G^3)/2; %number of tripletD(g3 == 0) = inf; %3-cycles no exist,let Cp=0c3 = D.*(D-1) - 2*diag(A^2);Cp_Nodal = g3./c3;otherwise,%Eorr Msgerror('Type only four: "Binary","Weighted","Directed",and "All"');endCp_Global =sum(Cp_Nodal)/N;%%第二个文件:function [D_Global, D_Nodal] = CCM_AvgShortestPath(gMatrix, s, t)% CCM_AvgShortestPath generates the shortest distance matrix of source nodes % indice s to the target nodes indice t.% Input:% gMatrix symmetry binary connect matrix or weighted connect matrix % s source nodes, default is 1:N% t target nodes, default is 1:N% Usage:% [D_Global, D_Nodal] = CCM_AvgShortestPath(gMatrix) returns the mean% shortest-path length of whole network D_Global,and the mean shortest-path % length of each node in the network% Example:% G = CCM_TestGraph1('nograph');% [D_Global, D_Nodal] = CCM_AvgShortestPath(G); % See also dijk, MEAN, SUM% Written by Yong Liu, Oct,2007% Modified by Hu Yong, Nov 2010% Center for Computational Medicine (CCM),% Based on Matlab 2008a% $Revision: , Copywrite (c) 2007% ###### Input check #########error(nargchk(1,3,nargin,'struct'));N = length(gMatrix);if(nargin < 2 | isempty(s)), s = (1:N)';else s = s(:); endif(nargin < 3 | isempty(t)), t = (1:N)';else t = t(:); end% Calculate the shortest-path from s to all nodeD = dijk(gMatrix,s);%D(isinf(D)) = 0;D = D(:,t); %To target nodesD_Nodal = (sum(D,2)./sum(D>0,2));% D_Nodal(isnan(D_Nodal)) = [];D_Global = mean(D_Nodal);第三个文件:function D = dijk(A,s,t)%DIJK Shortest paths from nodes 's' to nodes 't' using Dijkstra algorithm.% D = dijk(A,s,t)% A = n x n node-node weighted adjacency matrix of arc lengths% (Note: A(i,j) = 0 => Arc (i,j) does not exist;% A(i,j) = NaN => Arc (i,j) exists with 0 weight) % s = FROM node indices% = [] (default), paths from all nodes% t = TO node indices% = [] (default), paths to all nodes% D = |s| x |t| matrix of shortest path distances from 's' to 't'% = [D(i,j)], where D(i,j) = distance from node 'i' to node 'j'%% (If A is a triangular matrix, then computationally intensive node% selection step not needed since graph is acyclic (triangularity is a% sufficient, but not a necessary, condition for a graph to be acyclic)% and A can have non-negative elements)%% (If |s| >> |t|, then DIJK is faster if DIJK(A',t,s) used, where D is now% transposed and P now represents successor indices)%% (Based on Fig. 4.6 in Ahuja, Magnanti, and Orlin, Network Flows,% Prentice-Hall, 1993, p. 109.)% Copyright (c) 1998-2000 by Michael G. Kay% Matlog Version 29-Aug-2000%% Modified by JBT, Dec 2000, to delete paths% Input Error Checking ****************************************************** error(nargchk(1,3,nargin,'struct'));[n,cA] = size(A);if nargin < 2 | isempty(s), s = (1:n)'; else s = s(:); endif nargin < 3 | isempty(t), t = (1:n)'; else t = t(:); endif ~any(any(tril(A) ~= 0)) % A is upper triangularisAcyclic = 1;elseif ~any(any(triu(A) ~= 0)) % A is lower triangularisAcyclic = 2;else % Graph may not be acyclicisAcyclic = 0;endif n ~= cAerror('A must be a square matrix');elseif ~isAcyclic & any(any(A < 0))error('A must be non-negative');elseif any(s < 1 | s > n)error(['''s'' must be an integer between 1 and ',num2str(n)]);elseif any(t < 1 | t > n)error(['''t'' must be an integer between 1 and ',num2str(n)]);end% End (Input Error Checking) ************************************************A = A'; % Use transpose to speed-up FIND for sparse A D = zeros(length(s),length(t));P = zeros(length(s),n);for i = 1:length(s)j = s(i);Di = Inf*ones(n,1); Di(j) = 0;isLab = logical(zeros(length(t),1));if isAcyclic == 1nLab = j - 1;elseif isAcyclic == 2nLab = n - j;elsenLab = 0;UnLab = 1:n;isUnLab = logical(ones(n,1));endwhile nLab < n & ~all(isLab)if isAcyclicDj = Di(j);else % Node selection[Dj,jj] = min(Di(isUnLab));j = UnLab(jj);UnLab(jj) = [];isUnLab(j) = 0;endnLab = nLab + 1;if length(t) < n, isLab = isLab | (j == t); end[jA,kA,Aj] = find(A(:,j));Aj(isnan(Aj)) = 0;if isempty(Aj), Dk = Inf; else Dk = Dj + Aj; endP(i,jA(Dk < Di(jA))) = j;Di(jA) = min(Di(jA),Dk);if isAcyclic == 1 % Increment node index for upper triangular A j = j + 1;elseif isAcyclic == 2 % Decrement node index for lower triangular Aj = j - 1;end%disp( num2str( nLab ));endD(i,:) = Di(t)';end。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业论文题目:复杂网络及其matlab模拟学院:物理与电子工程学院专业:物理学毕业年限:2015学生姓名:学号:指导教师:复杂网络及其matlab模拟班级:物理学2班姓名:指导教师:摘要近年来,关于复杂网络的研究正方兴未艾,1998年Watts和Strogatz 在Nature杂志上发表文章,引入了小世界(Small一World)网络模型。
本文对复杂网络的特性还有无标度与小世界网络进行简单介绍,详细介绍各个模型的生成与算法,并用matlab软件进行了模拟。
关键词复杂网络无标度小世界模拟Abstract In recent years, the research on complex networks of academia is be just unfolding, in particular, the two pioneering work set off an upsurge in the study of complex networks.In 1998 Watts and Strogatz published an article In this paper, the properties of complex networks are scale-free and small world networks are briefly introduced,Generation and algorithm details of each model, and use MATLAB software to simulate.Key word Complex network;Scale free;Small World;Simulation引言在人类生存的整个空间甚至宇宙中都存在着大量复杂系统,这些系统可以通过形形色色的网络加以描述。
一个典型的网络是由许多节点与连接两个节点之间的一些边组成的,其中节点用来代表真实系统中不同的个体,而边则用来表示个体间的关系,往往是两个节点之间具有某种特定的关系则连一条边,反之则不连边,有边相连的两个节点在网络中被看作是相邻的。
例如,神经系统可以看作大量神经细胞通过神经纤维相互连接形成的网络[1];计算机网络可以看作是自主工作的计算机通过通信介质如光缆、双绞线、同轴电缆等相互连接形成的网络[2],类似的还有电力网络[1]、社会关系网络[1,4]、交通网络等等。
数学家和物理学家在研究网络的时候,往往只关心节点之间有没有边相连,至于节点到底在什么位置,边是长还是短,是弯曲还是平直,有没有相交等等都是他们不在意的。
在这里,我们把网络不依赖于节点的具体位置和边的具体形态就能表现出来的性质叫做网络的拓扑性质,相应的结构叫做网络的拓扑结构。
那么,什么样的拓扑结构比较适合用来描述真实的系统呢?本文首先介绍了复杂网络的研究进展及其统计特征,然后对小世界网络和无标度网络模型及各模型的matlab模拟作了详细介绍。
1 复杂网络的发展及统计特征1.1.复杂网络的发展由于现实世界网络的规模大,节点间相互作用复杂,其拓扑结构基本上未知或未曾探索。
两百多年来,人们对描述真实系统拓扑结构的研究经历了三个阶段。
在最初的一百多年里,科学家们认为真实系统要素之间的关系可以用一些规则的结构表示,例如大数学家欧拉的哥尼斯堡七桥问题[8],哥尼斯堡是当时东普鲁士的首都,今俄罗斯加里宁格勒市,普莱格尔河横贯其中,这条河上建有七座桥,将河中间的两个岛和河岸联结起来,。
有人在闲暇散步时提出:能不能每座桥都只走一遍,最后又回到原来的位置。
大数学家欧拉用一种独特的方法给出了解答。
他把两座小岛和河的两岸分别看作四个点,分别用A、B、C和D表示,而把七座桥看作这四个点之间的连线,分别用a、b、c、d、e、f和g表示(如图1)。
于是这个问题就简化成:能不能用一笔就把这个图形画出来?经过进一步的分析,欧拉得出结论:不可能每座桥都走一遍,最后回到原来的位置,并且给出了所有能够一笔画出来的图形所应具有的条件。
图1 欧拉哥尼斯堡七桥问题英国数学家哈密顿于1859年以游戏的形式提出:把一个正十二面体的二十个节点看成二十个城市,要求找出一条经过每个城市恰好一次而回到出发点的路线,这条路线就称“哈密顿圈”[9]。
1852年,毕业于伦敦大学的格思里来到一家科研单位做地图着色工作时,发现了一个有趣的现象:每幅地图都可以用四种颜色着色,使得有共同边界的国家着上不同的颜色[9]。
1959年,两个匈牙利著名的数学家Erdös 和R ényi 建立了著名的随机图理论,用相对简单的随机图来描述网络,简称ER 随机图理论[5]。
ER 随机图理论对图论理论研究的影响长达近40年,以至于在随后的近半个世纪,随机图一直是科学家研究真实网络最有力的武器。
直到最近几年,科学家们发现大量的真实网络既不是规则网络,也不是随机网络,而是具有与前两者皆不同的统计特性的网络,其中最有影响的是美国的 Watts 和Strogatz 于1998年发表了题为《“小世界”网络的群体动力行为》的论文[1],推广了“六度分离”的科学假设[8],提出了小世界网络模型。
“六度分离”最早来自于20世纪60年代美国哈佛大学心理学家Milgram 对社会调查的推断,是指在大多数人中,任意两个素不相识的人通过朋友的朋友,平均最多通过6个人就能够彼此认识。
随后Barabasi 等人于1999年发表了题为《随机网络中标度的涌现》的论文[6],提出了一个无标度网络模型,指出在复杂网络中节点的度分布具有幂指数函数的规(节点的度是指与该节点连接的边数,而度分布是指网络中所有节点的度的分布情况),其度分布可以用幂律形式进行描述。
近10年来,复杂网络的研究正渗透到众多不同的学科。
推进复杂性科学的交叉研究,深入探索和科学理解复杂网络的定性特征与定量规律,使它获得广泛的应用,对全球科学和社会的发展具有十分重大的长远意义。
1.2.复杂网络的统计特征平均路径长度:网络中两个节点i 到j 之间的距离定义为连接这两个节点的最短路径上的边数。
网络中任意两个节点之间的距离的最大值称为网络的直径,记为D 。
即:D=max(d ij )。
网络的平均路径长度L 定义为任意两节点之间距离的平均值,即: ∑≥+=ji ij d )1(211N N L (1)其中,N 为网络的总节点数,网络的平均路径长度也称为网络的特征路径长度。
集聚系数:集聚系数又称作簇系数,它衡量的是网络的集团化程度,是网络的另一个重要参数。
簇系数的概念有其深刻的社会根源。
对社会网络而言,集团化形态是其一个重要特征,集团表示网络中的朋友圈或熟人圈,集团中的成员往往相互熟悉,为衡量这种群集现象,科学家们提出了簇系数的概念。
节点i 的簇系数i C 描述的是网络中与该节点直接相连的节点之间的连接关系,即与该节点直接相邻的节点间实际存在的边数目占最大可能存在的边数的比例,i C 的表达式为:)(1k k /e 2i i i i -=C (2) 式中i k 表示节点i 的度,i e 表示节点i 的邻接点之间实际存在的边数。
网络的簇系数C 为所有节点簇系数的算术平均值,即:∑=N CN C 1-i i 1 (3)其中N 为网络的阶。
不尽尽是社会网络,在其它类型的网络中,也普遍存在集聚现象。
计算下面简单网络的直径、平均距离和各节点的集聚系数。
图2网络统计特征计算示意图解:首先计算出所有节点对的距离:d12=1;d13=1;d14=2;d15=1;d16=2;d23=1;d24=1;d25=2;d26=2;d34=2;d35=2;d36=1;d45=3;d46=1;d56=3。
由此可得直径和平均距离和集聚系数分别为:直径3d d d max 5645ij j 1i 1====≤≤,D ,平均距离67.1)56/()252(16621=⨯⨯=-=∑>jij d L )(, 集聚系数616/c 1i i ==∑=N C 。
度分布:度分布是网络的一个重要统计特征。
这里的度(Degree)也称为连通度(Connectivity),节点的度指的是与该节点连接的边数。
对网络中所有节点的度求平均,可得到网络的平均度<k>。
度分布则表示节点度的概率分布函数()P k,它指的是节点有k条边连接的概率。
2.小世界网络模型及其模拟1929 年,匈牙利作家 F.Karinthy 最早提出了“小世界现象”的论断。
他认为,在地球上的任何两个人都可以平均通过一条由六位联系人组成的链条而联系起来。
而后,在1967 年,美国哈佛大学社会心理学教授Milgram 通过设计一个连锁信件实验,提出了著名的“六度分离”假说,即“小世界现象”[1]。
这体现了一个似乎很普遍的规律:在如今的信息化时代,人们之间的关系已经完全社会化,任何两位素不相识的人都可能通过“六度空间”产生必然联系或关联。
这一现象表明,在看似庞大的网络中各要素之间的间隔实际上是非常“近”的,大家在世界上通过一步一步的社会相识寻找到目标的这个短链子理论普遍存在于各种社会、经济网络中,科学家们把这种现象称为小世界效应[1](Small-world effect)。
为了用网络图来解释“六度分离”的小世界效应,,Watts 和 Strogatz 在对规则网络和随机网络理论研究的基础上,于 1998 年提出了著名的 WS 小世界网络[1]。
WS模型提出后,很多学者在此基础作了近一步改进,其中应用最多的是Newman和Watts提出的所谓NW小世界模型。
事实上,当p很小N很大的时候,这两个模型理论分析的结果是相同的,现在我们统称它们为小世界模型。
前面我们已经简单的介绍了一下小世界网络的WS和NW模型,下面将着重介绍小世界网络的ws模型的特点。
2.1.WS 模型构造算法1998年, Watts和Strogatz 提出了小世界网络这一概念,并建立了WS模型[1]。
实证结果表明,大多数的真实网络都具有小世界特性(较小的最短路径) 和聚类特性(较大的聚类系数) 。
传统的规则最近邻耦合网络具有高聚类的特性,但并不具有小世界特性;而ER 随机网络具有小世界特性但却没有高聚类特性。
因此这两种传统的网络模型都不能很好的来表示实际的真实网络。
Watts和Strogatz建立的WS小世界网络模型就介于这两种网络之间,同时具有小世界特性和聚类特性,可以很好的来表示真实网络[1]。
WS 网络模型同时具有平均路径长度短集群系数高的特点,但是,它的度分布仍是一个轻尾的Poisson 分布,而且WS 网络中不存在具有大量连接边的中枢点,因此,它仍然是一个平衡网络。
近年来,研究人员对小世界网络得结构性质和动力学行为进行了深入的探索,取得了丰富成果。