A-Life

 'A-Life'では、Artificial Life(人工生命)の概説のようなものを掲載しています。これは、もともと僕が所属していた部の文化祭の時に書いた文章で、内容的に古いところや、間違いもあるかもしれません。もし、なにか間違い等を見つけましたら、是非連絡してくださるとありがたいです。

CONTENTS

人工生命への招待

この文章について

 この文章は、1998年度の文化祭での発表「人工生命」に関する基本的なことなどをまとめた文章です。この原稿の第一版は、「 筑波大学附属駒場中高パーソナルコンピュータ研究部」のホームページに最初に掲載されました。

はじめに

 1998年度の文化祭で、私たちは「人工生命」に関する展示を行いました。文化祭では、人工生命のプログラムを実際に動かしながら人工生命について説明し、多くの人にその面白さを知ってもらうことができました。ここでは、それを再現しようと考えています。しかしながら、このホームページ上で文化祭と同じような状況を作り出すのには無理があり、文章主体の構成になってしまいます。ただ、文章主体の中でも、人工生命の魅力を十分に伝えられる内容になっていると思います。ぜひ、みなさんも人工生命の魅力を感じ取ってください。

人工生命とは何か?

 人工生命とは何かを考える前に、「生命とは何か?」ということを考えてみましょう。さて、生命とは何でしょうか?。考えてみると、いろいろな考えが浮かんできます。たとえば、生命を「生殖能力をもったもの」と定義するとどうでしょう。一見それらしいのですが、もし生殖能力を失ってしまったら、生命とはいえないのでしょうか?。ほかにも考えは浮かんできますが、どれもこれも曖昧なものばかりです。つまり、「生命とは何か、と定義づけることは難しい」ということがわかります。
 では、なぜ私たちは「生命」を明確に定義づけられないのでしょうか?。人工生命の創始者である、クリス・ラングトン氏は、「それは、我々が地球上の生命しか見たことがないからだ」と説明しています。何も、地球上だけに生命が存在するわけではありません。広い宇宙の中に、他の生命が存在する可能性は十分にあります。つまり、そのような「考えられる生命すべて」を見なければ、生命の本質は見えてこない、ということです。では、そのためにはどうすればよいのでしょうか?。まず考えられるのは、宇宙にいって生命を探すことです。しかし、これは実現不可能ではありませんが、現状ではほぼ不可能でしょう。そこで考えられたのが、「人工生命」です。人工的に生命を作ることによって、生命の本質に迫ろうとする試み、それが「人工生命」という研究分野なのです。
 とはいっても、実際の生命と同じような生命を作ることは現在の技術では不可能です。ですから、人工生命の研究では、実際の生命の機能の一部分をコンピュータなどで再現してみることによって研究を行っています。また、人工生命では、生命の材質ではなく、機能に注目します。そうすることで、コンピュータなどの人工的なメディアによって、生命現象を作り出し、地球上の生命とは違った形の生命として研究することができるのです。

ライフゲーム

 では、実際に人工生命の例を見てみましょう。ここで取り上げる「ライフゲーム」は、「セル・オートマトン」といわれる人工生命の一種で、人工生命関連のプログラムの中では、もっともよく知られているものの1つです。セルオートマトンがどういうものなのかを簡単に説明すると、マスが並んでいて(何次元でもよい)、各マスは周りのマスの状態に応じて変化していく、というものです。言葉だけではよくわからないと思うので、ライフゲームを実際に起動してみてください。(ここ(Zip形式で圧縮)にあります。C言語版です。まだ開発途中なのでバグや使いにくさはあると思いますが、一応動くので、よければ試して見てください。ただし、このプログラムを用いたことによって起こった損害については責任は負えませんので注意してください。)。たくさんのマスが並んでいるでしょう。一つ一つのマスをセル(細胞)といいます。ライフゲームでは、各マスには状態が2つあります。それは、「生きている」という状態と「死んでいる」という状態です。そして、ライフゲームには、マスがどのように変化していくのか、というルールがあります。ライフゲームでは、周りの8つのマス(上下左右と斜め4マス:これをムーア近傍という)の状態に応じてマスが次にどの状態になるのか、ということが決まります。では、周り8つのマスがどのようなときに、マスはどのように変化するのかを見てみましょう。

ライフゲームのルール

  • どちらの状態のマスも、周りに0,1個の生きているマスがあるとき、そのマスは次の世代では死んでいる状態になる(過疎で死んだと考えてください)
  • どちらの状態のマスも、周りに4個以上の生きているマスがあるとき、そのマスは次の世代では死んでいる状態になる(過密で死んだと考えてください)
  • 生きているマスの周りに2、3個の生きているマスがあるとき、そのマスは生きたまま(生きているマスにとってちょうどよい環境と考えてください)
  • 死んでいるマスの周りに2個生きているマスがあるときは、そのマスは死んだまま(生き延びるためには十分な環境ですが、マスが生まれるほどよい環境ではないと考えてください)
  • 死んでいるマスの周りに3個生きているマスがあるとき、そのマスは次の世代では生まれている状態になる(どちらの状態のマスにもよい環境だと考えてください)
