遍历所有点的最短路径python_Python:如何优化所有可能的最短路径的计数?
在3x3网络中,我希望能够确定任意两个节点之间的所有最短路径。然后,对于网络中的每个节点,我要计算通过一个特定节点的最短路径数。在
这需要使用nx.all_shortest_paths(G,source,target)函数,该函数返回一个generator。这与使用nx.all_pairs_shortest_path(G)不同,正如建议的here。区别在于,在前一种情况下,该函数计算任意两个节点之间的所有最短路径,而在后一种情况下,它只计算同一对节点之间的一条最短路径。在
考虑到我需要考虑所有最短路径,我提出了以下脚本。这就是我如何创建我正在使用的网络:import networkx as nx
N=3
G=nx.grid_2d_graph(N,N)
pos = dict( (n, n) for n in G.nodes() )
labels = dict( ((i, j), i + (N-1-j) * N ) for i, j in G.nodes() )
nx.relabel_nodes(G,labels,False)
inds=labels.keys()
vals=labels.values()
inds.sort()
vals.sort()
pos2=dict(zip(vals,inds))
nx.draw_networkx(G, pos=pos2, with_labels=False, node_size = 15)
这就是我如何打印任意两个节点之间的所有最短路径:
^{pr2}$
结果是从节点x到节点y的路径,其中只包括沿途的节点。我得到的是:From node 0 to 2 #Only one path exists
[0, 1, 2] #Node 1 is passed through while going from node 0 to node 2
------
From node 0 to 4 #Two paths exist
[0, 1, 4] #Node 1 is passed through while going from node 0 to node 4
[0, 3, 4] #Node 3 is passed through while going from node 0 to node 4
------
...continues until all pairs of nodes are covered...
我的问题是:如何修改最后一个代码块,以确保我知道总共有多少条最短路径通过每个节点?根据我提供的摘录结果,节点1通过2次,节点3通过1次(不包括起始节点和结束节点)。这个计算需要进行到底,以计算出通过每个节点的最终路径数。在
遍历所有点的最短路径python_Python:如何优化所有可能的最短路径的计数?相关推荐
- 网状结构(图)图的存储(邻接矩阵、邻接表)、图的遍历(深度DFS、广度BFS)、图的最短路径
图 多对多关系 是一种网状数据结构,图是由非空的顶点集合和一个描述顶点之间关系的集合组成 其定义 Graph = (V, E) V={x | x ∈某个数据对象} E = {<u, v> ...
- JAVA编程求单源最短路径_【算法】单源最短路径——dijkstra算法
一,概念 单源最短路径 给定一个带权有向图G=(V,E),其中每条边的权是一个实数.另外,还给定V中的一个顶点,称为源.要计算从源到其他所有各顶点的最短路径长度.这里的长度就是指路上各边权之和.这个问 ...
- Algorithm:C++语言实现之图论算法相关(图搜索广度优先BFS、深度优先DFS,最短路径SPF、带负权的最短路径Bellman-ford、拓扑排序)
Algorithm:C++语言实现之图论算法相关(图搜索广度优先BFS.深度优先DFS,最短路径SPF.带负权的最短路径Bellman-ford.拓扑排序) 目录 一.图的搜索 1.BFS (Brea ...
- 最短路径 floyd java_java实现Floyd算法求最短路径
关于无向图的最短路径问题: 这个程序输出:最短路径矩阵 例如:W[0][5]=9 代表vo->v5的最短路径为9 W=: 0 1 3 7 4 9 1 0 2 6 3 8 3 2 0 4 1 6 ...
- 【算法学习笔记】 图(四)用优先级队列优化Dijkstra算法求最短路径(邻接矩阵存储)
优先级队列:priority_queue,经过实验之后发现默认是首先输出最大的元素,现在想让队头为最小的元素,需要进行运算符重载 此算法寻找源点到与它连接的所有顶点的最短路径 运算符重载: struc ...
- 遍历字符串的每个字符python_Python之字符串的遍历的4种方式
python的字符串遍历有4种方式: 1. 下标法 2. for in 3. iter内置函数 4. enumerate 其中下标法和enumerate适合需要判断后续字符的场景,比如循环到下标ind ...
- P4619 [SDOI2018]旧试题(莫比乌斯反演,建图优化三重枚举,三元环计数,神仙好题,超级清晰易懂)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4619 [SDOI2018]旧试题(莫比乌斯反演,三元环计数) Problem 计算: ∑i=1A ...
- linux选择最短路径sdn,基于网络流量的SDN最短路径转发应用
原标题:基于网络流量的SDN最短路径转发应用 网络的转发是通信的基本功能,其完成信息在网络中传递,实现有序的数据交换.通过SDN控制器的集中控制,可以轻松实现基础的转发算法有二层MAC学习转发和基于跳 ...
- CF1621G Weighted Increasing Subsequences(离散化+树状数组优化dp+栈维护后缀最大值+计数)
problem luogu-link solution 显然单独考虑每个 iii 的贡献,即被多少个合法上升子序列包含. 令 x=max{j∣j>i∧aj>ai}x=\max\{j\ | ...
最新文章
- android UI进阶之实现listview中checkbox的多选与记录
- 自动化测试基础篇--Selenium浏览器操作
- echart 导出保存图片
- c语言n个测试用例0为结束,编写测试用例 - osc_4l0h8in9的个人空间 - OSCHINA - 中文开源技术交流社区...
- 逸管家:别只共享单车,互联网时代还可以共享人才
- 【tf.keras.Model】构建模型小结(部分问题未解决)
- 了解PS、学习使用html语义化标签和CSS术语
- springboot的配置文件加载的顺序,以及在不同位置配置下,加载的顺序
- 我的第一篇cnds文章
- html 如何在按钮中加字,html button标签 语法
- Java中判断String不为空的问题性能比较
- SSD目标检测(Single Shot MultiBox Detector)(一)
- Kindle——电子书格式转换(二)
- php对接抖音小程序担保支付/头条小程序担保支付
- linux marvell 网卡驱动,linux下安装Marvell Yukon网卡驱动
- Android 与Js通信报Java Exception was raised during method Invocation错误,引发的惨案
- 扎堆涌入“慢病管理”赛区,互联网医疗们看见了怎样的未来?
- mysql 距离计算排序
- CentOS 7 常用软件安装汇总
- Vue3分割线(Divider)
热门文章
- cocos2dx遇到的坑2
- 如何减少silverlight XAP包的尺寸
- Java 并发之 FutureTask 的基本使用
- 分享一篇SCCM软件更新的故障排除
- 桌面重置,所有的东西都消失了怎么办?
- SPHINX安装步骤
- 8086汇编语言实现8253计时器对时且实时定点显示时间(全注释)
- new hashmap 初始大小_你们要的HashMap工作原理!它来了!!!
- 2021.01.04 第 1 个工作日反思
- 安装了silverlight还是提示_苹果手机的微信提示音也能改,公司小姐姐都来向我请教...