ライフゲームとバリエーション【1】 | すた・ばにら

すた・ばにら

2019/11/29にYahoo!ブログ「すた・ばにら」より移植処理しました。

ライフゲームと言っても人生ゲーム、即ち億万長者か貧乏農場行きか運命の分かれ道…とばかりに一世を風靡したあのボードゲームではない。それはそれでまた語るに値する多くの話題があるのだが、ここで今から話す積もりなのは些か知名度は低いセル・オートマトンの一形態であるライフゲームである。

逆に、この種の話題にホットな内容を見いだしたいと思った読者、検索によってたまたま行き着いた研究者には申し訳ないのだが、自分なりに感じたこととシミュレーションの結果をまとめたに過ぎず、熟読に値する新しい内容は何も含まれていない。単なる自分用の覚え書きということで…

---

数や図形の性質を扱うものではないのだが、それにもかかわらず「ライフゲーム」および派生する問題に関しては、数学が取り扱うべきカテゴリに属するものとされる。数学は数と図形のみならず、論理も取り扱う。ライフゲームはある一定の手続きによって初期状態がどう変化するか観察することに主眼があり、条件分岐の積み重ねからは論理、変遷パターンの分類からは場合の数や確率という数学的道具が要求されるからである。

私の知る限り、発祥の地である海外ではともかく国内にあっては、ライフゲームを紹介した気軽に読める数学の書物は皆無である。それが1970年を過ぎるまで数学者たちを始めとする人々の概念としては登場しなかったのだが、概論的な話題として取り上げた書物はもちろん、そもそもライフゲームなる言葉を見いだしたことすらなかった。私が初めてこの語に接したのは、Wikipediaの記事だった。

「Wikipedia - ライフゲーム」
http://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B2%E3%83%BC%E3%83%A0


ざっと読めば、それは「2つの状態を取り得るセルの配置と変遷に関する分析問題」であり、ゲームという呼称はあっても2人で対戦するチェス、1人で楽しむトランプ占いとは趣を異にする。こちらの手順に反応してくれる相手は居ないし、観察する人間が居ようとも主観の入る要素がない。ソリティアやフリーセルなら初期状態の他に、参加する人間が如何に巧妙な手順でカードを動かすかという要素が入ってくるが、ライフゲームにはそれがない。初期状態あるのみで、その後は所定のルールに従って初期状態を変化させる手順は固定されており、そのため「0人ゲーム」とも呼ばれる。

実際にその操作に触れてみれば理解にそう困難はないものの、先のライフゲームに関する Wikipedia の記述には専門的予備知識を前提とした内容が多く、ライフゲームとは何たるかを知る概論的な記事としては些か難しいかも知れない。図を見ても一体何かどう変遷するのか、そこに見出せる興味深いものが何たるかが分かりづらいだろう。

次なる困難は、ライフゲームが支配される基本ルール - 碁盤目状に配置されたすべてのセルは各々8個のセルに辺および頂点で接しているが、その状態により次世代のセルの状態が決定される - を頭で理解しても、個別の事例で世代変化がどのように進むかを逐一図示する際に直面する面倒さである。多くの場合トリビアルな終結 - すべてのセルの死 - を迎え、特筆すべき状態を見つけるまでに大変な手間を要する。

しかしいずれの困難についても、今では思い悩む必要はない。一定のロジックに沿って何かを変化させる処理はコンピュータの得意とするものであり、現在では何も方眼紙を準備し、ルールに沿って慌ただしく鉛筆でマス目を塗ったり消しゴムで消し去ったりの作業など不要である。ライフゲームの動きをコンピュータ上で再現するフリーソフトは沢山あるし、自由な初期配置から始めさせ、経過を記録したり、あるいは基本ルールに改変を加えて新たなシミュレーションを興す助けとなるソフトもある。

夥しいほど存在するフリーソフトの中から、私は「ライフゲームエディタ」というソフトを選んでシミュレーションを行ってみた。

「Vector - ライフゲームエディタ」
http://www.vector.co.jp/soft/win95/game/se059848.html


かなり古いソフトなものの安定的に動作するし、広い描画範囲で初期配置を自由に設定できるのみならず、基本ルールを容易に変更できる点も好適である。

