あなたの知らないライフゲームの宇宙 《後編》
前編に引き続き、ライフゲームの面白いパターンを紹介していきます。
ここからが本番です!
後編もくじ
◆ 長期間に渡り不規則に変化する「長寿型」
◆ すべての歯車が噛み合った工場設備
◆ 広大な空間を流浪する巨大宇宙艦隊
◆ 演算能力を獲得した構造物
◆ すべてがライフゲームになる
長期間に渡り不規則に変化する「長寿型」
前編で述べた「固定物体」「振動子」などの分類は、あくまで変化が規則的な状態に安定したときのものです。ふつうはすぐに安定してどれかに落ち着くんですが、ごくまれに、そうではないパターンがある。
単純な配置に始まり、長期間にわたって不規則な変化を続けるケース。
これを長寿型、またはメトセラ(Methuselah)と呼びます。
なお元ネタのメトセラは旧約聖書に登場するなかで最も長寿だった人物で、969歳で死んだとされているそうです。
...
では例を見てみましょう。パターン名『Ark 2』です。
まず初期配置がこれ。生きたセルが、計19個です。
これを動かすとこうなる。(→ 全画面で見る)
※動画は最初のとこだけのループです。
ここから、8,120,878世代に渡って暴れまわります。
実際やってみたんですが、ななめ4方向に十字型にデブリを飛ばし続けながら右下方向に縄張りを広げていき、最終的に安定しました(右下方向にごく少数、単調な動きで永遠に道路を延ばし続けるセル群が残ります)。
まあ、だからなんだという向きもあるかもしれませんが、とりあえずメトセラというネーミングがかっこよかったので取り上げました。
※注釈
私のプログラムは移動物体が画面端に来るとそこで止まってしまう仕様なので、そこから先の動きは本来と異なります。自分で動かしてみたいときは空間に余裕があるタイプのプログラムにしましょう。
すべての歯車が噛み合った工場設備
ライフゲームでは、少ないセル数でのパターンを網羅すべく探究する人がいる一方で、大きな構造物を組み立てる方向に執念を燃やす人たちもいます。
まず例を一つ。(→ 全画面で見る)
工場、完全に何かの工場です。
やってることとしては、グライダー(この斜め方向に移動している一つ一つの小さい物体)を周期的に生み出しているだけです。
でも、もしこの部品のどれかがちょっとでもずれたら、それだけで破綻してしまいます。すべての部品が役割を果たすことで全体が機能している。
...
次にもう一つ、さらに大きなパターンです。
ここからは、私のショボいプログラムでは処理しきれない規模になるので、ライフゲーム用のソフト Golly の画面キャプチャを紹介します。
(パターンファイル: 2c5-spaceship-gun-p690.rle)
これが何をしているか分かるでしょうか?
四方八方から小さな物体が集まってきて、真ん中で新たな移動物体が組み立てられ、射出されていますね。
拡大しよう。
ほんとに組み立ててる! どうみても工場!
お忘れかもしれませんが単なる「動くドットの集まり」じゃないんですよ。
一つ一つのセルは、あくまでライフゲームの単純なルールに従ってついたり消えたりしているだけです。それに、生きたセルが単純にいくつか集まったところで、多くの場合は自滅してしまうのがライフゲームです。
そんな危うい均衡の上で、この工場の設計が見事に成り立ってるわけです。
広大な空間を流浪する巨大宇宙艦隊
広大だの巨大だのは私の感覚ですが、まあこれをご覧ください。
ふたたび Golly の画面からです。(パターンファイル: Corder-lineship.rle)
さながら宇宙艦隊です!
というのも、ライフゲームで宇宙船と言えばたいていは個々の小さな移動物体を指します。こうして多数の移動物体が連携しながら、全体として移動能力を保って進軍している様子は、艦隊と呼んで差し支えないのではないか。
これも拡大しよう。
棒状の何かを敷設しながら進んで、それを後方部隊が回収していますね。
それ以外にも、本来なら固定物体として同じ場所に留まり続けるはずの物体が次々に設置・回収されることで、全体として前に進んでいます。
つまり、単に移動物体の大群が一緒に同じ方向に進んでいるのではない。
緊密な連携と相互作用で成り立っている、一つのシステムなのです。
演算能力を獲得した構造物
終わりに近づいてきましたが、ここでまた一つレベルの違う話になります。
今まで見てきた多くのパターンでは、移動物体(グライダーなど)が重要な役割を担っていました。移動物体を別のセル群に投げ込めば何らかの相互作用が起こり、そうでなければ何も起こらない、もしくは別の結果が生じる。
これはある種の情報伝達です。
と考えると、移動物体を電気信号か何かのように使って、意図的に情報伝達を行うことができます。
さらにライフゲームでは、私たちが現実で使うコンピュータの基礎にもなっている論理回路というものを、ライフゲームの世界の中で実装することができます。
すると、例えばこの動画のように、計算機の動作をシミュレートできます。
補足しよう。
こういうコンピュータ的な話はさっぱりだという人は飛ばしていいです
(私もまだちゃんと勉強してないから、変だったら教えてください)。
例えばこの動画に出てくるAND回路。
二つの入力値があって(それぞれ二進法の0か1としましょう)、
・入力値が二つとも1のとき、出力は1
・それ以外では、出力は0
というやつです。
これをライフゲームの世界で実現するために、上記の動画では、次のような組み立てをしていました。
黒い箱がグライダー銃、矢印が飛んでいくグライダーの列です。
AとBについては、入力値に応じて
・1ならグライダーを飛ばす
・0なら飛ばさない
とします。
すると、AとBが両方とも「1」のとき、こうなります。
適切な角度でグライダーをぶつけると打ち消しあう性質を利用して、「×」のところでグライダー(による信号)を止めているのです。
結果、白い箱までグライダーが届くので、出力結果は「1」と分かります。
Aが1で、Bが0のときは、こうなります。
グライダーが最後まで届かないので、出力は0。
残りの2パターンでも同様に0となります。
これで、AND回路の完成です。
この調子で回路を組み上げていくと、理論上は通常のコンピュータと同じように、計算もプログラミングもできちゃうらしい、ということが分かっています。
ライフゲームの世界における知的生命体の誕生も近い。(近くはない)
すべてがライフゲームになる
最後、もはや何も言うまい。
ここまでで少しでも面白いと思う部分があったなら、そしてこの動画をまだ見てないのなら、見るのです。
パターン名『OTCA metapixel』の紹介。何度見ても圧巻です。
おわかりいただけただろうか。
できれば第1回から全部見てほしい。
この記事と重なる部分もありますが、この記事で話してない話題もまだまだあります。
とっくに見た? よろしい。
おわりに
いかがでしたか?
って最後に聞いちゃうのありがちですけど、やっぱり気になります。
形や動きが面白い。
緻密で複雑な機構がかっこいい。
計算もできちゃってすごい。
などなど、ライフゲームの魅力を複数の側面からお伝えしてきました。
あらためて元々のルールを思い出してほしい。
あの単純な規則からこれほど多様な結果が得られるのは驚くべきことです。
ここまで読んだあなたが次にすることは、決まっていますね。
ライフゲームの魅力を伝え広めるのです!
この世界の存在を寿ごう。
※脚注
この記事で使ったライフゲームのスクリーンショットとキャプチャ映像は、フリーソフトウェア Golly に同梱されたパターンのデータファイルを私が書いたプログラムで読み込んで表示したものか、または Golly 自体のキャプチャ映像です。私のプログラムで読み込むにあたって使用しているデータの情報はこちらにあります。
→ 前編に戻る
この記事が気に入ったらサポートをしてみませんか?