2017-01-26 13 views
3

GraphViz를 사용하여 생성 된 Digraph를 사용하여 'A'와 'H'사이의 최단 경로를 찾는 방법은 무엇입니까? 나는 Dijkstra 알고리즘을 알고 있으며, GraphViz가 그것을 사용할 수있는 도구를 제공한다는 것을 알고 있지만, 그것이 Python 라이브러리에 존재하는지 확신하지 못합니다.GraphViz, 두 노드 사이의 최단 경로 찾기

나는 최단 경로의 일부인 노드와 가장자리의 전경색도 변경하고 싶습니다. (.. in blue : 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

문서 검색 나는 [Dijkstra]에 대한 [참조가 없습니다.] (http://graphviz.readthedocs.io/en/latest/search.html?q=dijkstra&check_keywords=yes&area=default)를 참조하십시오. 도서관에없는 것 같습니다. 그 질문에 대답합니까? – usr2564301

+0

@RadLexus는 반 으로요? 여기 누군가가 Python에서 GraphViz로 Dijkstra 알고리즘을 코딩했다면 어떻게 그 일을했는지 ​​알고있을 것입니다. –

답변

0

GraphViz는 그래프 시각화 도구입니다. 내부적으로는 여러 알고리즘을 가질 수 있지만 내부 용도로 사용되기 때문에 래퍼에서 액세스 할 수 없습니다. 그래프에서 다른 작업을 수행해야하는 경우 Networkx을 추천합니다. shortest_paths을 비롯한 여러 그래프 알고리즘을 제공하고 시각화를 위해 dot으로 출력 할 수 있습니다.