セルオートマトン シミュレータ - ライフゲーム・1次元ECA

1次元セルオートマトン シミュレータ - 全256ルール一覧・解説つき

各セルが0/1の2状態を持ち、自身と左右の近傍セル(計3セル)の組み合わせで次世代の状態が決まる、最もシンプルなセル・オートマトンです。正式には初等セルオートマトン(Elementary Cellular Automaton、略称ECA)と呼ばれます。ルールは全部で256通り。チューリング完全が証明されたRule 110や、カオス的なパターンを生むRule 30が有名です。シミュレータでルール番号を入力して動作を確認し、下部の一覧表で全ルールの出力を比較できます。

ヌルルール - 全セルが死滅

初期状態

ルールテーブル
現在の3セル111110101100011010001000
次の世代00000000

ルール

1次元セルオートマトンは、次のステップで動作します。

  1. 初期状態として横一列にセルを並べる。各セルは0(死)か1(生)の状態を持つ。端のセルは反対側とつながったリング状になっている(周期境界条件)
  2. 各セルについて、左隣・自分・右隣の3セルの状態を見る
  3. 3セルの組み合わせをルールテーブル(各組み合わせに対して次の値を定めた対応表)に照合して、次の世代のそのセルの値を決める
  4. すべてのセルを同時に更新し、次の世代を得る(1セルずつではなく全セルの次の値を計算してから一斉に置き換える)
  5. 2〜4を繰り返して世代を重ねる。このシミュレーターでは各世代を1行として上から下に描画する

ルール番号の決まり方

3セルの組み合わせは 2³ = 8通り(111〜000)あり、ルールは8通りそれぞれに対して次の世代の値(0か1)を指定する対応表です。Rule 110の対応表は次のようになります。

現在の3セル111110101100011010001000
次の世代01101110

この8つの出力を並べた 01101110₂ を10進数に変換すると 110₁₀ — これがルール番号になる。全部で 2⁸ = 256通りのルールが存在する

動作の具体例

1. 初期状態を用意する

  1列のセルが並んでいて、それぞれ 0 か 1 の状態を持つ。

  世代0: [0] [0] [1] [0] [0]
2. 各セルの近傍を見る

  セルごとに、左隣・自分・右隣の3つをセットで見る。
  端のセルは反対側とつながったリング状として扱う(周期境界条件)。

       左 中 右
        ↓  ↓  ↓
  [0]  [0][1][0]  [0]
3. ルールテーブルで次の状態を引く

  3つの組み合わせをルールテーブルに照合して、次の世代のそのセルの値を決める。

  例: Rule 110の場合
  (0,1,0) → ルールテーブル参照 → 1
4. 全セル同時に更新する

  これを全セルに対して同時に適用して、次の世代を作る。

  例: Rule 110の場合
  世代0: [0] [0] [1] [0] [0]
                ↓ 全セル同時に遷移
  世代1: [0] [1] [1] [0] [0]
5. 繰り返す

  2→3→4を繰り返して世代を重ねていく。2Dに並べると模様ができる。

1次元セルオートマトンとは

1次元セルオートマトン(Elementary Cellular Automaton, ECA)は、スティーブン・ウルフラムが1980年代に体系的に研究した最もシンプルなセル・オートマトンです。ウルフラムはセル・オートマトンの振る舞いをクラス1(均一)、クラス2(周期的)、クラス3(カオス)、クラス4(複雑系)の4つに分類しました。クラス1・2は秩序的、クラス3はカオス的な振る舞いを示し、クラス4はその境界に位置します。

256通りのルールの中には、カオス的な乱数生成に使われるRule 30、チューリング完全が証明されたRule 110、シェルピンスキーのガスケットを生成するRule 90、交通流モデルとして知られるRule 184など、興味深い性質を持つルールが数多く存在します。

セル・オートマトンの歴史や応用分野について詳しくはこちら

カオスと複雑系

上述の4クラスのうち、クラス3(カオス)とクラス4(複雑系)は特に興味深い挙動を示します。

