NetworkX 非对称权重

普萨格雷拉

我使用 networkX 计算端点之间的所有最短路径。

在像 graph1 这样的示例拓扑中,其中 R1 <-> R2 之间的权重不对称,我希望只看到一条从 R1 到 R3 的最短路径,但是我看到了两条(见下文)。我的目标是复制 OSPF 或 IS-IS 之类的协议。

有什么方法可以实现吗?(metrics/weights 不能修改,直接从路由器获取)

例子:

>>> from networkx import nx
>>> graph1 = {
...     
...     'R1':{'R2':{'weight':50000},'R3':{'weight':200}},
...     'R2':{'R1':{'weight':100},'R3':{'weight':100}},
...     'R3':{'R1':{'weight':200},'R2':{'weight':100}}
... }
>>> network_graph = nx.from_dict_of_dicts(graph1)
>>> print [p for p in 
nx.all_shortest_paths(network_graph,source='R1',target='R3', weight='weight')]
[['R1', 'R3'], ['R1', 'R2', 'R3']]
耶农

networkx 中的默认图不是有向图(这就是所谓的具有非对称边的网络),您需要使用以下方法明确指定:

network_graph = nx.from_dict_of_dicts(graph1, create_using=nx.DiGraph())

这将导致正确的答案:

print [p for p in nx.all_shortest_paths(network_graph,source='R1',target='R3',  weight='weight')]
 [['R1', 'R3']]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

空间权重:非对称邻接矩阵?

来自分类Dev

Networkx python 计算权重

来自分类Dev

带权重的边 networkx

来自分类Dev

networkx is_isomorphic考虑权重

来自分类Dev

Networkx Graph 绘图节点权重

来自分类Dev

静态非对称加密

来自分类Dev

非对称加密

来自分类Dev

非对称衰减函数

来自分类Dev

添加边缘权重以在networkx中绘制输出

来自分类Dev

NetworkX获取已应用权重的节点度

来自分类Dev

边缘的权重根据NetworkX中出现的次数

来自分类Dev

RuntimeError过滤权重低于阈值的边缘-Networkx

来自分类Dev

根据NetworkX中的权重变化边的厚度

来自分类Dev

无法使用Networkx设置图表的权重

来自分类Dev

边缘的权重根据NetworkX中出现的次数

来自分类Dev

HTTPS使用非对称或对称加密?

来自分类Dev

非对称地图标记

来自分类Dev

Jasypt和非对称加密

来自分类Dev

Python:完整的非对称网格

来自分类Dev

JWT使用非对称加密

来自分类Dev

Android LinearLayout 非对称居中

来自分类Dev

如何获得networkx中无向边缘的权重?

来自分类Dev

在创建NetworkX图形之前从相同的边缘添加权重

来自分类Dev

NetworkX和wxPython-如何添加边缘权重?

来自分类Dev

如何获取networkx图形中边缘权重的位置?

来自分类Dev

如何从Networkx图的每个节点中删除最小权重边

来自分类Dev

Python保留10%的分支以最大权重NetworkX图

来自分类Dev

乘以和添加权重networkx图python

来自分类Dev

使用KeyCzar的Android非对称加密