当前位置: 首页 > news >正文

复杂网络(四)

一、规则网络

  1. 孤立节点网络
  2. 全局耦合网络(又称完全网络)
  3. 星型网络
  4. 一维环
  5. 二维晶格

编程实践:

import networkx as nx
import matplotlib.pyplot as pltn = 10
#创建孤立节点图
G1 = nx.Graph()
G1.add_nodes_from(list(range(n)))
plt.figure(figsize = (4,4))
nx.draw(G1, pos = nx.circular_layout(G1),with_labels = True, node_size = 500, node_color = 'r', font_size = 10, font_weight = 'bold')
plt.show()#创建完全图
G2 = nx.complete_graph(n)
plt.figure(figsize = (4,4))
nx.draw(G2, pos = nx.circular_layout(G2),with_labels = True, node_size = 500, node_color = 'r', font_size = 10, font_weight = 'bold')
plt.show()#创建一维环状图
G3 = nx.cycle_graph(n)
plt.figure(figsize = (4,4))
nx.draw(G3,pos = nx.circular_layout(G3),node_size = 500, node_color = 'r', font_size = 10, font_weight = 'bold')
plt.show()#创建K近邻(耦合)图
G4 = nx.watts_strogatz_graph(n,4,0)
plt.figure(figsize = (4,4))
nx.draw(G4, pos = nx.circular_layout(G4),with_labels = True, node_size = 500, node_color = 'r', font_size = 10, font_weight = 'bold')
plt.show()#二维方格图
G5 = nx.grid_graph((6,6),periodic=False)
plt.figure(figsize = (4,4))
nx.draw(G5, with_labels = False, node_size = 500, node_color = 'r', font_size = 10, font_weight = 'bold')
plt.show()

二、ER随机网络的生成算法

(1)G(N,L)模型:N个节点通过L条随机放置的链接彼此相连

(2)G(N,p)模型:N个节点中,每对节点之间以概率p彼此相连

G(N,p)步骤如下:

(1)从N个孤立节点开始

(2)选择一对节点,产生一个0到1之间的随机数。如果该随机数小于p,在这对节点之间放置一条链接;否则,该节点对保持不连接。

(3)对所有N(N - 1)/2个节点对,重复步骤。

编程实践:

import random
import itertoolsimport matplotlib.pyplot as plt
import networkx as nxdef GNL(N,L):G = nx.Graph()G.add_nodes_from(range(N))nlist = list(G)edge_count = 0while edge_count < L:u = random.choice(nlist)v = random.choice(nlist)if u == v or G.has_edge(u,v):continueelse:G.add_edge(u,v)edge_count += 1return G
# G = GNL(100,200)def GNP(N,p):edges = itertools.combinations(range(N), 2)G = nx.Graph()G.add_nodes_from(range(N))nlist = list(G)for u,v in itertools.combinations(nlist,2):if random.random() < p:G.add_edge(u,v)return G
# G = GNP(100,0.2)
#可以直接调用库函数来生成这种两种网络
n,m,p = 10,20,0.2
g1 = nx.gnm_random_graph(n,m)
g2 = nx.erdos_renyi_graph(n,p)plt.figure(figsize = (8,4))
nx.draw(g1, pos = nx.circular_layout(g1),with_labels = False, node_size = 500, node_color = 'r', font_size = 10, font_weight = 'bold')
plt.title("G(N,L)")
plt.show()nx.draw(g2, pos = nx.circular_layout(g2),with_labels = False, node_size = 500, node_color = 'r', font_size = 10, font_weight = 'bold')
plt.title("G(N,p)")
plt.show()

三、ER随机网络结构特征

期望连边数,在连接概率为p的ER随机图中,可知其平均度为 pN

ER随机网络的度分布:规模小服从二项分布,规模大时服从泊松分布

编程实践:

