セルオートマトン(Cellular Automaton、CA)は、離散的な時間と空間の中で、単純なルールに従ってセル(格子点)が状態を変化させていく計算モデルです。コンピュータサイエンス、物理学、生物学、数学など、さまざまな分野で使われています。
🔹 基本的な構成要素
-
格子(グリッド):
-
セルは格子状(1次元、2次元、3次元など)に並んでいます。
-
各セルは一定の状態を持ちます(例:0または1)。
-
状態(State):
-
セルがとりうる値。典型的には2状態(例:生/死、ON/OFF)ですが、複数状態のモデルもあります。
-
近傍(Neighborhood):
-
セルの状態は、自分自身と周囲のセルの状態に基づいて更新されます。
-
例:1次元の隣接セル(左・右)、2次元のムーア近傍(8方向)、フォン・ノイマン近傍(上下左右)。
-
ルール(更新規則):
-
各セルの状態を次の時刻にどう更新するかを決めるルール。全セルが同時に更新されます。
🔹 有名な例
1. ライフゲーム(Conway’s Game of Life)【2次元CA】
- セルの状態:生(1)または死(0)
- 近傍:ムーア近傍(8つ)
- ルール(簡略):
- 生きているセルは、隣に2~3個の生きたセルがあれば生存。
- 死んでいるセルは、隣にちょうど3個の生きたセルがあれば誕生。
- それ以外は死ぬ(または誕生しない)。
2. 1次元セルオートマトン
- 例:Rule 30、Rule 110
- 各セルは自分と両隣の状態に基づいて次の状態を決定。
- 非常に単純なのに複雑なパターンが現れる。
🔹 応用例
- 物理学:流体シミュレーション(Lattice Gas Automaton)
- 生物学:形態形成、繁殖モデル
- 暗号:擬似乱数生成器
- アート:ジェネラティブアート
- 数学・理論計算機科学:チューリング完全なモデル(Rule 110)
🔹 ビジュアル例(イメージ)
n1次元CA(Rule 30)の例(白=0、黒=1):
markdown
1 101 10001 1011101 100000001 10111111101