python实现小世界网络生成


Posted in Python onNovember 21, 2019

没有使用igraph库哦 因为我还没学

小世界网络简介:

1998年, Watts和Strogatz 提出了小世界网络这一概念,并建立了WS模型。实证结果表明,大多数的真实网络都具有小世界特性(较小的最短路径)和聚类特性(较大的聚类系数)。传统的规则最近邻耦合网络具有高聚类的特性,但并不具有小世界特性;而随机网络具有小世界特性但却没有高聚类特性。因此这两种传统的网络模型都不能很好的来表示实际的真实网络。Watts和Strogatz建立的小世界网络模型就介于这两种网络之间,同时具有小世界特性和聚类特性,可以很好的来表示真实网络。

小世界模型构造算法

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

2、随机化重连:以概率p随机地从新连接网络中的每个边,即将边的一个端点保持不变,而另一个端点取为网络中随机选择的一个节点。其中规定,任意两个不同的节点之间至多只能有一条边,并且每一个节点都不能有边与自身相连。

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

效果如下:

python实现小世界网络生成

代码如下:

import matplotlib.pyplot as plt
import random as rd
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置
plt.rcParams['axes.unicode_minus']=False
#小世界项目
def dian(N,K,P):
  global ls
  tim=[]
  for i in range(N):
    for j in range(1,K+1):
      ls[i]=ls.get(i,set())
      ls[i].add((i+j)%N)
      ls[i].add((i-j)%N)
      ls[(i-j)%N]=ls.get((i-j)%N,set())
      ls[(i-j)%N].add(i)
      ls[(i+j)%N]=ls.get((i+j)%N,set())
      ls[(i+j)%N].add(i)
  for i in range(N):
    for j in list(ls[i]):
      if rd.random()<=P:
        aa=ls[i].pop()
        a=set(range(N))
        a.discard(i)
        a=a^ls[i]
        for i in range(rd.randint(1,len(a)-1)):
          aa=a.pop()
        ls[aa].discard(i)
        b=a.pop()
        ls[i].add(b)
        ls[b].add(i)
  for i in range(N):
    tim.append(len(ls[i])*40-N)
  new=[]
  for i in range(len(ls)):
    l=[]
    l.append(i)
    l+=list(ls[i])
    new.append(l)
  return new,tim
def hua(L,S):
  x=np.linspace(0,100,len(L))
  y=np.sqrt(np.abs(10000-(x-50)**2))
  plt.scatter(x,y,s=S,edgecolor='k',alpha=0.7)
  for i in range(len(L)):
    plt.text(x[i]-0.13,y[i]-0.015,str(S[i]//40+1))
    for j in L[i]:
      plt.plot(list((x[i],x[j])),list((y[i],y[j]))\
           ,color='gray',linewidth=1,alpha=0.7)
  plt.title('小世界网络初步')
  plt.xticks([])
  plt.yticks([])
  plt.axis('off')
  plt.savefig('niu.png')
ls={}
l,k=dian(20,3,0.5) #不要超过40哦~
hua(l,k)

以上这篇python实现小世界网络生成就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
Python实现带百分比的进度条
Jun 28 Python
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
python pandas dataframe 行列选择,切片操作方法
Apr 10 Python
Python批量生成幻影坦克图片实例代码
Jun 04 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
Python编写一个验证码图片数据标注GUI程序附源码
Dec 09 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 27 Python
使用Python的networkx绘制精美网络图教程
Nov 21 #Python
利用Python绘制Jazz网络图的例子
Nov 21 #Python
Python TCP通信客户端服务端代码实例
Nov 21 #Python
python绘制随机网络图形示例
Nov 21 #Python
python绘制BA无标度网络示例代码
Nov 21 #Python
Python之指数与E记法的区别详解
Nov 21 #Python
python构建指数平滑预测模型示例
Nov 21 #Python
You might like
索尼ICF-SW100收音机评测
2021/03/02 无线电
php读取csv实现csv文件下载功能
2013/12/18 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
php实现小程序支付完整版
2018/10/09 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python计算对角线有理函数插值的方法
2015/05/07 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
python tkinter组件摆放方式详解
2019/09/16 Python
python 读取数据库并绘图的实例
2019/12/03 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
办公室前台的岗位职责
2013/12/20 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
入党积极分子自我鉴定范文
2014/03/25 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
母亲节感言
2015/08/03 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python