一見難しそうですが、実際は、「周りが多すぎたり少なすぎたら死んで、ちょうどよい環境であれば生まれる」という単純なルールなのです。では、実際に試してみましょう。下の例を実際に試してみると、、、(なるべく真ん中に配置するとよいと思います)
こんな単純なルールであるのに、非常に複雑な動きや、おもしろい動きをすることがわかりました。特に左上の形は、「グライダー」と呼ばれていて、いかにも飛んでいくような動きをします。また、真ん中上の形は、「rペントミノ」と呼ばれていて、これもまた複雑な動きをします。この形は、1000世代以上経過しないと安定しない(つまり、動かなくなったり、消えたり、周期的な動きをすること)形として有名です。この2つはぜひとも試していただきたいと思います。
 さて、なぜここでライフゲームの話をしたのでしょうか?。人工生命の主要な結果である、「創発」という考え方を知ることによって、それは明らかになります。その話に入る前に、「Lシステム」という、植物の生長をモデル化したものを見てみましょう。

Lシステム

 「文字の列を作り出す仕組み」、それがLシステムです。これは、1968年に、リンデンマイヤーが提唱したシステムで、植物の成長と関係があることで有名になりました。どうして、文字列を作り出す仕組みと植物の成長が関係あるのでしょうか?。そのことを説明する前に、Lシステムの仕組みを説明しましょう。

Lシステムの仕組み

 Lシステムでは、「初期状態」と「ルール」が与えられています。以下の例を見てください。
  • 初期状態 a
  • ルール1 a → ab
  • ルール2 b → a
 そして、ルールに基づいて文字列を作り出していきます。ルール1では、文字aをabに置き換え、ルール2では文字bをaに置き換える、ということを決めています。この初期状態とルールに基づいて生成した文字列を以下に示します。
  1. a
  2. ab
  3. aba
  4. abaab
  5. abaababa
 上の例で作り出された文字列は、研究によって、実は藻類の細胞の並びと非常に似ていることがわかりました。それにより、Lシステムは、植物の成長をモデル化する仕組みとして有名になります。といっても、あまりぱっとこないと思います。そこで、もう一つ、木の例を見てみましょう。これは、Lシステムによって作られた文字列を画像化したものです。これには少し工夫が必要なので、それも同時に説明してしまいます。

Lシステムで木のグラフィックを描く

 ここでは、ルールの中に、( )と[ ]を用いています。これは、木の枝分かれを表現したものです。 
  • 初期状態 A
  • ルール1 A → C[B]D
  • ルール2 B → A
  • ルール3 C → C
  • ルール4 D → C(E)A
  • ルール5 E → D
 この初期状態とルールに基づいて生成した文字列を以下に示します。
  1. A
  2. C[B]D
  3. C[A]C(E)A
  4. C[C[B]D]C(D)C[B]D
  5. C[C[A]C(E)A]C(C(E)A)C[A]C(E)A
 ()を右側への枝分かれ、[]を左側への枝分かれと考えて画像にすると、以下のような画像を作り出すことができます。
 今度の例は見た目にもわかりやすかったと思います。Lシステムでは、こんなに単純なルールを設定したのに、本物の木さながらの画像を作り出すことができました。この、「単純なルールから...」という言葉を聞いてピンと来た人もいるかもしれません。そうです、ライフゲームも同じような現象が起こりました。

創発という考え方

 Lシステムもライフゲームも、「単純なルールを設定したら複雑な現象が起こった」という似たような結果を生みだしています。そうです!。ここに、人工生命研究の重要な結果である「創発」という考え方が潜んでいるのです。創発を簡単に説明すると、「単純なものが相互作用しあって複雑な挙動を示す(発する)」ということです。ライフゲームもLシステムも、ルール自体は単純でした。しかし、マスとマスが相互作用しあって、また、文字列が複雑に絡み合って、あのような結果を生みだしたのです。生命も、「創発」の考え方と結びついているのではないか?。今のところ、まだ答えはでていません。しかし、「創発」という考え方が生命を解く鍵となることはほぼ確実であるのではないのでしょうか?

おわりに

 「人工生命への招待」はいかがだったでしょうか。私の知識不足のせいもあり、曖昧なところもあったのではないかと思います。ただ、人工生命の面白さは伝わったのではないかと思います。人工生命の研究では、他にもいろいろとおもしろいことが行われています。人工生命をゲームにしたり、遺伝的アルゴリズムで問題を解いたりと、様々な興味深い試みがなされているのです。興味があれば、人工生命について調べてみるのもおもしろいのではないかと思います。最後に、参考文献をあげておきますので、興味を持たれた方はぜひ読んでみてください。

参考文献

人工生命の世界  
服部 桂 著   オーム社
図解 人工生命を見る
佐倉 統 監修  高間 康史 著   同文書院
人工生命 〜進化する”ビットの生命たち”のふしぎ
Ellen Thro 著  米津光浩 神成淳司 共訳   カットシステム
InterCommunication 6
NTT出版 InterCommunicationCenter
人工生命 〜デジタル生物の創造者たち〜
スティーブン・レビー 著  服部 桂 訳   朝日新聞社

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!