クラス3 — カオス
ランダムに見える非周期的なパターンを生成します。Rule 30 はMathematicaの乱数生成に使われたことで有名で、等価ルールの Rule 86(左右反転)、Rule 135(reverse+flip)、Rule 149(左右反転+reverse+flip)も同じ構造のカオスを示します。Rule 45、Rule 106 もカオス的な挙動を示し、それぞれ等価ルール群(Rule 45 → 75, 89, 101、Rule 106 → 120, 169, 225)を持ちます。
クラス4 — 複雑系
秩序的なクラス1・2とカオス的なクラス3の境界に位置します。完全に規則的でもなく、完全にランダムでもない振る舞いの中から、「グライダー」と呼ばれる移動する局所構造が自然に出現し、互いに衝突・相互作用します。この性質が計算能力につながっており、詳しくは次のセクションで解説します。

チューリング完全

チューリング完全とは、適切な初期条件を与えれば任意の計算を実行できる能力のことです。クラス4(複雑系)の「秩序的すぎず、カオス的すぎない」性質がこれを可能にしています。秩序的なルールでは情報が固定されてしまい、カオス的なルールでは情報が拡散して消えてしまいますが、クラス4ではグライダーによって情報を保持・伝達できるため、計算が成り立ちます。

Rule 110
2004年にMatthew Cookによってチューリング完全であることが証明され、この極めて単純なルールがあらゆる計算をシミュレートできることが示されました。グライダーと呼ばれる移動する局所構造が衝突・相互作用することで計算を実現します。等価ルールの Rule 124(左右反転)、Rule 137(reverse+flip)、Rule 193(左右反転+reverse+flip)もすべてチューリング完全です。
Rule 54
チューリング完全の有力候補です。Rule 110 と同様にグライダーを持ちますが、証明はまだ完了していません。シングルセルの初期条件では左右対称な出力を生成します。左右反転(後述)しても Rule 54 自身になるため、等価ルールは Rule 147(reverse+flip)のみです。

シェルピンスキーのガスケット

ECAの中で最も有名なパターンのひとつがシェルピンスキーのガスケット(Sierpinski triangle)です。1つのセルだけをONにした初期条件から、自己相似的なフラクタル三角形が生成されます。

正統なシェルピンスキー
Rule 18, 90, 146 は左右対称のシェルピンスキー三角形を生成します。Rule 60 は右に傾いた三角形、Rule 102 は左に傾いた三角形を生成します(この2つは左右反転の関係)。
シングルセルでのみシェルピンスキー
Rule 26, 154, 210, 218 はシングルセルの初期条件ではシェルピンスキー三角形を生成しますが、ランダムな初期条件ではそれぞれ異なる挙動を示します。
シェルピンスキー風フラクタル
Rule 22, 122, 126 はシェルピンスキーに似たフラクタルパターンを生成しますが、厳密にはシェルピンスキー三角形とは異なります。
白黒反転シェルピンスキー
シェルピンスキーを生成する Rule 60, 90, 102 は回文ルール(後述)で、それぞれ等価ルールの Rule 195, 165, 153 が白黒反転したシェルピンスキーを生成します。同じく回文ルールの Rule 126(シェルピンスキー風)の等価ルール Rule 129 は、反転シェルピンスキー風フラクタルを生成します。
その他の等価なシェルピンスキー
Rule 18 の reverse+flip(後述)である Rule 183、Rule 146 の reverse+flip である Rule 182 も等価なシェルピンスキーを生成します。

交通モデル

Rule 184 は粒子保存則を持つルールで、交通流のシミュレーションに使われます。黒セルを車、白セルを空きスペースとみなすと、車は前方が空いていれば1マス前進し、詰まっていれば停止します。等価ルールの Rule 226(左右反転)は逆方向の交通モデルになります。

等価ルールとは

256個のルールの中には、同じ構造のパターンを生成する「等価ルール」が存在します。等価ルールは以下の3つの変換で結ばれています。

