セルオートマトン シミュレータ - ライフゲーム・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年代に体系的に研究した最もシンプルなセル・オートマトンです。わずか256通りのルールしかないにもかかわらず、その振る舞いは驚くほど多様で、ウルフラムはこれを4つのクラスに分類しました。

クラス1 — 均一
どんな初期条件から始めても数世代で全セルが同じ状態に収束します。初期条件の情報が完全に失われる、最も単純な振る舞いです。
クラス2 — 周期的
ストライプや固定点のような安定したパターンに落ち着き、それを繰り返します。初期条件の影響は局所的に残りますが、全体としては予測可能な秩序に収まります。
クラス3 — カオス
ランダムに見える非周期的なパターンを際限なく生成し続けます。初期条件のわずかな違いが全く異なる結果を生み、長期的な予測はできません。しかし決定論的なルールから生成されるため、擬似乱数として応用できるという面白い性質を持っています。
クラス4 — 複雑系
秩序(クラス1・2)とカオス(クラス3)のちょうど境界に位置します。クラス1・2のように情報が固定されてしまうこともなく、クラス3のように情報が拡散して消えてしまうこともありません。この絶妙なバランスの中で、「グライダー」と呼ばれる形を保ったまま移動する構造が自然に出現します。グライダーは情報を運ぶことができ、グライダー同士の衝突で新しいパターンが生まれます。この「情報を保持しながら伝達・変換できる」性質が、計算と同じ仕組みを実現しています。

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

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

クラス1・2の代表例 — 秩序的

クラス1では、Rule 0(すべて0に収束)やRule 255(すべて1に収束)のように、数世代で全セルが同じ状態になります。一方、クラス2には興味深いルールが多数あります。フラクタル模様を生成するシェルピンスキー系ルールや、交通流をシミュレートするルールなどが代表的です。

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

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

正統なシェルピンスキー
Rule 18, 90, 146 は左右対称のシェルピンスキー三角形を生成します。Rule 60 は右に傾いた三角形、Rule 102 は左に傾いた三角形を生成します(この2つは左右反転の関係)。
シングルセルでのみシェルピンスキー
Rule 26, 154, 210, 218 はシングルセルの初期条件ではシェルピンスキー三角形を生成しますが、ランダムな初期条件ではそれぞれ異なる挙動を示します。
シェルピンスキー風フラクタル
Rule 22, 122, 126, 150 はシェルピンスキーに似たフラクタルパターンを生成しますが、厳密にはシェルピンスキー三角形とは異なります。

交通モデル

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

クラス3の代表例 — カオス

ランダムに見える非周期的なパターンを生成します。Rule 30 はMathematicaの乱数生成に使われたことで有名です。Rule 45、Rule 106 もカオス的な挙動を示します。

クラス4の代表例 — 複雑系

上で説明した「グライダー」は、クラス4のルールをシミュレータで実行すると実際に観察できます。Rule 110やRule 54では、背景の周期的パターンの中を形を保ったまま移動する構造が現れ、異なる速度のグライダー同士が衝突すると消滅・合体・分裂といった複雑な相互作用を引き起こします。

クラス4補足 — チューリング完全

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

Rule 110
2004年にMatthew Cookによってチューリング完全であることが証明され、この極めて単純なルールがあらゆる計算をシミュレートできることが示されました。
Rule 54
チューリング完全の有力候補です。Rule 110 と同様にグライダーを持ちますが、証明はまだ完了していません。シングルセルの初期条件では左右対称な出力を生成します。

等価ルールとは

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

