遺伝的アルゴリズム(Genetic Algorithm)を始めよう! 【簡略版】
-
Upload
kazuhide-okamura -
Category
Technology
-
view
618 -
download
6
description
Transcript of 遺伝的アルゴリズム(Genetic Algorithm)を始めよう! 【簡略版】
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
2014年11月17日
先端IT活用推進コンソーシアムクラウド・テクノロジー活用部会
勉強会資料
岡村 和英(株式会社テクリエ)
遺伝的アルゴリズム
( )
を始めよう 【簡略版】
2
Today’s Topics
What’s GAGenetic Algorithms
ExamplesKnown Issues
Summary
What’s GA
3
4
生物進化における遺伝と
適者生存による自然淘汰の仕組みをソフトウェア的に模すことで
複雑な問題に対する最適解を
探索する手法
5
N700系新幹線フロントノーズ(エアロ/ダブルウィング)の空力設計に際し、GAを用いて約5000パターンのコンピュータシミュレーションを行った結果からデザインを決定した。
6
ST5計画NASAのニュー・ミレニアム計画の一環として行われた技術試験計画 Space Technology 5 に用いられた3機の人工衛星に搭載されたアンテナの形状は、GAを用いて設計された。
7
評価関数の可微分性や単峰性などの知識がない場合であっても適用可能。
8
必要とされる条件は評価関数の全順序性と、探索空間が位相(topology)を持っていること。
9
遺伝子の表現の仕方によって、組合せ最適化問題やNP困難な問題などのさまざまな問題に対する適用が可能。
Genetic
Algorithms
10
11
単純GAモデル(simple GA)
ルーレット選択と交叉・突然変異を用いて、親世代と同数の子個体を生成し、子個体のみを次世代として残す。
初期収束による局所解の発生や、進化的停滞が起こりやすい。
12
適用する問題の解の特徴を
遺伝子として表現する
符号化 (encoding)
13
選択(selection)
交叉(crossover)
突然変異(mutation)
繁殖(reproduction)
14
適応度に基づいて、個体を増やしたり減らしたりするための対象を選び出す操作。
生物の自然淘汰をモデル化したもの。
選択 (selection)
15
集団をルーレット盤に見立て、ランダムな選択を行う方式。
各個体の適応度が、ルーレット盤の面積と比例しており、適応度が高い染色体ほど選ばれる確率が高くなる。
ルーレット方式(roulette wheel selection)
選択
16
ルーレット方式(roulette wheel selection)
個体 適応度
A 32
B 12
C 24
D 18
E 10
選択
17
選ばれた2つの個体の遺伝子の一部を入れ替える操作。
生物の交配をモデル化したもの。
交叉(crossover)
18
2つの交叉点をランダムに決定し、その間の遺伝子を入れ替える。
二点交叉(two-point crossover)
交叉
19
染色体1 1001011101101
染色体2 1010011010111
子孫1 1001011011101
子孫2 1010011100111
二点交叉(two-point crossover)
交叉
20
個体の遺伝子の一部をランダムに変化させる。
生物における突然変異をモデル化したもの。
局所解に陥ることを防ぐ効果がある。
突然変異(mutation)
21
逆位(inversion)
ランダムに選ばれた2点間の遺伝子を逆順に並べ替える。
染色体 1001011101101
変異後 1000111011101
突然変異
Examples
22
23
Genetic Algorithms Programing Library for JavaScript
https://github.com/kzokm/ga.js
Samples of Genetic Algorithm
http://ga-samples.herokuapp.com/
24
ナップザック問題(Knapsack Problem)
容量Cのナップザックが1つと、各々の価値がPi、容積がCiであるところのn個の品物Eiが与えられたとき、Cを超えない範囲でいくつかの品物をナップザックに詰め、入れた品物の価値の和を最大化するにはどの品物を選べばよいか?
25
ナップザック問題を
バイナリエンコーディングで表現してみる
26
バイナリエンコーディング(binary encoding)
各遺伝子を0, 1のビットとして表現する符号化方法
例)染色体A 1001011101101染色体B 1010011010111
27
n個の荷物 → 遺伝子長(L) = n
i番目の荷物 → 遺伝子座(p) = i
荷物Eiを入れる → 遺伝子[i] = 1
荷物Eiを入れない → 遺伝子[i] = 0
適応度 → 持っている荷物の総価値
ナップザック問題
28
荷物 E1 E2 E3 E4 E5 E6 E7 … En
重さ(Ci) Kg 0.9 1.1 0.7 1.4 0.5 1.3 1.1 1.6
価値(Pi) $ 1.0 1.3 0.9 1.5 0.5 1.1 1.2 1.4
遺伝子表現 [ 1 0 0 1 0 1 0 … 0 ]
重さ≦ C Kg 0.9 + 1.4 + 1.3 + …
適応度 1.0 + 1.5 + 1.1 + …
ナップザック問題
29
30
循環セールスマン問題(Travelling Salesman Problem)
n個の都市Ciと、それぞれの都市間の距離Di,jが与えられているとき、最初の都市を出発し、全ての都市を経由して、同じ都市に戻ってくるルートのうち、最短のルートを求めよ。
31
循環セールスマン問題を
順列エンコーディングで表現してみる
32
順列エンコーディング(permutation encoding)
各遺伝子を順序を示す数字として表現する符号化方法
例)染色体A 2 7 6 4 1 8 3 5 9染色体B 4 6 1 9 5 7 3 8 2
33
n個の都市 → 遺伝子長(L) = n
i番目に訪れる → 遺伝子座(p) = i
都市Cx→ 遺伝子[i] = x
適応度 → 循環ルートの総距離
循環セールスマン問題
34
ルート 1 2 3 4 5 6 7 … n
訪れる都市 C5 C8 C2 C7 C9 C1 C3 C4
次の都市までの距離
D5,8 D8,2 D2,7 D7,9 D9,2 D1,3 D3,x C4,5
遺伝子表現 [ 5 8 2 7 9 1 3 … 4 ]
適応度1
D5,8 + D8,2 + D2,7 + D7,9 + D9,2 + D1,3 + D3,x + … + C4,5
循環セールスマン問題
35
Known Issues
36
37
初期収束最初の方の世代で「偶然」他の個体より適応度が圧倒的に高い個体が生じた場合、その個体の遺伝子が集団中に爆発的に増えて、探索がかなり早い段階で収束してしまう現象。
38
各パラメータを繰り返し設定しなおしてトライするしかない。
初期収束への対策
39
• 集団数を増やす
• ランキングの選択確率を変更する
• トーナメントサイズを縮小する
• 突然変異率を増やす
• 適用する問題にたいして効果的となるよう、突然変異操作を変更する
初期収束への対策
40
ヒッチハイキング遺伝子操作時に最適解と一致しない遺伝子が混入してしまうことによって最適解の生成を妨げる現象。
2点交叉で発生しやすい。
41
最適解 = …11110100000…
に対して、
親1 = …11110000000…
親2 = …11111110000…
が交叉して
最適解を得られる確率p は・・・
ヒッチハイキング
42
二点交叉の場合、
𝑝 =2
𝐿(𝐿−1)( L = 遺伝子長)
遺伝子長が増加するにつれて、
加速度的に確率が低下する。
ヒッチハイキング
43
しかし、一様交叉であれば、
𝑝 =2
23=
1
4
となり、遺伝子長に依存しない。
ヒッチハイキング
Summary
44
45
GAとは、
生物の遺伝を模したアルゴリズム。
適者生存による自然淘汰で最適解を探索することができる。
対象となる問題に関する数学的な知識がない場合でも適用が可能。
まとめ
46
問題の性質に適したエンコーディングと交叉方法を選ぶことが重要。
組み合わせの増加などにより指数関数的に複雑さが増加する問題に対しても、線形的な時間増加で探索を行うことができる。
まとめ
47
局所最適解への収束を防ぐために、
状態に応じて突然変異の方法や、確率、トーナメントサイズなどのパラメータを変えることも必要。
まとめ
48
GAで
いろいろな問題を
解いてみよう!
まとめ
49
Genetic Algorithms Programing Library for JavaScript
https://github.com/kzokm/ga.js
Samples of Genetic Algorithm
http://ga-samples.herokuapp.com/
50
遺伝的アルゴリズム(Genetic Algorithm)を始めよう【詳細版】
http://www.slideshare.net/kzokm/genetic-algorithm-41617242
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
http://aitc.jp
https://www.facebook.com/aitc.jp
ハルミンAITC非公式イメージキャラクター