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中的匿名函数使用简介
Apr 27 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
python实现多层感知器MLP(基于双月数据集)
Jan 18 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
python应用文件读取与登录注册功能
Sep 23 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 Python
Python计算公交发车时间的完整代码
Feb 12 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
Mar 08 Python
Python restful框架接口开发实现
Apr 13 Python
Python实现封装打包自己写的代码,被python import
Jul 12 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 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
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
javascript的函数作用域
2014/11/12 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
python 数据加密代码
2008/12/24 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
python中wheel的用法整理
2020/06/15 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
python打包多类型文件的操作方法
2020/09/21 Python
python list的index()和find()的实现
2020/11/16 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
大学生个人自荐信
2014/02/24 职场文书
说明书格式及范文
2014/05/07 职场文书
大学军训决心书
2015/02/05 职场文书
总经理检讨书范文
2015/02/16 职场文书
2015年度物流工作总结
2015/04/30 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
婚育证明样本
2015/06/16 职场文书
校运会通讯稿
2015/07/18 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书