2017-01-26 26 views
3

GraphVizを使って作成されたDigraphを使って、どのようにして 'A'と 'H'の間の最短経路を見つけることができますか? 私はDijkstraアルゴリズムを知っていて、GraphVizがそれを使うことができるツールを提供していることは知っていますが、Pythonライブラリに存在しているかどうかはわかりません。GraphViz、2つのノード間の最短経路を見つけよう

私は、その最短経路の一部であるノードとエッジの前景色も変更したいと思います。 (青色:p)

from graphviz import Digraph 

f = Digraph('Test', filename='fsm.gv') 
f.body.extend(['rankdir=LR', 'size="8,5"']) 

f.edge('A', 'C') 
f.edge('A', 'B') 
f.edge('B', 'D') 
f.edge('C', 'F') 
f.edge('C', 'E') 
f.edge('C', 'I') 
f.edge('E', 'G') 
f.edge('F', 'E') 
f.edge('G', 'H') 
f.edge('G', 'E') 
f.edge('H', 'F') 
f.edge('H', 'E') 

f.view() 
+1

ドキュメントを検索する私は[Dietkstra]に私は[参考文献を見つける](http://graphviz.readthedocs.io/en/latest/search.html?q=dijkstra&check_keywords=yes&area=default)していないので、ライブラリに存在していないようです。それはあなたの質問に答えますか? – usr2564301

+0

@RadLexusは半分ですか?ここの誰かがPythonでGraphVizを使ってDijkstraアルゴリズムを既にコーディングしている場合は、彼がどのようにそれをしたのかを知りたいと思っています –

答えて

0

GraphVizはグラフの視覚化ツールです。内部的には複数のアルゴリズムを持つことができますが、内部使用を意図しているため、ラッパーからアクセスできない場合があります。グラフ上で他の操作を行う必要がある場合は、shortest_pathsを含むいくつかのグラフアルゴリズムを提供し、視覚化のためにdotに出力することができるNetworkxをお勧めします。

関連する問題