更新方法は、現在の自分・近傍のセルの状態を基に特定のルールが適用されます。ここでは一番な簡単なケースを考えます。セルの状態は2つ(0/1)、ルールは該当セルとその両隣の状態から決まります。ルールは、とり得るパターン=2^3=8通りについて、該当セルが0になるか1になるかを決めればOKです。以下のようなルールが考えられますね。上記の例だと、左端は該当セル・両隣の状態が黒=1だった場合、次のステップで該当セルは1になるということです。左から二番目は、該当セルと左隣が1で右隣が0の場合は、次のステップで該当セルは0になります。256通りのルールを作ることができます。下図はそのうち6つのルールで作られたセルオートマトンのプロットです。最初のセルの状態はランダムに0/1にしています。通常、1次元セルオートマトンでは次のステップの状態が前の状態のすぐ下にプロットされます。上図でいうと、一番上の列が最も古い状態で、それが1ステップ更新された状態が次の列にプロットされ、さらにそれが更新され、、と続いています。長さ150のセルを150回更新しています。パターンのようなものが見えていますね。ここで面白いのは、上記のような非常に単純なルールからこのような面白いパターンが生成されることです。面白いと思うのは以下の2点です。局所性:各セルは近傍のセルの状態しか知らない。均一性:特別なセルは存在しない。全てのセルに同じルールが適用される。どのセルも全体の状態は知らず、局所的な情報で状態を変えます。全体をリードするような特別なセルも存在しません。全てのセルが同等です。全体をコントロールするようなルールは全くないにも関わらずパターンが生成されます。面白いことにセルオートマトンと似たパターンが、自然界にいる貝の模様に見られるということです。貝殻は1次元オートマトンのように、端から一層ずつ伸びていくように作られるので、似たパターンになるのは偶然ではなく実際にこのような仕組みで作成されている可能性があります。「上記ルールで再現できる」=「実際に同じ仕組みで生成されている」ではないことには注意してください。再現できることは必要条件ですが十分条件ではないですね(以下の章の例でも同じです)。2次元セルオートマトンによるパターン生成この章では2次元セルオートマトンについて考えます。単純に1次元のセルを2次元に拡張しただけで、セルは直線から長方形の分布に変わります。隣のセルは1次元では2つでしたが、2次元の場合は4/8になります。更新方法は1次元と同じく、自分と近傍のセルの状態に応じて次のステップのセル状態が決まります。近傍のセルが増えた分だけ(とり得る)ルールの数は増えますが考え方は同じです。ここでは1章より少し複雑なルールを考えます。100の2次元セルセルのとり得る状態は2つ(0/1)3つ隣のセルの状態まで考慮します。p1は可変(パラメータ)v>=0のとき、該当セルの状態を1に更新、v<0のとき0に更新。1章よりは少し複雑になりましたが、局所性・均一性などの特徴は同じです。この条件でプロットしたものが以下です。4つのパラメータセットについて図示しています。1次元の場合と異なり過去の履歴は描かず、最終状態のみプロットしています。最初はランダムな状態から始めて、10ステップ後の状態です。面白い事に生成されたパターンは動物の模様(たとえばチーター、キリン)に似ていますね。動物の模様は実際は化学作用の複雑な作用で作られていると考えられますが、面白い事に細かい仕組みがわからなくても、単純な相互作用のルールを定義することでパターン生成が可能なことがわかります。金融への応用(のさわり)1-2章では動物の模様生成などについて書きましたが、もちろん他の応用も考えられます。ここでは金融への応用について検討するため、とても単純化した株の売買市場について考えます。ルールは以下のようにします。1次元セルオートマトンのシステムを使う。