用简洁的python代码生成无标度网络,并绘制网络度的分布

假设有如下一个简单网络

网络的邻接矩阵和度数如下

------- node 1 node 2 node 3 degree
node 1 -------- 1 1 2
node 2 1 ----- 0 1
node 3 1 0 0 1

假设一个新的点4要和这三个点进行连接

  • 和点1、2、3连接的概率分别是:33+2+2\frac{3}{3+2+2}3+2+23​、23+2+2\frac{2}{3+2+2}3+2+22​、23+2+2\frac{2}{3+2+2}3+2+22​
  • 把这三个概率加在一起为1
  • 那可以使用一个随机数,看落在三段的那一段里,来判断和对应的哪个点发生连接

思路是嵌套循环+随机数+if条件判断

  1. 第一层循环,每次循环代表一个新生成的点
  2. 第二层循环(内层),每次循环代表判断是否和这个点产生连接

生成一个平均度为2n−12\frac{2n-1}{2}22n−1​的网络,具体代码如下

import numpy as np
nodes_degree = []
N = 1000 # 生成1000个点
link = []
for i in range(N):link.append([])for i in range(N): # i为每一个点,进行连接nodes_degree = [int(np.sum(node))+1 for node in link]p = np.random.randint(np.sum(nodes_degree))degree_control = 0for j, degree in enumerate(nodes_degree):if p < degree_control:link[i].append(j)link[j].append(i)breakelse:degree_control += degree

绘制网络度的分布

import matplotlib.pyplot as plt
mxdeg=0
for i in range(N):mxdeg=max(mxdeg,link[i].__len__())
mxdeg+=1deg=[0]*mxdeg
for i in range(N):deg[link[i].__len__()]+=1
for i in range(mxdeg):deg[i]/=1.0*N
plt.plot(np.linspace(0,mxdeg-1,mxdeg),deg)
plt.xlabel('degree')
plt.ylabel('P')
plt.title('The probability distribution of degree')
plt.show()

度的分布:

python 构建建模无标度网络相关推荐

  1. 常见网络模型——BA无标度网络(使用轮盘赌算法)(python)

    之前记录了一下,常见的四种网络模型--ER.BA.WS.规则图,以及如何使用python实现,具体请移步: https://blog.csdn.net/un357951/article/details ...

  2. 复杂性思维第二版 四、无标度网络

    四.无标度网络 原文:Chapter 4 Scale-free networks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 在本章中,我们将处理来自在线社交网络的数据,并使 ...

  3. 级联失效matlab,加权无标度网络的级联失效模型

    社交网.交通网.通信网等领域均呈现无标度特性[, 是复杂网络中常见的一种现象, 不同网络中的节点和边都承载着不同形式的负载, 且负载的承受能力是有限的.加权无标度网络是指节点和边根据权值构建成的网络[ ...

  4. 网络模型 - 随机网络,无标度网络,分层网络

    转自: http://www.flickr.com/photos/caseorganic/4510691991/in/set-72157624621620243 小图 大图 Network Model ...

  5. networkx 标签_networkx绘制BA无标度网络

    step1: 导入networkx复杂网络库.matplotlib.pyplot.pandas import networkx as nximport matplotlib.pyplot as plt ...

  6. 从零认识 无标度网络

    喜欢的话请关注我们的微信公众号~<你好世界炼丹师>. 公众号主要讲统计学,数据科学,机器学习,深度学习,以及一些参加Kaggle竞赛的经验. 公众号内容建议作为课后的一些相关知识的补充,饭 ...

  7. 无标度网络/幂律分布、小世界网络

    无标度网络.幂律分布这两个概念都是指复杂网络中的度 分布不均匀 通俗点说就是80/20原则,枢纽节点很少,但是却连接着大量的节点,而大量的非枢纽节点却只有不多的几个连接. 小世界网络: 虽然有50个节 ...

  8. 复杂网络之无标度网络与小世界网络生成程序

    近日需要用到无标度网络与小世界网络,早上用matlab写了这两种网络的matlab程序,放在这,有用者可以拿去用,请自己验证正确性后使用. 共有三个文件,swnet.m 是sw小世界模型        ...

  9. Anylogic建立无标度网络

    创建Agent 将左边面板中的智能体拖入界面中,选择智能体群,动画为无,数量为100,点击"完成" Main界面设置 在Main中随意点击空白处,出现右侧"属性" ...

  10. networkx学习(五)无标度网络

    networkx学习(五)无标度网络 参考:参考来源,<巴拉巴西网络科学> 无标度网络: 对于随机网络和规则网络,度分布区间非常狭窄,大多数节点都集中在节点度均值< k >的附 ...

最新文章

  1. 100行代码,使用 Pygame 制作一个贪吃蛇小游戏!
  2. java get不支持_java – HTTP Get:只下载头文件? (HEAD不支持)
  3. 机器学习过拟合---范数
  4. ps高级磨皮的7个步骤
  5. ++i 和 i++的实现
  6. python中re.split_Python: str.split()和re.split()的区别
  7. Spring中的Bean配置、属性配置、装配内容详细叙述
  8. 如何借助log4j把日志写入数据库中
  9. linux安装oracle11g视频,Linux安装oracle11g详细步骤及问题汇总
  10. 计算机房采用c02采灭火,[灭火器使用.doc
  11. 2台电脑共享一套键鼠方法
  12. es7.3.2中文+拼音分词 排除同音字
  13. Python爬虫入门教程 12-100 半次元COS图爬取
  14. php调用pdf虚拟打印机,window_在Win7系统中怎么安装PDF彩色虚拟打印机?,前面说过,Word不能直接将文档 - phpStudy...
  15. 华为路由器和交换机在BootROM下清除Console口密码
  16. 阿里程序员,过完年第一天就要被劝退!让人感觉现实是如此残酷!
  17. cfd计算机辅助技术,CFD仿真在生物医学领域拯救生命
  18. UML正日薄西山的13个理由
  19. python中cat,stac,transpose,permute,squeeze区别用法
  20. java用友eai_用友EAI接口开发的问题

热门文章

  1. Word字体样式及样式库的使用
  2. HTML的字体10种酷炫效果
  3. 敏捷工具:用户故事地图梳理需求全景
  4. a59s刷机包卡刷 oppo_OPPO A59S刷机包
  5. 【ctf-3】数论基础+Crypto初步
  6. MXY-单点登陆系统
  7. 【AI PC端算法优化】七,RGB和YUV图像颜色空间互转SSE优化
  8. eova1.4版本下拉框没有滚动条
  9. wps2019政府专版 无广告
  10. nvme固件升级 linux,Intel NVME SSD 固件升级步骤