import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
import math
from scipy import stats#定义求度分布函数
def get_pdf(G,kmin,kmax):k = list(range(kmin,kmax + 1))N = len(G.nodes())Pk = []for ki in k:c = 0for i in G.nodes():if G.degree(i) == ki:c += 1Pk.append(c/N)return k,Pksamples = 100 #统计平均
N = [100,1000]kmin,kmax,avk = 20,80,50
s1 = np.zeros(kmax - kmin + 1)
s2 = np.zeros(kmax - kmin + 1)
for i in range(samples):ER1 = nx.gnp_random_graph(N[0],avk/N[0])x1,y1 = get_pdf(ER1,kmin,kmax)ER2 = nx.gnp_random_graph(N[1],avk/N[1])x2,y2 = get_pdf(ER2,kmin,kmax)s1 += np.array(y1)s2 += np.array(y2)#计算二项分布理论值
n = 100
p = 0.5
k = np.arange(20,81)
pk_b = stats.binom.pmf(k,n,p)#计算泊松分布理论值
pk_p = [np.exp(-avk)*(avk**ki)/math.factorial(ki) for ki in range(kmin,kmax + 1)]plt.figure(figsize=(6,4))
plt.plot(x1, s1/samples, 'ro', label='$N = 100$')
plt.plot(x2, s2/samples, 'bs', label='$N = 1000$')
plt.plot(x2, pk_b, 'g-', label='binomial')
plt.plot(x2, pk_p, 'r-', label='poisson')
plt.legend(loc=0)
plt.xlabel("$k$")
plt.ylabel("$p_k$")
plt.xlim([20,80])
plt.show()

相关文章:

复杂网络(四)

一、规则网络 孤立节点网络全局耦合网络&#xff08;又称完全网络&#xff09;星型网络一维环二维晶格 编程实践&#xff1a; import networkx as nx import matplotlib.pyplot as pltn 10 #创建孤立节点图 G1 nx.Graph() G1.add_nodes_from(list(range(n))) plt.figure(f…...

用MATLAB符号工具建立机器人的动力学模型

目录 介绍代码功能演示拉格朗日方法回顾求解符号表达式数值求解 介绍 开发机器人过程中经常需要用牛顿-拉格朗日法建立机器人的动力学模型&#xff0c;表示为二阶微分方程组。本文以一个二杆系统为例&#xff0c;介绍如何用MATLAB符号工具得到微分方程表达式&#xff0c;只需要…...

SQL优化与性能——数据库设计优化

数据库设计优化是提高数据库性能、确保数据一致性和支持业务增长的关键环节。无论是大型企业应用还是小型项目&#xff0c;合理的数据库设计都能够显著提升系统性能、减少冗余数据、优化查询响应时间&#xff0c;并降低维护成本。本章将深入探讨数据库设计中的几个关键技术要点…...

FPGA存在的意义:为什么adc连续采样需要fpga来做,而不会直接用iic来实现

FPGA存在的意义&#xff1a;为什么adc连续采样需要fpga来做&#xff0c;而不会直接用iic来实现 原因ADS111x连续采样实现连续采样功能说明iic读取adc的数据速率 VS adc连续采样的速率adc连续采样的速率iic读取adc的数据速率结论分析 FPGA读取adc数据问题一&#xff1a;读取adc数…...

我们来学mysql -- 事务之概念(原理篇)

事务的概念 题记一个例子一致性隔离性原子性持久性 题记 在漫长的编程岁月中&#xff0c;存在一如既往地贯穿着工作&#xff0c;面试的概念这类知识点&#xff0c;事不关己当然高高挂起&#xff0c;精准踩坑时那心情也的却是日了&#x1f436;请原谅我的粗俗&#xff0c;遇到B…...

基于特征子空间的高维异常检测:一种高效且可解释的方法

本文将重点探讨一种替代传统单一检测器的方法&#xff1a;不是采用单一检测器分析数据集的所有特征&#xff0c;而是构建多个专注于特征子集(即子空间)的检测器系统。 在表格数据的异常检测实践中&#xff0c;我们的目标是识别数据中最为异常的记录&#xff0c;这种异常性可以…...

看不见的彼方:交换空间——小菜一碟

有个蓝色的链接&#xff0c;先去看看两年前的题目的write up &#xff08;https://github.com/USTC-Hackergame/hackergame2022-writeups/blob/master/official/%E7%9C%8B%E4%B8%8D%E8%A7%81%E7%9A%84%E5%BD%BC%E6%96%B9/README.md&#xff09; 从别人的write up中了解到&…...

YOLO模型训练后的best.pt和last.pt区别

