Transcript

←こいつの話

coins14 @everysick

飛び入りです

飛び入りです真面目な話します

遺伝的プログラミング

場違い

コンピュータサイエンス寄り

文系でもわかるように頑張ります

GP(遺伝的プログラミング)ってなんぞ

GP(遺伝的プログラミング)ってなんぞ

AIっぽいけど違う何か

プログラムに制約とかアルゴリズムを与えて 生物の進化っぽくシミュレートするもの

(‘ω’)。○(???????????????????????)

GP(遺伝的プログラミング)ってなんぞ

僕「こんな風に進化してくれ頼む」

プログラム「ええでw」

実装の話

節点枝 葉

木構造

 

開始

終了

初期世代生成

適合度計算

終了 判定

世代引き継ぎ

結果表示

初期世代の木構造は!乱数を使って生成

交叉・突然変異・選択!をプログラムで表現し!その処理を加える

求めた解がどれだけ!近似しているか計算

Santa Fe Trail 問題!

!

蟻の進化をシミュレート

N*Nのマスに蟻と餌が配置

取得した餌が適合度

蟻 餌

Santa Fe Trail 問題

蟻は400のエネルギーを持つ

蟻から見て前方にしか進めない

左右に90度方向転換することができる

移動,回転につきエネルギーを1消費する

1 – Santa Fe Trail問題のプログラム作成

•選択アルゴリズム

•選出した個体を変化を加えず次世代に追加

• 個体をそのまま遺伝させる方法

!•今回の規則内容

• 各個体を均等に遺伝させたい

選択する個体を乱数で決定

1 – Santa Fe Trail問題のプログラム作成

•交叉アルゴリズム

• 任意の2個体を組み合わせ、新たな個体を生成

• 木構造の節点同士を交換するなどの手法

•一点交叉アルゴリズム個体A 個体B

1 – Santa Fe Trail問題のプログラム作成

•突然変異アルゴリズム

• 任意の1個体を選出する

• 個体にランダムで生成した木構造を組み込む !

•アルゴリズム概要

ランダムで作られた木構造 選出された個体

2 -プログラムを使って実際に結果を計測

餌数  !  89個!

スタート  左上!

エネルギー! 400

2 -プログラムを使って実際に結果を計測プログラム初期状態での計測結果

0

22.5

45

67.5

90

0 10 20 30 40 50 60 70 80 90 100

取得した餌

世代数

え、大したことなくね?

2 -プログラムを使って実際に結果を計測プログラム初期状態での計測結果

0

22.5

45

67.5

90

0 10 20 30 40 50 60 70 80 90 100

取得した餌

世代数

3 -引き継ぎアルゴリズムを変更し結果の変化を計測

•選択 !•最良選択アルゴリズム

• 世代中最も適合度の高い個体を結果

• 解が偏りがち

!•エリート選択アルゴリズム

• 個体を適合度順でソートし上位N個選ぶ

• N個からランダムで選択した個体を結果

•適合度計算 !•今までのアルゴリズム

• 取得した餌の数を直接適合度

!•新アルゴリズム

• 基本点は取得したアイテム数

• 無駄な動きごとに基本点から定数マイナス

• 今回2つマイナス点を設置

3 -引き継ぎアルゴリズムを変更し結果の変化を計測

3 -引き継ぎアルゴリズムを変更し結果の変化を計測

アルゴリズム改良後の計測結果

取得した餌

0

22.5

45

67.5

90

世代数0 10 20 30 40 50 60 70 80 90 100

綺麗になった✌('ω'✌ )

3 -引き継ぎアルゴリズムを変更し結果の変化を計測

アルゴリズム改良後の計測結果

取得した餌

0

22.5

45

67.5

90

世代数0 10 20 30 40 50 60 70 80 90 100

4 -パラメータを調整し最良の個体を選出

1. 世代数

2. 個体数

3. 交叉確立

4. 突然変異確立

5. 選択確立

6. 選択アルゴリズム

500[世代]

100[匹]

89%

10%

1%

エリート選択

4 -パラメータを調整し最良の個体を選出

最終計測結果

取得した餌

0

22.5

45

67.5

90

世代数0 50 100 150 200 250 300 350 400 450 500

中には全回収とかも

おわり


Recommended