ライフゲームでは、各セルを取り巻く周囲の環境によって次の自身の状態が決定される。オリジナルのライフゲームでは正方形のセルが碁盤目状に配置されているので、辺および頂点で接するセルは(境界がなく無限に広がっていると仮定すれば)8個ある。あるセルを中心とした辺長3の正方形を造るセルが、自らの運命を決める「環境」である。これを「近傍」と呼ぶことにしよう。近傍の2つが生きている状態なら自らも生の状態を保持し、3つが生であれば現在の状態にかかわらず生へ遷移する。それ以外の環境ではすべて死が宣告される。

この判定は時間を停止し、現在あるすべてのセルに対して行われる。環境を反映して一連の判定の後(これを「次世代」と言う)にセルが取り得る変化は

(1)死へ遷移(生から死へ、または死の状態を保持)
(2)生へ遷移(死から生へ、または生の状態を保持)
(3)現在の状態を保持


の3つとなる。

死の状態から再度「死の判定」が下っても死のままであり、生の状態から誕生に相当する環境へ置かれても生のままで、これは見かけ上現在の状態が保持されているのと同等になる。遷移先は二値だから実際は生と死でなくとも0と1、黒と白でも構わない。一般には(直観とは反対だが識別しやすいように)生を黒マス、死を白マスで描画する。

現在の状態を保持するのに必要な「生きた」セル数をX、生へ遷移するのに必要なセル数をYとしたとき、ライフゲームおよびそのバリエーションを含めて統一的に "X/Yルール" と書かれる。オリジナルのライフゲームの場合は23/3ルールである。

ライフゲームエディタで23/3ルールを設定し、いろいろな初期配置の元でシミュレーションを行わせてみると分かるように、多くは比較的短いステップで生きたセルが減り続けて「全滅」するか、世代が進もうとも全く変化しない小さな島あるいは数個の島模様を巡回する「群島」へ収束することに気付く。どのような種類の島および巡回する群島があるかは深く研究されており、初期配置としても非常に「しぶとい」パターンの存在も見いだされている。更にはマス目に境界がなく無限に伸びていれば、どんどん人口増殖していくパターンの存在も提示されている。

ライフゲームの基本ルールはセル・オートマトンの一形態として最も初めに調べられたものであり、パターン自体は現在ではかなり広く研究されている。しかし基本ルールを変えたものにおける変遷パターンは、恐らくまだ多くが未知の世界に埋もれたまま発掘を待っている。

私が興味を覚えたのは、この基本ルールを変えた場合に初期配置はそれぞれどのように変遷するか、更にはどのように変遷するケースが頻出するかという点にあった。

オリジナルのライフゲームにある23/3ルールは、しばしば生命体の世代継承に擬えられる。近傍の「生命体」が多すぎても少なすぎても次世代で死へ遷移することは、世代を繋いでいくには過疎でも過密でも不適切であることとして説明される。実際、これはもしかするとこの世の生命体が世代を繋ぐための共通ルールを示唆しているかも知れない。

しかし次世代への継承を過疎・過密回避に求めるのではなく、純粋に確率的な問題へ移せば、一見非常識な世代継承のルール設定を行うことによって、どのような遷移が起こりうるかを考察するヒントになる。例えば「近傍に生きたセルがゼロ個(すべて死)であれば次世代で誕生し、8つであれば保持し、それ以外は死滅」を表す8/0ルールを設定することは可能であり、初期配置を与えた後は一意に変化するのはオリジナルのライフゲームと同様である。

ただし、その振る舞いはオリジナルとは些か趣が異なっており、一定の幅を持つ生命帯と死滅帯が交互に現れ、同心正方形を描いた状態で永遠に振動し続ける。初期状態としていくつかの生命体を配したとしても、行き着く先の状況は同じである。これは知性に対する挑戦を感じさせない。反復変遷せず、いろいろなパターンをもって変化する変形ルールはないものだろうか。

それは意外にも容易に見つけられたし、反復変遷の仕方もルール設定によって多種多様であることに気付いた。

ライフゲームとバリエーション【2】へ続く