2次元セルオートマトン”ライフゲーム”を作る

「ライフゲーム」と呼ばれるものを作ってみます。これ自体を作る事は難しくはないです。

ライフゲーム(Wikipedia)
https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B2%E3%83%BC%E3%83%A0
以下の説明は、このWikipediaの記事と殆ど同じなので、こっちのページを読んでる人は飛ばしてください。

ライフゲームとは

ライフゲーム (Conway’s Game of Life) は1970年にイギリスの数学者ジョン・ホートン・コンウェイ (John Horton Conway) が考案した生命の誕生、進化、淘汰などのプロセスを簡易的なモデルで再現したシミュレーションゲームである。単純なルールでその模様の変化を楽しめるため、パズルの要素を持っている。生物集団においては、過疎でも過密でも個体の生存に適さないという個体群生態学的な側面を背景に持つ。セル・オートマトンのもっともよく知られた例でもある。

ライフゲームのルール
ライフゲームでは初期状態のみでその後の状態が決定される。碁盤のような格子があり、一つの格子はセル(細胞)と呼ばれる。各セルには8つの近傍のセルがある (ムーア近傍) 。各セルには「生」と「死」の2つの状態があり、あるセルの次のステップ(世代)の状態は周囲の8つのセルの今の世代における状態により決定される。

誕生
 死んでいるセルに隣接する生きたセルがちょうど3つあれば、次の世代が誕生する。
生存
 生きているセルに隣接する生きたセルが2つか3つならば、次の世代でも生存する。
過疎
 生きているセルに隣接する生きたセルが1つ以下ならば、過疎により死滅する。
過密
 生きているセルに隣接する生きたセルが4つ以上ならば、過密により死滅する。

誕生生存(維持)死(過疎)死(過密)

セルの変化の仕方によって、多くのパターンが存在します。
パターン

固定物体世代が進んでも同じ場所で形が変わらない。
振動子ある周期で同じ図形に戻る。
移動物体一定のパターンを繰り返しながら移動していく。
繁殖型マス目が無限であれば無限に増え続ける。

固定物体

ブロック蜂の巣ボート

振動子

ブリンカーヒキガエルビーコン時計

移動物体

グライダー軽量級宇宙船中量級宇宙船重量級宇宙船

繁殖型
グライダー銃

グライダー銃の動く様子(Bill Gosper’s Glider Gun in action—a variation of Conway’s Game of Life. This image was made by using Life32 v2.15 beta, by Johan G. Bontes.)


と言う事で、様々なパターンがあります。Wikipediaにもありますが、ライフゲームはチューリング完全なので、論理回路を作り、計算機を作ったりできます。


では、ライフゲームを作っていきます。わざわざ書く必要は無いかもしれませんが、
前述のライフゲームのルールをまとめると、

\(n回変化した時の碁盤上の位置(i,j)の値を{(x_{i,j})}_nとする。これは1(生)と0(死)の値を取るとする。\)
\(また、周囲8マスの値の和をf(x_{i,j})=x_{i-1,j-1} + x_{i,j-1} + x_{i+1,j-1} + x_{i-1,j} + x_{i+1,j} + x_{i-1,j+1} + x_{i,j+1} + x_{i+1,j+1}とする。\)
\((i){(x_{i,j})}_n=0の時\)
\( f((x_{i,j})_n) = 3の 時、{(x_{i,j})}_{n+1}=1\)
\( f((x_{i,j})_n) \neq 3の時、{(x_{i,j})}_{n+1}=0 \)

\((ii){(x_{i,j})}_n=1の時\)
\( f((x_{i,j})_n) = 2または3の時、(x_{i,j})_{n+1} = 1 \)
\( f((x_{i,j})_n) \leq 1 または 4 \leq f((x_{i,j})_n) の時、(x_{i,j})_{n+1} = 0 \)

となります。


【備考】
ウディタでライフゲームの簡易版を制作したものをウディコンに出しました。
よかったら遊んでみてください。

リンク:https://www.silversecond.com/WolfRPGEditor/Contest/entry.shtml
エントリー番号23です。

最後に参考になりそうな資料を置いておきます。
ライフゲームでチューリングマシン
https://www.ics.uci.edu/~welling/teaching/271fall09/Turing-Machine-Life.pdf
http://rendell-attic.org/gol/tm.htm
ライフゲームのソフトGolly
http://golly.sourceforge.net/
ライフゲームWiki
https://www.conwaylife.com/wiki/Main_Page

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です