パーコレーション

トップページに戻る


パーコレーションプログラム (Java Web Start) 

平面上に絶縁体の結晶が正方形で並んでいるとしよう。 結晶がランダムに伝導体のものに変化していくとしよう。 そのとき、全体の結晶のうちどれくらいの結晶が伝導体になれば 上から下まで電気が流れるであろうか?ただし、上下左右に 接している結晶にのみ電気が流れるとする。

池の中に格子状に置かれた飛び石を飛んで、端から端に渡ることを考える。 格子全体のうちどれだけの割合で飛び石を置けば、渡ることができるように なるだろうか? もちろん一直線に並べれば、辺の長さ分の石を置けば十分だが、 石がランダムに配置されているときは、そんなにうまくはいかない。

上の2つの問題は本質的には同じ問題である。結晶や飛び石は 2次元の格子と考えればよい。通ることのできる格子点をランダムに 配置するとき、上から下まで通れるようになるにはどのくらいの割合の 格子が通れればよいかという問題になる。この問題を サイトパーコレーションという。

2次元格子の通ることのできる辺がランダムに配置されているときの 問題をボンドパーコレーションと言うが、ここでは扱わない。

プログラム概説

格子のサイズを入力してSTARTボタンを押すとシミュレーションが開始します。 ただし、大きなサイズのものだと 実行にかなりの時間がかかるので注意。

上辺からたどり着くことのできる格子点を赤く表し、たどり着けないところを 黒で表している。下までたどり着けた場合は上から下までたどり着けた格子を 青で塗り直して終了する。

格子点の連結した塊をクラスタと言う。パーコレーションがおこった後で クラスタの大きさとそれぞれの大きさのクラスタがいくつあるかを調べて リストとして出力している。

パーコレーションが起こる割合はシミュレーションの結果平均約0.59である。 つまり59%の格子点が通れるようになったときに上から下までの道ができると いうことである。また、クラスタ統計を見るとパーコレーションしたクラスタが 大半を占め、その他のクラスタはサイズがずっと小さくなっている。