機械の中の酔っ払い

この一週間はモンテカルロ・シミュレーションにとっかかっている。最初に考えた物理学者たちがカジノで遊んでいるときに思いついただの、さいころを振るようなシミュレーションだからカジノの名前をつけた、だのいろいろな伝説のあるネーミングである。なんにしろなかなかしゃれっ気のあるネーミングで、数値計算関係の単語の無愛想でとっつきにくい感じと違ってどこかかわいらしい。ローンバーグ積分、なんて名前を聞いただけでなんかすごいことになりそうである。(”ルンゲ・クッタ”は結構いけているかな。カーブフィッティングの評価方法に「アメーバアルゴリズム」なんてものあるのだが、それで実際にアメーバ関連の解析をしたりするのはオタク的なヨロコビを感じたりする)。イタリア語だからだろうか。かわいい雰囲気だけではなくて、実際に原理もかなり単純である。
現象をモデル化しようとする場合には通常数式を考案する。微分方程式をデザインして、時間発展を推測する、というのが私の分野ではよくやるモデル化である。分子レベルの反応でいえば微分方程式には分子密度(濃度)に代表されるようなマクロなパラメーターを使う。これに速度定数などを加味してダイナミクスを追うのである。ところが、モンテカルロの場合は、ミクロな一分子一分子の運動を考える。したがって、乱数の生成が鍵となり、まさにさいころをふって分子がどこに行くのかを次々と決めていくことになる。全体のダイナミクスを眺めるときにはミクロな個々の分子の状態を各時点で総計して、こうなりましたね、と結論するのだ。したがって、微分方程式をデザインすることなく、アホのように分子を動かせばよい、ということになる。計算機が発達した時代にまさに合致した手段である。使っていない古めのコンピューターにプログラムを入れて、漬物のように勝手に走らせておけば何回も試行して結果を実態にかなり近似させることができる。機嫌のいい酔っ払いを百人集めてきてポーカーをさせるようなものだ。勝手に延々とやってくれる。