タグ付けされた質問 「dijkstra」

11
ダイクストラのアルゴリズムとAスターの違いは何ですか?
私はマリオAIコンテストのメンバーが何をしているかを見ていました。彼らの何人かはA *(A-Star)Pathing Algorithmを利用してかなりきちんとしたマリオボットを構築しています。 (マリオA *ボットの動作のビデオ) 私の質問は、A-Starとダイクストラの違いを教えてください。それらを見ると、彼らは似ているようです。 なぜ誰かが他のものを使用するのですか?特にゲームでのパスのコンテキストでは?


8
ダイクストラのアルゴリズムを使用した負の重み
ダイクストラのアルゴリズムが負の重みで機能しない理由を理解しようとしています。最短パスの例を読んで、私は次のシナリオを理解しようとしています: 2 A-------B \ / 3 \ / -2 \ / C ウェブサイトから: エッジがすべて左から右に向けられていると仮定すると、Aから開始すると、ダイクストラのアルゴリズムはd(A、A)+ length(edge)を最小化するエッジ(A、x)、つまり(A、B)を選択します。次に、d(A、B)= 2を設定し、d(A、y)+ d(y、C)を最小化する別のエッジ(y、C)を選択します。唯一の選択肢は(A、C)で、d(A、C)= 3を設定します。ただし、AからCを経由してBへの最短経路は決して見つかりません。全長は1です。 ダイクストラの次の実装を使用すると、d [B]がに更新されない理由を理解できません1(アルゴリズムが頂点Cに到達すると、Bでリラックスが実行され、d [B]がに等しいこと2を確認して、更新します。その値は1)。 Dijkstra(G, w, s) { Initialize-Single-Source(G, s) S ← Ø Q ← V[G]//priority queue by d[v] while Q ≠ Ø do u ← Extract-Min(Q) S ← S U {u} for …

4
幅優先検索(BFS)が同じことをより速く実行できるのに、なぜダイクストラのアルゴリズムを使用するのですか?
どちらも、単一のソースからの最短経路を見つけるために使用できます。BFSはで実行されO(E+V)、ダイクストラはで実行されO((V+E)*log(V))ます。 また、ダイクストラがルーティングプロトコルでよく使用されるのを見ました。 したがって、BFSが同じことをより速く実行できるのに、なぜダイクストラのアルゴリズムを使用するのでしょうか。

3
ダイクストラのアルゴリズムが減少キーを使用するのはなぜですか?
ダイクストラのアルゴリズムは私に教えられました while pqueue is not empty: distance, node = pqueue.delete_min() if node has been visited: continue else: mark node as visited if node == target: break for each neighbor of node: pqueue.insert(distance + distance_to_neighbor, neighbor) しかし、私はアルゴリズムに関していくつかの読書をしてきました、そして私が見る多くのバージョンは挿入ではなく減少キーを使用しています。 これはなぜですか、2つのアプローチの違いは何ですか?


10
特定のノードにアクセスするグラフで最短経路を見つけます
約100個のノードと約200個のエッジを持つ無向グラフがあります。1つのノードには「start」というラベルが付けられ、もう1つは「end」というラベルが付けられ、「mustpass」というラベルが付けられたノードが約12個あります。 'start'で始まり、 'end'で終わり、すべての 'mustpass'ノードを(任意の順序で)通過する、このグラフの最短パスを見つける必要があります。 (http://3e.org/local/maize-graph.png / http://3e.org/local/maize-graph.dot.txtは問題のグラフであり、ペンシルバニア州ランカスターのトウモロコシの迷路を表しています)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.