セル・オートマトン (Cellular automaton, CA) とは、
________■_■________
_______■___■_______
______■_■_■_■______
_____■_______■_____
____■_■_____■_■____
___■___■___■___■___
__■_■_■_■_■_■_■_■__
_■_______________■_
↑こういうやつである。
概要
例えば、格子状のマス目が白と黒の2種類の状態を持っているものとして、「周りのマスが2つ黒ければ、次のステップでそのマスは黒くなり、そうでなければ白くなる」といったような単純なルールを考える。ここに適当な初期状態を置くと、ステップ経過とともに、白黒の分布は様々な姿を取ることになる。そうやって変化してゆくさまが「オートマトン(自動装置)」であり、「セル」を使っているので「セル・オートマトン」という名前になっている。
この変化の過程は、ルールを少し変えただけで全く異なる挙動を見せてゆく。とても単純でありながら、とても面白い模様を描き出すことが多く、セル・オートマトンの一種であるライフゲームが、現在最も広く楽しまれている。関連動画も参照のこと。
ルール自体は無数に考え得るものの、スティーブン・ウルフラムによると、セル・オートマトンの挙動は数パターンに分けられるとされている。
「秩序状態」は、動きが停止した状態、あるいは周期的な挙動を繰り返す状態になる。フラクタル形状が見られたりする。
「カオス状態」では、混沌とした挙動になってゆく。「カオス」と「ランダム」は明確に異なるものであって、ここでの「カオス」には明確な法則性が内在しているということは重要である。
右のほうがなんだかカオティック
「カオスの縁」というのは何やら注目すべきものとしてよく挙げられるが、概念としては上の2種類の状態の中間のようなもの、という非常にふわふわしたものである。
規則的に見える中で突然やんちゃな子が出現
セル・オートマトンは、計算機科学やいわゆる複雑系という分野の歴史的にはいろいろと意味のある概念であり、アニメーションで変化する様子など見た目にもキャッチーな結果が得られるので楽しいことは楽しいのだが、「で、結局これをどうするの?」という感じのものだったりするかもしれない。
Wolfram code
「1次元セルオートマトン」、つまり格子状ではなく直線状に並んだ白黒のマスについて、自分とその両隣の状態から次のステップの状態を決めるというルールを考える。自分と両隣の状態のパターンは2^3=8パターン存在し、その8パターンそれぞれに対して次のステップの状態が2種類存在するので、「1近傍1次元セルオートマトン」というのは2^8=256通りのルールに絞られる。これはスティーブン・ウルフラムによって考案され、その256通りのルールはWolfram codeと呼ばれる。
Wolfram codeは「Rule 30」のように数字で表される。これは、下記のように次ステップの状態ルールを2進数から10進数に直したものである。(白→0、黒→1と考える)
左隣、自分、右隣の状態を並べたもの ※この順番は固定 | 111 | 110 | 101 | 100 | 011 | 010 | 001 | 000 |
次ステップの自分の状態 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
00011110(2) = 30(10) → Rule 30 |
Wolfram codeの例
Rule 23 | ![]() |
Rule 30 | ![]() |
Rule 45 | ![]() |
Rule 50 | ![]() |
Rule 54 | ![]() |
Rule 57 | ![]() |
Rule 60 | ![]() |
Rule 62 | ![]() |
Rule 73 | ![]() |
Rule 90 | ![]() |
Rule 94 | ![]() |
Rule 105 | ![]() |
Rule 110 | ![]() |
Rule 126 | ![]() |
Rule 150 | ![]() |
関連動画
関連項目
- 9
- 0pt