生存/死滅のセルの定義
ライフゲームの挙動を観察すると,不規則な動きのある部分と静止,または周期的な振動する部分に分かれていることがわかる.この不規則な挙動を示す箇所を生存している(Alive),静止・振動の部分を死滅している(Dead)と呼ぶことにする.
以下の1,2,3のいずれか場合のセルを死滅していると定義する.死滅でないセルを生存していると定義する
- 自セルおよび周囲8セルが全てfalse
- 2ステップ連続で自セルおよび周囲8セルが同じ値をとる
- 自セルおよび周囲8セルが周期2の振動を2サイクルする
過去の状態を参照して生存か死滅を決定する.条件2の場合は2ステップ,条件3の場合は4ステップを参照する.周期3以上は,ほとんど存在しないので無視することにする.
また,過去の状態を参照するため,死んだ状態になってから判別するまでに遅れが生じる.条件1の場合は,その傾向を防止し,生存と死滅の境界を明確にするためである.前々回に示した動画は条件1を加えていない.
例として,以下のGIFアニメを示す.赤・ピンクが生存するセル.白・黒が死滅したセルでる.赤・黒がtrue,ピンク・白がfalseである.不規則な挙動を示す場所を区別できていることが分かる.
条件
セル数は8192x8192とした.初期条件は確率p0=0.364でtrueとなるような乱数を一様に与えた.
生存のセルの割合の時間変化
以下に生存のセルの割合の時間変化を示す.横軸は前回示したグラフとは異なり,対数軸とはなっていない.
時間とともに生存セルは減少してゆく.とくに,2000ステップから10000ステップにて10^(-2.5E-4 x step)に比例して減少していることがわかる.この範囲では,ステップ毎に一定の確率でセルが死滅してゆく.この事実は,ライフゲームの挙動を統計的に議論できることを示している.
図1 生存のセルの割合の時間変化
追記 6/23/2013
p0=0.192の場合も追加した.対数グラフなので,8000ステップから異なった値をとっているように見えるが,10^-4のオーダーしか異ならないので実際にはほとんど一緒である.