セル・オートマトン

高等学校コンピューターサイエンス各セルが見るのは近傍のセルだけです。ライフゲームでは、近傍に3つあると誕生し、2つまたは3つあると生存します。一次元ルールの番号は、8通りすべての近傍に対する新しい状態を表します。

パスを使ってこの実験を利用する

パスがあれば、授業用のプレゼンテーションモードを含む、サイト上のすべてのシミュレーションを利用できます。以下の指導用ノートは、どなたでも無料でご覧いただけます。

一度限りのお支払いで、サブスクリプションはありません。

この実験について

セル・オートマトンは、オンまたはオフの状態をとるセルが並んだグリッドです。更新のたびに、各セルは近傍のセルを見て、同じ単純なルールに従って次の状態を決めます。それ以外には何も組み込まれていないのに、グライダーはグリッド上を進み、ガンは次々とグライダーを発射します。また、1次元のルールの中には、あまりに不規則なパターンを生み出すため、乱数生成器として使われるものもあります。ジョン・コンウェイのライフゲームを実行し、自分で初期パターンを描いて、初等的なルール全256種類を探ってみましょう。

学習目標

  • ライフゲームのルールを手作業で適用して、次の世代を求める
  • 静物、振動子、宇宙船を見分ける
  • ルール番号が初等的な1次元オートマトンをどのように符号化しているか説明する
  • 単純な局所ルールから、どのように複雑な振る舞いが生まれるか説明しましょう
  • 繰り返し、入れ子状、カオス的、複雑なパターンを生み出すルールを比較しましょう

使い方

  1. 1グライダーを読み込み、「ステップ」を4回押します。4世代後、どのように変化しましたか?
  2. 2パルサーを読み込みます。同じ状態に戻るまで、何世代かかりますか?
  3. 3グライダー銃を実行します。新しいグライダーはどのくらいの頻度で現れますか?生存セルのグラフを見てみましょう。
  4. 4グリッドをクリアし、セルを3つ横一列に描きます。次の世代を紙に予想してから、「ステップ」を押します。
  5. 5Rペントミノを読み込んで実行します。たった5個のセルが成長して何になるでしょうか?端の折り返しをオフにして比較しましょう。
  6. 6一次元ルールに切り替えます。ルール30、90、110を比較しましょう。どれがランダムに見え、どれが入れ子状に見え、どれに移動する構造がありますか?
  7. 7ルール90のルール表で結果を1つ反転させます。どのルール番号になりますか?また、図はどのように変わりますか?

モデル

ライフゲーム:nは、生きている8近傍のセルの数です
初等ルールR:Rのkビットが新しい状態を決めます
初等ルールの数:近傍は8通りで、それぞれに2つの結果があります
ルール90は2を法とする加算で、シェルピンスキーの三角形を描きます。

前提条件

  • ライフゲームのグリッドは横72マス、縦44マスです。端をつなぐ設定をオンにすると、グリッドはトーラスになります。オフにすると、端の外にあるセルは常に死んだ状態として扱われます。
  • すべてのセルは、前の世代の状態に基づいて同時に更新されます。
  • 一次元の列は幅121セルで、両端がつながっています。ランダムな初期状態にはシード値が設定されているため、毎回同じ状態になります。

授業で試してみましょう

  1. Q1死んだセルの隣には、生きたセルがちょうど3つあります。次の世代でそのセルはどうなりますか?
  2. Q2生きたセル4つでできた2×2のブロックが決して変化しないのはなぜですか?
  3. Q3ルール30を2進数で表し、近傍が100のセルの次の状態を求めましょう。
  4. Q4グライダーは4世代ごとに斜めに1セル移動します。72セルのグリッドを横切るにはどれくらいかかりますか?
  5. Q5ルール110は、コンピューターが実行できるあらゆる計算を実行できます。このことから、単純なルールと複雑な振る舞いについて何が言えるでしょうか?

よくある質問

ライフゲームを考案したのは誰ですか?

1970年にイギリスの数学者ジョン・ホートン・コンウェイが考案しました。『サイエンティフィック・アメリカン』誌でマーティン・ガードナーが連載コラムで紹介したことで有名になり、それ以来、人々は新しいパターンを発見し続けています。

ライフゲームは本当にゲームなのでしょうか?

これはプレイヤーが操作しないゲームです。最初のパターンを描いたら、あとはルールがすべてを決めます。パターンを考案し、それがどんな動きをするか確かめるのが楽しみです。

セル・オートマトンはどこで使われていますか?

森林火災、交通、結晶成長、病気の伝播、貝殻の模様などのモデルに使われています。ルール30はかつて乱数生成器として使われ、物理学や生物学における格子ベースのシミュレーションも、しばしば同じ仕組みで動作します。