遺伝的アルゴリズム
遺伝的アルゴリズム(genetic algorithm、略称:GA)とは
生物の進化の過程を真似て作られたアルゴリズムで、確率的探索の手法である
特徴としては、解空間構造が不明であり、決定的な優れた解法が発見されておらず、また、全探索が不可能と考えられるほど広大な解空間を持つ問題に有効であること
選択(淘汰、再生)・交叉(組み換え)・突然変異が遺伝的アルゴリズムの重要な処理プロセスとなる 遺伝的アルゴリズムの欠点
過剰適応
最初にそこそこ優秀な個体がたくさんいる集団は伸び悩んでしまう。それよりも、超優秀から超ダメまでバラエティに富んでいる方が、最終的には良好な結果をもたらす(ただし、過酷な淘汰が必要になる)
ヒッチハイク問題
適応度が低いデータが適応度が高いデータ群に入り混じったまま生存してしまうことがあること。不具合を完全に除去できないという、遺伝システムのバグや不具合のようなもの
遺伝的アルゴリズムの流れ
遺伝的アルゴリズムは一般に以下の流れで実装される。なお、下記では個体数を N, 最大世代数を G と置く。
1.あらかじめ N 個の個体が入る集合を二つ用意する。以下、この二つの集合を「現世代」、「次世代」と呼ぶことにする。
2.現世代に N 個の個体をランダムに生成する。
3.評価関数により、現世代の各個体の適応度をそれぞれ計算する。
4.ある確率で次の3つの動作のどれかを行い、その結果を次世代に保存する。
1.個体を二つ選択して交叉を行う。
2.個体を一つ選択して突然変異を行う。
3.個体を一つ選択してそのままコピーする。
5.次世代の個体数が N 個になるまで上記の動作を繰り返す。
6.次世代の個体数が N 個になったら次世代の内容を全て現世代に移す。
7. 3. 以降の動作を最大世代数 G 回まで繰り返し、最終的に「現世代」の中で最も適応度の高い個体を「解」として出力する。
https://gyazo.com/7e3dd52ae9a114224d539c1d158e0e57
参考文献
Wikipedia 遺伝的アルゴリズム
村上・泉田研究室 遺伝的アルゴリズムとは?
パーソルテクノロジースタッフ 4枚の図解でわかる遺伝的アルゴリズム