2

有没有办法在 pydot 中实现这一点?

举个例子:

[输出点文件]

strict graph g{
"A" -> "B";
"B" -> "C";
"C" -> "D";
"D" -> "E";
}

[Python]

print(num.start)
>>> A
print(num.steps)
>>> ["a,b","b,c","c,d","d,e"]
print(num.end)
>>> E

或以下情况:

[输出点文件]

strict graph g{
"A" -> "B";
"B" -> "C";
"C" -> "A";
}

[Python]

if num["A"] == num.loop:
print("[%s] loop detected")%(num["A"])
4

2 回答 2

1

那么你有整个图形结构,通过graph.get_edge_list()你可以实现标准深度优先搜索来找到节点之间的最短路径。寻找循环同样是使用标准图形算法完成的。有关如何在两个节点之间执行最短路径的源代码,请参阅这篇关于Python 中的 Graph implementations 的文章。

如果您正在寻找 pydot 库,请为您执行此操作,您可能不走运。

于 2011-04-08T17:07:28.170 回答
0

Pydot 可以写点文件,但不是用来分析图的。

您需要NetworkX。它可以读取和写入点文件查找圆圈,查找可达节点并进行拓扑排序。

在 wikipedia 上查找图表术语,NetworkX 可以完成剩下的工作。

于 2011-04-08T17:28:46.097 回答