こんにちは、らちょです。今回はモンテカルロ法についてのお話です!
なるべく複雑な式は使わず、これを読めばモンテカルロ法の基礎を掴めるような内容となっておりますので、最後までお付き合いください!
はじめに
みなさんは超伝導やカーボンナノチューブなどの言葉は聞いたことはあるでしょうか?
最近では、メディアでも取り上げられることが多くなり、注目を集めています。
これらはいわゆるミクロ化学、物理に分類されるものであり、この分野の理論的研究は物質の微細構造に及ぶため、方程式を解いて計算で解析していくのはとても大変です!
そこで、近年ではコンピュータ上での分子シミュレーションを用いての解析が重要視されるようになってきています。結局物質というのは、分子の結びつきにより構成されているので、分子の移動と結合の様子をシミュレーションできたら、複雑な方程式を解かずとも物質の構造をナノスケールで理解できるのです!
分子シミュレーションには、モンテカルロ法や分子動力学法などがあります。今回はその中でも初心者でも分かりやすく、利点の多いモンテカルロ法について解説していきます!
モンテカルロ法の由来
モンテカルロ法(Monte Carlo Method)の名前の由来は、モナコ公国の賭博で有名なモンテカルロという都市から来ています!実際にモンテカルロ法というカジノ攻略におけるいわゆる必勝法みたいな手法があり、どちらも確率に則って行うことから分子シミュレーションでもモンテカルロ法と呼ばれるようになりました。
必勝法と聞くと、ライアーゲームのキノコ頭の男性を思い出してしまうのは僕だけでしょうか?(笑)
カジノにおけるモンテカルロ法の解説はこの記事を読むと良く分かると思います。
モンテカルロ法とは?
由来が分かったところで、次は分子シミュレーションにおけるモンテカルロ法(モンテカルロ・シミュレーション)のやり方について解説していこうかなと思います。
モンテカルロ法を式を用いて解説しようとすると、統計力学の知識だったり、多重積分を解いたりする必要があり、少し骨が折れるのでここでは省略します。気になる方はコメント等いただければ、別の記事を作成します!
ざっくり説明すると、
「分子に初期配置を与え、物理法則に従った確率で乱数を用いて分子の移動を連続で考える」
といった感じなのですが、これだけでは何のことやら全然わからないと思います。(笑)
というのもモンテカルロ法は概念的なものであり、これを用いてシミュレーションに応用する必要があるのです。
なので、モンテカルロ・シミュレーションの中で圧倒的に実用されている「メトロポリスの方法」を知ることでどういうシミュレーションを実際にしているのか理解が深まると思うので、そちらを紹介していきます!
メトロポリスの方法について
分子の移動を考える際に重要視するものの一つとしてポテンシャル・エネルギーが挙げられます。
分子はエネルギーが低くなる方、すなわち安定な方向に移動しやすい性質を持つことが一般的に知られています。
そこで、ある状態iから状態jに遷移する場合を考えます。その時に状態iとj両方のポテンシャル・エネルギーUiとUjを考えて、
Ui < Uj ならば、移動後のエネルギーが高くなるため、移動が起こらない。
Ui ≧ Uj ならば、移動後のエネルギーが低くなるため、移動が起こる。
といった規則に従うものとなっています。遷移前と遷移後のポテンシャル・エネルギー差を考えるのがメトロポリスの方法というわけです。
ただし、メトロポリスの方法にはもう少し補足があって、先程
Ui < Uj ならば、移動後のエネルギーが高くなるため、移動が起こらない。
と述べましたが、正確にはある確率で移動が起こる場合を考えなければなりません!
高校の物理で習ったと思うのですが、分子は熱によって運動を与えらています。それが原因で分子は安定な状態(平衡状態)から非平衡な状態へと飛びだしてしまいます。これを熱ゆらぎといい、温度に比例する因子なのですが、これも統計力学の知識が必要ですので詳しい説明は割愛します。
wikipediaの動画がイメージしやすいので、リンクを貼っておきます。よろしければ参考にしてください。wikipediaさんは何でも載っているので、尊敬しかないですよね。(笑)
https://ja.wikipedia.org/wiki/%E7%86%B1%E3%82%86%E3%82%89%E3%81%8E
以上のことを踏まえると、 Ui < Uj のときでも熱ゆらぎによってある確率で分子が移動することを考えなければなりません。
それでは次に熱ゆらぎの確率について考えていきましょう。
少し難しい話になるのですが、熱ゆらぎはボルツマン分布に従うことが知られています。ボルツマン分布については詳しい説明はしませんが、
の式に従うことだけ頭に入れておいてください。kはボルツマン定数、Tは温度を表しています。
温度を一定としてみると大事なのは分子のポテンシャル・エネルギーの差であることがわかります。
今回、 Ui < Uj のとき を考えているので、 Uj – Ui は必ず正になることが分かると思います。
熱ゆらぎの確率とΔU= Uj – Ui の関係をグラフにすると、以下のようになります。
ΔUが大きくなると、expの中身全体としては小さくなるので、ポテンシャル・エネルギーの差が大きくなるほど熱ゆらぎの確率は小さくなります。つまり、移動前と移動後のエネルギー差が大きいほど熱ゆらぎで移動が起こることは少なくなります。また、確率の話なので、値が0~1に収まっているのも読み取れるかと思います。
モンテカルロ・シミュレーションのアルゴリズム
ここまでで分子の移動の法則については物理的に考えることができたので、いよいよモンテカルロ・シミュレーションのアルゴリズムの説明に入ります!
以下に実行手順を示していきます。
どうでしょうか?シミュレーションといっても繰り返し動作を行うだけですので、実行手順はとてもシンプルだと思います!
モンテカルロ・シミュレーションの実行例
では、最後にこのモンテカルロ・シミュレーションを実行した結果の一部をお見せしようと思います!
詳しい条件は省きますが、分子の結合が増えれば増えるほどポテンシャル・エネルギーは低くなると思ってください。つまり、分子は固まっていた方が熱ゆらぎの影響が小さく、安定であるということです。
ランダムな分子が2~5の動作を繰り返すことで、ゆらぎの確率で時々分子が飛び出すものの最終的にはまとまって結晶化することがシミュレートすることができました!🎉
ちなみにシミュレーション結果はエクセルファイルに出力しているのですが、そのエクセルファイルを可視化するためにVoxlerというソフトを使っており、とても便利ですのでみなさんも使ってみてはいかがでしょうか。
使い方はこちらの記事にまとめていますので、興味のある方は一度見てみてください!
最後に
これでモンテカルロ法については一通り学習できたのではないでしょうか。これから製品がどんどん小型化が進む中で、より小さいスケールでの物質の形成が求められるので、ナノスケールでの分子の移動をシミュレーションできるモンテカルロ法は重要視されるようになってきています!
日常生活では使わないかもしれませんが、教養の一つとして学習して損はないと思います。
ここまでお読みいただきありがとうございました!らちょでした、それではまた!
コメント