イモガイの貝殻
1次元のセルオートマトンで巻貝の殻の模様を描き、ルール30・90・110 を並べた。
なにか
このギャラリーの模様はほとんど「空間の模様」だが、貝殻だけは違う。巻貝は殻の縁に新しい材料を足していくことしかできないので、殻の面には縁の履歴がそのまま残る。縦軸が時間になった図なのである。だから1次元の規則で描ける。
使うのは初等セルオートマトンである。「左・自分・右」の3マスの並びから次の1マスを決めるだけの規則で、入力は8通りなので割り当ては 2⁸ = 256 通り(この番号がルール番号)。ルール30 は三角形が不規則に入れ子になり、ルール90 はきれいなシェルピンスキー、ルール110 は規則的な地に走る筋がぶつかる。
なぜ三角形になるのか。情報は1手に1マスしか進めない(隣しか見ないので)。だから中心の1マスから始めた模様は必ず「中心から t マス以内」に収まり、輪郭が三角形になる。実際、t 手めの模様はどれも中心から t マス以内に収まっていた。物理でいう光円錐と同じ理屈が、貝殻の三角形の正体だった。
ルール90 は、パスカルの三角形そのもの
ルール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枚。依存ゼロ・乱数ゼロ)