Darwinbots
From Wikipedia, the free encyclopedia
Darwinbotsの設計原理は他の多くの人工生命シミュレータとは根本的に異なっている。
- 全てのボットは自分専用の半保護されたアドレス空間を持つ(別のボットに属する領域の内容を変更することも出来るが、これは非常に攻撃的な手段であり、互いに接近しなければならず、またこの攻撃から身を守るための対抗手段も存在する)。
- すべてのボットが1つの周期で自分自身のDNAコードを「全て」実行する。そのため、ボットのDNAが複雑になっても実行速度を犠牲にすることがない。これはTierraやAvidaなどのタイプの人工生命シミュレータと大きく異なる点である。
- 提供される仮想環境は離散的な平面世界ではない。つまり、それぞれのボットがマス目状に配置されているわけではなく、この点でセル・オートマトンとも異なっている。
- 全てのボットはsysvarsと呼ばれる特定のメモリ領域を介して世界そのものと相互作用できるという、基本的かつ高度な能力を有する(sysvarsは「一連の物体を前方に加速せよ」「接続糸を打ち出せ」といったものである)。DarwinBotsはこの特徴により、他の人工生命シミュレータのように計算処理のために進化するのではなく、食物を追いかけたり、余分のエネルギーを利用して筋肉を形成したり、あるいは現実の生物の様に各種の問題を解決する為に基本的な性質を組み合わせて新しい手段を獲得したりする。このようにしてDarwinbotsは能力の進化ではなく「習性」の進化をシミュレートするのである。
他の人工生命ソフトウェアとの違い
要点をわかりやすくする為、Avidaとの違いを主に取り上げる。
デジタル生物の能力
他のシミュレータ(特にAvidaとTierra)では、デジタル生物に対してごく基本的な命令と能力のみが与えられ、デジタル生物の習性はそれらの能力を積み上げた結果として表現される。より複雑な習性もこれらの積み上げにより形成される。Darwinbotsでは比較的高度な能力がデジタル生物に与えられている為、より複雑な習性が形成されうる。
例えばAvidaでは自己複製は多くの命令(最低でも17命令)を組み合わせる必要のある複雑なプロセスであって、個々のプロセスは個体ごとに異なる場合もある。一方Darwinbotsでは「完璧な」自己複製がわずか2命令で実現される。
したがって、Darwinbotsは能力の最適化(つまり最適な命令群を得るような進化)ではなく、行動の進化をシミュレートするものだといえる。
適合度関数
Avidaなどのシミュレータでは、進化していく人工生物に対して非常に限定された適合度関数を定義している。例えば「『特定のタスクを行った生物』に、報酬としてエネルギーを与える」といったものである。Darwinbotsでは、個々の生物の適合度は全くチェックされない。エネルギー供給は、シミュレーション開始時に植物とみなされた個体とその子孫に対して、均一に行われる。
その結果、実際の生物と同様にそれぞれのボットは生き残ることと自己複製することの能力にのみ特化して進化していくことになる。そのため、他の人工生命シミュレータに比べてDarwinbotsは実際の生物との比較がより容易なのである。
しかしこの点は諸刃の剣でもある。外部的な適合度関数が全くない為、その能力が生存に適しているのかどうかを判断することが非常に難しいのである。このことは、特に新しいユーザの不満を引き起こしやすい。
わかりやすさ
Darwinbotsの開発や変更を行うメンバーに対しては人工生命の学術的知識を要件としていないため、Darwinbotsのプログラムは知的なものではあるが、専門家以外の人々にとっても理解しやすいものとなっている。また、わかりやすいユーザインタフェースとツール群を備えている為、ホビィストにも人気がある。
