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

An Introduction to Combinatorial Optimization through Traveling Salesman Problem

Shunji Umetani
November 26, 2019

An Introduction to Combinatorial Optimization through Traveling Salesman Problem

巡回セールスマン問題を中心に組合せ最適化問題に対する性能保証つき近似解法,発見的解法およびメタヒューリスティクスを紹介します.

Shunji Umetani

November 26, 2019
Tweet

More Decks by Shunji Umetani

Other Decks in Education

Transcript

  1. 組合せ最適化⼊⾨
    巡回セールスマン問題を中⼼に
    ⼤阪⼤学 ⼤学院情報科学研究科
    梅⾕ 俊治
    2019年7⽉19⽇

    View full-size slide

  2. 講演の概要
    • 組合せ最適化問題とその応⽤
    • 組合せ最適化問題の難しさ
    • 巡回セールスマン問題に対する近似解法と発⾒的解法
    • メタヒューリスティクス
    2

    View full-size slide

  3. 講演の概要
    • 組合せ最適化問題とその応⽤
    • 組合せ最適化問題の難しさ
    • 巡回セールスマン問題に対する近似解法と発⾒的解法
    • メタヒューリスティクス
    3

    View full-size slide

  4. 数理最適化による問題解決アプローチ
    • ビッグデータが取得・処理できた︕ビッグデータが分析できた︕
    ところで,どうやって意思決定・問題解決を実現すれば良い︖
    • 数理最適化は意思決定・問題解決のための1つの⼿段*.
    • 最適化問題=制約条件を満たす解の中で⽬的関数を最⼩(最⼤)に
    する解を求める問題.
    • 最適化問題に定式化+アルゴリズムの開発・適⽤+(近似)最適解
    の分析・検証+最適化モデルの検証.
    4
    現実世界 数理の世界
    ⾃動翻訳
    電⼒運⽤
    医療診断
    最適化
    物流・配送計画
    資産運⽤
    信号処理
    制御
    機械学習
    待ち⾏列
    数値解析
    情報理論
    学術から産業まで幅広い分野の事例が
    最適化問題に定式化できる
    *個⼈的には,数理最適化がAIと銘打ってプレスリリースされる事例が少なくない気がします.

    View full-size slide

  5. 数理最適化による問題解決アプローチ
    • ビッグデータが取得・処理できた︕ビッグデータが分析できた︕
    ところで,どうやって意思決定・問題解決を実現すれば良い︖
    • 数理最適化は意思決定・問題解決のための1つの⼿段*.
    • 最適化問題=制約条件を満たす解の中で⽬的関数を最⼩(最⼤)に
    する解を求める問題.
    • 最適化問題に定式化+アルゴリズムの開発・適⽤+(近似)最適解
    の分析・検証+最適化モデルの検証.
    5










    (


    )






    定式化
    アルゴリズムの
    開発と適⽤
    分析・検証
    最適化モデルの修正
    *個⼈的には,数理最適化がAIと銘打ってプレスリリースされる事例が少なくない気がします.

    View full-size slide

  6. 最適化問題に定式化する
    • あるワイン⽣産⼯場では,3種類のブドウ,カベルネ,メルロー,
    セミヨンを原料として,3種類のワイン,⾚ワイン,⽩ワイン,
    ロゼワインを製造している.
    • 収益が最⼤となる各ワインの製造量 を求めよ.
    6
    種類 ⾚ワイン ⽩ワイン ロゼワイン 最⼤供給量
    カベルネ 2 0 0 4(t)
    メルロー 1 0 2 8(t)
    セミヨン 0 3 1 6(t)
    収益 3 4 2 (百万円)
    → 収益を最⼤化
    → カベルネの使⽤量は4t以内
    → メルローの使⽤量は8t以内
    → セミヨンの使⽤量は6t以内
    → 各ワインの製造量は⾮負
    maximize 3x1
    + 4x2
    + 2x3
    subject to 2x1
     4,
    x1
    + 2x3
     8,
    3x2
    + x3
     6,
    x1
    , x2
    , x3
    0.

    View full-size slide

  7. 線形計画問題と整数計画問題
    • 線形計画問題(Linear Program; LP)
    ü 線形制約の下で線形関数を最⼩化(最⼤化)
    • 整数計画問題(Integer Program; IP)
    ü 広義︓変数に整数条件の付いた最適化問題
    ü 狭義︓線形計画問題+変数の整数条件
    7
    連続変数と整数変数が混
    在する問題は,混合整数
    計画問題(Mixed Integer
    Program; MIP)
    LPの実⾏可能領域
    IPの実⾏可能領域
    MIPの実⾏可能領域
    のようにベクトルと⾏列を⽤いて書く場合も多い.

    View full-size slide

  8. 組合せ最適化問題とその応⽤事例
    • 組合せ最適化問題=探索空間が離散的であるもしくは離散的な
    ものに減らせる最適化問題,解が集合,順序,割り当て,グラ
    フ,論理,整数などの離散構造で記述される場合が多い.
    8
    多くの現実問題が組合せ最適化問題に定式化できる

    View full-size slide

  9. 講演の概要
    • 組合せ最適化問題とその応⽤
    • 組合せ最適化問題の難しさ
    • 巡回セールスマン問題に対する近似解法と発⾒的解法
    • メタヒューリスティクス
    9

    View full-size slide

  10. 組合せ最適化問題の難しさ
    • n都市をちょうど1回ずつ訪問する最短の巡回路を求める巡回セー
    ルスマン問題の解候補を列挙すると 通り.
    10
    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 full-size slide

  11. 問題の難しさの評価
    • 問題(problem)の難しさとは︖
    • アルゴリズム(algorithm)によって求解に必要な計算時間は異なる.
    • 問題例(instance)によって求解に必要な計算時間は異なる.
    • アルゴリズムの性能︓「全て」の問題例に適⽤した際の最悪計算時間
    • 問題の難しさ︓「全て」のアルゴリズムの最良計算時間
    11
    問題S 問題Sを解く
    アルゴリズムの集合
    A
    1
    問題例I
    1
    *このスライドでは問題例の規模は全て同じものと考える.

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  14. 決定問題と最適化問題
    • 決定問題(decision problem)
    ü 出⼒データ⻑は計算量に含めたくない → Yes/Noを出⼒とする問題
    ü 計算の複雑さの理論では決定問題について考えることが多い.
    14
    ハミルトン閉路問題
    全ての頂点をちょうど⼀度ずつ通過
    して出発点に戻る路が存在するか︖
    巡回セールスマン問題(最適化問題)
    最短の巡回路を求めよ
    巡回セールスマン問題(決定問題)
    ⻑さK以下の巡回路は存在するか︖

    View full-size slide

  15. 問題の複雑さのクラス
    • 多項式時間変換(polynomial time transformation)
    ü 問題Aを問題Bに変換する多項式時間アルゴリズムを与える.
    ü 例えば,ハミルトン閉路問題で,辺のある頂点間の距離を0,それ以外
    の頂点間の距離を1とすれば,巡回セールスマン問題に変換できる.
    ü 問題Bが多項式時間で解ける → 問題Aが多項式時間で解ける.
    15
    「問題Bの複雑さ ≧ 問題Aの複雑さ」が⽰せる
    問題A
    問題Aを問題Bに変換する
    多項式時間アルゴリズム
    問題B
    問題Bを解く
    アルゴリズム
    Yes / No
    問題Aを解くアルゴリズム

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  21. 講演の概要
    • 組合せ最適化問題とその応⽤
    • 組合せ最適化問題の難しさ
    • 巡回セールスマン問題に対する近似解法と発⾒的解法
    • メタヒューリスティクス
    21

    View full-size slide

  22. 近似解法の評価
    • 以下の条件を満たすアルゴリズムAをR
    A
    -近似アルゴリズムと呼ぶ.
    ü アルゴリズムAは多項式時間アルゴリズム.
    ü 問題例IにアルゴリズムAを適⽤して得られた解の⽬的関数値をA(I),最
    適値をOPT(I)とするとき,任意の問題例Iに対して以下の式が成⽴する.
    • NP困難問題は,さらに以下の3つのクラスに分類できる.
    ü どんなに⼩さな正の定数εに対しても(1+ε)近似アルゴリズムが存在する.
    ü ある定数εに対して(1+ε)近似アルゴリズムが存在するが,定数εに下限
    が存在する.
    ü 定数近似アルゴリズムが存在しない*.
    22
    *正確には,定数近似アルゴリズムが存在すればNP完全問題が多項式時間で解ける.
    最⼤化問題ならば

    View full-size slide

  23. 近似解法の精度保証
    • 同時に緩和問題を解いて下界も求めるアルゴリズムを設計できれば,
    任意の問題例に対して精度を保証できる場合がある*.
    • 緩和問題︓原問題の⼀部の制約条件を緩めた問題
    • 線形計画緩和問題︓整数変数の整数条件を外す→線形計画問題
    23



    最適値
    上界
    下界 実⾏不可能
    実⾏可能
    整数計画問題 線形計画緩和問題
    ⽬的関数値
    線形計画緩和問題の実⾏可能領域
    整数計画問題の実⾏可能領域
    *独⽴に緩和問題を解いて下界を求めれば,近似解の精度を(保証はできないが)評価できる.

    View full-size slide

  24. ナップサック問題
    • 最⼤でc(>0)の重さまで荷物を詰め込める袋が1つとn個の荷物が
    与えられる.重さの合計がcを超えない範囲で荷物の価値の合計が
    最⼤となる詰込み⽅は︖
    24
    袋に詰め込める重さ合計の上限(定数)
    荷物iの重さ(定数)
    荷物iの価値(定数)
    荷物iを袋に詰め込む→x
    i
    =1, つめ込まない→x
    i
    =0(変数)
    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 full-size slide

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

    View full-size slide

  26. ナップサック問題の1/2-近似解法
    • 下記の2通りの解の⽬的関数値の良い⽅をA(I)とする
    ü LP緩和解から(k+1)番⽬の荷物を除いて得られる解 → 貪欲法
    ü 最も価値の⾼い荷物を1つだけ詰めて得られる解
    • LP緩和解の最適値をLP(I)とすると
    26
    以上より

    View full-size slide

  27. 巡回セールスマン問題
    • 都市の集合と各2都市間の移動コスト(例えば距離)が与えられた
    とき,全ての都市をちょうど⼀度ずつ訪問し,出発した都市に
    戻る巡回路の中で総移動コストが最⼩となるものを求める問題.
    • ⾮対称TSP︓都市間の距離が向きにより異なっても良い.
    • 対称TSP︓都市間の距離は向きによらず同じ.
    • △TSP︓都市間の距離が三⾓不等式を満たす.
    • ユークリッドTSP︓都市はd次元空間内の点,都市間の距離は
    2点間のユークリッド距離で与えられる.
    27
    Newsweek, July 26, 1954 PCB3038
    D15112
    ⼀般
    特殊
    基板のドリル⽳あけ計画,
    配送計画などの応⽤を持つ

    View full-size slide

  28. 巡回セールスマン問題の近似困難性
    • ⼀般の巡回セールスマン問題では以下の定理が成⽴する.
    • 「最適巡回路のr倍以下の巡回路が存在するか︖」という問題はNP完
    全問題である.
    • 巡回セールスマン問題に対するr近似アルゴリズムAが存在すると,ア
    ルゴリズムAを⽤いてハミルトン閉路問題が解けてしまう︕
    28
    ハミルトン閉路
    問題の⼊⼒I
    ハミルトン閉路問題を
    巡回セールスマン問題
    に変換するアルゴリズム
    巡回セールスマン問題の
    r近似アルゴリズム
    Yes / No
    巡回セールスマン
    問題の⼊⼒Iʼ
    多項式時間の
    変換アルゴリズムが作れる

    View full-size slide

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

    View full-size slide

  30. 巡回セールスマン問題に対する解法*
    • 構築法(construction method)
    ü 最⼩全域⽊を⽤いた2-近似解法,Christofidesの1.5-近似解法
    ü 最近追加法,最近挿⼊法
    ü 最近近傍法
    ü 貪欲法
    ü 節約法
    ü 凸包挿⼊法
    ü Karpの分割法
    ü その他
    • 改善法(improvement method)
    ü 2-opt法,3-opt法,Or-opt法
    ü Lin-Kernighan法
    ü 焼きなまし法
    ü 遺伝的アルゴリズム
    ü タブー探索法
    ü その他
    30
    *ここでは,近似解法と発⾒的解法のみ紹介している.

    View full-size slide

  31. 最⼩全域⽊を⽤いた2-近似解法
    • 貪欲法を⽤いて最⼩全域⽊を求める(クラスカル法,プリム法など).
    • 最⼩全域⽊に沿って全ての都市を巡回する*.
    • ⼀度訪れた都市は⾶ばして全ての都市を⼀度だけ訪問するように巡回
    路を繋ぎ替える.
    31

    最⼩全域⽊ 最適巡回路

    最⼩全域⽊に沿って
    全ての都市を訪問
    出⼒された巡回路
    各都市を⼀度ずつ
    訪問するように修正
    MST(I) OPT(I)
    2MST(I)
    A(I) < 2MST(I) < 2OPT(I)
    A(I)
    *同じ都市を複数回訪れても構わないので正確には巡回路ではない.

    View full-size slide

  32. 最⼩全域⽊問題
    • 有向グラフG=(V,E),各辺 (i,j)∈E の⻑さc
    ij
    >0が与えられる.
    • グラフGの全点を繋ぐ辺の部分集合T⊆Eで距離の和が最⼩のものは︖
    • クラスカル法,プリム法など多項式時間アルゴリズムが存在する.
    32
    3
    5
    4
    2
    3
    2
    3
    1
    2
    3
    4
    最⼩全域⽊
    閉路を持つ辺集合
    閉路を持つと距離の
    和は最⼩にならない
    全点を繋いでいない辺集合

    View full-size slide

  33. クラスカル法
    • 距離の⼩さい順に辺を追加する.
    • 各反復では閉路ができないように距離最⼩の辺を追加する.
    33
    2 5
    7
    9 8
    9
    4
    2 5
    7
    9 8
    9
    4
    2 5
    7
    9 8
    9
    4
    2 5
    7
    9 8
    9
    4
    2 5
    7
    9 8
    9
    4
    2 5
    7
    9 8
    9
    4

    View full-size slide

  34. プリム法
    • 適当な点sを根とし辺を⼀つずつ追加して⽊を成⻑させる.
    • 各反復では閉路ができないように距離最⼩の辺を追加する.
    34
    2 5
    7
    9 8
    9
    4
    2 5
    7
    9 8
    9
    4
    2 5
    7
    9 8
    9
    4
    2 5
    7
    9 8
    9
    4
    2 5
    7
    9 8
    9
    4

    View full-size slide

  35. 最近追加法(2-近似アルゴリズム)
    • 部分巡回路Tに都市を1つずつ追加する操作を繰り返す.
    • 部分巡回路Tからの距離d(T,i)が最⼩となる都市iを選ぶ.
    • 都市jと隣接する都市kの間の辺(k,j)を繋ぎ替えて巡回路を更新する.
    35
    部分巡回路T
    枝(k,j)もしくは
    枝(j,l)を繋ぎ替える
    最近挿⼊法
    d(i,k)+d(i,j)-d(k,j)が最⼩となる都市k,jの間に
    都市iを挿⼊するように辺を繋ぎ替える.

    View full-size slide

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

    View full-size slide

  37. 最近近傍法*
    • 出発する都市を適当に選ぶ.
    • いま訪問している都市から最も近い未訪問の都市に移動する.
    • 全ての都市を訪問したら出発した都市に戻る.
    37
    *データマイニングにおけるk-近傍法と名前が似ているので注意すること.

    View full-size slide

  38. 貪欲法
    • 部分閉路が⽣じたり,各都市の次数が2を超えないように,距離の
    短い枝から順に加える.
    38
    部分巡回路
    次数が2を
    超える都市

    View full-size slide

  39. 節約法*
    • 適当な都市を選び(都市0とする),そこから全ての都市を往復する
    巡回路を考える.
    • 都市0以外の各都市間(i,j)について,都市i,jを繋ぐことで削減できる
    距離(セービング値)を計算し,セービング値の降順に整列する.
    • 巡回路ができるまでセービング値の降順に都市の組i,jを繋ぐ.
    39
    都市0
    都市i 都市j
    都市0
    都市i 都市j
    セービング値
    *時間枠付き配送計画問題では節約法が使われる場合が多い.

    View full-size slide

  40. 節約法
    40
    2
    1 3
    1
    4
    4
    セービング値
    =2+3-1=4
    2
    1 3
    4
    4
    1 5
    セービング値
    =4+4-5=3
    2
    1 3
    4
    4 5
    1
    3
    セービング値
    =1+4-3=2
    2
    1 3
    4
    5
    1
    3
    3
    セービング値
    =3+1-3=1
    2
    1
    4
    5
    3
    3
    • 適当な都市を選び(都市0とする),そこから全ての都市を往復する
    巡回路を考える.
    • 都市0以外の各都市間(i,j)について,都市i,jを繋ぐことで削減できる
    距離(セービング値)を計算し,セービング値の降順に整列する.
    • 巡回路ができるまでセービング値の降順に都市の組i,jを繋ぐ.

    View full-size slide

  41. 凸包挿⼊法
    • 凸包=全ての頂点を含む最⼩の凸多⾓形
    • 都市の凸包を初期の部分巡回路とする.
    • 部分巡回路上にない各都市kについて min{c
    ik
    +c
    kj
    -c
    ij
    } を部分巡回路
    上の連続した都市i,jについて計算し,挿⼊する場所を求める.
    • 上記で求めたi,j,kの組について min(c
    ik
    +c
    kj
    )/c
    ij
    を達成するi*,j*,k*を
    求めて,都市k*を都市i*,j*の間に挿⼊する.
    41

    View full-size slide

  42. Karpの分割法
    • 各都市をバケットに⼊れて,バケット毎の最適な巡回路を求める.
    • 各バケットから代表都市を選出し,代表都市に対する巡回路を求める.
    • バケット毎の巡回路と代表都市に対する巡回路を合わせる.
    • ⼀度訪れた都市は⾶ばして全ての都市を⼀度だけ訪問するように巡回
    路を繋ぎ替える.
    42

    View full-size slide

  43. 構築法の実験的評価
    • 100都市の問題例5題に対して,各構築法を実⾏したときの最適値か
    らの誤差(%)を⽐較.
    43
    問題番号/都市数
    解法 24/100 25/100 26/100 27/100 28/100 平均
    Christofides(1.5-近似) 7.53 3.93 5.36 14.44 8.51 7.95
    最近挿⼊法(2-近似) 18.69 17.81 22.96 14.44 20.33 18.85
    最近近傍法 16.67 16.88 13.35 16.51 13.27 15.34
    節約法 1.62 3.77 6.37 3.41 2.85 3.60
    最遠近傍法 5.14 6.97 3.17 1.99 7.42 4.94
    凸包挿⼊法 3.64 2.52 2.54 2.35 3.45 2.90
    出典︓ E.L.Lawler, J.K.Lenstra, A.H.G.Rinnooy and D.B.Shmoys,“The Traveling
    Salesman Problem”, John-Wiley and Sons (1985)

    View full-size slide

  44. 局所探索法
    • 適当な初期解 x から始めて,現在の解 x の近傍 xʼ∈NB(x)に改善解
    があれば移動する(近傍探索).
    • 勾配法では微分∇f(x)を⽤いるが,局所探索法では差分 Δf(x) = f(xʼ)
    – f(x)を⽤いて探索⽅向を決定する.
    • 0-1整数計画問題の近傍の例
    ü 1-flip近傍︓xj
    =0→1 (or 1→0)
    ü 2-flip近傍︓xj1
    =1→0, xj2
    =0→1
    44
    初期解
    局所最適解
    近傍
    初期解の⽣成
    近傍解の⽣成と評価
    近傍内に改善解あり︖
    改善解に移動
    局所最適解
    yes
    no

    View full-size slide

  45. 2-opt法
    • 現在の巡回路から辺を2本交換する.
    • 巡回路を順列で表現している場合は⼀部を反転する操作に対応する.
    45
    巡回順
    順列を反転

    View full-size slide

  46. 3-opt法, Or-opt法
    • 3-opt法︓現在の巡回路から辺を3本交換する.
    • Or-opt法︓部分路を別の場所に挿⼊する.
    46
    3-opt近傍の例
    Or-opt近傍の例
    *時間枠付き配送計画問題ではOr-opt法が使われる場合が多い.

    View full-size slide

  47. Lin-Kernighan法*
    • 巡回路⻑が短くなる間は,続けて繋ぎ替えることで近傍解を⽣成する.
    47
    i1
    i2
    i1
    i2
    i1
    i2
    i3
    i4
    i1
    i4
    i3
    i2
    =
    i1
    i4
    i6
    i5
    *基本的なアイデアの紹介のみです.

    View full-size slide

  48. 2-opt法の効率化
    • 現在の巡回路から辺{i
    1
    ,i
    2
    }と{i
    3
    ,i
    4
    }を除き,辺{i
    2
    ,i
    3
    }と{i
    4
    ,i
    1
    }を加える
    2-opt近傍の操作を考える.
    • [Step1] 辺{i
    1
    ,i
    2
    }を削除して{i
    2
    ,i
    3
    }を追加し,[Step2] 辺{i
    3
    ,i
    4
    }を削除
    して{i
    1
    ,i
    4
    }を追加すると2段階に分ける.
    • が成り⽴つためには ,
    の少なくとも⼀⽅が成⽴しているはず.
    • 削除する辺{i
    1
    ,i
    2
    }を決めたら追加する辺{i
    2
    ,i
    3
    }は を満たす
    辺に限定する.
    48

    View full-size slide

  49. 2-opt法の効率化
    • 最適巡回路は近隣の都市間を繋ぐ枝を含む場合が多い.
    • 各都市に対して近隣にある都市を列挙して隣接リストに保持する.
    • 平⾯上の巡回セールスマン問題であれば,k-d⽊などのデータ構造を
    ⽤いて近隣にある都市を⾼速に検索できる.
    49
    1
    2
    3
    4
    5
    6 7
    8
    9
    10
    11
    12
    13
    15
    16
    14
    2,3,5,16
    領域分割を繰返して都市を
    クラスタに分割する
    1,3,4
    2,4,5
    1,2,4,5 3,16,15,14 6,7,10,11 8,9,13,12
    cutdim=x
    cutval=x(14)
    cutdim=y
    cutval=y(2)
    cutdim=y
    cutval=y(6)
    ⽣成されたk-d⽊

    View full-size slide

  50. 改善法の実験的評価
    • 平⾯上にランダムに都市を配置した問題例に対するHeld-Karp下界値
    からの誤差(%)(上表)と計算時間(秒)(下表).
    50
    %!$

    (&"



    '#"




    %!$

    (&"
    '#"












    出典︓ E.L.Lawler, J.K.Lenstra, A.H.G.Rinnooy and D.B.Shmoys,“The Traveling
    Salesman Problem”, John-Wiley and Sons (1985)

    View full-size slide

  51. 講演の概要
    • 組合せ最適化問題とその応⽤
    • 組合せ最適化問題の難しさ
    • 巡回セールスマン問題に対する近似解法と発⾒的解法
    • メタヒューリスティクス
    51

    View full-size slide

  52. メタヒューリスティクス
    • ヒューリスティクス
    üもともとは発⾒的法則,経験則に基づく問題解決の⽅法を指
    す.それが転じて,最適化問題における最適性の保証のない
    アルゴリズムの総称として呼ばれる.
    • メタヒューリスティクス
    ü最適化問題に対する実⽤的なアルゴリズムを設計するための
    ⼀般的な枠組み(レシピ集),もしくはそのような考え⽅に従っ
    て設計された様々なアルゴリズムの総称として呼ばれる.
    üアニーリング法,タブー探索法,遺伝アルゴリズムを始めと
    して多くの探索戦略が提案されている.
    ü⾃然現象にアナロジーを持つ⼿法が多いが,⾃然現象を模倣
    すればアルゴリズムの性能が良くなるわけではない.
    52

    View full-size slide

  53. メタヒューリスティクス
    • 多くの最適化問題は近接最適性(良い解の近くに良い解がある)と
    多峰性(局所最適解が多数存在する)を持つ.
    • 近似解法の基本戦略は貪欲法(構築法)と局所探索法(改善法).
    • 貪欲法や局所探索法などの基本的な⼿法に様々な⼿法を組み合わ
    せて,探索の集中化と多様化をバランス良く実現する.
    • 計算の効率化,探索空間の削減,問題構造の利⽤など,アルゴリ
    ズム,最適化,離散数学の知識を活⽤すれば⾼性能なメタヒュー
    リスティクスを開発できる.
    53
    解空間





    ⼤域最適解
    局所最適解

    View full-size slide

  54. メタヒューリスティクスの実現
    • メタヒューリスティクスが向いている場合
    ü厳密な最適解を求めるのが困難である
    効率的な解法が知られている or 問題規模が⼗分に⼩さい場合は向か
    ない.
    ü解の評価が⾼速にできる
    評価関数がblack-boxで評価にシミュレーションや実験を要する場合
    は向かない.
    ü近接最適性が成り⽴つ
    微⼩な変形で評価関数の値が⼤きく変わる場合は向かない.
    • メタヒューリスティクスの多くは局所探索法の⼀般化なので,まず
    は⾼性能な局所探索法を設計することが重要.
    • 局所探索法では,探索空間,解の評価,近傍の定義,移動戦略など
    の各要素を注意深く設計することで⾼性能なアルゴリズムを実現で
    きる.
    54

    View full-size slide

  55. 探索空間
    • 問題によっては実⾏可能領域とは異なる探索空間を定義する⽅が有効
    な場合も多い.
    • 探索空間の定義は⼤きく以下の3通りに分類できる.
    a. 実⾏可能解のみ探索する.
    b. 実⾏不可能解も含めて探索する →実⾏不可能解の評価が必要
    c. 解空間とは異なる探索空間を導⼊して,探索空間から解空間へ
    の写像を⽤いて探索する.
    55
    a. 実⾏可能解のみ探索 b. 実⾏不可能解も探索 c. 解空間と異なる探索空間を導⼊
    実⾏可能領域
    実⾏不可能領域
    実⾏可能領域
    探索空間
    解空間

    View full-size slide

  56. 実⾏不可能領域の探索
    • 実⾏可能解を1つ⾒つけることも⾮常に難しい問題も少なくない.
    • 制約条件を緩和して実⾏不可能解も探索空間に含める.
    • 各制約iに対する違反度に重みwiを掛けた値をペナルティとして⽬的関数に加
    える.
    • ペナルティ重みwiの設定は容易ではないので適応的に調整する.(実⾏可能領
    域の境界近辺を集中的に探索できると嬉しい)
    56
    各制約式の重みパラメー
    タを適応的に増減しつつ
    探索する
    違反度
    実⾏不可能領域
    実⾏可能領域
    有望な解が含まれる領域

    View full-size slide

  57. 解空間と異なる探索空間
    • ⻑⽅形詰込み問題の例
    ü BL法(Bottom-Left Algorithm)︓順列σの順にBL点に⻑⽅形を配置する.
    ü BL点︓配置可能な最も低い位置の中で最も左の位置.
    ü 順列σ全ての集合を探索空間として,対応する配置の⽬的関数でσを評価
    する.
    57
    1 2 3 4 5
    6
    7 8
    1 2 3
    4 5
    6
    7
    8
    s : 1 2 3 4 5 6 7 8 の場合
    1
    2
    3
    4
    5
    6
    7
    8
    s : 8 7 6 5 4 3 2 1 の場合
    1
    2
    3
    4
    5
    6
    7
    8

    View full-size slide

  58. 移動戦略
    • 近傍内に改善解は複数存在するので,近傍の探索順序や改善解の選択
    で局所探索法の振る舞いは⼤きく変わる.
    • 即時移動戦略
    ü 近傍内の解をランダムあるいは⼀定の順序で調べて,最初に⾒つかった
    改善解に移動する.
    • 最良移動戦略
    ü 近傍内の全ての解を調べた上で最良の改善解に移動する.
    • 適当な初期解から始めて局所最適解にたどり着くまでの時間は即時移
    動戦略の⽅が短い.
    • 即時移動戦略では,近傍内の解の探索順序が局所探索法の性能に影響
    をあたえるので,近傍内の探索に極端な偏りが⽣じないように実装す
    る必要がある.
    58

    View full-size slide

  59. 評価関数の計算の効率化
    • 近傍操作ではごく少数の変数のみ値が変化するため,現在の解xと近
    傍解 xʼ ∈NB(x) の間で値が変化した変数に関わる部分のみ再計算す
    れば,評価関数値の変化量 Δz(x) = z(xʼ) – z(x) を⾼速に計算でき
    る場合が多い.
    • 局所探索法では,近傍内の解を評価する回数に⽐べて,現在の解が移
    動する回数ははるかに少ないので,補助記憶の更新に多少時間がか
    かっても,全体では⼗分な⾼速化が実現できる.
    59
    評価関数の変化量 補助記憶 係数⾏列
    補助記憶を利⽤すれば
    定数時間で計算できる
    疎な⾏列だと効率良く
    補助記憶が更新できる
    本来は⽬的関数と制約条
    件の評価に⼊⼒サイズの
    計算量が必要
    A b
    c

    View full-size slide

  60. メタヒューリスティクスの枠組み
    • 局所探索法を1回適⽤しただけでは精度の悪い局所最適解しか得られ
    ないので,探索の集中化と多様化を実現する⼿法を導⼊する.
    • 集中化︓過去の探索で得られた良い解に似通った構造を持つ解を集中
    的に探索する.
    • 多様化︓探索が狭い領域で停滞するのを避けるために,未探索の領域
    を強制的に探索する.
    60
    ① 複数の初期解に対して局所探索法を適⽤する.
    a. ランダムに初期解を⽣成する.
    b. 貪欲法を適⽤する.
    c. 過去の探索で得られた良い解に変形を加える.
    ② 改悪解への移動を許容して局所最適解から探索を再開する.
    ③ ⽬的関数 f と異なる評価関数を解の評価に⽤いて探索を制御する.

    View full-size slide

  61. 多スタート局所探索法
    • ランダムに⽣成した解を初期解として局所探索法を適⽤する⼿続き
    を終了条件が満たされるまで繰返し,終了時点における最良解を出
    ⼒する.
    • 各試⾏が独⽴なため,局所探索法の反復回数を増やしてもより良い
    解が得られる効果は急速に⼩さくなる.
    61
    解空間





    View full-size slide

  62. ランダム化貪欲法
    • 貪欲法にランダム性を組み込むことにより多様な解を構築する.
    • 構築された解を局所探索法で改善する.
    • 巡回セールスマン問題の例︓
    1. 適当な都市を選ぶ
    2. 最も近い都市へ移動する
    3. 全ての都市を訪問したら終了
    • ランダム性を組み込む⽅法 → ステップ2を修正
    2. 近い⽅から3番⽬までの都市をランダムに選ぶ
    2ʼ. 距離に反⽐例した確率で選ぶ
    2ʼʼ. 最も近い都市への距離の1.1倍以内の都市から選ぶ
    62

    View full-size slide

  63. アント法
    • ランダム性を導⼊した貪欲法において,部分解の評価に過去の探索で
    得た知⾒(フェロモン)を⽤いる.
    • 良い解に含まれる枝に得点を与える.総距離︓⼩ → 得点︓⼤
    • 距離が⼩さく得点の⼤きい枝を⾼確率で選ぶ.
    • 得点は蓄積する.ただし,古い得点は徐々に減る.
    63
    総距離: 80 総距離: 65 総距離: 70
    67.5
    70
    65
    80 80
    枝{i,j}を含む解の総距離が
    短い傾向 → 都市間の距離dij
    が多少⻑くても選ばれ易くな
    るように確率を制御

    View full-size slide

  64. 反復局所探索法
    • 良い解(例︓暫定解)にランダムな摂動(キック)を加えて得られる解を
    初期解として,局所探索法を適⽤する⼿続きを繰返し⾏う.
    • 実装やパラメータの調整が簡単なので使い勝⼿が良い.
    64
    解空間





    局所探索では2-opt近傍
    キックにdouble bridge近傍

    View full-size slide

  65. 可変近傍探索法
    • 初期解⽣成⽤のランダムな摂動(キック)に複数の操作を⽤意
    • キック前の局所最適解sB
    ,キック後の局所最適解sA
    • 解sA
    が解sB
    より悪い ® 解sB
    に戻り,キックを⼤きく
    • 解sA
    が解sB
    より良い ® 解sA
    より探索を続⾏.キックを⼩さく
    65
    局所最適解sA
    近傍探索
    初期解⽣成
    局所最適解sB

    View full-size slide

  66. 遺伝的アルゴリズム
    • 染⾊体の交叉や突然変異によって新しい世代の個体が形成され,
    弱い個体が淘汰されて強い個体が⽣き残るという,⽣物進化の
    メカニズムを最適化に応⽤したアルゴリズム.
    66
    解集合P
    新たな解集合Q
    交叉 突然変異
    淘汰
    次世代集合P¢
    繰返し
    新しい個体を局所探索法で改
    善する⽅法は,遺伝的局所探
    索法もしくはミームアルゴリ
    ズムと呼ばれる.

    View full-size slide

  67. アニーリング法
    • 近傍内からランダムに解を選び,改善なら移動し,改悪ならその
    度合と温度に応じた確率で移動する.
    • 遷移確率は,物理現象の焼きなまし(annealing)にアイデアを借
    りて,温度と呼ばれるパラメータtにより調整する.
    • 時間の経過に従ってt→0となり改悪時の遷移確率は限りなく0に
    近づく.
    67
    解空間





    遷移確率
    0
    1

    View full-size slide

  68. タブー探索法
    • 近傍内で最も良い解(改悪であっても)常に移動する.
    • 探索済みの解に後戻りする巡回(cycling)を防ぐため,タブーリスト
    を⽤いて後戻りを「しばらくの間」禁⽌する.
    68
    解空間





    1
    2
    3
    4
    5
    現在の解 タブーリスト(⻑さ3)
    1 - - -
    2 1 - -
    3 1 2 -
    4 1 2 3
    5 2 3 4
    6 3 4 5
    6
    タブーリストにある解には移動できない
    近傍内からタブーリスト
    にある解を除いたものを
    次の移動先の候補とする

    View full-size slide

  69. タブー探索法
    • 解そのものをタブーリストに記憶すると…
    • ⽣成した解がタブーリストに含まれるかどうかチェックが⼤変
    • 禁⽌できるのがその解だけなので同じ領域内を巡回する
    • 解そのものではなく移動にともなう属性(attribute)を記憶する.
    69
    例︓解が0-1ベクトルで表される場合
    解1. 1 0 1 1 0 0 1
    解2. 1 0 1 0 0 0 1
    1反転近傍により
    解1から解2に移動
    このビットを再び1に戻す
    ことをしばらく禁⽌
    a b
    c d
    a b
    c d
    例︓2-opt近傍の場合
    (1) 都市aを使う近傍操作を禁⽌する
    (2) 加えられた枝ab,cdを除く操作を禁⽌
    (3) 除かれた枝ad,bcを加える操作を禁⽌
    (4) j番⽬の都市dおよび,k番⽬の都市bを
    それぞれj番⽬,k番⽬に置く操作を禁⽌

    View full-size slide

  70. 4
    誘導局所探索法
    • 現在の局所最適解の評価値が悪くなるように評価関数を変形する.
    • 直前の局所最適解が局所最適でなくなり探索が継続する.
    • 例︓巡回セールスマン問題
    ü 局所最適解に⽤いられている枝の中で距離が⼤きくペナルティの⼩さな
    ものにペナルティを追加する.
    ü ペナルティ付きの距離の総和を評価関数とする.
    70
    解空間





    1
    2
    3
    4
    解空間





    1
    2 3
    5
    6
    7
    変形後の評価関数

    View full-size slide

  71. 本⽇のまとめ
    • 組合せ最適化問題とその応⽤
    • 組合せ最適化問題の難しさ
    • 巡回セールスマン問題に対する近似解法と発⾒的解法
    • メタヒューリスティクス
    71

    View full-size slide

  72. 参考⽂献
    • M.R.Garey, D.S.Johnson, Computers and Intractability: A Guide to the Theorey
    of NP-Completeness, W.H.Freeman & Company, 1979.
    • V.V.Vazirani, Approximation Algorithms, Springer, 2001. (浅野孝夫(訳),近似アル
    ゴリズム,丸善出版,2012.)
    • E.Aarts, K.Lenstra (eds.), Local Search in combinatorial optimization, Princeton
    University Press, 1997.
    • M.Gendreau, J.-Y.Potvin(eds.), Handbook of Metaheuristics (3rd ed.), Springer,
    2019.
    • 渡辺治,今度こそ分かるP≠NP予想,講談社,2014.
    • ⼭本芳嗣,久保幹雄,巡回セールスマン問題への招待,朝倉書店,1997.
    • 柳浦睦憲,茨⽊俊秀,組合せ最適化―メタ戦略を中⼼として―,朝倉書店,2001.
    • 久保幹雄,J.P.ペドロソ,メタヒューリスティクスの数理,共⽴出版,2012.
    • 梅⾕俊治,メタヒューリスティクス事始め︓まずは局所探索法から,オペレーション
    ズ・リサーチ,58 (2013),689-694.
    • 今堀慎治,柳浦睦憲,概説メタヒューリスティクス,オペレーションズ・リサーチ,
    58(2013),695-702.
    72

    View full-size slide