複数のパスの重みが同じである場合、エッジの数が最も少ないソリューションを優先するダイクストラ


9

したがって、ダイクストラが最小のエッジ数で解を見つけるように、任意のグラフを変更できます。G

すべてのエッジの重みに数値を掛け、重みにを加算して、ソリューションの追加の各エッジにペナルティを課します。a1

w(u,v)=aw(u,v)+1

これは、すべての値では動作しません。が機能するには、少なくともで必要があります。場合は、この最小数ではありません、それは最短パスを選択しない場合があります。この最小値を見つけるにはどうすればよいですか?aaxax

Ps。これはレクリエーションで行われました、私はずっと前に宿題を終えました。


2つのパスの重みが等しい場合は、エッジが最も少ないパスを選択する必要があります。ごめんなさい。私はそれを明確にしていないようです。
Unfun Cat '10 / 10/05

1
また、追加することによってそれを行うこと、すべてのエッジの重みにε < M / E、M =最小エッジ量E =最短パス内のエッジの数(あなたは最短経路長さがわからない場合でも、全体的または)ϵϵ<m/e
BlueRaja-Danny Pflughoeft 2012年

1
面白い一口、ありがとう。それを見なければならないでしょう。
Unfun Cat

回答:


5

Aグラフ所与、我々は定義G ' = V E Wを'W 'E = W E + 1ここで、= | E | + εいくつかのためのε 0、質問のコメントで提案されています。G=(V,E,w)G=(V,E,w)w(e)=aw(e)+1a=|E|+εε0

補題
レッツにおける経路GコストとC、すなわちW P = C。その後、Pは費用がかかりましたCを+ | P | G '、即ち、W 'P = C + | P | PGCw(P)=CPaC+|P|Gw(P)=aC+|P|

補題はの定義から直接従います。w

Pでダイクストラの結果を呼び出します。これはG 'の最短経路です。Pが、G内の(すべての最短パスの中で)エッジが最も少ない最短パスではなかったと仮定します。これは2つの方法のいずれかで発生する可能性があります。G PGPG

  1. Gの最短経路ではありません。 次に、パスが存在する P ' W P '< W Pは。として | P | | P | | E | 、これが意味することは W 'P '< W 'P 上記lemma¹有します。これは、 P Gの最短経路として選択されたことと矛盾します。PG
    Pw(P)<w(P)|P|,|P||E|aw(P)<w(P)PG
  2. は最短経路ですが、エッジが少ない最短経路があります。 その後、別の最短経路が存在する Pは' -すなわち W P = W P ' -と | P | < | P | 。これは、その意味 W 'P '< W 'Pに再びその矛盾上記補題により Pが最短経路である G 'P
    Pw(P)=w(P)|P|<|P|w(P)<w(P)PG

両方のケースで矛盾が生じたため、は実際にGのエッジが最も少ない最短経路です。PG


それは命題の半分をカバーします。何について< | E | 、つまりa = | E | - εε 0 | E |a<|E|a=|E|εε(0,|E|)


  1. 実際、Gのまたはすべての重みが整数であることも必要です。それ以外の場合、w P < w P では、G の重みが少なくとも|にならないE | 離れて。ただし、これは制限ではありません。すべての重みが整数になるように、常に定数係数でwをスケーリングできます。aGw(P)<w(P)G|E|w

私はまだという証明を出すことができていません E | これが機能する最小のaです。もう少し考えてみます。a=|E|a
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.