资源简介
建立网络,绘制网络图,计算网络抗毁性指标;
在随机攻击和蓄意攻击下,仿真网络抗毁性指标变化情况。(Establish network, draw network diagram and calculate network invulnerability index; Under random attack and intentional atta
代码片段和文件信息
import networkx as nx
import numpy as np
import random
# 计算全局网络效率
def network_eff(G n):
sum_eff = 0
for u in G.nodes(): # 遍历流量图F的每个点
path = nx.shortest_path_length(G source=u) # 在网络G中计算从u开始到其他所有节点(注意包含自身)的最短路径长度。如果两个点之间没有路径,那path里也不会存储这个目标节点(比前面的代码又省了判断是否has_path的过程)
for v in path.keys(): # path是一个字典,里面存了所有目的地节点到u的最短路径长度
if u != v: # 如果起终点不同才累加计算效率
sum_eff += 1 / path[v]
sum_eff = (1 / (n * (n - 1))) * sum_eff # 计算网络剩余效率
return sum_eff
# 计算最大连通子图节点数
def max_connect_num(G):
largest_components = max(nx.connected_components(G) key=len) # 高效找出最大的联通成分
return len(largest_components)
# 计算两点之间的空间距离
def dis(x1 y1 x2 y2):
dx = x1-x2
dy = y1-y2
d = np.sqrt(dx*dx+dy*dy)
return d
def MaxMinNormalization(xMaxMin):
x = (x - Min) / (Max - Min)
return x
def creategraph(Graph G_node R_com X_axis Y_axis node):
is_connect = False
while not is_connect:
# 产生随机分布的随机点
for i in range(0 G_node):
# 随机分布
node[i][0] = (X_axis[1] - X_axis[0])*random.random()
node[i][1] = (Y_axis[1] - Y_axis[0])*random.random()
# 正态分布
# node[i][0] = random.normalvariate((X_axis[1] + X_axis[0])/2 30) # random.random()
# node[i][1] = random.normalvariate((Y_axis[1] + Y_axis[0])/2 30) # random.random()
Graph.add_node(i+1)
# 建立网络中的连边
for i in range(0 G_node):
for j in range(0 G_node):
if i != j and dis(node[i][0] node[i][1] node[j][0] node[j][1]) <= R_com:
Graph.add_edge(i+1 j+1)
if max_connect_num(Graph) == G_node:
is_connect = True
return Graph
# 求图中最大节点度的序号
def index_max_degree(G G_node):
node_degree_G = np.zeros(G_node) # 图G节点度
for node in G.nodes():
node_degree_G[node-1] = G.degree(node)
node_degree_G_list = node_degree_G.tolist()
num = np.int32(node_degree_G_list.index(max(node_degree_G_list)))
return num+1
# G.add_node(4) # 添加一个节点
# G.add_nodes_from([‘b‘ ‘c‘ ‘d‘ ‘e‘]) #加点集合
# G.add_node(2)
# G.add_nodes_from([3 4 5 6]) # 添加一个节点列表
# G.add_edge(1 3) # 添加边
# G.add_edges_from([(1 3) (3 4) (3 2)]) # 添加多条边
# print(“图中有哪些节点:“ G.nodes())
# print(“图中有哪些边:“ G.edges())
# print(G.neighbors(1))
# print(“节点的度:“ G.degree())
# print(“节点的度中心性:“ nx.degree_centrality(G))
# print(“节点的接近中心性:“ nx.closeness_centrality(G))
# print(“节点的介数中心性:“ nx.betweenness_centrality(G))
# print(“节点的特征向量中心性:“ nx.eigenvector_centrality_numpy(G))
# #開始画各个小图
# plt.subplot(221)
# nx.draw(Gposfont_size=8)
# plt.subplot(222)
# nx.draw(Gposnode_color=‘k‘node_size=0with_labels=False)
# plt.subplot(223)
# nx.draw(Gposnode_color=‘g‘node_size=250with_labels=Falsewidth=6)
# #最后一幅子图转为有向图
# plt.subplot(224)
# H=G.to_directed()
# nx.draw(Hposnode_co
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 294 2020-02-16 16:10 NetAnalyze\.idea\misc.xm
文件 279 2020-02-16 16:07 NetAnalyze\.idea\modules.xm
文件 441 2020-02-16 16:10 NetAnalyze\.idea\NetAnalyze.iml
文件 13463 2020-03-13 10:22 NetAnalyze\.idea\workspace.xm
文件 13081 2020-03-12 19:14 NetAnalyze\G.pdf
文件 13117 2020-03-12 19:15 NetAnalyze\H.pdf
文件 9077 2020-03-01 11:56 NetAnalyze\NetBuild
文件 5501 2020-02-21 10:52 NetAnalyze\netfun.py
文件 14654 2020-03-12 19:15 NetAnalyze\Node Degree Attack-Network Efficiency.pdf
文件 14079 2020-03-12 19:15 NetAnalyze\Node Degree Attack-Number of nodes in MCS.pdf
文件 14653 2020-03-12 19:15 NetAnalyze\Random Attack-Network Efficiency.pdf
文件 14094 2020-03-12 19:15 NetAnalyze\Random Attack-Number of nodes in MCS.pdf
文件 1780 2020-02-21 10:55 NetAnalyze\__pycache__\netfun.cpython-37.pyc
目录 0 2020-03-13 10:22 NetAnalyze\.idea
目录 0 2020-02-21 10:55 NetAnalyze\__pycache__
目录 0 2020-03-01 11:56 NetAnalyze
----------- --------- ---------- ----- ----
114513 16
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论