全5755文字
PR

コンピューターの得意分野の1つがシミュレーションだ。自分でプログラムを書けば、架空生物の生命すらシミュレートできる。本特集ではプログラミング言語「Python」を使って人工生命を作る方法を解説する。

 Pythonで「人工生命」のプログラムを作ってみましょう。「人工生命」といっても、非常にシンプルな生命のシミュレーションです。

 生命ですから「寿命」がある。「寿命」は生きているうちに減っていく。「食べ物」を得ることで少し寿命が復活する。敵に遭遇すれば「バトル」になり、条件を満たせば「生殖」して「子」を作り、生命群となる…といったシミュレーションを、プログラムで実現します。具体的には、以下のように段階的にプログラムを作成・調整していきます。

[画像のクリックで拡大表示]

 このような人工生命は、英語で「Artificial Life」、略して「AL」と呼ばれます。コンピュータグラフィックスの世界では、1980年代から人気の分野です。そのオリジンの1つが、Craig Reynolds氏による「Boids」(ボイド。https://en.wikipedia.org/wiki/Boids)です。Boidsは、「Bird-oid」(鳥もどき)を略した、氏による造語です。鳥同士は飛行する際、「衝突しないように互いに距離を取る」「他の鳥が飛ぶ方向や速度に合わせようとする」「群れの中心に向かおうとする」といった行動をとります。この単純な3つのルールをプログラムに実装しただけで、驚くほどリアルな鳥の群れがシミュレートできたのです。このことは当時、世の中に衝撃を与えました。

 また、1994年にKarl Sims氏によって発表された「Evolved Virtual Creatures」(https://www.karlsims.com/evolved-virtual-creatures.html)では、動物が世代を重ねて「進化」する様子がシミュレーションされています。意外なやり方で高速に移動する方法を獲得したり、敵から餌を奪い取るように「進化」したりする様子は、今見ても驚異的です。

 こうしたALのアルゴリズムは洗練を重ねて、今の映画やゲームにおける群集表現に多用されています。