Networkx 计算网络效率

news/2024/7/15 17:06:23 标签: 图论, 网络分析, networkx

本人在计算网络效率的时候遇到了一个问题

networkx 提供了最短路径函数shortest_path及shorest_path_length

 我在计算网络效率构造了一个无向图,但是我在计算点与点之间的最短路径长度时总是提示我说点不存在图中,

 

我在上面使用nx.average_shortest_path_length(UG)的时候可以得到网络平均最短路径长度;这个说明我的点都是存在于图中的,但是下面使用shortest_path_length(UG,1,2) 就说我的点不在图中;很是郁闷,如果哪位知道还请赐教,很感谢;下面附上我的网络图;

最终我的网络效率解决方法如下

学过Dijkstra算法的都知道,当我们找u到v之间的最短路径时,实际上同时也找出了u到网络中所有其他节点的最短路径。因此,代码优化如下:

 

            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:  # 如果起终点不同才累加计算效率
                        sumeff += 1 / path[v]
            result = (2 / (N * (N - 1))) * sumeff  # 计算网络剩余效率

至此计算出网络效率


http://www.niftyadmin.cn/n/1721282.html

相关文章

如何搭建一个基于 Egg + Webpack + Vue 的服务端渲染工程项目呢?

如何搭建一个基于 Egg Webpack Vue 的服务端渲染工程项目呢? 项目你可以通过 easywebpack-cli 直接初始化即可完成或者clone egg-vue-webpack-boilerplate。下面说明一下从零如何搭建一个Egg Webpack Vue 的服务端渲染工程项目。 通过 egg-init 初始化 egg 项目…

ffmpeg linux安装_Linux下如何用nginx+ffmpeg搭建流媒体服务器

安装ffmpeg安装过程略安装完成后,检查是否安装成功。比如我这里采用向pili推流的方式,将本地的一个mp4视频推流到七牛pili。ffmpeg -re -i /tmp/ffmpeg_test.mp4 -vcodec copy -acodec copy -f flv "rtmp://pili-publish.qingkang.echohu.top/qingk…

Oracle数据库 ora-03114:未连接数据库

Ora-03114:未连接数据库 现象: 在使用pl/sql developer编译时总是报 Ora-03114:未连接数据库。 解决方法: 去掉cdc功能。 故障原因:PLSQLDev.exe程序和Oracle数据库的CDC功能产生冲突;使用TOAD,OEM等其他客户端工具…

IDEA出现Push to origin/master was rejected

出现这种情况,我的是因为: 远程仓库里面不是空的,有一个README.txt文件,而我的本地是没有的,这样就不能push上去。 一种解决办法是,现在README.txt拉下来,再push,就可以了 还有一种就…

传统行业it部门累不累_「运维探讨」RPA落地实践,提升IT运维工作效能

RPA介绍Gartner定义RPARPA( Robotic Process Automation,机器人流程自动化)是一种生产力工具,允许用户配置一个或多个脚本(或称为“机器人”),可以模拟特定的操作或整个业务或IT流程中的步骤,包括操作数据、在不同应用程序之间传递…

分布式文件系统比较

一、概述 普通存储方案:Rsync、DAS(IDE/SATA/SAS/SCSI等块)、NAS(NFS、CIFS、SAMBA等文件系统)、SAN(FibreChannel, iSCSI, FoE存储网络块),Openfiler、FreeNas(ZFS快照复制)由于生产环境中往往由于对存储数据量很大,而SAN存储价格又比较昂贵…

Oracle 数据库使用impdp 导入数据 覆盖,追加等操作

oracle10g之后impdp的table_exists_action参数 impdp username/password table_exists_actiontruncate directoryDATA_PUMP_DIR dumpfileexpdpfilename.dmp logfileimplog.log table_exists_action: skip 是如果已存在表,则跳过并处理下一个对象&…

2019.4.23-2019.4.25 当当登录页面铺设练习(未修改输入框响应)

效果图: 代码: 链接:https://pan.baidu.com/s/1fKhdjXyFukoFcvMP9VhTXQ 提取码:rs2g 图片包: 链接:https://pan.baidu.com/s/1PCJpD_xRrNv_n2uZafQGEw 提取码:5gpv 转载于:https://www.cnblogs.com/lzb1234/p/10775844.html