天文はかせ幕下

ライフゲームと銀河形成シミュレーション

ライフゲームと呼ばれる計算モデルのことを知ったのは、顧問が中学生のころ、雑誌「ニュートン」だかを読んでいたころでした。2次元の方眼紙上に数字の1で表された「生物」の生存のゆくえを模倣したモデルです。方眼紙上の4つ隣に生きている別の生物の数によって死滅したり(1→0)、生き残ったり(1→1)、あるいは誕生したり(0→1)します。

現実の生態系の複雑さとはかけ離れているので、ライフゲーム自体はその名の通り一種の数字遊びに過ぎないけれど、少しルールを工夫してあげると、ある種の結晶の成長とか生き物の模様などを再現することもあります。このような計算モデルは、一見複雑に見える現象が実は単純なルールから成り立っていることを暗示していて、一昔前にたくさんの研究がされました。いまでは一般的にセル・オートマトンと呼ばれています

 

顧問が大学生のころに統計力学の授業をうけた小田垣孝さん*1が当時出版した一般向けの本

のとあるページに、セル・オートマトンで銀河を形成を計算する論文(Percolation and Galaxies)が紹介されていて、記憶に残っていました。それはとても単純です:

  1. 方眼紙上の星(下図の赤い星)は、次のサイクルではそれが超新星爆発を起こして周囲の8つのセル(下図の白丸)に確率pで新しい星を形成する
  2. ある中心を基準として、全体が一定の速度で回転する。

たった、これだけです。

銀河の回転は惑星の公転ともレコード盤の回転とも異なっていて、どこでも同じ速度になるのだそうです。それが2.の過程に反映されています。外側に行くほど、星が一周するのにかかる時間は長くなり、その回転速度の差が銀河の渦巻き形状のポイントになっています。

丁度最近、”Julia”と呼ばれるプログラム言語を覚えてみようかなと思い立って、手始めの練習問題にこの銀河シミュレーションを選びました。その結果がこちら:

なかなかそれっぽくなっていて、t=500あたりで、M101銀河のように見えなくもありません。観測によると

 

オリジナルのモデルとはちょっと違っているところもあるので注釈を付記しておきます。まずオリジナルでは2次元極座標を使っていますが、その実装は結構面倒なので、ここでは単純な正方格子としました。また、オリジナルではpは一定ですが、上の計算では、星の密度が高いところでは星の生成確率pを大きめの0.16くらいに、星の密度が低いところでは小さめの0.13くらいに調整しています。

 

 

*1:・・・先生ではなく、・・・さんと呼ぶのが物理学科の習わしでした