左右反転(mirror)
近傍パターンの左セル(p)と右セル(r)を入れ替える操作です。例えば 110(左=1,中=1,右=0)は 011(左=0,中=1,右=1)になります。対称なパターン(111, 101, 010, 000)は変化しません。結果としてビット位置 6↔3 と 4↔1 の値がswapされ、同じ初期条件から左右逆のパターンが出力されます。シングルセルからの出力が左右対称なルール(例: Rule 26と82、Rule 30と86)では左右反転しても同じに見えるため、ランダム初期条件で確認してください。
reverse+flip
ビット列を逆順に並べ替えてから、0と1を入れ替える操作です。初期条件も白黒反転すると、出力も白黒反転した同じパターンになります。ただし Rule 110 と Rule 137 のように、回文ルールでなくてもシングルセルの初期条件で白黒反転したパターンが現れるケースもあります。
左右反転 + reverse+flip
上記2つの変換を組み合わせた操作です。近傍パターンの左右を入れ替えたあと、ビット列を逆順にして0と1を反転させます。

注意 mirror(左右反転)とreverse+flipのreverseは異なる操作です。mirrorは近傍パターンの左右セルを入れ替える操作(ビット位置 6↔3, 4↔1 のswap)で、reverseはビット列全体の順序を逆にする操作です。

回文ルール — 対称性が生む特殊ケース

ルールのビット列が回文(左右どちらから読んでも同じ配列)の場合、255-R(各ビットの0と1を入れ替えるだけ)で等価ルールになります。例えばRule 90(01011010)は回文なので、255-R のRule 165(10100101)と等価です。回文ルールではreverse+flipもビット反転と同じ結果になります(reverseしても変わらないため)。

全256ルール — 出力マッピング一覧表

