人工生命(Artificial Life、Alife、AL)
2022.02.21
現在世間ではAIが注目されていますが、今回は私が一時期夢中になっていた「人工生命(Alife)」について紹介したいと思います。
人工生命は、人間によって設計、作製された生命。主にコンピュータ上のモデルを使って、生命をシミュレーションすることで、生命に関するシステム(生命プロセスと進化)を研究する分野です。
人工生命は様々な手法が考案されていますが、今回は1970年にイギリスの数学者が考案した「ライフゲーム」について紹介します。シンプルなルールだけで生命の誕生、進化、淘汰などのプロセスを観察することができます。
「ライフゲーム」のルール
碁盤のような格子の中で、各セルには8つの隣り合うセルがありますが、
各セルには「生」■と「死」□の2つの状態があり、セルの次の世代の状態は周囲の8つのセルの今の世代における状態により変化します。
1.「誕生」
死んでいるセルに隣接する生きたセルがちょうど3つあれば、次の世代が誕生する。
2.「生存」
生きているセルに隣接する生きたセルが2つか3つならば、次の世代でも生存する。
3.「過疎」
生きているセルに隣接する生きたセルが1つ以下ならば、過疎により死滅する。
4.「過密」
生きているセルに隣接する生きたセルが4つ以上ならば、過密により死滅する。
前置きが長かったですが、以下のサイトから「ライフゲーム」を試せるので、覗いてみてください。
福知山公立大学 前田一貴先生の「ライフゲーム」
https://kmaeda.net/kmaeda/demo/gameoflife/
格子の中でクリック(又はドラッグ)してセルの色を変え、「Start」ボタンを押してください。
プログラマー 矢野ヒロタさんの「ライフゲーム」
https://yanohirota.com/game-of-life/
格子の中でクリック(又はドラッグ)してセルの色を変え、「開始」ボタンを押してください。こちらは、セルの「ランダム生成」や「振動子」「移動物体」も試せます。
いかがでしたでしょうか。最初は無秩序に動いていたセルも、世代を重ねるとまるで生命のような振る舞いをするセルが出てきたと思います。
他の人工生命や参考文献について紹介します。
MediaArtTube「Karl Sims-Evolved Virtual Creatures、Evolution Simulation、1994」
https://www.youtube.com/watch?v=JBgG_VSP7f8
突然変異と自然淘汰で、うまく移動せきるものが生き残るプログラムです。
作者が動きをプログラムしているわけではなく、偶然に生み出されたものですが、原始の海にいそうな動きをしていると思いませんか。
Yohsuke Murase's page boid simulation(群れのシミュレーション)
http://yohm.github.io/p5js_simulations/boid/
以下の3つのルールだけをプログラムされています。3条件をONにすると群れのような挙動をします。
・分離(他の個体とぶつからないように距離をとる)
・結合(群れの中心方向へ向かうように方向を変える。
・整列(他の個体群と概ね同じ方向に飛ぶように速度と方向を合わせる。)
筑波大学 人工生命概論
https://www.youtube.com/watch?v=crP9mEGz7lo&list=RDCMUCQjWX6XaYvR7JyU7_SWlzcw&index=1
様々な人工生命が紹介されていします。
私は、ごくごく単純なプログラムが作者自身も思いもよらない方向に複雑に進化する様子に面白みを感じました。
これがきっかけで、学生時代に科学や数学の面白さを再確認し、非常に簡単ですが独学で勉強し物理法則のプログラムやゲームを作って楽しんでいました。
このとき自分が面白いと思うことを考え勉強し試行錯誤して作ってきたことが、今の仕事にもつながっているのかなと感じています。
皆様にも科学や数学の面白みを感じて頂けたなら幸いです。