Tierraとは、生命個体を模擬したプログラムから成り立つ人工生命のシステムです。
各個体プログラムは、自己増殖を繰り返しながら、時間をかけて代々その形を変え進化していきます。
自己増殖するだけなのになぜ進化が起きるのか、それは突然変異の仕組みによるものです。
Tierraシステムの仕組みについて記載いたします。
1. 生命個体プログラムが活動する場所「スープ」
Tierraシステムでは、まず生命個体プログラムが活動する場所である、「スープ」と呼ばれる複数個のマス(例えば6万個程のマス)を用意します。このマスは「セル」と呼ばれ、それぞれ数字が入力されます。
セルに入る数字は、それぞれが特定の命令に対応しています(初期状態などは除く)。
具体的には、あるセル内の数字を他のセルにコピーする命令などです。
スープの初期状態では全てのセルに「-1」を入力しました。「-1」は命令に結び付けられていない初期値としての値であり、空っぽの状態を表しています。
(↓の表では本当なら「-1」が全セルに表示されているのが正しいですが空欄にしてしまっています、すみません。)
2. 初期生命個体(先祖種)の作成、動作
続いてこのスープ内のセル番号0から79に、最初の生命個体を表す数値=命令を入力していきます。
また、この生命個体に、スープ内の領域(セル番号0から79)の他に、いくつかの変数(レジスタやポインタと呼ばれる)を与えます。
こうすることで、体長80(0-79)の生命個体プログラムが1つ完成しました。
この最初の個体は先祖種と呼ばれています。
この個体は、自分の体の頂点(セル番号0)から下方に向かって順番に命令を実行していくことで、スープ内の別の領域に自分のコピーを作成していきます。
命令の中には、実行する命令の場所(ポインタ)を変更するものもあり、これにより体内の命令を何度もループすることで自己増殖を繰り返していきます。
3. 突然変異
Tierraでは生命種の進化を促すために、宇宙線による遺伝子変化を模擬した突然変異の仕組みが組み込まれています。
時間経過とともに低い確率で、スープ全体からランダムに選んだ1つのセルの数字を変化(具体的には数字を表す複数のビットの1つを反転)させたり、自己複製する際にコピーする命令を表す数字を変化(ビットの1つを反転)させたりします。
これにより生命個体の体内の命令が変わったり、自分と異なる体の個体を生成することになります。
変化した個体はうまく自己複製できないことがほとんどですが、まれに異なる生存の仕方や異なる自己増殖の仕方を獲得する進化種も発生します。
参考:Tierraのしくみ
4. 進化種
Tierraでは様々な進化種が確認されています。
体長が短く近くにいる他の種の体内の命令を利用し自己複製を行うパラサイト(寄生種)、パラサイトに対する免疫を持った種や、パラサイトを逆に利用して自己複製するハイパーパラサイト、集団になることで効率的に自己複製する社会的進化種などがあります。
上記は既知の進化種であり、パラサイト種は私も自作のTierraで確認できました。
また、私の作成したTierraシステムでは、空っぽの体を大量に生成する進化種を確認できました。この種は突然変異の結果、自分の体を完全にコピーするのではなく、体長は同じですが中身が入っていない体を大量に作成し繁栄していました。体長の領域を確保した後、他の種のように中身をコピーすることがないため、他の種よりも生成するスピードが早くスープ内に広がっていきました。
参考:パラサイト(寄生種)