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 模拟实现生产者消费者模式的实例
Aug 10 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
Python三种遍历文件目录的方法实例代码
Jan 19 Python
python机器学习理论与实战(四)逻辑回归
Jan 19 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
python实现身份证实名认证的方法实例
Nov 08 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
python实现连连看游戏
Feb 14 Python
python怎么提高计算速度
Jun 11 Python
python中requests库+xpath+lxml简单使用
Apr 29 Python
python实现股票历史数据可视化分析案例
Jun 10 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中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
Javascript - HTML的request类
2006/07/15 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
js实现选项卡效果
2020/03/07 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
钳工实习自我鉴定
2013/09/19 职场文书
英语系本科生求职信范文
2013/12/18 职场文书
运动会广播稿500字
2014/01/28 职场文书
临床护士自荐信
2014/01/31 职场文书
服装发布会策划方案
2014/05/22 职场文书
2015年宣传工作总结
2015/04/08 职场文书
2015年电教工作总结
2015/05/26 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
退伍军人感言
2015/08/01 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
浅谈Python基础之列表那些事儿
2021/05/11 Python