グラフにエッジを追加すると、最短距離はいくつ変化しますか?


22

してみましょう、いくつかの完全な、加重、無向グラフとします。からエッジを1つずつ追加して、2番目のグラフを作成します。合計でエッジをに追加します。G ′ = (V 、E ′)E E ′ Θ (| V |)G ′G=(V,E)G′=(V,E′)EE′Θ(|V|)G′

我々は一つのエッジを追加するたびにに、我々はすべてのペア間の最短距離を考える及び。を追加した結果、これらの最短距離がいくつ変化したかを数えます。してみましょう最短距離の数も変化することを、私たちは追加したときに番目のエッジを、とlet、我々は、合計で追加エッジの数をすること。E ′(V 、E ′)(V 、E ′ ∪ { (u 、v )} )(u 、v )C i i n(u,v)E′(V,E′)(V,E′∪{(u,v)})(u,v)Ciin

大きさは?C=∑iCin

、も同様。この限界は改善できますか?は追加されたすべてのエッジの平均であると定義しているため、であることが証明されていますが、多くの距離が変化する単一のラウンドはそれほど興味深いものではありません。C = O (n 2)C C = Ω (n )Ci=O(|V|2)=O(n2)C=O(n2)CC=Ω(n)

時間で動作する幾何学的なtスパナを貪欲に計算するアルゴリズムがあるため、が場合、私のアルゴリズムは元の貪欲なアルゴリズムよりも速く、が本当に小さく、最もよく知られているアルゴリズムよりも潜在的に高速です(疑いはありますが)。C o (n 2)CO(Cnlog⁡n)Co(n2)C

良好な境界に役立つ可能性のあるいくつかの問題固有のプロパティ:追加されるエッジは、グラフ内の既存のエッジよりも常に大きい重みを持ちます(必ずしも厳密に大きいわけではありません)。さらに、その重みは、と間の最短経路よりも短くなっています。u v(u,v)uv

頂点は2D平面のポイントに対応し、頂点間の距離はこれらのポイント間のユークリッド距離であると仮定できます。つまり、すべての頂点は平面内のある点に対応し、エッジ、その重みは(x 、y )(u 、v )= ((x 1、y 1)、(x 2、y 2))√v(x,y)(u,v)=((x1,y1),(x2,y2))(x2−x1)2+(y2−y1)2.


2
2つのエッジを持つパスで接続された2つのクリークを取ります。クリークの間に1つのエッジを直接追加すると、最短パスのが短くなります。Ω(n2)
— ルイス

1
@Louis:はい、単一のエッジが多くの距離を変化させる例がありますが、追加するすべてのエッジ、または少なくとも多くの距離で発生するグラフは存在しますか?これがまさに、をすべてのエッジの平均であると定義した理由です:)C
— アレックス10ブリンク

1
追加することができ、このグラフのエッジの大半は...私が説明したタイプである
— ルイ

@Louis True。クリークにはエッジが含まれていますが、これはグラフに追加する以上のものです。O(n2)
— アレックス10ブリンク

以前にも同じ問題を抱えていましたが、私のグラフはのスパースグラフであり、平均的な変化がO(1)であることを証明する必要がありましたが、できませんでした:-)。しかし、あなたの場合、これとAPSPのソリューションとの関係を見つければ、いくつかの結果が得られると思います。|E|=O(|V|)

回答:


19

個のノード、エッジ、悪質に選択された重みを持つ次の線形チェーンを考えてみましょう。n+1n

例
[ ソース ]

明らかに、エッジは重みの順に追加された可能性があり、それらにはあります。(正当な)破線のエッジを追加すると、ですべてのペア短いパスが作成されます。と仮定すると、両方の最初と最後の行を含む多くのノードそれぞれと付加原因多くの最短経路の変更。n∈O(|V|)(ui,bj)i,j=1,…,kk≈n4n∈Θ(|V|)Θ(|V|)Θ(|V|2)

これで、「外側」に移動できるようになりました。つまり、と間に重み次のエッジを追加できます。これをまで続けると、合計で最短パス変更が発生します。u k − 1 b k − 1(u 1、b 1)Θ (| V | 3)n+2uk−1bk−1(u1,b1)Θ(|V|3)

これで納得できない場合は、実際にでこの「プロセス」を開始し、そこから外側に向かって作業できることに注意してください。この方法では、合計で多くの最短パスが発生するエッジを追加します。変更---これは、1つの画面に収まるように描画することは不可能です。≈ N ≈ Σ N iは= 1、I 2を ∈ Θ (N 3)= Θ (| V | 3)(c1,c2)≈n≈∑i=1ni2∈Θ(n3)=Θ(|V|3)


1
これは実際に機能します。さらに、ユークリッドになるように例を少し変更することができます。ありがとう:)
— アレックス10ブリンク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.