左右対称
近傍パターンの左セルと右セルを入れ替える操作(swap)を行うと、左右対称なパターンが得られます。シングルセルからの出力が左右対称なルール(例: Rule 26と82、Rule 30と86)では変換しても同じに見えるため、ランダム初期条件で確認してください。
白黒対称
ビット列を逆順に並べ替えてから0と1を入れ替える操作(reverse+flip)を行うと、白黒対称なパターンが得られます。単純なビット反転(complement)とは異なります。初期条件も白黒反転すると、出力も白黒反転した同じパターンになります。ただし Rule 110 と Rule 137 のように、シングルセルの初期条件で白黒反転したパターンが現れるケースもあります。
左右対称 + 白黒対称
上記2つの変換を組み合わせた操作です。近傍パターンの左右を入れ替えたあと、ビット列を逆順にして0と1を反転させます。
回文ルール — 対称性が生む特殊ケース
ルールのビット列が回文(左右どちらから読んでも同じ配列)の場合、入力のビットを反転するだけで出力もビット反転されます。通常の白黒対称では reverse+flip(逆順+反転)が必要ですが、回文ルールではビット列が逆順にしても変わらないため、flip(反転)だけで白黒対称が成り立ちます。255-R で等価ルールが求められます。例えば Rule 90(01011010)は回文なので、255 - 90 = Rule 165(10100101)と等価です。

注意 左右対称のswapは、近傍パターン(3ビット)の左右を入れ替える操作です。例えば近傍パターン 110(位置6)の左右を入れ替えると 011(位置3)になるため、ルールのビット列(8ビット)ではビット位置6と3の値が入れ替わります。同様に 100(位置4)と 001(位置1)も入れ替わります。対称なパターン(111, 101, 010, 000)は左右を入れ替えても変わりません。例えば Rule 110(01101110)の場合、ビット位置6と3の値(どちらも1)はそのまま、ビット位置4の値(0)と位置1の値(1)が入れ替わり、01111100 = Rule 124 になります。

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

