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的Scrapy爬虫框架简单学习笔记
Jan 20 Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 Python
python生成二维码的实例详解
Oct 29 Python
python启动应用程序和终止应用程序的方法
Jun 28 Python
python opencv 简单阈值算法的实现
Aug 04 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
解决pycharm 安装numpy失败的问题
Dec 05 Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
TensorFlow实现自定义Op方式
Feb 04 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 Python
Python虚拟环境库virtualenvwrapper安装及使用
Jun 17 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
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
php获取表单中多个同名input元素的值
2014/03/20 PHP
php的memcache类分享(memcache队列)
2014/03/26 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
python next()和iter()函数原理解析
2020/02/07 Python
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
搞笑婚礼主持词
2014/03/13 职场文书
管理建议书范文
2014/05/13 职场文书
先进个人申报材料
2014/12/30 职场文书