
GeneLifeについて
GeneLifeとは、筆者の考案したセルオートマトンの一種で、遺伝の仕組みを用いた点に特徴がある。
「利己的な遺伝子」を参考に、セルを化学物質に見立て、遺伝による複雑系を調査するためのモデルである。
GeneLifeの仕組み
GeneLifeはセルオートマトンを採用している。
セル・オートマトンは無限に広がる有限次元の格子状のセルで構成されており、各セルは有限個の内部状態を持ち、時間が進むと共に内部状態は変化していく。 また、ここでの時間は離散的なものであり、時刻t+1における1つのセルの内部状態は、時刻tにおける自分自身および近傍(2次元の場合、8つある)のセ ルの内部状態によって決定される。
出典: フリー百科事典『ウィキペディア(Wikipedia)』 セル・オートマトン
基本的にはGenerationsルールにしたがうが、遺伝の仕組みを用いている部分が特殊である。Generationsルールは日本語・外国語共に資料が見つからないので簡単な解説を行う。
Generationsルールとは
無限の広さの2次元の格子状にセルが並ぶセルは基底状態、中間状態、励起状態のいづれかの内部状態を1つ持つ中間状態の数は0以上の有限数である時刻t+1における1つのセルの内部状態は時刻tの状態に対して下の条件に基づいて決定する基底状態から励起状態に変化する条件を誕生条件とし、0~8の数のうち0個以上を指定する励起状態から励起状態に保持する条件を生存条件とし、おなじく0~8の数のうち0個以上を指定するそのセルの周囲8個のセルをムーア近傍(単に近傍)とするそのセルの状態が基底状態であるとき、近傍の励起状態の数が誕生条件で指定した数に含まれていれば、そのセルの時刻t+1の状態は励起状態であるそのセルの状態が励起状態であるとき、近傍の励起状態の数が生存条件で指定した数に含まれていれば、そのセルの時刻t+1の状態は励起状態である上記2つの条件に一致しない場合、そのセルの時刻t+1の状態は時刻tの状態の1段階下の中間状態になり、時刻tの状態がもっとも下の中間状態であれば、基底状態となる一般に、誕生条件、生存条件、状態数を「誕生条件/生存条件/状態数」と表し、これをセル状態遷移条件(ルール)と呼ぶ例えば、誕生条件が「2,3,5」、生存条件が「2」、状態数が「4」であれば、「235/2/4」と表す
このGenerationsルールは、各セルを生物に見立て、生命が維持できなくなったら徐々に弱って最後に死滅する「生命モデル」といえる。
GeneLifeはこのルールを改変している。掻い摘んで説明する。各セルにはそれぞれ遺伝子を持ち、セルが誕生するごとにその遺伝子を複製する。ごくまれに複製に失敗があり、遺伝が正しく行われない。遺伝子はルールのことであり、遺伝はこのルールを受け継ぐことである。そのセルはその遺伝子のルールに従って状態遷移する。
このようにセルに遺伝子を持たすことで、細胞の抽象的なモデルを実現している。
GeneLifeルールとは
Generationsルールを継承するが、一部が違うため注意するセルは1つの生存状態(基底状態、中間状態、励起状態のいづれかの状態)と、1つのルールを持つ。また、以下に挙げる突然変異に依存するレジスタも内蔵してよい時刻t+1における1つのセルの内部状態は時刻tの状態に対して下の条件に基づいて決定するそのセルの状態が基底状態であれば、そのセルの持つルールに従うそのセルの状態が励起状態であれば、その近傍から無作為に選択した1つのセルの持つルールに従う近傍にセルが無いか、上記のルールに一致しない場合、そのセルの時刻t+1の状態は1段階低くなるもし、上記のルールによって新たにセルが誕生する(時刻tで基底状態から時刻t+1で励起状態に変化する)なら、時刻t+1のセルのルールは時刻tのセルのルールを遺伝するこの遺伝はルールを単にコピーしたものではなく、誤りを起こす→突然変異誤り方は自由である
このルールで注意すべきところは「誤り方」である。これを制御・工夫することでさまざまな状態を作り出すことができる。これをGeneLifeにおける条件と考えることができる。Generationsにおける状態遷移条件と同じような意味を持つ。
例:0.005%の確率で誕生条件・生存条件の数が1つ書き換わる。無限増殖が恐れられる誕生条件の1,2を遺伝できないように禁止する。0.01%の確率で状態数が増える。
例で確率を用いたが、本来この突然変異は無作為に決まるものではないが、ここでは簡易モデルとして確率を採用している。
また、ルールでセルの生死が決定する仕組みは、我々の遺伝子の世界の「転写」と「翻訳」に当たる。
GeneLifeの話
GeneLifeは利己的な遺伝子の簡易モデルとして考案した。注意として挙げるが、セルは化学物質と細胞を両立させた物質と考えている。本来、遺伝はGenerationsルールのような単純なシステムと同次元の存在ではなく、Generationsルールが作り上げるべき複雑な状態である。しかし、それは非常に難しいことであると同時に、今そのような状態になっているのかを判断する方法も難しい。もしできたならそれはずっと将来のことだ。計算には時間と面積が非常に多く必要である。
Generationsルールを採用したわけは、特徴として光もしくは波のような現象が起こるからだ。ある塊が上下左右のいづれかに直進する現象だ。ある部分で生まれたエネルギーが直進する。しかもルール上の最速で進む。これは光に良く似ている。人間は光や電気による情報伝達をしばしば行う。情報伝達はコミュニケーションでは必要不可欠である。もちろん細胞レベルでも情報伝達は行われている。この光のような現象を利用する場を見てみたいと思ったからだ。ただし、この光のような信号も化学物質であり細胞であるため、突然変異を起こす可能性を持っている。
今のところGeneLifeによって新しい複雑な状態を発見したとは言いがたい。例えば、GenerationsルールにはStarWarsという「345/2/4」のルールがある。これはとても面白い状態を生むが、このルールが複雑系を生んでいるのであり、遺伝によって現れたものではない。
面白い状態を作るためには、面白くなくなる状態にならなりにくくするために突然変異の工夫を行う必要がある。GeneLifeの仕様では、突然変異によって面白くない状態が生まれやすい。
工夫とは、複雑系を作りうる既知のルールを盛り込むことである。突然変異によって既知の別のルールに変異する。カオス状態になりやすいルールが生まれないようにする。これでカオス状態を生み出す可能性を減らすことができる。
例として、自らの体を覆うルール、情報を送信するルール、情報を受信するルールといったふうに既知のルールが持つ面白い状態をそれぞれ機能の一部として取り込んだバクテリアのような生物が生まれた。
また、光のような信号も突然変異を起こす可能性を持つと先述したが、これを回避する工夫も施した。突然変異が起こる条件を乱数を使わない方法に置き換えた。乱数を使うと、信号の直進中にランダムで変な動きをする可能性がある。これだと確実性が低くなってしまう。誤り補正を行うように進化すれば乱数であっても正確性は保つことができるが、そんな高度な状態になるには時間や面積が必要である。ランダムで変な動きをしないようにすることは近道になるのだ。
施した工夫は以下のようなものである。
セルにカウンタを内蔵
年を取る(同じ場所で生き延びる)とカウンタが1つ増える
そのセルを元に作られたセルは、カウンタに元のセルと同じ値を設定する
カウンタがある数を示すと突然変異を起こす
突然変異が起きるとカウンタはリセットされる
これで、直進する信号は突然変異が起こらない。何かにぶつかると突然変異を起こす可能性があるが、周りからの影響が無い場合は期待通り直進する。
また、突然変異に周期性を持たすことで、アメーバのような生物に備わったとある機能が比較的安定して動作するようになる。
ただし、本来の突然変異とは違う性質を持つことになる。あまり問題視しない。
以上のような工夫は、特殊な状態が生まるようにする近道のために行ったものであり、製作者側の意図どおりに動作させようとしているわけではない。いづれにしても目的は複雑系を作り出すことである。
筆者の作ったGeneLifeのルール
セルのカウンタが29の倍数+4であるとき、そのセルを元に発生した新しいセルは突然変異する
そのセルのカウンタを6で割ったあまりが以下の数なら、そのルールに変異する(ルールの下の文字は名前である)
0
34678/3678/2
Day & Night
1
23/36/2
HighLife
2
235678/678/2
改変Stains
3
05678/24567/6
Chenille
4
345/2/4
StarWars
5
012345/4/2
Fingerprint(筆者が命名)
あまり深く考えて作っていないが、このルールでアメーバのような生物が生まれる。体は改変Stains,Fingerprintが作り、送信される信号はStarWars,Chenilleが作っている。また、StarWarsは体を作るきっかけを作っている、種のような存在。これがまわりに飛ばされると、そこで新しい生物を生み出すのである。これを生殖といえるかはわからない。
よく、Fingerprintが形成する体が突然沸騰したかのように振動をし始め、消えていく現象が起こる。これを寿命が来たから死んだのだ、と解釈すると面白い。
このように、ルールと周期の長さを設定すると、それにあわせた世界が生まれる。世界のルールを決定する設定だ。
宇宙船地球号と宇宙人地球君
もし我々が住む地球が生き物だったら、なんて考えたことはないだろうか。実はそうかもしれない。我々生物を形成するのは細胞や液体である。細胞の次元からすると人間なんて理解しがたいほど複雑である。地球は生物や海、大陸、島、空気、生物などが形成する巨大な生物なのではないだろうか。(ここでは生物の定義が云々は置いておく。)「地球は意思を持っているのか?」この問いにNOと答える人は普通だ。YESと答えるならそれは面白い答えだ。でも、答えはYES,NOのどちらとも捉えることができる。二つの例え話を挙げよう。「地球は我々生物の宇宙船だ。宇宙には他にもたくさんの宇宙船が浮かんでいる。宇宙船地球号の乗組員である人間は、他の宇宙船に生物が乗っているのかを確かめるべく探査機を送り込んだ。」、「地球は色々な物質からなる生き物だ。宇宙には他にも星という生き物がたくさんいる。地球はその星がコミュニケーション可能なのかを確かめるべく、人間という器官を用い探査機という名のインターフェイス(手のようなもの)をそれに向けて放った。」。いづれも単語や言葉の使い方が違うだけで、単に地球から探査機ロケットを打ち上げた話を例えただけである。この違いは「意思を持つ部分をどこに考えたか」である。前者は人間が意思を持っているように例え、後者では地球が意思を持っているように例えた。人間だって意思を持っているとは限らない。脳が持っているのかもしれない。要は、中心に考える次元を変えれば捉え方はいくらでも存在するのだ。我々が巨大生物を形成する一部だったら面白い。
いいなと思ったら応援しよう!
