Darwinbots
DarwinBotsはCarlo Comisが開発したオープンソースの人工生命シミュレーションソフトウェアである。"ボット"と呼ばれる多数のデジタル生物が存在する仮想環境を提供するソフトウェアであり、この環境内でボット同士が相互に影響を与え合いながら資源を求めて競合し、自己複製を行い、進化していく。Avidaがコア戦争の人工生命版であるといわれているのと同じ意味で、Darwinbotsは C Rotosの人工生命版であるといえる。
設計原理
[編集]Darwinbotsの設計原理は他の多くの人工生命シミュレータとは根本的に異なっている。
- 全てのボットは自分専用の半保護されたアドレス空間を持つ(別のボットに属する領域の内容を変更することも出来るが、これは非常に攻撃的な手段であり、互いに接近しなければならず、またこの攻撃から身を守るための対抗手段も存在する)。
- すべてのボットが1つの周期で自分自身のDNAコードを「全て」実行する。そのため、ボットのDNAが複雑になっても実行速度を犠牲にすることがない。これはTierraやAvidaなどのタイプの人工生命シミュレータと大きく異なる点である。
- 提供される仮想環境は離散的な平面世界ではない。つまり、それぞれのボットがマス目状に配置されているわけではなく、この点でセル・オートマトンとも異なっている。
- 全てのボットはsysvarsと呼ばれる特定のメモリ領域を介して世界そのものと相互作用できるという、基本的かつ高度な能力を有する(sysvarsは「一連の物体を前方に加速せよ」「接続糸を打ち出せ」といったものである)。DarwinBotsはこの特徴により、他の人工生命シミュレータのように計算処理のために進化するのではなく、食物を追いかけたり、余分のエネルギーを利用して筋肉を形成したり、あるいは現実の生物の様に各種の問題を解決する為に基本的な性質を組み合わせて新しい手段を獲得したりする。このようにしてDarwinbotsは能力の進化ではなく「習性」の進化をシミュレートするのである。
他の人工生命ソフトウェアとの違い
[編集]要点をわかりやすくする為、Avidaとの違いを主に取り上げる。
デジタル生物の能力
[編集]他のシミュレータ(特にAvidaとTierra)では、デジタル生物に対してごく基本的な命令と能力のみが与えられ、デジタル生物の習性はそれらの能力を積み上げた結果として表現される。より複雑な習性もこれらの積み上げにより形成される。Darwinbotsでは比較的高度な能力がデジタル生物に与えられている為、より複雑な習性が形成されうる。
例えばAvidaでは自己複製は多くの命令(最低でも17命令)を組み合わせる必要のある複雑なプロセスであって、個々のプロセスは個体ごとに異なる場合もある。一方Darwinbotsでは「完璧な」自己複製がわずか2命令で実現される。
したがって、Darwinbotsは能力の最適化(つまり最適な命令群を得るような進化)ではなく、行動の進化をシミュレートするものだといえる。
適合度関数
[編集]Avidaなどのシミュレータでは、進化していく人工生物に対して非常に限定された適合度関数を定義している。例えば「『特定のタスクを行った生物』に、報酬としてエネルギーを与える」といったものである。Darwinbotsでは、個々の生物の適合度は全くチェックされない。エネルギー供給は、シミュレーション開始時に植物とみなされた個体とその子孫に対して、均一に行われる。
その結果、実際の生物と同様にそれぞれのボットは生き残ることと自己複製することの能力にのみ特化して進化していくことになる。そのため、他の人工生命シミュレータに比べてDarwinbotsは実際の生物との比較がより容易なのである。
しかしこの点は諸刃の剣でもある。外部的な適合度関数が全くない為、その能力が生存に適しているのかどうかを判断することが非常に難しいのである。このことは、特に新しいユーザの不満を引き起こしやすい。
わかりやすさ
[編集]Darwinbotsの開発や変更を行うメンバーに対しては人工生命の学術的知識を要件としていないため、Darwinbotsのプログラムは知的なものではあるが、専門家以外の人々にとっても理解しやすいものとなっている。また、わかりやすいユーザインタフェースとツール群を備えている為、ホビィストにも人気がある。
欠点
[編集]プログラム言語と移植性
[編集]DarwinbotsはVisual Basicで開発されている為、開発時間が短くてすむという長所はあるものの、Windows以外の環境への移植は妨げられており、複雑なデータ構造がそれに拍車をかけている。 そのため、現在はVisual BasicからC++への移植が進められている。
重要な要素の欠如
[編集]- 性 - 限定された形での有性生殖は可能となっているが、極めて不十分なものである。この結果として、マラーのラチェットが常に問題となる。
- 代謝 - 他の人工生命シミュレータでは必ずしも必要とはされていないが、現実の生物をモデル化する場合にはそれらの代謝プロセスも表現されるべきである。
- 複雑かつ動的な環境 - ボットの生きる環境は大きくて特徴のない平面に過ぎない。この問題を解決する為にプログラムには幾つかのモードが用意され、特に「pond mode(沼モード)」はある程度の成果を挙げている。
- 種分化と多様性 - Darwinbotsの生物は新たな類似種族や多様性をほとんど生み出さない。通常は植物の進化種族と動物の進化種族のみが生き残る。これは上に挙げた問題が組み合わされた結果だと考えられている。
専門家による評価の欠如
[編集]Darwinbotsのプロジェクトに参加しているメンバーには職業的な人工生命の研究者はおらず、まして人工生命分野で論文を発表するようなこともない為、Darwinbotsの学術的基盤は、基本的な専門家評価すら受けたことのない不確かなものである。コミュニティ内にはDarwinbotsを本物の研究基盤にのせようという緩やかな動きもあるが、今のところDarwinbotsは人工生命の分野ではほとんど知られていない状態である。