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

What is the NP-hardness

Shunji Umetani
December 16, 2020

What is the NP-hardness

組合せ最適化問題を語る上で避けて通れないのが「NP困難問題」です.NP困難問題の定義は「指数時間アルゴリズムが存在する問題」でも「多項式時間アルゴリズムが存在しない問題」でもないのですが誤解する人が大変多く,プレスリリースの「NP困難問題が解けました!」という見出しを読むたびにしかめ面をしています.私自身も計算理論の専門家と言うわけではありませんが,組合せ最適化に取り組むにあたり必要な知識を簡単にまとめました.

Shunji Umetani

December 16, 2020
Tweet

More Decks by Shunji Umetani

Other Decks in Education

Transcript

  1. 計算の複雑さとNP困難
    ⼤阪⼤学 ⼤学院情報科学研究科
    梅⾕ 俊治
    2020年12⽉15⽇

    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. 問題の難しさの評価
    • 問題(problem)の難しさとは︖
    • アルゴリズム(algorithm)によって求解に必要な計算時間は異なる.
    • 問題例(instance)によって求解に必要な時間は異なる.
    • アルゴリズムの性能︓「全て」の問題例に適⽤した際の最悪計算時間
    • 問題の難しさ︓「全て」のアルゴリズムの最良計算時間
    4
    問題S 問題Sを解く
    アルゴリズムの集合
    A1
    問題例I1
    *このスライドでは簡単のため問題例の規模は全て同じものと考えている.

    View Slide

  5. アルゴリズムの計算量の評価
    • 計算量(computational complexity)
    ü 問題例の⼊⼒データの⻑さ に対して
    アルゴリズムの実⾏に必要な計算時間(時間量)
    アルゴリズムの実⾏に必要なメモリ領域の⼤きさ(領域量)
    をそれぞれ を引数とする関数で表したもの*.
    • オーダー表記
    ü アルゴリズムの細部の違いを除外して計算量 を評価するため
    の記法.
    ü はオーダー と呼び,ある正の定数 と が
    存在して, となる に対して常に が成⽴する
    ことを表す.
    例えば, , , などは全て と表せる.
    5
    *以降では計算量については時間量のみ議論する.

    View Slide

  6. 簡単な問題と難しい問題
    • 多項式時間アルゴリズム(polynomial time algorithm)
    ü 多項式オーダーの時間計算量を持つアルゴリズム.
    ü 多項式オーダー︓引数 に対してある定数 を⽤いて と書ける
    関数.
    例えば, , , , , など.
    • クラスP(polynomial time solvable)
    ü 多項式時間アルゴリズムが存在する問題の集合
    ü 例えば,最短路問題,割当問題など.
    • 難しい問題とは︖
    ü 指数時間で解けるではなく「多項式時間で解けない」ことを⽰したい︕
    ü 多項式時間アルゴリズムが存在しないことを証明するのは⾮常に困難.
    6
    簡単な問題
    クラスNP完全,NP困難問題

    View Slide

  7. 問題の複雑さのクラス
    • 決定問題(decision problem)
    ü 出⼒データの⻑さは計算量に含めたくない → Yes/Noを出⼒する問題
    ü 例えば,巡回セールスマン問題で「⻑さが 以下となる巡回路は存在
    するか︖」を問う決定問題を作れる.
    • 多項式時間変換(polynomial transformation)
    ü 問題Aを問題Bに変換する多項式時間アルゴリズムを与える.
    ü 例えば,ハミルトン閉路問題で,辺のある頂点間の距離を0,それ以
    外の頂点間の距離を1とすれば,巡回セールスマン問題に変換できる.
    ü 問題Bが多項式時間で解ける → 問題Aが多項式時間で解ける.
    7
    ハミルトン閉路問題
    全ての頂点をちょうど⼀度ずつ通過
    して出発点に戻る路が存在するか︖

    View Slide

  8. 問題の複雑さのクラス
    • 決定問題(decision problem)
    ü 出⼒データの⻑さは計算量に含めたくない → Yes/Noを出⼒する問題
    ü 例えば,巡回セールスマン問題で「⻑さが 以下となる巡回路は存在
    するか︖」を問う決定問題を作れる.
    • 多項式時間変換(polynomial transformation)
    ü 問題Aを問題Bに変換する多項式時間アルゴリズムを与える.
    ü 例えば,ハミルトン閉路問題で,辺のある頂点間の距離を0,それ以
    外の頂点間の距離を1とすれば,巡回セールスマン問題に変換できる.
    ü 問題Bが多項式時間で解ける → 問題Aが多項式時間で解ける.
    8
    問題A
    問題Aを問題Bに変換する
    多項式時間アルゴリズム
    問題B
    問題Bを解く
    アルゴリズム
    Yes / No
    問題Aを解くアルゴリズム
    (問題Aの難しさ) (問題Bの難しさ)が⽰せる

    View Slide

  9. クラスNP
    • クラスNP(non-deterministic polynomial time solvable)*
    ü 問題例に対する出⼒がYesの場合に,その証拠が正しいことを多項式
    時間でチェックできる問題の集合.
    ü 処理の分岐に達したときに都合の良い⽅を選んで処理を進める⾮決
    定性計算の下で,多項式時間で解ける問題の集合に由来する.
    ü 定義より「クラスP クラスNP」である.
    9
    1
    2 3
    4
    5
    6
    7 8
    9
    10 答えYesに対する証拠 P = {1,2,7,3,4,9,6,8,10,5}
    1. 全ての頂点をただ⼀度だけ通過しているか︖
    2. 通過した各頂点間に枝はあるか︖
    *決して「non-polynomial time solvable」ではないので要注意.
    実務に現れる多くの組合せ問題はクラスNPに含まれる
    ハミルトン閉路問題

    View Slide

  10. NP完全問題
    • NP完全問題(NP-complete problem)
    ü ⼀⾔でいえば「クラスNPの中で最も難しい問題」
    ü クラスNPに含まれる全ての問題を問題Aに多項式時間変換できるとき,
    問題AをNP完全問題と呼ぶ.
    • クック・レビンの定理(Cook-Levin theorem)
    ü 充⾜可能性問題(satisfiability problem; SAT)はNP完全問題である.
    10
    クラスNP
    充⾜可能性問題
    ハミルトン閉路問題
    頂点被覆問題
    多項式時間変換
    巡回セールスマン問題
    SAT以降は多項式時間変換で
    NP完全性を証明できる
    クック・レビンの定理

    View Slide

  11. NP困難問題
    • NP困難問題(NP-hard problem)
    ü ⼀⾔でいえば「NP完全問題と同等以上に難しい問題」
    ü NP完全問題から多項式時間変換が可能な問題の集合.
    例えば,巡回セールスマン問題(決定問題)から巡回セールスマン問
    題(最適化問題)に多項式時間変換できる.
    ü クラスNPに含まれない問題も該当する.
    11
    実務に現れる多くの組合せ最適化問題はNP困難
    クラスNP
    NP完全問題 NP困難問題

    View Slide

  12. P≠NP問題
    • 数学における最⼤の未解決問題の1つ.
    • クラスNPの定義より「クラスP クラスNP」.
    • あるNP完全問題に対して多項式時間アルゴリズムが存在すれば,
    「クラスP=クラスNP」が⽰される.
    • 数多くのNP完全問題が知られているにも関わらず,多項式時間で
    解けた問題は1つもない︕
    • おそらくP≠NPであろうと予想する研究者は多いが「NP完全問題
    は多項式時間で解けない」ことの証明はやはり⾮常に困難.
    12
    クラスP クラスNP完全
    クラスNP
    P≠NP?
    クラスP=NP
    P=NP?

    View Slide

  13. NP困難な組合せ最適化問題の解法
    • 厳密解法(exact algorithm)
    ü 任意の問題例に対して最適解を1つ出⼒する.指数時間アルゴリズム.
    例︓列挙法,分枝限定法,動的計画法など.
    • 近似解法(approximation algorithm)*
    ü 任意の問題例に対する性能保証を持つ実⾏可能解を1つ出⼒する.そ
    の多くは多項式時間アルゴリズム.
    例︓貪欲法,動的計画法など.
    • 発⾒的解法(heuristic algorithm)
    ü 最適値に対する性能保証が⽰されていない実⾏可能解を1つ出⼒する
    アルゴリズム.
    例︓貪欲法,局所探索法,メタヒューリスティクスなど.
    13
    *近似解法と発⾒的解法を区別なく全て近似解法と呼ぶこともある.
    特に,前者を性能保証付き近似解法と呼ぶこともある.

    View Slide

  14. 参考⽂献
    • M.R.Garey, D.S.Johnson, Computers and Intractability: A
    Guide to the Theorey of NP-Completeness, W.H.Freeman &
    Company, 1979.
    • 渡辺治,今度こそ分かるP≠NP予想,講談社,2014.
    14

    View Slide