无标度网络的生成模型
1999 年 Barabási 和 Albert 提出了无标度网络模型(简称 BA 模型)。无标度网络的重要特征为: 无标度网络的节点度分布服从幂律分布。
无标度网络的度分布 p(d)p(d)p(d) 满足p(d)∼d−α,p(d)\sim d^{-\alpha},p(d)∼d−α,其中 ddd 代表度的大小, α\alphaα 为度分布的幂律指数。 真实网络 α\alphaα 值一般介于 2~3之间。
近年来越来越多的研究表明, 真实世界网络既不是规则网络, 也不是随机网络, 而是兼具小世界和无标度特性的复杂网络, 具有与规则网络和随机网络截然不同的统计特性。
本文采用的无标度网络生成模型是由 Barabási 和 Albert 于 1999 年提出的增长网络网络模型(BA 模型)。在该模型中,网络初始时具有 m0m_0m0 个节点,两两互连。 之后每过一个时间单位增加一个新节点。新节点从当前网络中选择m(m≤m0)m(m ≤ m_0)m(m≤m0) 个节点与之连接, 某节点 viv_ivi 被选中的概率 p(vi)p(v_i)p(vi) 与其节点度 did_idi 的大小成正比,即p(vi)=di∑jdjp(v_i) = \frac{d_i}{\sum_j d_j}p(vi)=∑jdjdi经过 t 个时间单位后,网络中含有 m0+tm_0+tm0+t 个节点,m0(m0−1)/2+mtm_0(m_0-1)/2+mtm0(m0−1)/2+mt条边。可以证明当 t 足够大时, 按此规律增长的网络的度分布为幂指数等于 3 的幂律分布。
依据新节点的连接规律,建立节点度演化的动力学模型:
其中最后一个等式在 ttt 足够大时近似成立。 将节点 iii 加入网络的时间记为 tit_iti,
则有初始条件 di(ti)=md_i(t_i) = mdi(ti)=m。解得
在 ttt 足够大, 对任意节点 iii, 其度的大小满足
其中第三个等式成立的原因是加入节点的时间是等间隔的。上式正是网络节点度的概率分布函数, 可以求出节点度的概率密度函数 p(d)p(d)p(d) 为
可知所生成网络的幂律分布的指数为 3。下面的matlab程序模拟了BA网络的演化过程:
function scale_free(N,m0,m)
%
%param N: num of vertices 期望节点数
%param m0: num of initial vertices 初始边数
%param m: num of vertices a new node try to connect 新节点连接的边数
%
tic;I = 2 ; %生成的网络个数,只为统计需要realization_of_distribution = sparse( I , N ) ;
for J = 1 : I format long;%初始化邻接矩阵,前m0个节点两两互连adjacent_matrix = sparse( m0 , m0 ) ; parfor i = 1 : m0for j = 1 : m0if j ~= iadjacent_matrix( i , j ) = 1 ;endendendadjacent_matrix = sparse( adjacent_matrix ) ; % 计算当前节点度分布node_degree = sparse( 1 , m0 ) ; for p = 1 : m0node_degree( p ) = sum( adjacent_matrix( 1 : m0 , p ) ) ;end% 开始演化for iteration = m0 + 1 : Ntotal_degree = 2 * m * ( iteration - m0 -1 ) + m0*(m0-1) ; % m*2degree_frequency = node_degree / total_degree ; cum_distribution = cumsum( degree_frequency ) ; choose = zeros( 1 , m ) ; for new_edge = 1:mr = rand(1) ; choose_edge = find( cum_distribution >= r ,1) ;while any(choose == choose_edge)r = rand(1) ;choose_edge = find( cum_distribution >= r,1) ;endchoose(new_edge) = choose_edge;endfor k = 1 : madjacent_matrix( iteration , choose(k) ) = 1 ;adjacent_matrix( choose(k) , iteration ) = 1 ;endfor p = 1 : iterationnode_degree(p) = sum( adjacent_matrix( 1 : iteration , p ) ) ; endend number_of_nodes_with_equal_degree = zeros( 1 , N ) ; parfor i = 1 : Nnumber_of_nodes_with_equal_degree(i) = length( find( node_degree == i ) ) ; endrealization_of_distribution( J , : ) = number_of_nodes_with_equal_degree ;save(['adj_',num2str(J)],'adjacent_matrix');
end %{
%plot degree distribution 在双对数坐标下画图average = sum( realization_of_distribution )/ ( I * N );
loglog( 1:N , average , '*' )
axis([1 N 0.0000001 0.9])
hold on;
x = 1:N;
y = 2 * m^2 * x .^ ( -3 ) ;
loglog( x , y , 'r' ) ; % p(k)=2*m^2*k^(-3)%}
toc;end
人工生成网络的概率质量函数(网络节点数 NNN 分别为 50、 100、 200、 400)
图中直线为理论结果: p(d)=2m2d3p(d)=2\frac{m^2}{d^3}p(d)=2d3m2。
无标度网络的生成模型相关推荐
- 级联失效matlab,加权无标度网络的级联失效模型
社交网.交通网.通信网等领域均呈现无标度特性[, 是复杂网络中常见的一种现象, 不同网络中的节点和边都承载着不同形式的负载, 且负载的承受能力是有限的.加权无标度网络是指节点和边根据权值构建成的网络[ ...
- Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.7 - 图生成 无标度网络
1.概述 Barabási和Albert(1999)的"富者更富"(Rich get richer)生成模型(BA模型)最被熟知的无标度网络子集的生成模型.它让每个网页根据一个非均 ...
- BA无标度网络(一):规则网络生成
在讨论BA网络的生成时,涉及到初始网络的选择,理论上当然可以选择只之前已近提及的ER随机网络模型或者WS小世界网络等等,但是如果初始规模较小,这些网络的的特性并不能很好的体现,所以我在生成BA无标度网 ...
- 复杂性思维第二版 四、无标度网络
四.无标度网络 原文:Chapter 4 Scale-free networks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 在本章中,我们将处理来自在线社交网络的数据,并使 ...
- 网络模型 - 随机网络,无标度网络,分层网络
转自: http://www.flickr.com/photos/caseorganic/4510691991/in/set-72157624621620243 小图 大图 Network Model ...
- 从零认识 无标度网络
喜欢的话请关注我们的微信公众号~<你好世界炼丹师>. 公众号主要讲统计学,数据科学,机器学习,深度学习,以及一些参加Kaggle竞赛的经验. 公众号内容建议作为课后的一些相关知识的补充,饭 ...
- 复杂网络之无标度网络与小世界网络生成程序
近日需要用到无标度网络与小世界网络,早上用matlab写了这两种网络的matlab程序,放在这,有用者可以拿去用,请自己验证正确性后使用. 共有三个文件,swnet.m 是sw小世界模型 ...
- Anylogic建立无标度网络
创建Agent 将左边面板中的智能体拖入界面中,选择智能体群,动画为无,数量为100,点击"完成" Main界面设置 在Main中随意点击空白处,出现右侧"属性" ...
- 随机网络与无标度网络
原文地址:http://blog.lmtw.com/b/peon/archives/2009/66662.html 传统的随机网络(如ER模型),尽管连接是随机设置的,但大部分节点的连接数目会大致相同 ...
- networkx 标签_networkx绘制BA无标度网络
step1: 导入networkx复杂网络库.matplotlib.pyplot.pandas import networkx as nximport matplotlib.pyplot as plt ...
最新文章
- java接口如何定义常量 c_在Java接口中怎样访问定义的常量呢?
- js中将字符串转换成json的三种方式
- [小程序]小程序框架的简单页面布局
- mysql历史日志文件_MySQL 历史 binlog 日志处理
- linux常用命令(4)
- Redis有序集合详解
- msyql的FORMAT()函数设置小数位数,将小数位数保留到小数点后第n位,最后一位四舍五入
- 如何用TensorFlow生成令人惊艳的分形图案
- 通过共享文件夹来进行前后端独立开发
- 另辟蹊径--极简Swifty路由
- 分享 100 道基础的前端面试题(附答案)
- 关于_WIN32_WINNT
- 银行接口数据包(银行名称获取)
- 计算机课程微信可以教吗,这样操作都可以?教你用微信远程控制电脑!
- 中国RV减速器行业竞争格局与发展趋势预测报告2022-2028年
- 终于看完无懈可击之蓝色梦想了
- 华东政法大学教学管理系统_华东政法大学研究生教学管理信息系统入口
- W32Dasm反汇编基础教程
- Day4 管理用户和组、tar备份与恢复、crom计划
- 引领设计趋势!最新潮的24个获奖网页作品欣赏
热门文章
- 个税服务器系统繁忙,2021个人所得税系统异常进不去怎么办?系统繁忙请稍后再试怎么回事...
- 新疆计算机二级vb 试题,2020年9月新疆维吾尔自治区计算机二级易考套餐:二级VB考试题库+教材...
- vue相关插件及框架全家桶
- 汉王考勤管理系统教程
- Maven引入数据库JDBC驱动
- 强连通分量(Tarjan算法)
- Oracle-----Plsql导出表结构和表数据,数据库对象
- python源代码怎么用_Python写完代码怎么用
- Excel文件对比工具
- 按中文排序List集合