人工生命#4 続・遺伝子に学ぶ たけ
自己紹介 たけ(@logta15) 普段は管理会計領域でフロントエンド周りの お世話をしています 人工生命は趣味です
前置き 本発表で話す人工生命の話は厳密性を犠牲にして わかりやすさに振っています ※とはいえ限界もあるのでご了承をいただけると...
今日話すこと 前回の発表を踏まえて、遺伝的アルゴリズムを紹介します 生き物が進化する仕組みを使って問題を解くアルゴリズム 前回の発表 進化の最小要件 Maynard Smith, Richard Dawkins ・自分のコピーを作れる(自己複製) ・コピーの時に少し遺伝子が変わる(変異) ・一定のルールで個体が淘汰される(自然選択)
遺伝的アルゴリズムとは? 1975年にジョン・H・ホランド が提案 フォン・ノイマンも一部関係 自己複製オートマトンの理論
遺伝的アルゴリズムとは? 生き物は世代を経るごとに進化を行う 生き物は厳しい環境に晒されているので自然淘汰される 世代を経て淘汰されないものは良いもの 生き物は自然淘汰されなければ子供を残せる 残った子供が親になり、自分が自然淘汰されなければ子供が残せる 。。。 繰り返すと自然淘汰され辛い生き物が残る
進化について 生物学の進化は結構誤解されている概念 進化は集団内の遺伝情報の分布変化 DNAのバリエーションが増えたり減ったりすること よくある誤解 ポケモンの進化は生物学的な進化と同じ ラマルクの進化論は完全に間違っている 進化すると必ず姿や振る舞いが変わる 多様性は進化のために維持されている etc...
遺伝的アルゴリズムの概要
word-ga 遺伝的アルゴリズムで指定した文字列を生成する シミュレーションアプリを題材に説明 指定した文字列に一致するまで 遺伝的アルゴリズムの操作を繰り返す
word-ga
word-gaがどう動いているのか? 文字列に直せるビット配列を一つの個体とする
word-gaがどう動いているのか? 指定した文字列に近い個体を2体ピックアップして交叉させる
word-gaがどう動いているのか? 交叉した個体に突然変異を発生させる(確率は極小)
実際の生物とword-gaの比較 word-ga 実際の生物 01のビット列 DNA/コード領域 アミノ酸合成 文字列 形質 文字列とのマッチング具合 自然淘汰
応用例 新幹線(N700系)の 先頭形状の最適化 トンネル突入時の騒音低減を目的に、 先頭形状の断面積分布をパラメータ化 して最適化 https://www.jstage.jst.go.jp/article/jjspe/76/1/76_1_41/_pdf
応用例 人工生命のシミュレーション 遺伝的アルゴリズムでジレンマがあるゲーム をさせると人間と異なる結果が出る 囚人のジレンマ 共有地の悲劇 最後通牒ゲーム 人間と同じような結果を出すためにはどうすれば良いのか?を考えることで、 人間がなぜそうするのか?がわかる
まとめ 01 生物の進化を題材にしたアルゴリズムを紹介 02 最適化手法として過去に使われていました 03 05 人工生命にとって遺伝的アルゴリズムが とても都合の良いアルゴリズムだ ということを感じていただけたら幸いです 次回こそなぜ人が協力するのかを言いたい