PowerPoint プレゼンテーション - ORIST · 2020-07-28 · 次回以降の予定 第2回(2019年12月5日) 「知的財産権保護関連のセミナー」 第3回(2020年1月10日)
問題解決の数理(’17)maps17/15/15Metahuristics_note.pdf ·...
Transcript of 問題解決の数理(’17)maps17/15/15Metahuristics_note.pdf ·...
1
問題解決の数理( ’17)• 収録本番とは多少異なっていることがあります.
• 内容の間違いのご指摘は歓迎します.
• 「完全に無保証」です.
2
• 今回の講義では,メタヒューリスティクスについてお話します.
• これまでに,数理最適化法の研究が盛んに行われていて,年々規模の大きな問題を解くことができるようになっていることについて述べてきました.
• 一方,複雑な問題が解けるようになると,さらに複雑な問題が次々と出現してきます.
3
• 現時点で,厳密解を計算するのが難しい複雑な問題に対しては,質の良い近似解を効率的に得るのは,現実的な解決手段と言えるでしょう.
• そのような解法についても盛んに研究されています.
• 今回は,質の良い近似解を得るための方法群であるメタヒューリスティクスのうちの幾つかの手法についてお話します.
4
• 必ずしも最適解が得られるわけではないが,多くの場合ある程度のレベルの近似解が得られる手法は,発見的手法,あるいはヒューリスティック解法,ヒューリスティクスと呼ばれます.
5
メタヒューリスティクス
ヒューリスティクス
• 必ずしも最適解が得られるわけではないが,多くの場合,ある程度のレベルの近似解が得られる手法… 発見的手法,ヒューリスティック解法
• 欲張り法など
• 例えば,欲張り法は最小木問題においては最適解が得られることが保証されていますが,組み合わせ最適化問題一般において最適解が得られる保証はありません.
• しかし,欲張り法は近似解法としては,様々な問題に適用することができます.
• 発見的手法の中で,欲張り法は多くの問題に適用できますが,発見的手法は特定の問題にのみ有効なものも沢山あります.
6
メタヒューリスティクス
• 局所最適解に捕捉されることを防ぐための発見的手法の枠組み群で,特定の問題に,限定されず汎用的に適用できる
• 代表的な枠組みに,局所探索法,タブー探索法,遺伝的アルゴリズム,焼きなまし法,ニューラルネットワーク,蟻コロニー最適化,粒子群最適化,…
• メタヒューリスティクスとは,局所最適解に捕捉されることを防ぐための発見的手法の枠組み群で,特定の問題に限定されず汎用的に適用できます.
• ヒューリスティクスを超えたと言う意味でメタヒューリスティクスと呼ばれます.
• 代表的な枠組みに,局所探索法,タブー探索法,遺伝的アルゴリズム,焼きなまし法,ニューラルネットワーク,蟻コロニー最適化,粒子群最適化などがあります.
7
• 今回はこれらの中から幾つかの枠組みを紹介しますが,その前に適用例に使用する問題として,巡回セールスマン問題と呼ばれる問題を紹介し,定式化を行います.
• 巡回セールスマン問題,略称で TSPと呼ばれることも多いですが,この問題は計算量が大きく,様々な手法の性能評価用の課題としても用いられます.
8
メタヒューリスティクス
巡回セールスマン問題 (TSP)
• 点は都市,表の数字は都市間の距離を表す• セールスマンがこれら 5つの都市を 1回ずつ通って巡回する時の最短経路を求めよ
1 2 3 4 51 0 2 4 4 32 2 0 5 3 33 4 5 0 3 14 4 3 3 0 35 3 3 1 3 0
• 図における点は都市,表の数字は都市間の距離を表します.
• セールスマンがこれら 5つの都市を 1回ずつ通って巡回する時の最短経路を求めよ…という問題です.
• 5つの都市を 1回ずつ通って巡回するというのは,…,5つの都市を 1回ずつ通って,最初の都市に戻って来るということです.
• 例えば,都市1からスタートして,2,3,4,5と回り,最後に1に戻るという経路です.
• 5つの都市を1回ずつ通って巡回する経路は,最初の都市が5通りで,それが決まれば,2番目の都市は4通り,3番目の都市は3通り,4番目の都市は2通り,5番目の都市は1通りあることから,全部で5の階乗,すなわち120通りの巡回経路があります.
9
メタヒューリスティクス
巡回セールスマン問題 (TSP)
• 0-1整数最適化問題として定式化• 都市の集合を V,都市の数を n
• 都市 iから都市 jが巡回路に含まれるとき xij = 1,含まれないとき xij = 0
• 都市 iと都市 jの間の距離を cij
• 総移動距離 zは
z =∑i∈V
∑j∈V
cijxij
• この巡回セールスマン問題を 0-1整数最適化問題として定式化します.
• 都市の集合を V,都市の数を nとします.
• 決定変数 xijは,都市 iから都市 jが巡回路に含まれるとき xij = 1,含まれないとき xij = 0をとるとします.
• 都市 iと都市 jの間の距離を cijとします.
• 目的関数 zは移動距離の総和ですから,cijかける xij の総和になります.
• この zを最小化します.
• 次に制約条件を定式化します.
10
メタヒューリスティクス
巡回セールスマン問題 (TSP)
• 各都市には 1回だけ他の 1都市から入る∑i∈V
xij = 1 (j = 1, 2, · · · , n)
• 各都市からは 1回だけ別の 1都市に出ていく∑j∈V
xij = 1 (i = 1, 2, · · · , n)
• セールスマンは各都市を 1回だけ訪れます.
• すなわち,各都市には他の都市のうちの一つだけからセールスマンが入ります.
• そこで,各都市 jに関して,入りの合計,すなわち xijの iに関する和は 1となります.
• 同様に,各都市から他の都市のうちの一つだけにセールスマンが出ていきます.
• そこで,各都市 iに関して,出の合計,すなわち xijの jに関する和は 1となります.
• これで制約は十分そうに思えるかもしれませんが,これだけでは制約として不十分です.
11
メタヒューリスティクス
巡回セールスマン問題 (TSP)
• 一部の都市だけで巡回路ができてはいけない• 巡回路ができない … 枝の数が点の数より少ない• TSPはすべての都市を通る巡回路を求める問題• V のすべての真部分集合 S ⊊ V (S ⊂ V )に関して∑
i∈S
∑j∈S
xij ≤ |S| − 1
• これだけの制約ですと,下の図のように全都市ではなく,一部の都市で巡回路ができる可能性があります.
• そこで,このような部分巡回路ができないような制約を加える必要があります.
• 巡回路ができない条件は,全都市の集合 V の,空集合を除く,すべての部分集合 Sにおいて,枝の数が点の数より少ないことです.
• この問題では,全都市を巡回する巡回路は必要ですから,V の部分集合のうち,V 自身を除くすべての真部分集合Sにおいて,枝の数が点の数より少ないことが部分巡回路ができない条件となります.
12
メタヒューリスティクス
巡回セールスマン問題 (TSP)
最小化 z =∑i∈V
∑j∈V
cijxij
制約条件∑i∈V
xij = 1 (j ∈ V )∑j∈V
xij = 1 (i ∈ V )∑i∈S
∑j∈S
xij ≤ |S| − 1, (S ⊊ V )
xij ∈ {0, 1}, (i, j ∈ V )
• 以上をまとめますと,巡回セールスマン問題は,このように 0-1整数最適化問題として,定式化されます.
13
メタヒューリスティクス
巡回セールスマン問題 (TSP)
• n都市のTSPは (n− 1)!/2通りの巡回路が存在
• すべての巡回路を調べるのは不可能
• 欲張り法では最適解が得られない
• 代表的な難しい問題
• 巡回セールスマン問題は,0-1整数最適化問題としてすっきりと定式化できましたが,問題を解くのは簡単ではありません.
• 先ほど,5都市の順回路は5の階乗通りあるとお話しました.
• n都市の場合,nの階乗通りの順回路が存在します.
14
メタヒューリスティクス
巡回セールスマン問題 (TSP)
• 点は都市,表の数字は都市間の距離を表す• セールスマンがこれら 5つの都市を 1回ずつ通って巡回する時の最短経路を求めよ
1 2 3 4 51 0 2 4 4 32 2 0 5 3 33 4 5 0 3 14 4 3 3 0 35 3 3 1 3 0
• ただし,冗長な巡回路が存在します.
• 例えば,巡回路 1, 2, 3, 4, 5, 1と巡回路 2, 3, 4, 5, 1, 2は同じ巡回路とみなすことができます.
• 最初の都市はどこでもよいので,最初の都市を指定すれば,巡回路の数は n分の 1になります.
• 例えば,巡回路 1, 2, 3, 4, 5, 1と逆周りの 1, 5, 4, 3, 2, 1は同じ巡回路と見なすことができます.
• また,順序を反転させた巡回路も,距離という観点では,同じ巡回路と見なすことができます.
15
メタヒューリスティクス
巡回セールスマン問題 (TSP)
• n都市のTSPは (n− 1)!/2通りの巡回路が存在
• すべての巡回路を調べるのは不可能
• 欲張り法では最適解が得られない
• 代表的な難しい問題
• 以上のことから,n都市の場合,実質 (n − 1)の階乗,割る 2通りの巡回路が存在するということになります.
• したがって,5都市なら 12通りの巡回路になります.
• しかし,10都市なら 18万 1440通り,20都市なら 10の 16乗通り,100都市になると,なんと 10の 155乗通りという凄まじい数の巡回路が存在します.
• そういう訳で,都市数が多くなると,すべての巡回路を調べるのは不可能です.
• また,欲張り法では最適解を得られません.
• こういったことから,巡回セールスマン問題は代表的な難しい問題ですが...現在では都市数が 1万を超える巨大な問題が解けたという報告もあり,まったく歯が立たない問題ではなくなっています.
• ま,そのことはさておき,今回は,巡回セールスマン問題を例にメタヒューリスティクスを適用していきます.
16
局所探索法
17
• ここでは,メタヒューリスティクスの中でも最も基本的な方法である局所探索法についてお話します.
• 局所探索法は,現在の解の近傍により良い解がないか探し,もしより良い解があれば,その近傍にさらに良い解がないか探して,解の改良を行う手法です.
18
局所探索法
• 目的関数 f(x)を最小化
• 任意の実行可能解 xの一部分を変更して得られる解の集合N(x) … xの近傍
• f(x1, x2, x3) x1, x2, x3 ∈ {0, 1}
N1(1, 0, 1) = {(1, 0, 0), (1, 1, 1), (0, 0, 1)}
• ここでは,目的関数 f(x)を最小化する問題を考えます.
• 任意の実行可能解 xの一部分を変更して得られる解の集合を xの近傍と呼び,N(x)と書くことにします.
• 近傍は問題に応じて適切な定義を与えます.
• 例えば,目的関数が f(x1, x2, x3)で,決定変数が 0-1の二値をとるとします.
• 三つの決定変数,x1, x2, x3のうちの一つだけ 0-1の値を反転させるという近傍が考えられます.
• そうしますと,(1, 0, 1)の近傍は,(1, 0, 0) , (1, 1, 1), (0, 0, 1)の三つとなります.
• x1, x2, x3のうちの一つないしは二つの 0-1の値を反転する近傍は六つとなります.
19
局所探索法
(0) 初期解 xを選ぶ
(1) xの近傍N(x)の中に f(x′) < f(x)を満たす実行可能解 x′を選ぶそのような実行可能解 x′が存在しなければ,xを解として出力して終了
(2) x← x′として (1)へ
• 局所探索法のアルゴリズムを示します.• まず,(0)では初期解 xを選びます.
• (1)では,解 xの近傍N(x)の中に f(x′) < f(x)を満たす,すなわち xより良い実行可能解 x′を選びます.• そのような実行可能解x′が存在しなければ,xより良い解はないということで,xを最適解として出力して終了します.• xより良い実行可能解 x′が存在した時には (2)へ進みます.
• (2)では,x′をあらたに xとして,以降 (1)と (2)を繰り返します.
20
局所探索法
• 近傍を大きくとると,より良い解が見つかる可能性が大きくなるが,探索に要する計算量も大きくなる
• f(x′) < f(x)を満たす x′が見つかった時点で直ちにそれを xとすれば,近傍内での最適解を見つけられない可能性
• f(x′)を最小にする x′を選ぶのは計算量を要する
• 局所探索法を実際に適用するには,問題に適した近傍を具体的に定義する必要があります.
• 一般に,近傍を大きくとると,より良い解が見つかる可能性が大きくなりますが,探索に要する計算量も大きくなります.
• また,探索に要する計算量には x′の選び方も影響します.
• xより良い解 x′が見つかった時点で直ちにそれを新しい xとすれば,近傍内での最適解を見つけられない可能性があります.
• しかし,f(x′)を最小にする x′を選ぶには計算量を要します.
21
局所探索法
ナップサック問題への適用
• n個の品物
• 品物 iは重さ aiで価値が ci
• ナップサックに最大で重さ bまで詰められる
• 価値の合計が最大になるには,どの品物を詰めるべきか
• 局所探索法を第 14回で取り上げたナップサック問題に適用します.• ナップサック問題は次のような問題です.• n個の品物があります.品物 iの重さ aiで,価値は ciです.• ナップサックには最大で重さ bまで品物を詰めることができます.• 価値の合計が最大になるように,ナップサックに品物を詰めるには,どの品物を詰めればよいか,という問題です.
22
局所探索法
ナップサック問題への適用
• 品物 iをナップサックに詰める時は xi = 1詰めない時は xi = 0
• 解 x = (x1, x2, x3, x4) = (1, 1, 1, 0) が得られている
• xの 1成分の 0と 1を反転させた解の集合N1(x)
N1(1, 1, 1, 0) = {(0, 1, 1, 0), (1, 0, 1, 0), (1, 1, 0, 0), (1, 1, 1, 1)}
• 品物 iをナップサックに詰める時は xi = 1,詰めない時は xi = 0とします.
• 品物が 4種類として,解 x = (x1, x2, x3, x4) = (1, 1, 1, 0) が得られているとします.
• xの 1成分の 0と 1を反転させた解の集合N1(x),すなわちN1近傍は,ここに示す 4種類です.
23
局所探索法
ナップサック問題への適用
• 品物 iをナップサックに詰める時は xi = 1詰めない時は xi = 0
• 解 x = (x1, x2, x3, x4) = (1, 1, 1, 0) が得られている
• xの 1成分の 0と 1を反転させた解の集合N2(x)
N2(1, 1, 1, 0) = {(0, 0, 1, 0), (0, 1, 0, 0), (0, 1, 1, 1),(1, 0, 0, 0), (1, 0, 1, 1), (1, 1, 0, 1)}
• xの 2成分の 0と 1を反転させた解の集合N2(x),すなわちN2近傍は,ここに示す 6種類です.
24
局所探索法
ナップサック問題への適用
• 100変数ナップサック問題 100問
1. 欲張り法
2. 欲張り法 + N1近傍探索
3. 欲張り法 + N1 ∪N2近傍探索
• 局所探索法の効果を調べるため,100変数のナップサック問題 100問を解かせてみました.
• 条件は 3種類で,一つ目は欲張り法です.
• 二つ目は,欲張り法で得た解を初期解として,N1近傍を局所探索させました.
• 三つ目は,欲張り法で得た解を初期解として,N1近傍とN2近傍の和集合を局所探索させました.
25
• 計算結果をグラフに示します.
• 横軸は 100問の各試行,縦軸は計算で得られた目的関数の最大値を示しています.
• 黒い四角は欲張り法の結果,赤い丸はN1近傍の局所探索の結果,青い三角はN1とN2近傍の局所探索の結果を示しています.
• また,3本の横線は,各条件の 100試行の平均値を表しています.
• 欲張り法より,欲張り法を初期解として,局所探索を行った方がより良い解が得られ,N1近傍のみより,N2近傍まで探索する方が良い解が得られるのは論理的に必然です.
• N1近傍を局所探索することにより,欲張り法で得た解より目的関数の値が約 2倍まで増加しています.
• 一方,N2近傍まで探索範囲を拡張しても,その効果は小さいという結果になりました.
26
局所探索法
TSPへの適用
• 巡回路 xから隣り合わない 2本の枝を取り除き,別の 2本の枝を加えて得られる巡回路 x′の集合N(x)… 2-opt近傍
=⇒
• 巡回セールスマン問題における近傍の定義の仕方に k-opt近傍と呼ばれるものがあります.
• 巡回路xから隣り合わない 2本の枝を取り除き,別の 2本の枝を加えて得られる巡回路x′の集合をN(x)と定義する場合,その近傍は 2-opt近傍と呼ばれます.
• 巡回路xから隣り合わない 3本の枝を取り除き,別の 3本の枝を加えて得られる近傍は 3-opt近傍と呼ばれます.
• 同様に,巡回路xから隣り合わない k本の枝を取り除き,別の k本の枝を加えて得られる近傍は k-opt近傍と呼ばれます.
• 図は 2-opt近傍の例を示しています.
• 左の図の巡回路から枝 (1, 4)と枝 (2, 5)を取り除きます.
• 巡回セールスマン問題の実行可能解として枝を張り直すには,枝 (1, 2)と枝(4, 5)を加えます.
• 他の枝の加え方では,実行可能解にはならないことをご確認下さい.
• それではもう一例見てみましょう.
27
局所探索法
TSPへの適用
• 巡回路 xから隣り合わない 2本の枝を取り除き,別の 2本の枝を加えて得られる巡回路 x′の集合N(x)… 2-opt近傍
=⇒
• この例では,左の図の巡回路から枝 (1, 3)と枝 (4, 5)を取り除きます.
• 巡回セールスマン問題の実行可能解として枝を張り直すには,枝 (1, 5)と枝(3, 4)を加えます.
• この例でも,他の枝の加え方では,実行可能解にはならないことをご確認下さい.
28
局所探索法
TSPへの適用
• 2-optでは,2本の枝を取り除いた場合,加える 2本の枝は一意に決まる
• 都市数が nのTSPにおいて,1つの巡回路に対して2本の枝の取り除き方は約 nC2通り … O(n2)存在
• 3-opt近傍等に比べると近傍が小さい
• 以上,巡回路xから隣り合わない 2本の枝を取り除き,別の 2本の枝を加えて得られる巡回路を近傍とするのが 2-opt近傍でした.
• 隣り合わない 2本の枝を取り除いた場合,巡回セールスマン問題の実行可能解として加える 2本の枝は,元々の解を除けば一意に決まります.
• 取り除く 2本の枝の選び方は,nから 2を選ぶ組み合わせの数,すなわち 2分の n(n− 1)から,隣り合う枝の組み合わせを除いた数になります.
• すなわち,nの二乗のオーダーになります.
29
局所探索法
k-opt近傍
• 巡回路から隣り合わない 3本の枝を取り除いて,別の 3本の枝を加える 3-opt近傍は,1つの巡回路に対してO(n3)存在• 巡回路から隣り合わない k本の枝を取り除いて,別の k本の枝を加える k-opt近傍は,1つの巡回路に対してO(nk)存在• 計算量と解の精度から 2-opt近傍や 3-opt近傍が用いられることが多い
• 3-opt近傍やそれ以上の k-opt近傍ではもっと大きな近傍になります.
• 結果だけを述べますと,k-opt近傍はの数は nの k乗のオーダーとなります.
• 先ほどもお話しましたように,k-optの kが大きいほど近傍は大きくなりますので,最適解が見つかる確率が上がりますが,計算量が大きくなりますので,2-opt近傍や 3-opt近傍が使われることが多いようです.ブレーク
30
タブー探索法
31
• 今度はタブー探索法と呼ばれる手法についてお話します.
• 局所探索法は近傍内により良い解が見つからなくなった時点で終了します.
• それより良い解を探すには,初期解を色々変えて探索を行うというのが,よく用いられる手法ですが,タブー探索法はこれとは異なるアプローチにより解の改善を図ります.
32
タブー探索法
• N(x)に xより良い解が見つからない時,改悪になっても解の更新を行う
• 探索の履歴をタブーリストに記録しておき,同じ解を繰り返し探索することを防ぐ
• タブーリストが巨大化すると計算量が大きくなるので,古い情報は削除してリストの巨大化を防ぐ
• タブー探索法は近傍N(x)にxより良い解が見つからない時に,解の改悪になっても解の更新を行い,より良い解を探索します.• この方法をそのまま実行すると,同じ解が繰り返し現れやすいので,探索の履歴をタブーリストに記録しておき,同じ解を繰り返し探索することを防ぐようにします.• ただし,すべての履歴を調べるのは,そのための計算量が大きくなりますので,古い情報は削除して計算量が大きくならないようにします.• 例を見てみましょう.
33
• 先ほどと同じ,100変数ナップサック問題を扱います.
• 横軸は解の更新回数で,縦軸は目的関数の値です.
• N1 近傍を局所探索すると,この例では約 30回で解の改善ができなくなります.
34
• 一方,タブー探索は解の改悪も許しますので,引き続き解の更新を続けます.
35
• この例では,局所探索で解の改善が止まった後も,解の改悪と改善を繰り返し,局所探索での上限の解より,さらに良い解に到達しています.
• ここでは,20回連続でこれまでの最良解を改善できなかった時点で探索を打ち切りましたが,さらに探索を続ければ,さらに解が改善される可能性はあります.
• ただし,計算時間は増大しますので,適当なところで探索を打ち切ります.
• タブー探索法のアルゴリズムは次の通りです.
36
タブー探索法
(0) Lを空に,Lに保持する履歴の最大値を nにする初期解 xを選ぶ
(1) N(x)において,x自身と Lの要素以外で最も良い解 x′を見つける
(2) xを Lに加えるLの要素数が nを超えたら,最も古い要素を取り除
くx← x′とする
(3) 終了条件を満たせば,xおよび Lの要素の中から最も良い解を出力して終了そうでなければ,(1)へ
• まず,(0)では,タブーリスト Lを空に,Lに保持する履歴の最大値 nを設定します.
• また,初期解 xを選びます.
• (1)では,解 xの近傍N(x)において,x自身とタブーリスト Lの要素以外で最も良い解 x′をみつけます.
• この場合,xより良い解がみつからない時は,解を改悪することになります.
• (2)では,元の解 xをタブーリスト Lに加えます.
• もし,Lの要素数が nを超えたら,Lから最も古い要素を取り除きます.
• そして,x′を新たな解 xとします.
• (3)では,終了条件を満たせば,xおよび Lの要素の中から最も良い解を出力して終了します.
• 終了条件を満たしていないなら,(1)へ戻り,以降 (1)から (3)を繰り返します.
37
タブー探索法
終了条件
• f(x)の値が一定以下に達する
• 反復回数が一定回数に達する
• より良い解に更新されないことが一定回数繰り返される
• 終了条件は色々考えられますが,例えば必ずしも最適である必要はなく,ある一定の目標値に達していれば良いという問題では,f(x) の値が目標値に達すれば終了する,ということが考えられます.
• 別の方法として,反復回数が一定回数に達したら終了するということも考えられます.
• 単純に反復回数で切ってしまいますと,解がどんどん改善されている途中で打ち切ってしまうという悔しいことになりますので,より良い解に更新されないことが一定回数繰り返されたら終了するという方法も考えられます.
• その他にも,問題の特性を生かして,様々な終了条件が考えられます.
• それから,アルゴリズムの説明で,終了条件を満たせば,現在の解xおよびタブーリスト Lの要素の中から最も良い解を出力とお話しました.
• この方法ですと,更新履歴の中で最も良かった解がタブーリストLから削除されて,それよりも悪い解が出力される可能性があります.
• この問題は,履歴中最も良い解は別に保存しておくことにより防ぐことができます.
38
タブー探索法
ナップサック問題への適用
• 100変数ナップサック問題 100問
1. 欲張り法 + N1近傍探索
2. 欲張り法 + N1 ∪N2近傍探索
3. 欲張り法 + N1近傍探索 + タブー探索法
• タブーリストのサイズ 7
• 20回連続で最良解を更新しないと終了
• 先ほどと同じ,100変数ナップサック問題 100問を,局所探索法とタブー探索法で解いて,解を比較しました.
• 局所探索法は,先ほどと同じで,欲張り法で初期解を求めて,それをN1近傍で局所探索,およびN1とN2近傍で局所探索させました.
• タブー探索法は,N1近傍をタブー探索させました.
• タブーリストのサイズは,余り大きくないほうが良い,とされていますので,今回は 7としました.
• また,20回連続でこれまでの最良解を改善できなければ探索を打ち切ることにしました.
39
• 100変数ナップサック問題を 100問解くのに、N1近傍の探索は約 2秒,N1
およびN2近傍の探索は約 300秒,N1近傍のタブー探索も約 300秒かかりました.
• 計算時間は使用している計算機の性能等にも依存しますので,相対値で考えて下さい.
• この例では,N1近傍のタブー探索が平均的に良い解を発見しています.
• タブー探索法は,単純で自由度が大きいので,様々な応用問題で利用され,成功例が報告されています.
40
遺伝的アルゴリズム
41
• 今度は,遺伝的アルゴリズムについてお話します.
• 遺伝的アルゴリズムは生物の進化を模倣した計算法です.
• 単純なアルゴリズムで効率的に質の良い近似解を求められることが多いことから,盛んに利用されています.
42
遺伝的アルゴリズム
• 環境に適合した形質を持つ個体が生き残り,多くの子孫を残す … とう
淘た
汰
• 子は両親の形質を一部ずつ受け継ぐ …こう
交さ
叉より環境に適合した形質をもつ個体が出現する可能性
• 突然変異により新たな特性を持つ個体が出現する… 突然変異
• 解を個体に見立てて,淘汰,交叉,突然変異を繰り返し,解を進化させる
• 繰り返しますが,遺伝的アルゴリズムは生物の進化を模倣した計算法です.
• より詳しくは,環境に適合した形質を持つ個体が生き残り,多くの子を残し,子は親の形質を一部ずつ受け継ぐため,世代交代を繰り返すたびに,環境に適合した個体の割合が大きくなり,高い確率でより適合した個体が出現する…という生物進化のプロセスを模倣します.
• 環境に適合した形質を持つ個体が生き残り,その結果環境に適合した形質を持つ個体が多くの子孫を残すことは,「淘汰」と呼ばれます.
• 有性生殖では,子は両親の形質を一部ずつ受け継ぎますが,遺伝的アルゴリズムでは両親の遺伝子の一部を交換した個体を生成することにより実現します.
• これを「交叉」と呼びます.
• さらに,突然変異により新たな特性を持つ個体が出現することもあります.
• 遺伝的アルゴリズムでは解を個体に見立てて,淘汰,交叉,突然変異を繰り返し,より良い解に進化させます.
43
遺伝的アルゴリズム
• 解である個体は遺伝子の文字列として表現される
0 1 2 0 1
• 解の質は個体の適合度として表される
• 適合度は目的関数の値を反映
• 適合度の高い個体ほど生き残り子孫を残す確率が高く,適合度の低い個体は死滅しやすい … 淘汰
• 淘汰は個体の集団内での適合度の分布にしたがい確率的に決定
• 問題の解である個体は遺伝子の文字列として表現されます.
• 実際に問題の解を表現する方法は問題に依存します.
• 具体例は後で示します.
• 解の質は個体の適合度として表現されます.
• 適合度は目的関数の値を反映しています.
• 最小化問題であれば目的関数の値が小さいほど適合度は高くなります.
• 適合度の高い個体ほど生き残り子孫を残す確率が高く,適合度の低い個体は死滅しやすく子孫を残す確率が低くなります.
• 淘汰は個体の集団内での適合度の分布にしたがい確率的に決定します.
44
遺伝的アルゴリズム
交叉
• 2つの個体間で遺伝子の組換えによって新しい個体を生成
1 1 0 0 1
0 1 1 1 0=⇒
1 1 0 1 0
0 1 1 0 1
• 切断される箇所が 1か所 … 1点交叉
• 先ほどお話しましたが,交叉は,2つの個体間で遺伝子の組換えによって新しい個体を生成することです.
• この例では,左の 2個体が親で,右の 2個体が子ですが,親の 4番目の遺伝子のところで,染色体…文字列が切断され,4番目以降の遺伝子がもう一方の個体の遺伝子と組みかえられて子が生成されています.
• この例のように,染色体が切断される箇所が 1箇所の場合 1点交叉といいます.
• 切断箇所が 2箇所の場合は 2点交叉といいます.
• 両親の特性が一部ずつ受け継がれるため,両者の優れた特性が受け継がれれば,さらに適合度の高い個体が生成される可能性が高くなります.
45
遺伝的アルゴリズム
突然変異
• 1つの個体の遺伝子の一部の値を別の値に置き換えることにより新しい個体を生成
• 集団内での遺伝子の多様性を保つ効果
1 1 0 0 1 =⇒ 1 1 0 1 1
• 交叉と淘汰により適合度の高い個体が集団を占めるようになりますが,これだけでは遺伝子の多様性が失われ,交叉しても適合度があまり高くならなくなってしまいます.
• そこで,1つの個体の遺伝子の一部の値を別の値に置き換えることにより新しい個体を生成し,遺伝子の多様性を保とうというのが突然変異です.
• この例では,4番目の遺伝子が 0から 1に置きかえられています.
46
遺伝的アルゴリズム
(0) 個体をN個生成(1) 各個体の適合度を計算(2) 適合度に応じた確率で個体を選択
遺伝的操作(交叉,突然変異)次世代の個体をN個生成
(3) 現世代の個体群を次世代の個体群で置き換える(4) 終了基準を満たせば,最も適合度の高い解を
出力して,終了そうでなければ,(1)へ
• アルゴリズムはこのようになります.• まず,(0)では個体をN 個生成します.
• Nが大きいほど遺伝子の多様性が大きくなり,より適合度の高い個体が出現する確率が高くなりますが,計算量が大きくなりますので,適切な数を選びます.• 次に,(1)では各個体の適合度を計算します.
• つづいて,(2)では適合度に応じた確率で次世代に子孫を残す個体を決定します.• 子は親の単なるコピーではなく,交叉や突然変異といった遺伝的操作を行い生成します.• 子はN 個に達するまで生成します.• (3)では,現世代,親の世代の個体群を次世代,子の世代の個体群で置き換えます.• (4)では,終了基準を満たせば,最も適合度の高い解を出力して,終了します.
• 終了基準を満たしていなければ,(1)へ戻り,以降 (1)から (4)を繰り返します.• 終了条件は色々考えられます.• 例えば,先ほどタブー探索法における終了条件として挙げたように,適合度が目標値に達したとか,繰り返し数が一定回数に達したとか,適合度が高くならないようになったとか,そういった基準など様々な基準が考えられます.• (2)の遺伝的操作について,少し付け加えます.
47
遺伝的アルゴリズム
(2) 適合度に応じて定められた確率で個体を選択し,それを基に次世代の個体を生成定められた確率で以下のいずれかの遺伝的操作を次世代の個体数がN個に達するまで繰り返す
• 2個体を選択して交叉• 1個体を選択して突然変異• 1個体を選択して逆位• 1個体を選択してコピー
• 遺伝的操作ですが,交叉の場合は,ランダムに 2個体を選んできて,交叉により 2個体を生成します.
• 突然変異の場合は,ランダムに 1個体を選んで来て,突然変異させて 1個体を生成します.
• それから,後で説明しますが,逆位と呼ばれる操作もあります.
• 逆位は,ランダムに 1個体を選んで来て,逆位操作で 1個体を生成します.
• また,親の遺伝子をそのままコピーした子を生成することもあります.
• 特に,親の世代で最も適合度の高い個体は,そのまま子の世代にコピーを残すことで,世代交代により解の適合度が低下しないことを保証しようという,「エリート保存戦略」1はよく用いられます.
• ここまでは抽象的な説明でしたので,次に,巡回セールスマン問題を例に,より具体的に説明します.
1 テロップ
48
遺伝的アルゴリズム
TSPへの適用
A B C D E1 4 2 5 3
1 2 3 4 5
5 4 3 2 1=⇒
1 2 3 2 1
5 4 3 4 5
• 遺伝的アルゴリズムを実際の問題に適用する際に,個体の表現法は特に重要です.
• 例えば,巡回セールスマン問題において,巡回路の訪問順序をそのまま遺伝子表現すると,交叉により巡回路でない個体が生成されやすくなります.
• ここでは,5都市の巡回セールスマン問題の巡回路を訪問順序で表現した例を示します.
• 都市名をA,B,C,D,Eとします.
• 上の段の図はAは 1なので最小に訪問し,Bは 4なので 4番目に訪問するということを表しています.
• したがって,上段の図は A,C, E, B, D, そしてA に戻る巡回路を表しています.
• 下の段の図は 2個の巡回路を交叉させた例ですが,生成された個体はいずれも巡回路を成していません.
• このような実行不能解が小さな割合でしか出現しないのであれば,それほど問題はないのですが,実行不能解の割合が高いと計算の効率が著しく悪くなってしまいますので,実行不能解の発生を抑えた個体の遺伝子表現が必要になります.
49
遺伝的アルゴリズム
• D → B → A→ E → C• 都市A,B,C,D,Eを1, 2, 3, 4, 5と順序づける• 最初に訪れるDの順序 4を遺伝子の文字列(遺伝子コード)の最初の位置 (遺伝子座)に入れる• 都市Dを取り除き,残る4都市A,B,C,Eを 1, 2, 3, 4と順序づける
都市 順序 遺伝子コード
D ABCDE12345 4
B ABCE1234 2
A ACE123 1
E CE12 2
C C1 1
• 巡回セールスマン問題の巡回路の表現に適した表現法として,相対的な順序を用いた方法があります.
• ここでは,5都市をD, B, A, E, C, と回りDに戻る場合を例に説明します.
• 都市A,B,C,D,Eを 1, 2, 3, 4, 5と順序づけします.
• 最初に訪れるDの順序 4を遺伝子の文字列の最初の位置,遺伝子座と呼びますが,1番目の遺伝子座に入れます.
• そして,訪問済みの都市Dを取り除き,残る 4都市A,B,C,Eを 1, 2, 3, 4と順序づけます.
50
遺伝的アルゴリズム
• D → B → A→ E → C
• 残る 4都市A,B,C,Eを1, 2, 3, 4と順序づける
• 2番目に訪れるBの順序2を2番目の遺伝子座に入れる
• 都市Bを取り除き,残る3都市A,C,Eを 1, 2, 3と順序づける
都市 順序 遺伝子コード
D ABCDE12345 4
B ABCE1234 2
A ACE123 1
E CE12 2
C C1 1
• 次に,2番目に訪れるBの順序 2を 2番目の遺伝子座に入れます.
• そして,訪問済みの都市Bを取り除き,残る 3都市A,C,Eを 1, 2, 3 と順序づけます.
51
遺伝的アルゴリズム
• D → B → A→ E → C
• 残る 3都市A,C,Eを 1, 2, 3と順序づける
• 3番目に訪れるAの順序1を3番目の遺伝子座に入れる
• 都市Aを取り除き,残る 2都市C,Eを 1, 2と順序づける
都市 順序 遺伝子コード
D ABCDE12345 4
B ABCE1234 2
A ACE123 1
E CE12 2
C C1 1
• 次に,3番目に訪れる都市Aの順序 1を 3番目の遺伝子座に入れます.
• そして訪問済みの都市 Aを取り除き,残る 2都市 C, Eを 1, 2と順序づけます.
52
遺伝的アルゴリズム
• D → B → A→ E → C
• 残る 2都市C,Eを 1, 2と順序づける• 4番目に訪れるEの順序2を4番目の遺伝子座に入れる• 都市Eを取り除き,残る1都市Cを 1と順序づける• 5番目に訪れるCの順序1を5番目の遺伝子座に入れる
都市 順序 遺伝子コード
D ABCDE12345 4
B ABCE1234 2
A ACE123 1
E CE12 2
C C1 1
• 次に,4番目に訪れる Eの順序 2を 4番目の遺伝子座に入れます.
• そして,都市 Eを取り除き,残る 1都市Cを 1と順序づけます.
• 最後に,5番目に訪れるCの順序 1を 5番目の遺伝子座に入れます.
53
遺伝的アルゴリズム
D → B → A→ E → C
4 2 1 2 1
都市 順序 遺伝子コード
D ABCDE12345 4
B ABCE1234 2
A ACE123 1
E CE12 2
C C1 1
• 以上の方法で,巡回路 D, B, A, E, C は 4, 2, 1, 2, 1と表現されます.
• この表現方法を用いれば,交叉や突然変異による実行不能解の出現を防ぐことができます.
• また,4, 2, 1, 2, 1から巡回路 D, B, A, E, Cを復元することもできます.
54
遺伝的アルゴリズム
適合度関数
• 適合度を計算する適合度関数は目的関数を反映
• TSPの目的関数は巡回路の総移動距離 … 最小化
• 個体 iの遺伝子表現を xi,目的関数を f(xi)個体 iの適合度 fiは,例えば,
fi = 1/f(xi)
• 適合度を計算するための適合度関数は目的関数を反映したものになります
• 巡回セールスマン問題の目的関数は巡回路の総移動距離で,これを最小化する問題です.
• 個体の表現を工夫したことから,すべての個体は実行可能解になりますから,適合度関数は制約を考慮する必要がありません.
• そこで,個体 iの遺伝子表現を xi,目的関数を f(xi)とするとき,個体 iの適合度 fiは,例えば,目的関数の値の逆数というものが考えられます.
55
遺伝的アルゴリズム
• 適合度の高い個体を高い確率で次世代に残す
• 個体 iを選択する確率 piは,例えば,
pi =fiN∑i=1
fi
• 確率分布に応じて個体数Nの回数だけ乱数を発生
• 発生した数 iに相当する個体 iを重複を許して次の世代の個体として選択
• 適合度の高い個体が次世代により多くの子孫を残す「淘汰」は,適合度の高い個体を高い確率で次世代に残す個体として選択することにより実現します.
• 個体 iを選択する確率 piは,例えば,個体 iの適合度 fiを全個体の適合度の和で割ったものとして定義することができます.
56
遺伝的アルゴリズム
• 個体 iを選択する確率 pi
pi =fiN∑i=1
fi
• 確率分布に応じて個体数Nの回数だけ乱数を発生
• 発生した数 iに相当する個体 iを重複を許して次の世代の個体として選択(ルーレット方式)
• この確率分布に応じて個体数Nの回数だけ乱数を発生させ,発生した数 iに相当する個体 iを重複を許して次の世代の個体として選択します
• これはルーレット方式と呼ばれる淘汰の方式です.
• 例えば,この図では,現世代において 7種類の個体が一つずつ存在します.
• ルーレットの色ごとの面積は,個体の適合度に比例します.
• つまり,適合度が一番高いのが赤い個体,二番目に高いのが黄色い個体,残りの 5個体は同じ適合度になっています.
• このルーレットでは,赤や黄色が選択される確率が高く,次世代は赤や黄色の個体が増えて,他の個体は減ることが期待されます.
• 交叉や突然変異なしにこれを繰り返すと,適合度の低い個体は次々絶滅して,適合度の高い個体のみが残ります.
• つまり,このままでは,遺伝子の多様性が急激に失われ,解の改善も止まってしまいます.
• そこで,交叉や突然変異が意味を持ってくるのです.
• それでは,巡回セールスマン問題における遺伝的操作を見ていきましょう.
•
57
遺伝的アルゴリズム
交叉
• 個体の集団から選んだ 2個体に対して,交叉を行う遺伝子座の位置をランダムに決め,その位置以降の遺伝子を入れ替える
D B A E C4 2 1 2 1
C D A B E3 3 1 1 1
=⇒
D B A C E4 2 1 1 1
C D A E B3 3 1 2 1
• 交叉は,個体の集団からランダムに選んだ 2個体に対して,交叉を行う遺伝子座の位置をランダムに決め,その位置以降の遺伝子を入れ替えます.
• 一点交叉の場合,交叉を行う遺伝子座の位置を 1箇所ランダムに決めます.
• この例では,4番目の遺伝子座が選択され,個体間で 4番目と 5番目の遺伝子が入れ替わっています.
• D, B, A, E, Cという巡回路は相対順序で 4, 2, 1, 2, 1 と表わすことができますが,これが交叉により 4番目と 5番目の遺伝子が組み換えられると,4, 2,1, 1, 21となり,これはD, B, A, C, Eという巡回路に相当します.
58
遺伝的アルゴリズム
突然変異
• 個体の集団から選んだ 1個体に対して,突然変異を行う遺伝子座の位置をランダムに決め,その位置の遺伝子の値を(とり得る値に)ランダムに変更する
• 突然変異が起こる確率は小さく設定する
D B A E C4 2 1 2 1 =⇒
A C B E D1 2 1 2 1
• 突然変異は,個体の集団からランダムに選んだ 1個体に対して,突然変異を行う遺伝子座の位置をランダムに決め,その位置の遺伝子の値をとり得る値にランダムに変更します.
• この例では,4, 2, 1, 2, 1の 1番目の遺伝子の値が 4から 1に変更され,1, 2,1, 2, 1となります.
• これにより,D, B, A, E, Cという巡回路から A, C, B, E, D という巡回路が生成されます.
• 突然変異は集団内の遺伝子の多様性を保ちますが,突然変位が起こる確率が大きいと,解のランダムな改変になり,解の改善効率が落ちますので,突然変異が起こる確率は小さく設定します.
59
遺伝的アルゴリズム
逆位
• 個体の集団から選んだ 1個体に対して,逆位の開始位置と終了位置をランダムに決め,その間の都市の訪問順が逆になるように遺伝子の値を変更する
• 逆位は突然変異の一種と分類されることもある
D B A E C4 2 1 2 1 =⇒
A B D E C1 1 2 2 1
• 逆位は,個体の集団から選んだ 1個体に対して,逆位の開始位置と終了位置をランダムに決め,その間の都市の訪問順が逆になるように遺伝子の値を変更します.
• この例では,最初の 3都市の訪問順をD → B → AからA → B → Dになるように遺伝子の値を変更しています.
• 逆位は突然変異の一種と分類されることもあります.
• また,逆位を用いないことも多々あります.
• それでは,次に計算例を見てみましょう.
60
遺伝的アルゴリズム
• 円周上に 30都市を等間隔に配置したTSP
• 最適解は正 30角形の巡回路(ほぼ円)
• ここでは,円周上に 30都市を等間隔に配置した巡回セールスマン問題を考えます.
• 左の図は巡回路の例です.
• この問題の最適解は明らかで,右の図のような正 30角形の巡回路が最適解です.
• 図からも分かりますように,正 30角形はほぼ円ですので,半径1の円周を考えれば,最適な巡回路の距離はほぼ 2π,約 6.28となります.
61
遺伝的アルゴリズム
• 円周上に 30都市を等間隔に配置したTSP
• 個体数 400
• 適合度上位 4個体を次世代にコピー
• 8個体を突然変位
• 8個体を逆位
• 380個体を交叉 (一点交叉)
• ルーレット方式
• 計算の諸条件はここに示す通りです.
• 個体数は 400です.
• 遺伝的操作は以下の通りです.
• 適合度上位 4個体を次世代にそのままコピーします.
• 8個体を突然変異させます.
• また,8個体を逆位させます.
• 残りの 380個体を交叉させます.
• 交叉は一点交叉とします.
• 個体の選択は適合度に比例する確率分布に基づくルーレット方式です.
• 初期解は,400個体を乱数により発生させます.
62
遺伝的アルゴリズム
第 1世代 (初期解) 距離:21.71
• 初期解の距離は 21.71で,最適解のおよそ 3倍です.
• 400個体の中で最も適合度の高い解でもこのようにぐちゃぐちゃな経路になっています.
63
遺伝的アルゴリズム
第 25世代 距離:10.68
• 第 25世代の解の距離は 10.68で,一気に改善されました.
• 見た目にも,もつれが減っています.
64
遺伝的アルゴリズム
第 50世代 距離:8.30
• 第 50世代の解の距離は 8.30で,初期解の距離の 4割以下,最適解の距離の約 1.3倍となりました.
65
遺伝的アルゴリズム
第 100世代 距離:7.08
• 第 100世代の解の距離は 7.08で,解の改善の速度は鈍ってきましたが,巡回路はかなりすっきりして,改善すべきは,巡回路の右端部分だけになりました.
66
遺伝的アルゴリズム
第 150世代 距離:6.69
• 第 150世代の解の距離は 6.69で,更に最適解に近づきましたが,巡回路の右端部分はまだ改善の余地があります.
67
遺伝的アルゴリズム
第 173世代 (最適解) 距離:6.27
• そして,第 173世代で,最適解に到達しました.
• 巡回路が正 30角形で,最適解であることは見た目から明らかで,その距離は約 6.27でほぼ 2πになっているので,数値的にも最適解であることが分かります.
68
遺伝的アルゴリズム
• この計算における,解の改善のプロセスを振り返ります.• 最初は急激に解が改善されますが,世代を重ねるにつれて,改善の度合いは小さくなります.• これはこの計算例に限らず,一般的な傾向です.• 初期解は最適解の約 3倍の距離でした.• 第 17世代で,最適解の距離の 2倍以下まで解が改善されました.• およそ第 100世代以降は,解の改善は非常に鈍くなりました.
69
• 今回は,遺伝的操作や,次世代に残す個体の選択方式の設定において,チューニングを行いませんでしたので,必ずしも最高に効率的ではありませんでした.
• それでも,各世代四百個体で約二百世代ですから,重複も含めてもハ万個体,十の四乗のオーダーの探索で最適解を発見しました.
70
• もし,すべての巡回路を探索するなら,30都市でしたので,29の階乗÷2で,十の30乗のオーダーにもなります.
• 今回は最適解が求められましたが,比較的良い近似解が効率的に求められることが多い,ということが実感できるかと思います.
71
• 今回の講義では,メタヒューリスティクスについてお話しました.
• 単純なアルゴリズムで,プログラミングも易しく,それなりに良い解を効率的に得られるので,大変魅力的な方法です.
• 実際にはチューニングに手間どることも多いのですが,それでも効率的に厳密解を得ることができないのなら,試してみる価値のある有力な手段です.
• 興味を持った方は是非試してみて下さい.
• 以上で,今回の講義および,問題解決の数理全 15回の講義を終わります.