← ギャラリーへ

イモガイの貝殻

1次元のセルオートマトンで巻貝の殻の模様を描き、ルール30・90・110 を並べた。

ルール30・90・110の1次元セルオートマトンを時間方向に伸ばした3枚の模様
横が殻の縁(1次元)、縦が時間である。巻貝は縁でしか成長できないので、殻の面に残っているのは「縁で何が起きたか」の履歴である。左のルール30は三角形が不規則に入れ子になり、イモガイ(Conus textile)の模様に近い見え方をする

なにか

このギャラリーの模様はほとんど「空間の模様」だが、貝殻だけは違う。巻貝は殻の縁に新しい材料を足していくことしかできないので、殻の面には縁の履歴がそのまま残る。縦軸が時間になった図なのである。だから1次元の規則で描ける。

使うのは初等セルオートマトンである。「左・自分・右」の3マスの並びから次の1マスを決めるだけの規則で、入力は8通りなので割り当ては 2⁸ = 256 通り(この番号がルール番号)。ルール30 は三角形が不規則に入れ子になり、ルール90 はきれいなシェルピンスキー、ルール110 は規則的な地に走る筋がぶつかる。

なぜ三角形になるのか。情報は1手に1マスしか進めない(隣しか見ないので)。だから中心の1マスから始めた模様は必ず「中心から t マス以内」に収まり、輪郭が三角形になる。実際、t 手めの模様はどれも中心から t マス以内に収まっていた。物理でいう光円錐と同じ理屈が、貝殻の三角形の正体だった。

ルール90 は、パスカルの三角形そのもの

ルール90のセルオートマトンと、二項係数が奇数の位置を塗ったパスカルの三角形mod2が一致することを並べた図
左はセルオートマトン(左右の XOR)を回した結果、右は二項係数 C(n,k) が奇数のところを塗ったものである。255行めまで 32,896 マスすべてが一致(不一致ゼロ)

ルール90 は「左と右の XOR」だけの規則で、中央を見ない。この n 行目は二項係数 C(n,k) の偶奇とぴったり一致する。パスカルの三角形を偶数・奇数で塗り分けるとシェルピンスキーになる、という有名な話の、成長する側からの言い方である。

数の側からも確かめられる。n 行目にある1の個数は、ちょうど 2k になる。k は n を2進表記したときの1の個数である(Kummer の定理)。200行まで例外はない。さらに自己相似も厳密で、64行の三角形は「32行の三角形3つ」と1マスも違わない。

ルール30 は、乱数のように見える

いっぽうルール30 の中央列を縦に読むと、0と1がほぼ半々(0.5063)で、ラグ1〜8 の自己相関は最大 0.0148 しかない。20,000 手のあいだ周期は見つからない(「無い」の証明ではなく、探した範囲での不在)。規則は完全に決まっていて乱数をひとつも使っていないのに、出てくる列は乱数と区別しにくい。

左右の非対称も規則に書かれている。規則の左右を入れ替えると ルール90 は自分自身に戻る(だから図も左右対称・ずれ0マス)が、ルール30 は 86 に変わる(図は 7,124 マス非対称)。実物の貝殻の模様が左右で違う流れ方をすることと、同じ種類の非対称である。

どう作ったか

規則表、時間発展、二項係数の偶奇、自己相似の照合、中央列の統計は、すべて自前で書いた。図は、行ごとに続く塗りの区間を1枚のパスに整数座標でまとめて描いている。ルール30 の表は下位ビットから並べると 01111000 で、同じ初期行からは完全に同じ模様が出る。

→ チューリング・パターン(同じ模様を連続の反応拡散で作る側)

→ ドラゴン曲線(同じ「規則から出てくる列」=紙折り数列)

→ アポロニウスのガスケット(自己相似の入れ子をもうひとつの数論から)

出典

数理
S. Wolfram, "Statistical mechanics of cellular automata", Rev. Mod. Phys. 55 (1983) と A New Kind of Science (2002)。ルール90 と二項係数の関係、Kummer の定理は標準的な結果。実物の貝殻の模様を反応拡散で説明したのは H. Meinhardt, The Algorithmic Beauty of Sea Shells (1995)。セルオートマトンは離散版の漫画で、実物の測定と突き合わせたわけではない。Wolfram が Conus textile を CA と並べて論じたのは有名だが、ここでは「似た見え方をする」以上の主張はしない。連続版(1次元の反応拡散=時間記録版のチューリング)は未実装=空白棚
生成
generators/shell-ca.js(規則表・時間発展・二項係数の偶奇との照合・自己相似・中央列の統計・鏡像ルール・図2枚。依存ゼロ・乱数ゼロ)