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

Approximation algorithms for combinatorial optimization problems

Shunji Umetani
February 08, 2021

Approximation algorithms for combinatorial optimization problems

整数計画問題を含むNP困難な組合せ最適化問題では,任意の問題例に対して少ない計算手間で最適解を求める効率的なアルゴリズムを開発することは非常に困難です.一方で,与えられた計算時間内に最適解を求められなくても,質の高い実行可能解が求まれば十分に満足できる事例も多いです.任意の問題例に対して近似性能の保証を持つ実行可能解を1つ出力するアルゴリズムを近似解法と呼びます.今回は,いくつかの問題を通じてNP困難な組合せ最適化問題に対する近似解法を設計するための基本的な手法を説明します.

Shunji Umetani

February 08, 2021
Tweet

More Decks by Shunji Umetani

Other Decks in Research

Transcript

  1. 組合せ最適化問題の近似解法
    ⼤阪⼤学 ⼤学院情報科学研究科
    梅⾕ 俊治
    2021年2⽉9⽇

    View Slide

  2. 組合せ最適化問題とその応⽤事例
    • 組合せ最適化問題︓最適解を含む解の集合(探索領域)が,集合,
    順列,割当て,ネットワーク,論理,整数など組合せ的な構造を
    持つ最適化問題.
    2
    多くの現実問題が組合せ最適化問題に定式化できる

    View Slide

  3. 組合せ最適化問題の難しさ
    • 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のコンピュータを⽤いて
    巡回路を列挙したときの計算時間
    ⼤規模な巡回セールスマン問題を
    解く必要が⽣じることは少なくない
    組合せ最適化問題の全ての解を列挙することは⾮常に困難

    View Slide

  4. 計算困難な組合せ最適化問題
    • 厳密解法︓任意の⼊⼒データに対して最適解を1つ出⼒するアルゴリ
    ズム.
    • 近似解法︓任意の⼊⼒データに対して最適値に対する近似性能を保
    証する実⾏可能解を1つ出⼒するアルゴリズム.
    • 発⾒的解法︓最適値に対する近似性能が保証されていない実⾏可能
    解を1つ出⼒するアルゴリズム.
    4
    離散最適化問題
    (組合せ最適化問題)
    整数計画問題
    資源配分問題,最⼩全域⽊問題など 貪欲法
    ナップサック問題,資源配分問題,
    最⼩費⽤弾性マッチング問題など
    動的計画法
    最⼤流問題,最⼩費⽤流問題,
    最⼤マッチング問題,割当問題など
    増加路法,負閉路消去法,最短路繰り返し法,
    (ハンガリー法)
    最短路問題
    ダイクストラ法,ベルマン・フォード法,
    フロイド・ウォーシャル法
    分枝限定法,切除平⾯法,(分枝カット法)
    ビンパッキング問題,最⼤カット問題,
    巡回セールスマン問題,頂点被覆問題,
    ナップサック問題など
    性能保証付き近似解法
    さまざまなNP困難問題
    発⾒的解法,局所探索法,メタヒューリスティクス,
    (分枝カット法)
    効率的なアルゴリズム
    が期待できない

    View Slide

  5. 整数計画問題を解く
    • 計算困難な最適化問題では最適値が簡単に求まらない.
    • 最適値の上界と下界を求めて最適値の取り得る範囲を限定する.
    • 緩和問題︓原問題の⼀部の制約条件を緩めた問題
    ü 整数変数の整数条件を外す → 線形計画緩和計画問題
    5



    最適値
    上界
    下界 実⾏不可能
    実⾏可能
    整数計画問題 線形計画緩和問題
    ⽬的関数値
    線形計画緩和問題の実⾏可能領域
    整数計画問題の実⾏可能領域

    View Slide

  6. 性能保証付き近似解法
    • 同時に緩和問題を解いて下界も求めるアルゴリズムを設計できれば,
    任意の⼊⼒データに対して性能を保証できる場合もある.
    • 最⼩化問題 の⼊⼒データ の最適値を ,アルゴリズ
    ム を適⽤して得られた解の⽬的関数の値を とする.
    • 近似⽐率︓最⼩化問題 の任意の⼊⼒データ に対して,
    が成り⽴つとき,アルゴリズム は近似⽐率 を持つと呼ぶ.
    • NP困難問題は以下の3つのクラスに分類できる.
    ü どんなに⼩さな正定数 に対しても -近似解法が存在する.
    ü ある正定数 に対して -近似解法は存在するが, に下限がある.
    ü 定数近似解法が存在しない*.
    6
    *正確には,定数近似アルゴリズムが存在すればNP完全問題が多項式時間で解けてしまう.

    View Slide

  7. ナップサック問題
    • 最⼤で の重さまで荷物を詰め込める袋が1つと 個の荷物
    が与えられる.重さの合計が を超えない範囲で荷物の価値の合
    計が最⼤となる詰込み⽅は︖
    7
    袋に詰め込める重さ合計の上限(定数)
    荷物iの重さ(定数)
    荷物iの価値(定数)
    荷物iを袋に詰め込む→ , つめ込まない→ (変数)
    c :
    wi
    :
    pi
    :
    xi
    :
    max
    n
    X
    i=1
    pi
    xi
    s.t.
    n
    X
    i=1
    wi
    xi
     c,
    xi
    2 {0, 1}, i = 1, ... , n.

    View Slide

  8. ナップサック問題の線形計画緩和
    • ナップサック問題の線形計画緩和解は簡単に求められる.
    8
    荷物を と並べ直すとLP緩和解は以下の通り
    は かつ を満たす を⽤いて
    詰め込めるだけ詰め込んで
    袋からはみ出したところで
    荷物を切る
    切り分け可能

    View Slide

  9. ナップサック問題に対する貪欲法
    • 下記の2通りの解の⽬的関数の値が良い⽅を とする.
    ü LP緩和解から 番⽬の荷物を除いて得られる解 → 貪欲法
    ü 最も価値の⾼い荷物を1つだけ詰めて得られる解*
    • LP緩和解の最適値を とすると
    9
    以上より
    *袋に空きがあれば他の荷物を追加で詰め込んでも構わない.

    View Slide

  10. ビンパッキング問題
    • ⼗分な数の箱と 個の荷物が与えられる.箱に詰め込める荷物の
    重さ合計の上限を ,各荷物 の重さを とする.
    • 使⽤する箱の数が最⼩となる荷物の詰込みを求めたい.
    10
    箱に詰め込める荷物の重さ合計の上限 (定数)
    荷物 の重さ (定数)
    箱 を使う→ , 使わない→ (変数)
    荷物 を箱 に詰め込む→ , 詰め込まない→ (変数)

    View Slide

  11. ビンパッキング問題に対する近似解法
    • NF法(next-fit algorithm) → 2-近似解法
    ü 荷物を の順に箱に詰める.荷物 を詰めると箱に詰め込める
    荷物の重さ合計の上限 を超すならば,その箱を閉じて新たに⽤意
    した箱に荷物 を詰め込む.
    • FF法(first-fit algorithm) → 2-近似解法*
    ü 荷物を の順に箱に詰める.荷物 を詰め込むことができる最
    ⼩の添字の箱に詰め込む.荷物 をどの箱に詰め込んでも箱に詰め込
    める荷物の重さ合計の上限 を超すならば,新たに⽤意した箱に荷
    物 を詰め込む.
    • FFD法(first-fit decreasing algorithm) → 3/2-近似解法*
    ü あらかじめ荷物を重さの降順に整列してからFF法を適⽤する.
    11
    *詳細な解析によりFF法は近似⽐率7/4を持つことが知られている.
    FF法,FFD法についてはさらに詳細な解析の結果が知られている.

    View Slide

  12. ビンパッキング問題に対するNF法
    NF法はビンパッキング問題に対する2-近似解法である.
    • 箱 に詰め込まれた荷物の重さ合計を とする.
    • NF法により求められる実⾏可能解では,隣り合う箱 と にお
    いて常に が成り⽴つ.
    • これを について加えると以下の式が成り⽴つ.
    • に注意すると以下の式が導ける.
    • この式を変形すると が得られる.
    12

    View Slide

  13. ビンパッキング問題に対するFF法
    FF法はビンパッキング問題に対する2-近似解法である.
    • FF法により求められる実⾏可能解では となる箱は
    ⾼々1つしかないので以下の式が成り⽴つ.
    • この式を変形すると が得られる.
    13

    View Slide

  14. 最⼤カット問題
    • 無向グラフ と各辺 の重み が与えられる.
    • ある頂点集合 のカット に含まれる辺の重みの合計
    をカット の重みと呼ぶ.
    • カット重み が最⼤となる頂点集合 を求めたい.
    14
    最⼩カット 最⼤カット

    View Slide

  15. 最⼤カット問題に対する貪欲法
    • もう1つ頂点集合 を⽤意する.
    • 頂点 を頂点集合 と に加えた際のカット重みの増加量の⼤き
    い⽅に加える.
    • 各辺 は貪欲法で各頂点 を頂点集合に加える際にちょ
    うど1回だけ評価されるので,カット重みの増加量の合計は全て
    の辺の重み合計 の1/2以上となる.
    15

    View Slide

  16. 最⼤カット問題に対する局所探索法
    • 任意の頂点集合 から始めて,カット重みが増加するなら頂点 を
    頂点集合 から取り除く,頂点 を頂点集合 に加える⼿続きを繰
    り返す.
    • 頂点 を頂点集合 から取り除いたときのカット重みの変化は
    • 局所探索法が終了した時点で,各頂点 は以下の式を満たし,カッ
    ト重みの合計は全ての辺の重み合計 の1/2以上となる.
    16
    *残念ながら,局所探索法は多項式時間アルゴリズムではない.

    View Slide

  17. 巡回セールスマン問題
    • 都市の集合 と2都市 の距離 が与えられる.
    • 全ての都市をちょうど1回ずつ訪問した後に出発した都市に戻る
    路を巡回路と呼ぶ.
    • 距離が最⼩となる巡回路を求めたい.
    17
    2都市 の距離 (定数)
    都市 の次に都市 を訪問する→ , 訪問しない→ (変数)

    View Slide

  18. 巡回セールスマン問題の近似困難性
    • ⼀般の巡回セールスマン問題において「最適巡回路の 倍以下の巡
    回路が存在するか︖」という問題はNP完全問題である.
    • 巡回セールスマン問題に対する -近似アルゴリズム が存在すると,
    アルゴリズム を⽤いてハミルトン閉路問題が解けてしまう︕
    18
    ハミルトン閉路
    問題の⼊⼒
    巡回セールスマン
    問題の⼊⼒
    ハミルトン閉路問題を
    巡回セールスマン問題に
    変換するアルゴリズム
    巡回セールスマン問題の
    -近似アルゴリズム
    ハミルトン閉路問題を
    解くアルゴリズム
    Yes / No

    View Slide

  19. 巡回セールスマン問題の近似困難性
    • ハミルトン閉路問題を巡回セールスマン問題に変換する
    ü ハミルトン閉路が存在する ⇔ 最適解の巡回路⻑
    ü ハミルトン閉路が存在しない ⇔ 最適解の巡回路⻑
    どの巡回路も距離 の枝を少なくとも1本通るので,最適解の巡回路⻑
    は となる.
    • ここで, -近似アルゴリズムを適⽤すると…
    ü ならば → より
    ü ならば → 巡回路の枝の距離は全て1なので
    19
    ハミルトン閉路問題 巡回セールスマン問題
    がグラフの枝
    otherwise
    都市 間の距離

    View Slide

  20. 巡回セールスマン問題に対する⽊⼆重化法
    • 貪欲法を⽤いて最⼩全域⽊を求める(クラスカル法,プリム法など).
    • 最⼩全域⽊に沿って全ての都市を巡回する*.
    • ⼀度訪れた都市は⾶ばして全ての都市を⼀度だけ訪問するように巡回
    路を繋ぎ替える.
    20
    最⼩全域⽊ 最適巡回路
    最⼩全域⽊に沿って
    全ての都市を訪問
    出⼒された巡回路
    各都市を⼀度ずつ
    訪問するように修正
    MST(I) OPT(I)
    2MST(I)
    A(I) < 2MST(I) < 2OPT(I)
    A(I)
    *同じ都市を複数回訪れても構わないので正確には巡回路ではない.

    View Slide

  21. 巡回セールスマン問題に対する最近追加法
    • 部分巡回路 に都市を1つずつ追加する操作を繰り返す.
    • 部分巡回路 からの距離 が最⼩となる都市iを選ぶ.
    • 都市jと隣接する都市kの間の辺 を繋ぎ替えて巡回路を更新する.
    • 部分巡回路 の距離は最⼩全域⽊に対する2倍以下となる.
    21
    部分巡回路T
    枝 もしくは
    枝 を繋ぎ替える
    最近挿⼊法
    が最⼩となる都市 の間に
    都市 を挿⼊するように辺を繋ぎ替える.

    View Slide

  22. クリストフィードの近似解法
    • 貪欲法を⽤いて最⼩全域⽊を求める(クラスカル法,プリム法など)
    • 次数が奇数の都市に対する最⼩重みマッチングを求める(主双対法など).
    • 選んだ枝に沿って全ての都市を巡回する.
    • ⼀度訪れた都市は⾶ばして全ての都市を⼀度だけ訪問するように巡回
    路を繋ぎ替える.
    22
    最⼩全域⽊
    最適巡回路
    最⼩重みマッチング
    最⼩全域⽊で
    次数が奇数の都市
    出⼒された巡回路
    MST(I)
    OPT(I)
    A(I)
    MWM(I)
    A(I) < MST(I)+MWM(I) < 3/2OPT(I)

    View Slide

  23. 頂点被覆問題
    • 無向グラフ と各頂点 の重み が与えられる.
    • 辺 が頂点集合 に含まれる少なくとも1つの頂点
    に接続するとき,頂点集合 を頂点被覆と呼ぶ.
    • 頂点の重みの合計 が最⼩となる頂点被覆 を求めたい.
    23
    頂点 の重み (定数)
    頂点 が集合 に含まれる→ , 含まれない→ (変数)
    最⼩の頂点被覆
    最⼩ではない頂点被覆

    View Slide

  24. 頂点被覆問題に対する貪欲法
    • 各反復において頂点集合 に被覆されている辺集合を とする.
    • まだ選択されていない頂点 の費⽤効果を とする.
    • 費⽤効果が最⼩となる頂点を全ての辺が被覆されるまで繰り返す.
    頂点被覆問題に対する貪欲法は -近似解法である.
    • 頂点 により新たに被覆された辺 の価格を
    と定義すると貪欲法の解の⽬的関数値は
    と表せる.
    • ある反復において辺 が新たに被覆される直前では,最適解に含
    まれ貪欲法に選ばれていない頂点集合 より,辺 を含む
    被覆されていない 本の辺を⾼々 の重みで被
    覆できるため,まだ選択されていない頂点の中に
    以下の費⽤効果を持つ頂点が存在する.
    24
    * は調和級数と呼ぶ.

    View Slide

  25. 頂点被覆問題に対する貪欲法
    • 各反復では費⽤効果の値が最⼩となる頂点を選ぶため,辺 の価
    格 は 以下となる.
    25

    View Slide

  26. 頂点被覆問題に対する主双対法
    • 線形計画緩和問題の双対問題は以下の通り.
    • ここで,主問題と双対問題の解が最適であるための必要⼗分条件
    は以下の通り.
    26

    View Slide

  27. 頂点被覆問題に対する主双対法
    • を双対問題の最適解とする.頂点集合
    は頂点被覆問題の実⾏可能解である.
    • 頂点集合 に対応する実⾏可能解 をとすると,以下の式が成り⽴つ.
    27

    View Slide

  28. 頂点被覆問題に対する主双対法
    • 各頂点の被役費⽤を と定義する.
    • 被覆されていない辺 を選ぶ. とする.
    , , と更新する.
    28

    View Slide

  29. 頂点被覆問題に対する丸め法
    • 線形計画緩和問題の最適解を とする.このとき整数解 を以下
    の通りに定義する.
    • 線形計画緩和問題の最適解は任意の辺 に対して
    を満たすため,どの辺においても少なくとも⼀⽅の
    頂点は頂点集合に 含まれる.
    29

    View Slide

  30. ナップサック問題に対する動的計画法
    • 詰め込んだ荷物の価値の合計をちょうど , 詰め込む荷物の候補
    を に制限した上で,詰め込んだ荷物の重さ合計を最⼩化
    する部分問題を考える.
    • この部分問題の最適値は以下の漸化式で得られる.
    30

    View Slide

  31. ナップサック問題に対する動的計画法
    • この動的計画法では価格 を0から最適値の上界 まで
    調べる.
    31
    ٧ΊࠐΜͩՙ෺ͷՁ֨ͷ߹ܭ
    ՙ

    View Slide

  32. ナップサック問題に対する動的計画法
    • 最適値の上界 が極端に⼤きい場合は,動的計画法の計
    算⼿間が増⼤して実⽤的ではなくなる.
    • 各荷物の価値 の価値 を定数 で割り整数値に切り
    下げた価値 に変更した問題例に動的計画法を適⽤する.
    • より が成り⽴つ.よって,任意の実⾏
    可能解 に対して以下の式が成り⽴つ.
    • 動的計画法で求めた解を とすると以下の式が成り⽴つ.
    32

    View Slide

  33. 参考⽂献
    • V.V.Vazirani, Approximation Algorithms, Springer, 2001. (浅野
    孝夫 (訳), 近似アルゴリズム, 丸善出版, 2012.)
    • D.P.Williamson, D.B.Shmoys, The Design of Approximation
    Algorithms, Cambridge University Press, 2011. (浅野孝夫 (訳),
    近似アルゴリズムデザイン, 共⽴出版, 2015.)
    • 浅野孝夫, 近似アルゴリズム︓離散最適化問題への効果的アプロー
    チ, 共⽴出版, 2019.
    • B.Korte, J.Vygen, Combinatorial Optimization: Theory and
    Algorithms (5th ed), Springer, 2012. (浅野孝夫, 浅野泰仁, ⼩野
    孝男, 平⽥富夫 (訳), 組合せ最適化︓理論とアルゴリズム (2版), 丸
    善出版, 2012.)
    33

    View Slide