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


9

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

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

w′(u,v)=a∗w(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|G′w′(P)=aC+|P|

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

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

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