在选择YOLO模型训练后的权重文件best.pt和last.pt时&#xff0c;主要取决于具体的应用场景‌&#xff1a;‌12 ‌best.pt‌&#xff1a;这个文件保存的是在训练过程中表现最好的模型权重。通常用于推理和部署阶段&#xff0c;因为它包含了在验证集上表现最好的模型权重&#x…...

Pareidoscope - 语言结构关联工具

文章目录 关于 Pareidoscope安装使用方法输入格式语料库查询 将语料库转换为 SQLite3 数据库两种语言结构之间的关联简单词素分析关联共现和伴随词素分析相关的更大结构可视化关联结构 关于 Pareidoscope Pareidoscope 是一组 用于确定任意语言结构之间 关联的工具&#xff0c…...

GPT(Generative Pre-trained Transformer) 和 Transformer的比较

GPT&#xff08;Generative Pre-trained Transformer&#xff09; 和 Transformer 的比较 flyfish 1. Transformer 是一种模型架构 Transformer 是一种通用的神经网络架构&#xff0c;由 Vaswani 等人在论文 “Attention Is All You Need”&#xff08;2017&#xff09;中提…...

软件无线电(SDR)的架构及相关术语

今天简要介绍实现无线电系统调制和解调的主要方法&#xff0c;这在软件定义无线电(SDR)的背景下很重要。 外差和超外差 无线电发射机有两种主要架构——一种是从基带频率直接调制到射频频率&#xff08;称为外差&#xff09;&#xff0c;而第二种超外差是通过两个调制阶段来实…...

Python将Excel文件转换为JSON文件

工作过程中,需要从 Excel 文件中读取数据,然后交给 Python 程序处理数据,中间需要把 Excel 文件读取出来转为 json 格式,再进行下一步数据处理。 这里我们使用pandas库,这是一个强大的数据分析工具,能够方便地读取和处理各种数据格式。需要注意的是还需要引入openpyxl库,…...

排序算法之选择排序篇

思想&#xff1a; 每次从未排序的部分找出最小的元素&#xff0c;将其放到已排序部分的末尾 从数据结构中找到最小值&#xff0c;放到第一位&#xff0c;放到最前面&#xff0c;之后再从剩下的元素中找出第二小的值放到第二位&#xff0c;以此类推。 实现思路&#xff1a; 遍…...

sizeof和strlen区分,(好多例子)

sizeof算字节大小 带\0 strlen算字符串长度 \0之前...

A050-基于spring boot物流管理系统设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…...

[自然语言处理] NLP-RNN及其变体-干货

一、认识RNN模型 1 什么是RNN模型 RNN(Recurrent Neural Network), 中文称作循环神经网络, 它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征, 一般也是以序列形式进行输出. 一般单层神经网络结构: RNN单层网络结构: 以时间步对RNN进行展开后的单层…...

Elasticsearch ILM 索引生命周期管理讲解与实战

ES ILM 索引生命周期管理讲解与实战 Elasticsearch ILM索引生命周期管理:深度解析与实战演练1. 引言1.1 背景介绍1.2 研究意义2. ILM核心概念2.1 ILM的四个阶段2.1.1 Hot阶段2.1.2 Warm阶段2.1.3 Cold阶段2.1.4 Delete阶段3. ILM实战指南3.1 定义ILM策略3.1.1 创建ILM策略3.1.…...

重塑视频新语言,让每一帧都焕发新生——Video-Retalking,开启数字人沉浸式交流新纪元!

模型简介 Video-Retalking 模型是一种基于深度学习的视频再谈话技术&#xff0c;它通过分析视频中的音频和图像信息&#xff0c;实现视频角色口型、表情乃至肢体动作的精准控制与合成。这一技术的实现依赖于强大的技术架构和核心算法&#xff0c;特别是生成对抗网络&#xff0…...

联想Lenovo SR650服务器硬件监控指标解读

随着企业IT架构的复杂性和业务需求的增长&#xff0c;服务器的稳定运行变得至关重要。联想Lenovo SR650服务器以其高性能和稳定性&#xff0c;在各类应用场景中发挥着关键作用。为了保障服务器的稳定运行&#xff0c;监控易作为一款专业的IT基础设施监控软件&#xff0c;为联想…...

二十一、QT C++

