チューリングの縞模様

年末にNHKでシベリアの虎の番組を見て、かっこよかったんで、動物の柄に関するチューリングのモデルを勉強。


●P.ボール 『自らを織りなすタペストリ:自然界のパターン形成』(The Self-Made Tapestry: Pattern Formation in Nature) ISBN:0198502435 【アマゾン】

を読む。(著者のページ)

非常に簡単なモデルで豹柄などを再現できる「活性子・抑制子モデル」というのをチューリングチューリングマシンチューリング)は考案した。「活性子」は色素を発現させる物質で、放っておくとどんどん濃くなる。しかし同時に「抑制子」も生成する。これは「活性子」の生成を抑える物質。この二種類は両方とも濃い部分から薄い方へ「拡散」するけど、抑制子の方が拡散が速い。そうすると活性子の濃い部分が出来て周囲に抑制子をどんどん拡散させることで孤立した活性子の島がぽつぽつとできる、というもの。

これは非常に簡単なモデルで、理工系の大学院生なら紙と鉛筆で解けなきゃ駄目、ってくらいのモデル。詳しくは理研(リンク切れにつき修正)名大のこちらのページを参照。シミュレータもあり。 計算としてはフーリエ変換して2x2行列を対角化すると、ある波数 k≠0 で固有値が最大になる、てだけの話。

プログラムで書くと以下のようになる。a[x][y]、b[x][y]は場所(x,y)の活性子と抑制子の濃度、Da, Db は拡散の速さ、 Caa,Cab,Cba は化学反応の定数。

   // diffusion
   a_new[x][y] = a[x][y] 
                  +dt*Da*(a[x-1][y]-a[x][y])
                  +dt*Da*(a[x+1][y]-a[x][y])
                  +dt*Da*(a[x][y-1]-a[x][y])
                  +dt*Da*(a[x][y+1]-a[x][y]);
   b_new[x][y] = b[x][y] 
                  +dt*Db*(b[x-1][y]-b[x][y])
                  +dt*Db*(b[x+1][y]-b[x][y])
                  +dt*Db*(b[x][y-1]-b[x][y])
                  +dt*Db*(b[x][y+1]-b[x][y]);

   // chemical reaction
   a_new[x][y] += dt*(Caa * a[x][y] +Cba *b[x][y]);
   b_new[x][y] += dt*(Cab * a[x][y]);

これでちょっと計算してみた結果がこれ

こんな簡単なので再現できる、と看破したチューリングの洞察力と大胆さがすごい。このモデルは数学的に扱いやすいけど、実際に化学反応を作るのは難しい。そこで数学的には難しくなるけど実験で再現しやすい反応式を後にプリゴジンなどが開発している。

しかしキリンやシマウマなどの模様を再現するには色々手を加えないといけなかったりして、これが実際生物で起こっているのかどうかは全く分かっていない。

でも最近京大のグループが Nature に発表した論文で、熱帯魚の縞模様が成長とともに変わるのをこのモデルでよく再現して有力な手掛かりとなったらしい。

追記:上の理研のページはそのグループのページだった。HOME にいくといろいろあります。

この本の著者は Nature の編集者を10年ほどやってた人らしい。だから分かりやすい例えでぐいぐい読ませる力がすごい。いや、もしかしたら言葉で説明してても物理屋の読者はその裏にある数式がすぐ見えて分かりやすいだけかもしれないけど。

著者によれば自然界のパターン生成はほとんど非平衡現象であって、平衡状態は「死」の状態でつまらない、らしい。うーむ、そうなのか。自分は平衡統計力学で飯食ってるんですけど。
巻末には Onsager の regression theorem の解説とかもある。あ、theorem じゃなくて仮説なんだっけな。

追記 2007-10-26

弾さんの所で紹介されてる本も面白そうだ。
http://blog.livedoor.jp/dankogai/archives/50937223.html