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进阶之尾递归的用法实例
Jan 31 Python
在cmd中运行.py文件: python的操作步骤
May 12 Python
python logging模块的使用总结
Jul 09 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
Oct 30 Python
Pytorch的mean和std调查实例
Jan 02 Python
Python如何进行时间处理
Aug 06 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
python字符串的多行输出的实例详解
Jun 08 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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
建立文件交换功能的脚本(一)
2006/10/09 PHP
php设计模式 Adapter(适配器模式)
2011/06/26 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
php动态函数调用方法
2015/05/21 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
我的Node.js学习之路(一)
2014/07/06 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
2018/09/06 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
Zabbix实现微信报警功能
2016/10/09 Python
浅谈Python NLP入门教程
2017/12/25 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
python实现抽奖小程序
2020/04/15 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
python输出数学符号实例
2020/05/11 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
新品发布会策划方案
2014/06/08 职场文书
升学宴答谢词
2015/01/05 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
24年收藏2000多部退役军用电台
2022/02/18 无线电
Nginx配置之禁止指定IP访问
2022/05/02 Servers