1.1QT介绍 1.1.1 QT简介 Qt 是一个跨平台的应用程序和用户界面框架&#xff0c;用于开发图形用户界面&#xff08;GUI&#xff09;应用程序以及命令行工具。它最初由挪威的 Trolltech &#xff08;奇趣科技&#xff09;公司开发&#xff0c;现在由 Qt Company 维护&#xff…...

抖音音乐下载终极指南:3步解决批量音频提取难题

抖音音乐下载终极指南&#xff1a;3步解决批量音频提取难题 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 你是否曾在抖音上听到令人心动的背景音乐&#xff0c;却苦于无法单独保存&#xff1f;或是需要收集…...

Git 代码库中找回丢失文件的实用指南

1. 为什么Git能帮你找回丢失的代码&#xff1f; 作为开发者&#xff0c;你一定遇到过这样的场景&#xff1a;不小心执行了rm -rf删错了文件&#xff0c;或者手滑把整个功能模块给覆盖了。这时候千万别慌&#xff0c;Git就像个贴心的时光机&#xff0c;能帮你找回99%的丢失文件。…...

FGF-21蛋白的代谢调控机制与临床转化前景

一、引言成纤维细胞生长因子21&#xff08;FGF-21&#xff09;是成纤维细胞生长因子家族中的一种内分泌代谢调节因子。自其被发现以来&#xff0c;该蛋白因其在糖脂代谢、能量稳态调控及胰岛素敏感性改善等方面的独特作用&#xff0c;逐渐成为代谢性疾病研究领域的前沿热点。与…...

League-Toolkit:英雄联盟智能助手的全方位解决方案

League-Toolkit&#xff1a;英雄联盟智能助手的全方位解决方案 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在快节奏的英雄联盟…...

IT 流程越来越完整,但管理反而变得更难了

在很多企业的 IT 管理过程中&#xff0c;一个非常明显的趋势是&#xff1a;流程在不断增加。 从最初的简单问题处理&#xff0c;到后来的事件管理、问题管理、变更管理&#xff0c;再到审批流程、发布流程&#xff0c;各类流程逐渐被建立起来。从管理角度看&#xff0c;这是一种…...

ChatGPT订阅接口开发实战:从零搭建到生产环境部署

ChatGPT订阅接口开发实战&#xff1a;从零搭建到生产环境部署 最近在做一个需要集成智能对话能力的项目&#xff0c;自然而然地想到了ChatGPT的订阅接口。本以为调用个API是分分钟的事&#xff0c;结果一脚踩进了坑里。403鉴权失败、消息顺序错乱、突如其来的配额限制……这些…...

Linux内核观测与跟踪的利器BPF环境测试

内核观测工具BPF实例BPF介绍BPF实例使用 BCC 工具集&#xff08;最简单&#xff09;使用 libbpf BPF 骨架&#xff08;更接近生产环境&#xff09;使用 bpftool 直接加载&#xff08;适合调试&#xff09;总结BPF介绍 BPF 最初诞生于 1992 年&#xff0c;是一种用于网络数据包…...

告别Joplin!用MarkDownload+Obsidian打造你的网页剪藏工作流(附完整配置JSON)

从Joplin到Obsidian&#xff1a;用MarkDownload构建高效网页剪藏系统 每次在网上冲浪时遇到值得保存的内容&#xff0c;你是否也经历过这样的困境&#xff1f;收藏夹里堆满了再也找不到的链接&#xff0c;或是剪藏工具中杂乱无章的片段。作为一个长期依赖Joplin进行知识管理的用…...

如何在3分钟内为Axure RP配置中文界面:终极汉化指南

如何在3分钟内为Axure RP配置中文界面&#xff1a;终极汉化指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包&#xff0c;不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 你是…...

从收音机到Wi-Fi:手把手复现经典小信号调谐放大器实验(附Multisim仿真文件)

从矿石收音机到5G射频前端&#xff1a;调谐放大器技术演进与Multisim仿真实践 上世纪二十年代&#xff0c;当业余无线电爱好者们用矿石和线圈组装出最简单的接收装置时&#xff0c;他们可能不会想到&#xff0c;这种基于LC谐振原理的选频技术会延续百年&#xff0c;成为现代无线…...