全256ルールの出力マッピング一覧
ルールクラス111110101100011010001000備考
0100000000ヌルルール - 全セルが死滅
100000001
200000010
300000011
400000100
500000101
600000110
700000111
800001000
900001001
1000001010
1100001011
1200001100
1300001101
1400001110
1500001111
1600010000
1700010001
18200010010シェルピンスキーのガスケット
1900010011
2000010100
2100010101
22200010110シェルピンスキー風フラクタル
2300010111
2400011000
2500011001
26200011010シングルセルではシェルピンスキー、ランダムでは正統なシェルピンスキーと異なる挙動
2700011011
2800011100
2900011101
30300011110カオス的 - Mathematicaの乱数生成に使用
3100011111
3200100000
3300100001
3400100010
3500100011
3600100100
3700100101
3800100110
3900100111
4000101000
41200101001Rule 107の等価ルール(白黒対称)
4200101010
4300101011
4400101100
45300101101カオス的
4600101110
4700101111
4800110000
4900110001
50200110010周期的な交互パターン
5100110011
5200110100
5300110101
54400110110複雑系 - 万能計算の候補
5500110111
5600111000
57200111001複雑な規則パターン
5800111010
5900111011
60200111100シェルピンスキー三角形(右傾斜)- 加法的ルール
6100111101
62200111110最終的に周期的
6300111111
6401000000
6501000001
6601000010
6701000011
6801000100
6901000101
7001000110
7101000111
7201001000
73301001001局所的カオス(Li-Packard分類)
7401001010
75301001011Rule 45の等価ルール(白黒対称)
7601001100
7701001101
7801001110
7901001111
8001010000
8101010001
82201010010Rule 26の等価ルール(左右対称)
8301010011
8401010100
8501010101
86301010110Rule 30の等価ルール(左右対称)
8701010111
8801011000
89301011001Rule 45の等価ルール(左右対称+白黒対称)
90201011010シェルピンスキーのガスケット
9101011011
9201011100
9301011101
9401011110
9501011111
9601100000
97201100001Rule 107の等価ルール(左右対称+白黒対称)
9801100010
99201100011Rule 57の等価ルール(左右対称)
10001100100
101301100101Rule 45の等価ルール(左右対称)
102201100110Rule 60の等価ルール(左右対称)- シェルピンスキー三角形(左傾斜)
10301100111
10401101000
105201101001XNORルール - NOT(p XOR q XOR r)
106301101010カオス的、(p AND q) XOR r
107201101011Rule 106に類似、000→1のみ異なる
10801101100
109201101101出力が左右対称(amphichiral)、Rule 73の白黒対称
110401101110チューリング完全
11101101111
11201110000
11301110001
11401110010
11501110011
11601110100
11701110101
118201110110Rule 62の等価ルール(左右対称)
11901110111
120301111000Rule 106の等価ルール(左右対称)
121201111001Rule 107の等価ルール(左右対称)
122201111010近シェルピンスキー風フラクタル - 出力が左右対称(amphichiral)
12301111011
124401111100Rule 110の等価ルール(左右対称)- チューリング完全
12501111101
126201111110シェルピンスキー風フラクタル
12701111111
12810000000
129210000001反転シェルピンスキー風フラクタル - Rule 126の白黒対称
13010000010
131210000011Rule 62の等価ルール(白黒対称)
13210000100
13310000101
13410000110
135310000111Rule 30の等価ルール(白黒対称)
13610001000
137410001001Rule 110の等価ルール(白黒対称)- チューリング完全
13810001010
13910001011
14010001100
14110001101
14210001110
14310001111
14410010000
145210010001Rule 62の等価ルール(左右対称+白黒対称)
146210010010シェルピンスキーのガスケット
147410010011Rule 54の等価ルール(白黒対称)
14810010100
149310010101Rule 30の等価ルール(左右対称+白黒対称)
150210010110加法的ルール - フラクタルだがシェルピンスキーではない
151210010111Rule 22の等価ルール(白黒対称)
15210011000
153210011001Rule 102の等価ルール(回文)- 反転シェルピンスキー
154210011010シングルセルではシェルピンスキー、ランダムでは正統なシェルピンスキーと異なる挙動
15510011011
15610011100
15710011101
15810011110
15910011111
16010100000
161210100001Rule 122の等価ルール(白黒対称)
16210100010
16310100011
164210100100Rule 218の等価ルール(白黒対称)
165210100101Rule 90の等価ルール(回文)
166210100110Rule 154の等価ルール(白黒対称)
167210100111Rule 26の等価ルール(白黒対称)
16810101000
169310101001Rule 106の等価ルール(白黒対称)
17010101010
17110101011
17210101100
17310101101
17410101110
17510101111
17610110000
17710110001
17810110010
179210110011Rule 50の等価ルール(白黒対称)
180210110100Rule 154の等価ルール(左右対称+白黒対称)
181210110101Rule 26の等価ルール(左右対称+白黒対称)
182210110110Rule 146の等価ルール(白黒対称)
183210110111Rule 18の等価ルール(白黒対称)
184210111000交通モデル - 粒子保存則
18510111001
18610111010
18710111011
18810111100
18910111101
19010111110
19110111111
19211000000
193411000001Rule 110の等価ルール(左右対称+白黒対称)- チューリング完全
19411000010
195211000011Rule 60の等価ルール(回文)- 反転シェルピンスキー
19611000100
19711000101
19811000110
19911000111
20011001000
20111001001
20211001010
20311001011
20411001100
20511001101
20611001110
20711001111
20811010000
20911010001
210211010010Rule 154の等価ルール(左右対称)- シングルセルではシェルピンスキー、ランダムでは異なる挙動
21111010011
21211010100
21311010101
21411010110
21511010111
21611011000
21711011001
218211011010シングルセルではシェルピンスキー、ランダムでは正統なシェルピンスキーと異なる挙動
21911011011
22011011100
22111011101
22211011110
22311011111
22411100000
225311100001Rule 106の等価ルール(左右対称+白黒対称)
226211100010Rule 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
255111111111恒等ルール - 全セルが生存

関連ツール & ゲーム