はじめに
前回はセルオートマトンの数学的な定義について述べました.
今回はセルオートマトンを利用したライフゲーム(Game of Life; GoL)を一般化した Lenia-0 の数学的な定義について述べていきます.
Lenia-0 の定義
セルオートマトン は次のような5つ組で定義されました:
Lenia-0 は次のような5つ組で定義されます:
ここで, は格子点間の距離を ( 空間分解能)とした2次元格子, は時間ステップの間隔を ( 時間分解能)とした時間集合, は状態精度 ( 状態分解能)の状態集合, は Euclid -ノルム上の半径1の単位円近傍, は局所規則で,
を表します.
局所規則の詳細
ここでは局所規則についてもう少し詳しく説明します.
前回説明した内容ではありますが, は時刻 における点 の状態を表していて,点 における近傍を とすれば,
は近傍 上の状態集合を表します.
また, は成長分布というものです.
成長分布について説明するために,いくつか準備します.
カーネル
カーネル は,その詳細な「質感」を決定するカーネルコア関数 と,全体の「骨格」を決定するカーネルシェル関数 によって構成されています.
カーネルコア関数 は を満たす単峰性関数(山が1つであるような関数)となっていて,通常は を満たすように構成されます.
カーネルコア関数の引数に中心からの距離 を取ることによって,点の周囲に均一な輪を作ることができます:
ここで, はステップ関数です:
次に,カーネルシェル関数 はサイズ のベクトル を引数に取って,カーネルコア関数 をピークの高さ の等距離同心円にコピーするものになっています:
最後に,カーネル として次のように正規化します:
ここで, は を表しています.
まとめると,カーネル は次のように定義されます:
ポテンシャル分布
カーネル と,時刻 における点 の状態 とで畳み込み を行うことで,ポテンシャル分布 が得られます:
成長分布
成長分布を考える前に,成長関数 について考えます.
成長関数 は を満たす,パラメータ (成長中心,成長幅)を持つ単峰性非単調関数がよく用いられています:
先程定義したポテンシャル分布 を成長関数 に与えることで,成長分布 が得られます:
状態更新
定義した局所規則から状態更新の式を考えると,
となるため,
と表すことができます.
ここで, は clip 関数で,
と定義されます.
おわりに
Lenia-0 の数学的な定義を述べました.
次の記事の内容は未定です.