2016-04-28 28 views
0

誰かが私を助けたり、正しい方向に向けることができますか?失われたばかりの私は、それらが無限に設定されていることを知っていません。またはこれは、各ノードが持っている新しい変数です。いくつかの助言または正しい方向に指摘されているいくつかの助けを感謝するでしょう。相続人は(私の意見ではそのゴミが)dijkstraの最短経路アルゴリズム

def dijkstra(self, start): 

    print("end dijkstra") 
    for node in self.__nodes: 
      curr_node = 0 
      for node in self.__nodes: 
       distances = float('inf') 
       before_node = None 

       print(node) 

    """ 
    try: 


     #for node in weighted_digraph: 
      #distances[node] = float('inf') 
      #predecessors[node] = None 
      print("work") 
      print(node) 
      #print(weighted_digraph) 
     #sp_set = [] 
     #distances[start] = 0 
    except TypeError: 
     print("BS OCCURED") 
    """ 

答えて

0

だから最初は、あなたが離れて、​​各ノードが実際に(ソースからどれだけ離れているか見当がつかないが、彼らはすべてのすべてでで到達可能ではないかもしれない私はこれまで持っているものあなたのグラフが接続されていない場合!)。この「無限に設定された」ビジネスは、ソースノードから各ノードまでの最短距離と関連があります。各ノードは、ソースからどのくらい離れているかを知る必要があります。最初にその値は無限大です(パスを列挙するために歩いていないため)。無限に変数の値を設定するには

0

、使用:あなたは、最適化機能で最小を見つけたいときにこれを行うには

var = float('inf') 

理由は通常です。値を無限大に設定すると、他の値と比較して、他の値が低いことを確認できます。あなたはこのような開始時に負の無限大に値を設定することができます最大化問題で

:Pythonで

var = float('-inf') 

> 3.5、あなたはまた、数学のモジュールを使用するCNA:

var = math.inf 
var = -math.inf 
0

彼らは無限に値を設定することは、彼らがエッジについて話していることですか?

いいえ、彼らはあなたが他のすべてのノードに上ダイクストラを実行しようとしているノードの距離について話しています。あなたが最初に最短距離があるので、それを無限にしましょう。ここで

あなたは(擬似コードで)それを初期化する方法の例です:

for each vertex v in Graph: 
    dist[v] ← INFINITY 
    prev[v] ← UNDEFINED // Previous node in optimal path from source 

dist[source] ← 0 //distance from a node to itself is zero. 
関連する問題