1. ライフゲーム
1.1 ライフゲームとは
ライフゲームには,勝者も敗者もいません。 あらかじめ定められた簡単なルールに従って変化していく PC の画面をただ眺めているだけなのです。 だから, 例えていうなら 万華鏡 に近いです。 今日の授業は,画面上に現れる様々なパターンを眺めて楽しむことが目的です。
ライフゲームのルールは非常に簡単です。 画面上にはセルと呼ばれる一つ一つの区画が用意されています。 これが,2 次元上に配置されてライフゲームの世界を構成しています。 ライフゲームの画面は,それ自身が一つの世界なのです。 そこにはさまざまな現象が発生する,ある物理法則によって支配された世界です。
今回配布するライフゲームでは,青のセルが生命がいる状態を表わし, 白いセルが,そこの生命がいない状態を表します。 つまり,あるセルには生命がいるかいないかのどちらか,0 か 1 か, 存在か無か,オンかオフか,という 2 つの状態しかありません。 そして,時間の流れは一定で離散的です。 一つの時刻の単位を世代と呼ぶこともあります。 次の瞬間に,あるセルに生命が産まれるか否かは,一つ前の状態に依存します。 つまり次の時間にどういう状態になるのかは,一つ前の状態から完璧に予測できるのです。 それにもかかわらず,予想もしなかったような複雑な未来を観察することができます。 スローガン的に書けば 「単純な法則から複雑な結果が生じる」 ということになります。
1.2 ラプラス的宇宙観の崩壊
18 世紀のフランスの数学者ラプラスは, この宇宙を創造した全知全能の神は宇宙の全ての原子の詳細を知っていると考えました。 この宇宙を支配する物理法則と宇宙を構成する原子の全情報が分かれば, 全知全能の神は,未来を予知でき,過去を再構成できると考えました。 このような世界観には,不仮定な要素は一切存在しません。 全知全能の神にはすべてのことは予測可能だというのです。 別の言い方をすれば,ラプラスは,この宇宙を一つの巨大な機械だと考えていました。
しかし, このような考え方は,19世紀の終わりから始まる,量子論と相対論によって瓦解してしまいます。 量子論は不確定性を含みます。物理学者よれば,量子の世界では宇宙は非決定的なのです。 量子論によれば,ある電子のふるまいを確実に予測することは不可能なのですから, 未来の予測もまた不可能であるということになります。
さらに20世紀に入ると, 「単純な法則から複雑な結果が生じる」を具現化する現象がつぎつぎに発見されました。 今日「カオス」「複雑系」と呼ばれる現象(あるいはその研究分野)においても, 単純な法則からほとんど予測不可能な複雑な結果が生じることがあることが繰り返し確認されています。
ライフゲームもそうした単純な法則,複雑な結果を具現化したデモンストレーションなのです。
1.3 ライフゲームのルール
では,ライフゲームのルールを説明しましょう。 どのセルにも 8 個の隣接するセルがあります(ムーア近傍と呼ばれたりします)。 どの時刻においても,この近傍のセルがオンであるかオフであるかによって, 次の時刻でそのセルがオンになるかオフになるかが決まります。
- セルの状態がオンのとき:8 個の近傍のセルのうち,2 つあるいは 3 つのとき,そのセルは次の世代でもオンになります。
- 一方,8 個の近傍のセルがそれ以外のとき(0,1,4,5,6,7,8)は,次の世代でオフになってしまいます。
- セルの状態がオフのとき:8 個の近傍のセルのうち 3 つがオンのとき, 次の世代でそのセルはオンになります。
- 一方,それ以外のとき(0,1,2,4,5,6,7,8),次の世代もオフであり続けます。
ライフゲームのルールはこれだけです。
これをなぜライフゲームと呼ぶのかについてですが, ライフゲームの開発者であるコンウェイは,バクテリアなどの単純な生命体が培養器の中で増殖するパターンをシミュレートしたかったかららしいです。 このたとえでいけば,ライフゲームのルールは次のように解釈できます。 すなわち,周囲に 2 個未満しか仲間がいないセルは孤独のため死んでしまう。 逆に周囲に 4 個以上仲間がいるセルは,過密のため(栄養状態の不足など)にやはり死んでしまう。 周囲に 2 個または 3 個の仲間がいる状態が,過疎でも過密でもない健全な状態だと考えるわけです。 また,そのセルが空の場合,周囲に 3 個の仲間がいると性交によって新しい生命が誕生する, と考えられます。
ライフゲームの開始時に,プレーヤーがすべきことは,初期状態を決めることです。 一旦ゲームがスタートしてしまえば,あとは何もすることがありません。 ただ画面を眺めているだけです。
1.4 ライフゲームの遊び方
1.4.1 画面の説明
画面の大半を占める部分には,2 次元上のセルが見え,その下にメニューがあります。
左から「スタート」「ストップ」「クリア」「セーブ」「ロード」という 5 つのボタンであり, 一番右はチョイスボタンになっており, 「ノーマルマージン(Normal Margin)」か「惑星ワトール(Planet Wator)」かを, 選べるようになっています。
注意:Windows でこのライフゲームを動かすとボタンの文字が表示されないというバグがあります。 原因は,調査中ですが,まだ理由は分かっていません。 したがって,Windows でプレイする場合,ボタンの順序が 左から「スタート」「ストップ」「クリア」「セーブ」「ロード」であることを 覚えておいてください。ボタンの文字が表示されないだけであって, 各ボタンをクリックするば,そのとおりの動作はします。 また,Windows のコマンドプロンプトから,java LifeGame で起動した場合, 終了できないというバグも取りきれていません。 終了するには,コマンドプロンプトのウィンドウに戻って,コントロールキーを押しながら C をタイプしてください。
チョイスボタンの「ノーマルマージン」と「惑星ワトール」について説明します。 ライフゲームは本来,無限に広がる 2 次元状の世界を扱います。 ですが実際のコンピュータでは表示に限界があるため,端の扱いが問題になります。 「ノーマルマージン」とは,最端のセルの外側には何もないように振る舞うことを意味します。 一方「惑星ワトール」を選ぶと, 一番右端のセルの隣りに一番左端のセルがつながっているように動作します。 同様にして,一番上のセルのさらに一つ上は,一番下のセルにつながっています。 したがって,「惑星ワトール」を選択した状態で, 画面を右から左に移動するパターンがあったとすると, そのパターンは一番左までくると,次の時刻に,突然右端から現れます。 「ノーマルマージン」ではそのようなことはありません。
1.4.3 初期状態の入力
画面上のセルをマウスでクリックすれば,セルは青くなります。 もう一度そのセルをクリックすれば,白に戻ります。 青がオンの状態を現し,白がオフです。 セルのいくつかをクリックして初期状態を決めれば,後は「スタート」ボタンを押すだけです。
動作を中止したければ,「ストップ」ボタンを押し, 次に「クリア」ボタンを押せば全てがオフの状態に戻ります。
1.4.4 データの読み込みと保存
実習で用いる代表的なパターンはあらかじめ data というディレクトリに保存されています。 「ロード」ボタンを押すと別ウィンドウが開いてデータを読み込むことができます。 また,自分で作成した初期状態は,「セーブ」ボタンで保存しておくことができます。
なお,読み書きされるデータファイルは csv 形式ですので,エディタ,ワープロ, スプレッドシートなどで読み書きすることもできます。0 がオフで 1 がオンとなっています。
2 生成されるパターンの多様性
コンウェイは,動作の振る舞いが予測不可能であり,かつ,状態遷移ルールが できるだけ単純なオートマトンを探してきました。 すなわち,物理現象がわずかな基本的な法則に凝縮される宇宙のモデルです。 物理学者は未だ,そういった基本的な法則を見つけ出していませんが, もしこのような法則があるとすれば, 化学,生物学,心理学の最も複雑な構造さえも説明するものでなければならないはずです。 もし,物理学者がそのような基本法則(後ほどこの問題に立ち返ります ) を導くことに成功したとしても, 現実の世界同じように神秘的であり続けることをライフゲームは示しているのです。
2.1 一列に並んだセル
たとえば,一列に並んだセルを初期状態としてスタートさせた場合, 何が起こるか見てみましょう。 先述のとおり,何が起こるかは,最初に並べたセルの長さによって決定論的に定まっています。 ですが,セルの長さの違いによる振る舞いの変化には目を見張るものがあります。 是非各自実行してみてください。
- 一列に並んだ 3 つのセルは「信号点滅機 blinker」と呼ばれます。
blinker は永遠に点滅を繰り返す最小のパターンです。
信号点滅機 blinker - 4 つの場合は,「蜂の巣 beehive」に変化します。
蜂の巣 beehive - 5 つの場合には,4 つの「点滅信号機 blinker」に変化します。
- 6 つの場合,12世代かけて消滅していきます。
- 7 つの場合には,爆発して4つの「蜂の巣 beehive」になります。
- 8 つの場合,最終的に 4 つの「ブロック block」と 4 つの「蜂の巣 beehive」に変化します。
ブロック block - 9 つの時には,8つの「信号点滅機 blinker」になります。
- 10 個のセルのときにできるパターンは「ペンタデカスロン pentadecathlon」という
15 回ごとに元の形に戻るパターンです。
ペンタデカスロン - 11 個のときには,2 つの「点滅信号機 blinker」に縮退します。 これは13 個のときにも同じ結果になります。
- 12 個の並んだセルの時には 2 つの「蜂の巣 beehive」になります。
- 14 個と 15 個の時には引き延ばされる形で,最終的に消滅します。
- 16 個の時には,8 個の「点滅信号機 blinker」からなる「交通信号 traffic light」という動き続けるパターンになります。
- 17 個の時には,4 つの「ブロック block」へと変化します。
- 18 個の時と 19 個の時には消滅してしまいます。
- 20 個の時には 2 つの「ブロック block」になります。
これらの全てに共通する法則は未だに誰も知りません。 まさにこれこそが,コンウェイがライフゲームを楽しんだ理由なのでしょう。
3 参考文献
- ウィリアム・パウンドストーン/有澤誠訳. (1990). ライフゲイムの宇宙. 日本評論社.
- カール・シグムンド/冨田勝監訳. (1996). 数学でみた生命と進化. 講談社ブルーバックス.
- スティーブン・レビー/服部桂役. (1996). 人工生命. 朝日新聞社.