Darwinbots

DarwinBotsはCarlo Comisが開発したオープンソースの人工生命シミュレーションソフトウェアである。"ボット"と呼ばれる多数のデジタル生物が存在する仮想環境を提供するソフトウェアであり、この環境内でボット同士が相互に影響を与え合いながら資源を求めて競合し、自己複製を行い、進化していく。Avidaがコア戦争の人工生命版であるといわれているのと同じ意味で、Darwinbotsは C Rotosの人工生命版であるといえる。
設計原理.
Darwinbotsの設計原理は他の多くの人工生命シミュレータとは根本的に異なっている。
他の人工生命ソフトウェアとの違い.
要点をわかりやすくする為、Avidaとの違いを主に取り上げる。
デジタル生物の能力.
他のシミュレータ(特にAvidaとTierra)では、デジタル生物に対してごく基本的な命令と能力のみが与えられ、デジタル生物の習性はそれらの能力を積み上げた結果として表現される。より複雑な習性もこれらの積み上げにより形成される。Darwinbotsでは比較的高度な能力がデジタル生物に与えられている為、より複雑な習性が形成されうる。
例えばAvidaでは自己複製は多くの命令(最低でも17命令)を組み合わせる必要のある複雑なプロセスであって、個々のプロセスは個体ごとに異なる場合もある。一方Darwinbotsでは「完璧な」自己複製がわずか2命令で実現される。
したがって、Darwinbotsは能力の最適化(つまり最適な命令群を得るような進化)ではなく、行動の進化をシミュレートするものだといえる。
適合度関数.
Avidaなどのシミュレータでは、進化していく人工生物に対して非常に限定された適合度関数を定義している。例えば「『特定のタスクを行った生物』に、報酬としてエネルギーを与える」といったものである。Darwinbotsでは、個々の生物の適合度は全くチェックされない。エネルギー供給は、シミュレーション開始時に植物とみなされた個体とその子孫に対して、均一に行われる。
その結果、実際の生物と同様にそれぞれのボットは生き残ることと自己複製することの能力にのみ特化して進化していくことになる。そのため、他の人工生命シミュレータに比べてDarwinbotsは実際の生物との比較がより容易なのである。
しかしこの点は諸刃の剣でもある。外部的な適合度関数が全くない為、その能力が生存に適しているのかどうかを判断することが非常に難しいのである。このことは、特に新しいユーザの不満を引き起こしやすい。
わかりやすさ.
Darwinbotsの開発や変更を行うメンバーに対しては人工生命の学術的知識を要件としていないため、Darwinbotsのプログラムは知的なものではあるが、専門家以外の人々にとっても理解しやすいものとなっている。また、わかりやすいユーザインタフェースとツール群を備えている為、ホビィストにも人気がある。
欠点.
プログラム言語と移植性.
DarwinbotsはVisual Basicで開発されている為、開発時間が短くてすむという長所はあるものの、Windows以外の環境への移植は妨げられており、複雑なデータ構造がそれに拍車をかけている。
そのため、現在はVisual BasicからC++への移植が進められている。
専門家による評価の欠如.
Darwinbotsのプロジェクトに参加しているメンバーには職業的な人工生命の研究者はおらず、まして人工生命分野で論文を発表するようなこともない為、Darwinbotsの学術的基盤は、基本的な専門家評価すら受けたことのない不確かなものである。コミュニティ内にはDarwinbotsを本物の研究基盤にのせようという緩やかな動きもあるが、今のところDarwinbotsは人工生命の分野ではほとんど知られていない状態である。