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 相关文章推荐
在Mac OS上搭建Python的开发环境
Dec 24 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
解决Python requests库编码 socks5代理的问题
May 07 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
python如何变换环境
Jul 21 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 Python
利用python查看数组中的所有元素是否相同
Jan 08 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 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
PHP开发框架总结收藏
2008/04/24 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
PHP获取windows登录用户名的方法
2014/06/24 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
深入php内核之php in array
2015/11/10 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
PHP与以太坊交互详解
2018/08/24 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
vue 实现特定条件下绑定事件
2019/11/09 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
2016/11/02 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
Django 拆分model和view的实现方法
2019/08/16 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
函授自我鉴定
2013/11/06 职场文书
高一自我鉴定
2013/12/17 职场文书
地质灾害防治方案
2014/05/14 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
普通党员个人整改措施
2014/10/27 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书