ライフゲームベータ
セルを描きルールを変えてライフゲームの世界を観察
このツールはまだ安定化中のベータ版です。結果に違和感があればお知らせください。
キャンバスをドラッグしてセルを描きます (右ボタン = 消しゴム)。パターンを選ぶとクリックした場所に置かれ、Rキーか回転ボタンで向きを変えられます。ルール B3/S23 は「隣が3つなら誕生、2〜3つなら生存」という意味です。ルールを変えると同じ形がまったく違う世界に育ちます。ショートカット: Space 再生/停止、N 1世代。
「端をつなぐ」がオン(初期設定)だと格子はドーナツ状につながり、画面の外へ出たグライダーが反対側から戻ってぶつかります。初期の256×172格子では、グライダー銃は約2,300世代後に自分のグライダーに当たって壊れ、R-ペントミノは1103世代で116セルになりますが、その後戻ってきたグライダーが残骸に当たって減ります。オフにすると格子の外は死んだセルの壁になり、グライダーは端でブロックに固まり、銃は撃ち続けます(そのかわりR-ペントミノは110セル)。無限平面で求めた既知の値(どんぐり: 5206世代で633セル)はどちらでもそのままは出ません。
処理中…
0.0
停止していません。計算が終わると結果が表示されます。
ライフゲームについて
このツールは256×172マス(サイズ変更可)の格子で「ライフ系」セル・オートマトンを動かします。各マスは生か死のどちらかで、次の世代は周囲8マスのうち生きているマスの数だけで決まります。標準ルールB3/S23は、死んだマスは隣が3つで誕生(Birth)、生きたマスは隣が2つか3つのときだけ生存(Survive)という意味です。全マスを同時に更新するため、現在の世代を読み終えてから別の領域に次の世代を書き込み、まとめて入れ替えています。
起動時は格子の約25%をランダムに埋めます。「端をつなぐ」がオンなら格子はドーナツ形(トーラス)で、右端から出たグライダーは左端から戻ってきます。オフにすると格子の外は常に死んだマスとして数えます。水色は生まれたばかりのマス、紫は長く生きているマス、残像は最近死んだ場所です。
B3/S23を手で1世代進めてみる
横に3マス並んだ「ブリンカー」を考えます。中央は隣が2つなので生存、両端は隣が1つなので死にます。中央の上下の空きマスはどちらも横列3マスすべてと接するので隣が3つになり、誕生します。結果は縦3マスで、次の世代には同じ理屈で横に戻ります。周期2の振動子です。
2×2の「ブロック」は4マスとも隣が3つで生き残り、周りの空きマスは隣が最大2つなので何も生まれません。ランダムな初期状態が数百世代後にブロックや蜂の巣、ブリンカーの寄せ集めに落ち着くのは、ルールをちょうど満たすこうした安定形が多いためです。
観察1: グライダーとドーナツ格子
消去してからグライダーを1つ置き、Nキーで1世代ずつ進めます。4世代ごとに元の形に戻りつつ斜めに1マス移動します。4世代で1マス、ライフの用語でc/4と呼ぶ速さです。
端をつないだ256×172格子では、グライダーは横256マスを1,024世代、縦172マスを688世代で一周します。両方が同時にそろって出発点に戻るには256と172の最小公倍数11,008マス分、つまり44,032世代かかります。端をつながないと、グライダーは壁にぶつかって小さな残骸になります。
観察2: グライダー銃が自滅する理由
「グライダー銃」はビル・ゴスパーが1970年に見つけたゴスパーのグライダー銃です。30世代ごとにグライダーを1つ撃ち出し、グライダーは4世代で1マス進むので、列の間隔は斜め方向に7.5マスになります。コンウェイは「無限に増え続けるパターンはない」と予想していましたが、この銃がそれを覆しました。
ただし端をつないだまま放っておくと、銃はいずれ壊れます。格子が有限のドーナツなので、撃ったグライダーが一周して銃自身や後続の列に衝突するからです。無限の増殖は無限平面でしか成り立ちません。端をつながない場合は、壁で砕けた残骸が銃に届かない位置に置くと長持ちします。
観察3: 5マスの種が1,103世代続く
Rペントミノはわずか5マスですが、無限平面では1,103世代たってようやく安定し、そのとき残るのは116マス、飛び去ったグライダーは6個です。どんぐり(acorn)は7マスから5,206世代かけて633マスになります。このツールでは同じ数字にならないことがあります。有限格子では飛び去ったグライダーが反対側から戻り、残骸とぶつかるからです。最大の格子を選び中央に置けば、最初の数百世代は文献どおりの展開を見られます。初期の256×172格子の中央に置いて測ると、端をつないだRペントミノは1,103世代で文献どおり116マスになりますが、戻ってきたグライダーが残骸に当たって5,000世代には94マスに減ります。端をつながないと6個のグライダーが壁でブロックに固まり、110マスで止まります。どんぐりは5,206世代で、つなぐと439マス、つながないと493マスです。
ルールを変えると何が起きるか
エンジンはBとSを隣数0〜8のビットマスクで受け取るので、どの組み合わせでも動きます。用意したルールはそれぞれ性格がはっきりしています。
- ハイライフ B36/S23: ライフに「隣6つでも誕生」を足しただけで、自己複製するパターン(レプリケーター)が存在するルールとして知られています。
- シード B2/S: 生存条件が空なので全マスが1世代しか生きませんが、隣2つで誕生するため爆発的に広がります。
- デイ&ナイト B3678/S34678: 生と死を入れ替えても同じルールになり、黒い海の白い島と白い海の黒い島が同じようにふるまいます。
- 迷路 B3/S12345: 一度できたマスがほとんど死なず、通路のような壁に固まります。
- サンゴ B3/S45678: 詰まった塊がゆっくり外へ広がります。
例
ブリンカーの1世代
- 入力
B3/S23、横3マス (0,0)(1,0)(2,0)- 結果
縦3マス (1,-1)(1,0)(1,1)
両端は隣1つで死亡、中央は隣2つで生存、(1,-1)と(1,1)は隣3つで誕生。
グライダーが出発点に戻る世代
- 入力
256×172、端をつなぐ、グライダー1個- 結果
44,032世代
4世代で1マス。lcm(256,172)=11,008マス × 4 = 44,032。
グライダー銃の発射間隔
- 入力
ゴスパーのグライダー銃- 結果
30世代に1個、間隔7.5マス
周期30 ÷ 速さ(4世代で1マス) = 7.5マス。
使い方
- ルールを選ぶか、B3/S23の形式で入力します(S23/B3、23/3も可)。
- キャンバスをドラッグしてマスを描くか、パターンを選んでクリックで配置します。Rキーで回転。
- Spaceで再生/停止、Nで1世代進めます。
- 「端をつなぐ」を切り替えて、同じパターンの違いを比べます。
よくある質問
ライフゲームは誰がいつ考えたのですか?
数学者ジョン・ホートン・コンウェイが考案し、マーティン・ガードナーがScientific American誌1970年10月号の「数学ゲーム」欄で初めて紹介しました。
ライフゲームがチューリング完全とはどういう意味ですか?
グライダーを信号、グライダー銃と衝突を論理ゲートとして使えば、原理的にはどんな計算も組み立てられるという意味です。バーレカンプ、コンウェイ、ガイの『Winning Ways』で構成が示されました。実際に組むにはこのツールよりはるかに大きな格子が必要です。
ランダムに始めるとなぜ止まってしまうのですか?
多くのランダム配置は、ブロックなどの静物とブリンカーなどの振動子に落ち着きます。ドーナツ格子ではさまようグライダーもいずれ何かにぶつかるため、静かに点滅するだけの状態になりがちです。
端をつながないと結果が間違いになりますか?
間違いではなく、境界条件が違うだけです。理論上のライフは無限平面なので、どちらも近似です。
補足
格子の一辺は最大1,024マスです。無限平面で知られている寿命や最終個体数は、有限格子では変わることがあります。
関連ガイド
出典
- M. Gardner, Mathematical Games: The fantastic combinations of John Conway's new solitaire game “life”, Scientific American 223(4), 120–123 (October 1970)
- LifeWiki — Gosper glider gun
- LifeWiki — R-pentomino
- LifeWiki — Acorn
- LifeWiki — HighLife (B36/S23) and its replicator
基準日: