遺伝粒



ゲームが動かない場合は、「Sun」より最新のJavaをダウンロード。

初めのうちは面白くないので、[1]を 3 回押して125倍速で実行するといいかも。

ver0.2:誕生時間が10000以上でカウントされないバグを修正
   個体上下のメーターの色を暗めにして見やすくしました。

操作説明

ゲームに書かれていない操作だけ
左クリック
右クリック

ドラッグ操作=カメラのとき
左クリックドラッグ
右クリックドラッグ上下

ドラッグ操作=粒のとき
左クリックドラッグ

[Q]
個体追加
個体削除


カメラ平行移動
ズーム


粒の移動

画質切り替え

詳細

個体総数・・・()内は餌を含めた総数
突然変異率・・・新たに誕生する個体のパラメータに、突然変異が起こる確率
誕生時間・・・個体と餌が現れる間隔。[W]で個体のみ、餌のみ、誕生なしに出来る
差別化・・・色ごとの差別
・属性優劣・・・弾が当たったときに受けるダメージに優劣を付ける
・思考偏り・・・緑は餌でしか回復できず、赤は個体でしか回復できない

個体上のメーター=体力
個体下のメーター=蓄え

属性の優劣関係は下の通り。

矢印の向きに強い。灰色に優劣はない。

用意された環境を生き残れる個体の思考回路を、遺伝的アルゴリズムで求めてみた鑑賞物。

遺伝的アルゴリズムとは?

個体を取り巻く環境は以下の通り
・個体は体力を持つ→0で個体消滅
・体力は自然に消耗するが、近くに味方がいると軽減される
・移動できるが、移動距離に応じて体力減少
・弾を撃てるが、撃つと体力消耗
・弾が別の個体か餌に当たったら、体力が少し回復する
・餌に当たったときの回復量と個体のときの回復量の、どちらを重視するかを選べる
・弾に当たったら体力減少
・個体は蓄えを持つ
・体力が最大値の半分以上で回復したら、蓄えも回復する
・蓄えが最大値になったら、ほぼ同じ思考回路を持つ個体を生産し、蓄えを0に戻す
・蓄えの最大値は、体力の最大値の2乗に比例する
・一定時間で餌が現れる
・餌は一定時間で分裂増殖する
・餌は総数500以上では分裂しにくくなり、1000以上では分裂しない

優秀な個体とは、長く生き残れる個体です。

この環境を効率よく生き残るために、個体たちは色々試しながら生きてゆきます。
敵に突っ込むべきかどうか、仲間とともに行動すべきかそうでないか、
動かないほうがいいのか・・・
上の設定を知っていれば試さずとも分かるのですが、個体たちはそんな設定知りません。
しかし遺伝的アルゴリズムによって、効率よく生きる行動を見つけることが出来ます。

しばらく実行していると、
個体たちは団体行動をとって、敵からなるべく離れるように動くようになります。
たまに、餌が増殖するのを見守ってから一気に食べるような個体も出てきます。
中には固定砲台みたいなのも出てきますけども。

お世話になった方々

サクラエディタ:テキスト打ち込みの基本ソフト。

その他・余談

なんか思いつきで作りたくなったので。

しかし改善点は色々あります。
個人的には食物連鎖のような、大小さまざまな個体が現れて、
食って食われての環境を想像したのですが、そうなる気配はありません。
強いものが勝つ、ただそれだけです・・・

何というか、弾を使ったのは間違いだったかな・・・


0xな場所 PV:
inserted by FC2 system