点素パス問題に対するアルゴリズム 小林 佑輔 東京大学 大学院情報理工学系研究科 組合せ最適化セミナー 2012 年 7月 13日 最短点素パス問題 講演内容 イントロダクション 効率的に解けるケース 2点素パス問題 k点素パス問題 (Robertson-Seymour のアルゴリズム) その他の結果 最短点素パス問題 演習 近年の発展(最大点素パス問題) 最短点素パス問題 (Min-Sum) Input: 頂点対 (s1, t1),…, (sk, tk), 各辺 e の長さ l(e) Find: 点素パス P1,…, Pk (Pi : si → ti ) s.t. パスの合計長さ最小 自然な最適化問題 ほとんどの場合で計算複雑度が未解決 最短点素パス問題 (Min-Sum) Input: 頂点対 (s1, t1),…, (sk, tk), 各辺 e の長さ l(e) Find: 点素パス P1,…, Pk (Pi : si → ti ) s.t. パスの合計長さ最小 s1 自然な最適化問題 ほとんどの場合で計算複雑度が未解決 s2 s3 t1 t2 解決済のケース NP困難な点素パス問題に対応 NP困難 最小費用流問題に帰着できる場合 多項式時間 平面グラフで,s1,..., sk が同一面上,t1,..., tk が同一面上 多項式時間 (Colin de Verdière & Schrijver, 2008) t3 参考:点素パス問題の計算量 k : 定数 k : 変数 有向グラフ 無向グラフ NP-困難 多項式時間 (平面グラフ) 多項式時間 (非巡回的) NP-困難 多項式時間 線形時間 (平面グラフ) k : 頂点対数 NP-困難 Min-Sum 点素パス問題の難しさ 点素パス問題 難しさ : 頂点対の繋ぎ方が指定されている 解法の鍵 : 繋げるか否かに関係ない頂点を取り除く 組み合わせるのが困難 最小費用流問題 難しさ : 費用が最小である保証が必要 解法の鍵 : フローの多面体的表現 + 双対概念 Min-Sum 点素パス問題の難しさ 点素パス問題 難しさ : 頂点対の繋ぎ方が指定されている 解法の鍵 : 繋げるか否かに関係ない頂点を取り除く 組み合わせるのが困難 最小費用流問題 難しさ : 費用が最小である保証が必要 解法の鍵 : フローの多面体的表現 + 双対概念 多項式時間で解ける場合 最小費用流問題に帰着できる場合 平面グラフで,s1,..., sk が同一面上,t1,..., tk が同一面上 (Colin de Verdière & Schrijver, 2008) 現状: 最小費用流問題 + グラフの特殊性の利用 Min-Sum 点素パス問題の難しさ 点素パス問題 難しいポイント 難しさ : 頂点対の繋ぎ方が指定されている 解法の鍵 : 繋げるか否かに関係ない頂点を取り除く カット条件 最小費用流問題 幾何的な条件 +組み合わせるのが困難 最適性 難しさ : 費用が最小である保証が必要 を同時に扱う必要がある 解法の鍵 : フローの多面体的表現 + 双対概念 多項式時間で解ける場合 最小費用流問題に帰着できる場合 平面グラフで,s1,..., sk が同一面上,t1,..., tk が同一面上 (Colin de Verdière & Schrijver, 2008) 現状: 最小費用流問題 + グラフの特殊性の利用 Min-Sum 点素パス問題に対する成果 (K. and Sommer, 2009) 成果:特殊ケースの解決 無向平面グラフで ターミナルが 高々2つの面上 にあるとき k=2 の Min-Sum 点素パス問題は 多項式時間 で解ける s1 t1 t2 t2 s2 本研究 s1 s2 s1 t1 s2 t1 t2 Colin de Verdière & Schrijver t1 t2 s1 s2 最小費用流問題 Min-Sum 点素パス問題の難しさ カット条件 幾何的な条件 + 最適性 を同時に扱う必要がある これまで紹介: 「幾何的な条件」 が扱いやすいケース これから話す: 「カット条件」 が扱いやすいケース J. Erickson and A. Nayyeri: Shortest non-crossing walks in the plane, SODA 2011 Shortest non-crossing walks Input: 頂点対 (s1, t1),…, (sk, tk), 各辺 e の長さ l(e) Find: 合計長さ最小の walk P1,…, Pk (Pi : si → ti ) s.t. walk は互いにクロスしない t1 s1 s2 OK t2 例 s1 t2 s1 s2 s2 t1 NG t1 t2 t2 s1 s2 NG t1 Shortest non-crossing walks Input: 頂点対 (s1, t1),…, (sk, tk), 各辺 e の長さ l(e) Find: 合計長さ最小の walk P1,…, Pk (Pi : si → ti ) s.t. walk は互いにクロスしない t1 s1 s2 OK t2 例 s1 t2 s1 s2 s2 t1 NG t1 t2 t2 s1 s2 NG t1 定理 (Erickson-Nayyeri, 2009) ターミナルが h 個の面の周上にあるとき, O(h2) 2 n log k の計算時間で解ける 例 s1 s2 t1 t2 obstacle h=2 定理 (Erickson-Nayyeri, 2009) obstacle ターミナルが h 個の面の周上にあるとき, O(h2) 2 n log k の計算時間で解ける 関連研究 h=1 のとき 個別に最短路求めるだけ h=2 のとき O(n log k) 時間 (Takahashi-Suzuki-Nishizeki, 1992) h : 一般 のとき NP-hard 例 s1 s2 t1 t2 (Bastert-Fekete, 1998) obstacle h=2 定理 (Erickson-Nayyeri, 2009) obstacle ターミナルが h 個の面の周上にあるとき, O(h2) 2 n log k の計算時間で解ける 細かい注意 ターミナルと Obstacle の間を 他のパスが通らないものとする 例 s1 s2 t1 t2 obstacle h=2 定理 (Erickson-Nayyeri, 2009) obstacle ターミナルが h 個の面の周上にあるとき, O(h2) 2 n log k の計算時間で解ける 方針 いくつかの walk をとり,それらに沿って切り開く S’T’-walks どのペアも同じ面上 s2 s1 t1 t2 t3 s3 s2 s1 t1 t2 t3 s3 演習 obstacle 各 i に対して, si と ti が共通の面の周上のとき, Shortest non-crossing walks が多項式時間で 解けることを示せ. (計算時間はとりあえず気にしない) どのようなパスで切り開くか? 最適解の部分解 の候補 どのようなパスで切り開くか? 最適解の部分解 の候補 同じ homotopy class の中で最短のもの 定義 2つの walk α, β が同じ homotopy class ∃連続写像 h: [0,1]×[0,1] → (平面 - obstacle) s.t. h(0, ・ ) = α, h(1, ・ ) = β h(・ , 0) = α(0) = β(0), h(・ , 1) = α(1) = β(1) α β α 同じ β obstacle 違う 最適解の性質 観察 Shortest non-crossing walks の最適解において 各 walk は,同じ homotopy class の中で最短 略証 α が同じ homotopy class の中で最短だとすると, 合計長さが短くできるので. s3 s2 P2 s1 α P1 P3 t3 s3 t2 s2 t1 s1 α P2 P3 t3 t2 t1 最適解の性質 観察 Shortest non-crossing walks の最適解において 各 walk は,同じ homotopy class の中で最短 略証 α が同じ homotopy class の中で最短だとすると, 同じ homotopy class の中で最短のパスが 合計長さが短くできるので. s最適解に使われるパスの候補 s3 3 t s2 P2 s1 α P1 P3 3 P2 t2 s2 t1 s1 α P3 t3 t2 t1 アルゴリズム STEP 1 すべての homotopy class の組合せに対し, 最短の S’T’-walks Ω’ を計算 STEP 2 Ω’ で切り開いたグラフで,残りのターミナルを繋ぐ STEP 3 得られた ST-walks の中で最短のものを出力 アルゴリズム (1) 個数を 2 O(h2) で抑える STEP 1 すべての homotopy class の組合せに対し, 最短の S’T’-walks Ω’ を計算 STEP 2 (2) どう計算するか? Ω’ で切り開いたグラフで,残りのターミナルを繋ぐ STEP 3 得られた ST-walks の中で最短のものを出力 補題 σ : ある2点間の最短パス Ω = {ω1, … , ωk}: 最適な ST-walks 各 ωi は σ と高々 22h-2 回しかクロスしない 補題 σ : ある2点間の最短パス Ω = {ω1, … , ωk}: 最適な ST-walks 各 ωi は σ と高々 22h-2 回しかクロスしない s2 この補題を認めると... 最短パス σ1, … , σh-1 を用いて h 個の obstacle faces を繋ぐ σ1 s1 t3 t2 t1 s3 σ2 補題 σ : ある2点間の最短パス Ω = {ω1, … , ωk}: 最適な ST-walks 各 ωi は σ と高々 22h-2 回しかクロスしない s2 この補題を認めると... 最短パス σ1, … , σh-1 を用いて h 個の obstacle faces を繋ぐ σi を用いて切り開き,σi , si, ti の 接続関係を表すグラフ Π を作成 Π は高々 2 O(h2) 通り t3 s1 σ1 σ2 t2 t1 s3 σ1 s2 t3 σ2 s1 t2 t1 σ1 σ2 s3 Π 補題 σ : ある2点間の最短パス Ω = {ω1, … , ωk}: 最適な ST-walks 各 ωi は σ と高々 22h-2 回しかクロスしない s2 この補題を認めると... t3 s1 最短パス σ1, … , σh-1 を用いて 2O(h) t2 σ1 × (2t O(h)) O(h) 1 h 個の obstacle faces を繋ぐ 弦の引き方 並行枝の本数 σi を用いて切り開き,σi , si, ti の 接続関係を表すグラフ Π を作成 Π は高々 2 O(h2) 通り s3 σ1 s2 σ2 t3 σ2 s1 t2 t1 σ1 σ2 s3 Π 演習 頂点数 n のサイクルが与えられたときに, 互いに交わらない弦の引き方が 2O(n) 通り であることを示せ. walks の復元 Π から walk を復元したい s2 t3 s1 homotopy class は決まるので σ1 各 walk 毎に最短のものを探す σ2 t2 t1 s3 σ1 s2 t3 σ2 s1 t2 t1 σ1 σ2 s3 Π walks の復元 Π から walk を復元したい s2 s1 homotopy class は決まるので σ1 各 walk 毎に最短のものを探す 計算時間: 2O(h) n σ2 t2 t1 s3 例えば,s3→σ1→σ2→t3 なら, グラフ 3 つを貼りあわせて最短路 t3 σ1 s2 t3 σ2 s1 t2 t1 σ1 σ2 s3 Π アルゴリズム(再掲) (1) 個数を 2 O(h2) で抑える STEP 1 すべての homotopy class の組合せに対し, 最短の S’T’-walks Ω’ を計算 STEP 2 (2) どう計算するか? Ω’ で切り開いたグラフで,残りのターミナルを繋ぐ STEP 3 得られた ST-walks の中で最短のものを出力 補題 σ : ある2点間の最短パス Ω = {ω1, … , ωk}: 最適な ST-walks 各 ωi は σ と高々 22h-2 回しかクロスしない あとは補題を示せばよい. 簡単のため,「2k 回しかクロスしない」 を示す 準備 X(σ, Ω) : σ が交差する walk を順に並べた index 列 X(σ, Ω) の部分列が even どの index も偶数回現れる 主張1 X(σ, Ω) は非空で even な部分列を持たない σ : ある2点間の最短パス Ω = {ω1, … , ωk}: 最適な ST-walks X(σ, Ω) : σ が交差する walk を順に並べた index 列 主張1 X(σ, Ω) は非空で even な部分列を持たない 証明 σ even な部分列を持つと,walks を繋ぎ直して より短い ST-walks が得られるので矛盾. 1 1 3 1 8 3 5 3 2 2 4 2 7 4 6 4 同じ色を繋ぎかえる 1 → 4 5 → 8 9 → 12 σ : ある2点間の最短パス Ω = {ω1, … , ωk}: 最適な ST-walks X(σ, Ω) : σ が交差する walk を順に並べた index 列 主張1 X(σ, Ω) は非空で even な部分列を持たない 証明 σ even な部分列を持つと,walks を繋ぎ直して より短い ST-walks が得られるので矛盾. 1 1 3 1 8 3 5 3 2 2 4 2 7 4 6 4 σ 1 1 3 1 8 3 5 3 2 2 4 2 7 4 6 4 同じ色を繋ぎかえる 1 → 4 5 → 8 9 → 12 演習 この繋ぎかえで,クロスが 生じないことを示せ 主張2 長さ 2k 以上の X(σ, Ω) は,非空で even な部分列を持つ 演習 主張2 を証明せよ σ : ある2点間の最短パス Ω = {ω1, … , ωk}: 最適な ST-walks X(σ, Ω) : σ が交差する walk を順に並べた index 列 X(σ, Ω) の部分列が even どの index も偶数回現れる 補題 σ : ある2点間の最短パス Ω = {ω1, … , ωk}: 最適な ST-walks 各 ωi は σ と高々 22h-2 回しかクロスしない 簡単のため,「2k 回しかクロスしない」 を示す 主張1 X(σ, Ω) は非空で even な部分列を持たない 主張2 長さ 2k 以上の X(σ, Ω) は,非空で even な部分列を持つ 主張1,主張2より,示された. アルゴリズム(再掲) (1) 個数を 2 O(h2) で抑える STEP 1 すべての homotopy class の組合せに対し, 最短の S’T’-walks Ω’ を計算 STEP 2 (2) どう計算するか? Ω’ で切り開いたグラフで,残りのターミナルを繋ぐ STEP 3 得られた ST-walks の中で最短のものを出力 定理 (Erickson-Nayyeri, 2009) アルゴリズム(再掲) ターミナルが h 個の面の周上にあるとき, 2 O(h2) STEP 1 O(h2) (1) 個数を 2 n log k の計算時間で解ける で抑える すべての homotopy class の組合せに対し, 最短の S’T’-walks Ω’ を計算 STEP 2 (2) どう計算するか? Ω’ で切り開いたグラフで,残りのターミナルを繋ぐ STEP 3 得られた ST-walks の中で最短のものを出力 まとめ:最短点素パス問題 自然な最適化問題 ほとんどの場合で計算複雑度が未解決 現状 カット条件 幾何的な条件 のどちらかが扱いやすい場合のみ
© Copyright 2024 ExpyDoc