Transcript PPT - ZAQ

遺伝的アルゴリズム
遺伝的アルゴリズム(GAとは)
• 生物の、遺伝と進化の仕組みを真似て問題
を解くアルゴリズム
– 最適化や強化学習に用いられる
進化と遺伝
–
–
–
–
–
–
–
–
–
染色体
遺伝子
遺伝子座
対立遺伝子
遺伝子型
表現型
突然変異
交叉
選択
最適化問題
• いくつも答えがある中から一番優れた解を選
び出す
– 例 : ナップサック問題
• ナップサックに荷物を詰めることを考える
–
–
–
–
N個の荷物がある
各荷物には価値と重量が設定されている
詰める荷物の価値の総和を最大にしたい
ナップサックには詰め込める重量の限界があり、全ての荷物
を詰めることは出来ない
• 全ての組み合わせを調べれば(前回探索法)、
最良解が見つかる(当たり前)
• しかし荷物数Nが増えると、組み合わせの数
が指数的爆発して現実的な時間で解けない
• どうしよう
ヒューリスティクス(発見的手法)
– 必ず正しい答えが導けるわけではないが、ある
程度のレベルで正解に近い解を得ることが出来
る方法
– うまいルールを思いつければ、それに従って探索
する。
– 思いつけないかも
– 見つかった答えは本当に最良か?ルールによっ
て見つかる解は決まる
– 例:欲張り法
遺伝的アルゴリズム
• メタヒューリスティクス(何にでも使えるアルゴリズム、
その代わり、特化されたものより性能が低い)の一種
• 全ての解をではないが、色々比較検討する
• ある程度のところで我慢する
• 1個体とその遺伝子型
– 遺伝子型s 長さNの記号列(とりあえずバイナリ列)
• s = s1 s2 …. sN
• M個体からなる個体集合
• Sの様な個体がM個集まって1世代分の個体集合
• とりあえずM全世代で一定にしとく
遺伝演算子
– 交叉
• 個体集合の中から2個体をランダムに選び、ある確率
(交叉確率)で遺伝子列を交換
– 突然変異
• 各個体においてある確率(突然変異確率)で各遺伝子
座の値を変える
– 選択
• 環境に適応した個体ほどたくさんコピーを残すように
する
• 適応度g
• ステップ1:初期化ランダムにM 個の個体の遺伝子
型(N 文字からなる文字列)を生成して,初期世代
• における個体集合P(0) を作る.世代を表すループ
変数t は,t = 0 と設定する.
• ステップ2-1:評価個体集合P(t) に含まれる全M 個
体に対して,その表現型xi に応じて決まる適応度
• gi (i = 1, . . . , M) を求める.
• ステップ2-2:選択個体集合P(t) に対して,各個体の
適応度gi に基づき,前節2.2 に示した選択操作を
• ほどこし,その結果得られた新たなM 個体からなる
集合P(t) を生成する.
• ステップ3:交叉個体集合P(t) に対して,前節2.2 に示した交
叉操作をほどこし,その結果得られた新
• たなM 個体からなる集合P(t) を生成する.
• ステップ4:突然変異個体集合P(t) に対して,前節2.2 に示し
た突然変異操作をほどこし,その結果得
• られた新たなM 個体からなる集合を生成し,それをもって次
世代の個体集合P(t+1) とする.t を
• t + 1 に1 増加する.
• ステップ5:終了判定進化過程の最終世代数T をあらかじめ
設定しておき,t < T ならば,上記のステッ
• プ2-1 に戻る.t ≥ T となった時点で,計算のループを終了さ
せる.終了時点までに得られた最大適
• 応度をもつ個体をもって,一番良い個体とする.