私の質問は、whileループのアルゴリズムのすべてのステップでQのすべてのvの最小値[v]を選択することが重要なのはなぜですか? ?Dijkstraアルゴリズムのプロパティ
私はそれを見て、すべてのエッジ(u、v)は幅広い一次で緩和するつもりです(-s-> u-> vと(s、v) (u、v))、 だから、いつも最小のd [v]を選ぶことが重要なのはなぜですか?
は、それが最大dを有するように、頂点vを返す関数extractMaxFiniteD(Q)が存在すると仮定[V]すなわち
我々はU < -extractMaxFiniteD(Q)へのラインを変更すると仮定することができますQで有限です。誰かが私にグラフを描くことができます。このグラフでは、変更されたalgが失敗するか、またはそれより優れていますか?
私はこの質問がかなり難解で抽象的かもしれないことは知っていますが、some1がそれで私を助けることができれば素晴らしいでしょう。
は実際にあなたをした改善することはできません -
v
がQ
に最小限である場合、Q
の各u
、d[u] >= d[v]
、あなたが次に何をrelexationsので、どんなにのためにあるため、それが保証されているがどんなグラフでも試してみてください。 Maxを使用して不正確な結果が得られる確率は非常に高いです! –私は特定のグラフでintrestedの方が少ないので、最小限のステップを選択することによって、どのプロパティが保持しようとしているのかを知りたい。 –
ほとんどすべてのグラフでこれを行うと、段階的に進み、中間結果を見ると、 –