Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Efficient algorithms for combinatorial optimiza...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Shunji Umetani Shunji Umetani
February 08, 2021

Efficient algorithms for combinatorial optimization problems

整数計画問題を含む多くの組合せ最適化問題はNP困難であり,任意の入力データに対して効率的に最適解を求めることは非常に困難です.一方で,最小全域木問題,最短路問題,割当問題など,特殊な構造を持ついくつかの組合せ最適化問題は効率的な多項式時間アルゴリズムが知られています.今回は,貪欲法と動的計画法を中心に,効率的に解ける組合せ最適化問題とそのアルゴリズムを紹介します.

Avatar for Shunji Umetani

Shunji Umetani

February 08, 2021
Tweet

More Decks by Shunji Umetani

Other Decks in Research

Transcript

  1. 組合せ最適化問題の難しさ • NP困難問題︓厳密な最適解を求めるのに必要な計算時間が最悪で ⼊⼒サイズの指数関数になると多くの研究者が考えている問題. • 都市をちょうど1回ずつ訪問する最短の巡回路を求める巡回セー ルスマン問題の解候補を列挙すると 通り. 3 Newsweek,

    July 26, 1954 PCB3038 D15112 都市数 巡回路の総数 計算時間(秒) 6 60 4.32×10-10 8 2520 3.23×10-8 10 1.81×105 3.63×10-6 15 4.36×1010 1.96 20 6.08×1016 4.87×106 約56⽇ 25 3.10×1023 3.88×1013 約122万年 30 4.42×1030 7.96×1020 約25233億年 100TFlopsのコンピュータを⽤いて 巡回路を列挙したときの計算時間 ⼤規模な巡回セールスマン問題を 解く必要が⽣じることは少なくない 組合せ最適化問題の全ての解を列挙することは⾮常に困難
  2. 効率的に解ける組合せ最適化問題 • 巡回セールスマン問題や整数計画問題など,多くの組合せ最適化 問題はNP困難で効率的なアルゴリズムは期待できない. • 特徴的な構造を持つ⼀部の組合せ最適化問題には効率的なアルゴ リズムが存在する. 4 離散最適化問題 (組合せ最適化問題)

    整数計画問題 資源配分問題,最⼩全域⽊問題など 貪欲法 ナップサック問題*,資源配分問題, 最⼩費⽤弾性マッチング問題など 動的計画法 最⼤流問題,最⼩費⽤流問題, 最⼤マッチング問題,割当問題など 増加路法,負閉路消去法,最短路繰り返し法, (ハンガリー法) 最短路問題 ダイクストラ法,ベルマン・フォード法, フロイド・ウォーシャル法 分枝限定法,切除平⾯法,(分枝カット法) ビンパッキング問題,最⼤カット問題, 巡回セールスマン問題,頂点被覆問題, ナップサック問題など 性能保証付き近似解法 さまざまなNP困難問題 発⾒的解法,局所探索法,メタヒューリスティクス, (分枝カット法) 効率的なアルゴリズム が存在する *⼊⼒データの各要素(荷物の重さ および袋の容量 )が定数⻑の⽂字列で表現できるという仮定が必要.
  3. 資源配分問題の貪欲法 • 貪欲法︓局所的な評価値が最も⾼い要素を選ぶ⼿続きを繰り返し て実⾏可能解を段階的に構築する⼿法. • 個の事業と利⽤可能な総資源量 が与えられる. 事業 に資源を 単位配分すると利益

    が⽣じる. 総利益を最⼤化するように資源を各事業に配分するには︖ • が凹関数ならば増分 は変数 について⾮増加*. • 増分 が最⼤となる変数 を1単位増やす⼿続きを繰り返す. 5 費⽤を表す凹関数 *例えば,同じ広告を繰返し配信すると広告1回当たりの効果は徐々に減少する(限界効⽤逓減の法則).
  4. 最⼩全域⽊問題の貪欲法 • グラフ ,各辺 ,の⻑さ が与えられる. • グラフ の全ての頂点をつなぐ最短の辺の部分集合 は︖

    • クラスカル法,プリム法など効率的なアルゴリズムが存在する. 6 最⼩全域⽊ 閉路を持つ辺集合 閉路を持つと距離の 和は最⼩にならない 全点を繋いでいない辺集合
  5. 動的計画法 • 「元の問題の最適解がある部分問題の最適解を含む」という部分 構造最適性を持つ問題を対象とする. • ⾃明な解を持つ部分問題から始めて,順次⼤きな部分問題を解く. • 重複する部分問題を繰り返し解かないように履歴を記録する. 9 分割統治法

    問題を独⽴した部分問題に分割 動的計画法 部分問題の解を繰り返し活⽤* 原問題 原問題 分割統治法はトップダウン 動的計画法はボトムアップ *競技プログラミングではしばしばメモ化と呼ばれる.
  6. ナップサック問題の動的計画法 • 個の荷物と重さ容量 の袋が与えられる. 荷物 の重さを 価値 とする. 価値の合計を最⼤化するような荷物の詰め合わせは︖ •

    袋の容量を に,荷物の候補を に制限した部分 問題の最適値を とする. • は以下の漸化式で求められる. 10 ナップサックの容量 荷 物
  7. ナップサック問題の動的計画法 • 袋の重さ容量 • 荷物の重さ • 荷物の価値 11 *問題例の⼊⼒サイズは で,これをkとすると時間計算量は

    となるため,ナップサック問題 に対する動的計画法は多項式時間アルゴリズムではない(擬多項式時間アルゴリズムと呼ばれる) 最適な袋詰め 最適な袋詰めが 時間で得られる*
  8. 資源配分問題の動的計画法 • が凹関数とは限らない資源配分問題について,資源の総量 を に,事業の候補を に制限した部分問題の 最適値を とする. • は以下の漸化式で求められる.

    12 事 業 資源 のみを変数に持つ関数(分離型) 部分問題は 個なので 時間* *問題例の⼊⼒サイズは で,これをkとすると時間計算量は となるため,資源配分問題 に対する動的計画法は擬多項式時間アルゴリズムである.
  9. 最⼩費⽤弾性マッチング問題の動的計画法 • ⽂字列 と を順番が逆転しない 範囲で少なくとも1つの要素に対応付ける. • 要素 と の対応付け費⽤を

    が与えられたとき,対応付け費⽤ の合計を最⼩化する. • の 番⽬までの要素からなる部分列 と の 番 ⽬までの要素からなる部分列 に制限した部分問 題を考えると,その最適値 は以下の通り. 13 弾性マッチング 弾性ではないマッチング 順番の逆転はNG 対応付けがない要素もNG
  10. 最短路問題のラベリング法 • グラフ ,各辺 の⻑さ が与えられる. • 始点 から各頂点 への最短路は︖(単⼀始点最短路問題)

    • 部分構造最適性︓始点 から頂点 への路 の部分路 は,始点 から頂点 への最短路. • 始点 から各頂点 への最短路の⻑さの上界を表すラベル値 を更新する⼿続きを繰り返す. • ダイクストラ法︓各反復でこれまでに選ばれていない頂点の中で最 ⼩のラベル値 を持つ頂点を選ぶ⼿続きを繰り返す. • ベルマン・フォード法︓全ての頂点を適当な順番で1回ずつ選びラベ ル値 を更新する⼿続きを繰り返す. 15 部分構造最適性
  11. ダイクストラ法 16 a b c d e f g 4

    2 2 1 2 6 4 1 3 1 2 2 4 5 a b c d e f g 4 2 1 2 6 4 3 1 2 2 4 5 a b c d e f g 2 1 2 6 4 3 1 2 2 4 5 a b c d e f g 2 1 2 6 3 1 2 2 4 5
  12. ダイクストラ法 17 a b c d e f g 2

    1 2 6 3 1 2 4 5 a b c d e f g 2 1 2 3 1 2 4 5 a b c d e f g 2 1 2 3 1 4 各反復でヒープから最 ⼩の暫定距離を⾒つけ るのに 時間 各頂点の暫定距離 を ヒープに格納する 時間* *各頂点では暫定距離が複数回更新されるが,全頂点では暫定距離の更新は合計で 回しか⽣じない. *フィボナッチヒープを⽤いれば 時間に減らせる. 各頂点の暫定距離の更 新時にヒープを更新す るのに 時間*
  13. フロイド・ウォーシャル法 18 • 点iから点jへの最短路で,kは中間点の中で最も番号が⼤きい点 • 点iから点kまでの部分路p1 の全ての中間点は{1,2,...,k-1}に含まれる • 点kから点jまでの部分ろp2 の全ての中間点は{1,2,...,k-1}に含まれる

    • 中間点が全て{1,2,...,k}に含まれるような点iから点jへの最短路の距 離を とする • k=0のとき,0より⼤きい番号の付いた中間点を通らないので, となる i k j p1 p2 中間点は全て{1,2,...,k}に含まれる 中間点は全て{1,2,...,k-1} に含まれる 中間点は全て{1,2,...,k-1} に含まれる
  14. 参考⽂献 • 茨⽊俊秀,Cによるアルゴリズムとデータ構造 改訂第2版,オー ム社,2019. • ⼤槻兼資(著),秋葉拓哉(監修),問題解決⼒を鍛える︕アルゴリ ズムとデータ構造,講談社,2020. • T.H.Cormen,

    C.E.Leiserson, R.L.Rivest, C.Stein, Introduction to Algorithms (3rd edition), MIT Press, 2009. (浅野哲夫,岩野和⽣,梅尾博司,⼭下雅夫,和⽥幸⼀(訳),アル ゴリズムイントロダクション 第3版 総合版,近代科学社, 2013.) • R.Sedgewick, K.Wayne, Algorithms (4th edition), Addison- Wesley, 2011. (野下浩平,星守,佐藤創,⽥⼝東(訳),セジ ウィック︓アルゴリズムC 第1〜4部(第3版),近代科学社, 2018.) 21