2017-06-08 5 views
0

dijkstraモジュールを使って最短経路で作業する関数を作成しました。 今、私はファイルデータを実装しようとしており、その関数を使って作業しています。ここでファイルデータを実装し、Dijkstra関数を使ってPythonで作業する

は私の機能コードです:

nodes = {'A', 'B', 'C', 'D', 'E'} 

edges = [('A', 'B', 3), ('B', 'A', 3), ('A', 'C', 5), ('C', 'A', 5), 
     ('A', 'E', 2), ('E', 'A', 2), ('B', 'D', 2), ('D', 'B', 2), 
     ('D', 'C', 1), ('C', 'D', 1), ('C', 'E', 2), ('E', 'C', 2), 
     ('D', 'E', 4), ('E', 'D', 4)] 

g = (nodes, edges) 
src = 'D' 

prev, dist = dijkstra(g, src) 

そしてここでは、私のファイルのデータです:ファイルを実装して、ファイルのデータによって、ノードとエッジを交換する方法

4 5 0.35 
5 4 0.35 
4 7 0.37 
5 7 0.28 
7 5 0.28 
5 1 0.32 
0 4 0.38 
0 2 0.26 
7 3 0.39 
1 3 0.29 
2 7 0.34 
6 2 0.40 
3 6 0.52 
6 0 0.58 
6 4 0.93 

+0

助けてください –

答えて

0
nodes = set() 
edges = list() 
f = open('data.txt') 
for line in f: 
    node_1, node_2, length = line.split() 
    nodes.add(node_1) 
    nodes.add(node_2) 
    edges.append((node_1, node_2, length)) 

トリックを行います。

関連する問題