全256ルールの出力マッピング一覧
ルール111110101100011010001000備考
000000000ヌルルール - 全セルが死滅
100000001
200000010
300000011
400000100
500000101
600000110
700000111
800001000
900001001
1000001010
1100001011
1200001100
1300001101
1400001110
1500001111
1600010000
1700010001
1800010010シェルピンスキーのガスケット
1900010011
2000010100
2100010101
2200010110シェルピンスキー風フラクタル
2300010111
2400011000
2500011001
2600011010シングルセルではシェルピンスキー、ランダムでは正統なシェルピンスキーと異なる挙動
2700011011
2800011100
2900011101
3000011110カオス的(クラス3)- Mathematicaの乱数生成に使用
3100011111
3200100000
3300100001
3400100010
3500100011
3600100100
3700100101
3800100110
3900100111
4000101000
4100101001Rule 107の等価ルール(reverse+flip)
4200101010
4300101011
4400101100
4500101101カオス的(クラス3)
4600101110
4700101111
4800110000
4900110001
5000110010クラス2 - 周期的な交互パターン
5100110011
5200110100
5300110101
5400110110複雑系(クラス4)- 万能計算の候補
5500110111
5600111000
5700111001クラス2 - 複雑な規則パターン
5800111010
5900111011
6000111100シェルピンスキー三角形(右傾斜)- 加法的ルール
6100111101
6200111110クラス2 - グライダー相互作用、最終的に周期的
6300111111
6401000000
6501000001
6601000010
6701000011
6801000100
6901000101
7001000110
7101000111
7201001000
7301001001局所的カオス(Li-Packard分類)
7401001010
7501001011Rule 45の等価ルール(reverse+flip)
7601001100
7701001101
7801001110
7901001111
8001010000
8101010001
8201010010Rule 26の等価ルール(左右反転)
8301010011
8401010100
8501010101
8601010110Rule 30の等価ルール(左右反転)
8701010111
8801011000
8901011001Rule 45の等価ルール(左右反転+reverse+flip)
9001011010シェルピンスキーのガスケット
9101011011
9201011100
9301011101
9401011110
9501011111
9601100000
9701100001Rule 107の等価ルール(左右反転+reverse+flip)
9801100010
9901100011Rule 57の等価ルール(左右反転)
10001100100
10101100101Rule 45の等価ルール(左右反転)
10201100110Rule 60の等価ルール(左右反転)- シェルピンスキー三角形(左傾斜)
10301100111
10401101000
10501101001XNORルール - NOT(p XOR q XOR r)
10601101010クラス3 - カオス的、(p AND q) XOR r
10701101011クラス2 - Rule 106に類似、000→1のみ異なる
10801101100
10901101101クラス2 - 出力が左右対称(amphichiral)、Rule 73のreverse+flip
11001101110チューリング完全(クラス4)
11101101111
11201110000
11301110001
11401110010
11501110011
11601110100
11701110101
11801110110Rule 62の等価ルール(左右反転)
11901110111
12001111000Rule 106の等価ルール(左右反転)
12101111001Rule 107の等価ルール(左右反転)
12201111010近シェルピンスキー風フラクタル - 出力が左右対称(amphichiral)
12301111011
12401111100Rule 110の等価ルール(左右反転)- チューリング完全
12501111101
12601111110シェルピンスキー風フラクタル
12701111111
12810000000
12910000001反転シェルピンスキー風フラクタル - Rule 126のreverse+flip
13010000010
13110000011Rule 62の等価ルール(reverse+flip)
13210000100
13310000101
13410000110
13510000111Rule 30の等価ルール(reverse+flip)
13610001000
13710001001Rule 110の等価ルール(reverse+flip)- チューリング完全
13810001010
13910001011
14010001100
14110001101
14210001110
14310001111
14410010000
14510010001Rule 62の等価ルール(左右反転+reverse+flip)
14610010010シェルピンスキーのガスケット
14710010011Rule 54の等価ルール(reverse+flip)
14810010100
14910010101Rule 30の等価ルール(左右反転+reverse+flip)
15010010110加法的ルール - フラクタルだがシェルピンスキーではない
15110010111Rule 22の等価ルール(reverse+flip)
15210011000
15310011001Rule 102の等価ルール(回文)- 反転シェルピンスキー
15410011010シングルセルではシェルピンスキー、ランダムでは正統なシェルピンスキーと異なる挙動
15510011011
15610011100
15710011101
15810011110
15910011111
16010100000
16110100001Rule 122の等価ルール(reverse+flip)
16210100010
16310100011
16410100100Rule 218の等価ルール(reverse+flip)
16510100101Rule 90の等価ルール(回文)
16610100110Rule 154の等価ルール(reverse+flip)
16710100111Rule 26の等価ルール(reverse+flip)
16810101000
16910101001Rule 106の等価ルール(reverse+flip)
17010101010
17110101011
17210101100
17310101101
17410101110
17510101111
17610110000
17710110001
17810110010
17910110011Rule 50の等価ルール(reverse+flip)
18010110100Rule 154の等価ルール(左右反転+reverse+flip)
18110110101Rule 26の等価ルール(左右反転+reverse+flip)
18210110110Rule 146の等価ルール(reverse+flip)
18310110111Rule 18の等価ルール(reverse+flip)
18410111000交通モデル - 粒子保存則
18510111001
18610111010
18710111011
18810111100
18910111101
19010111110
19110111111
19211000000
19311000001Rule 110の等価ルール(左右反転+reverse+flip)- チューリング完全
19411000010
19511000011Rule 60の等価ルール(回文)- 反転シェルピンスキー
19611000100
19711000101
19811000110
19911000111
20011001000
20111001001
20211001010
20311001011
20411001100
20511001101
20611001110
20711001111
20811010000
20911010001
21011010010Rule 154の等価ルール(左右反転)- シングルセルではシェルピンスキー、ランダムでは異なる挙動
21111010011
21211010100
21311010101
21411010110
21511010111
21611011000
21711011001
21811011010シングルセルではシェルピンスキー、ランダムでは正統なシェルピンスキーと異なる挙動
21911011011
22011011100
22111011101
22211011110
22311011111
22411100000
22511100001Rule 106の等価ルール(左右反転+reverse+flip)
22611100010Rule 184の等価ルール(左右反転)
22711100011
22811100100
22911100101
23011100110
23111100111
23211101000
23311101001
23411101010
23511101011
23611101100
23711101101
23811101110
23911101111
24011110000
24111110001
24211110010
24311110011
24411110100
24511110101
24611110110
24711110111
24811111000
24911111001
25011111010
25111111011
25211111100
25311111101
25411111110
25511111111恒等ルール - 全セルが生存

関連ツール & ゲーム