pirika logo

ホームページ Pirikaで化学 ブログ 業務リスト お問い合わせ
Pirikaで化学トップ 情報化学+教育 HSP 化学全般
情報化学+教育トップ 情報化学 MAGICIAN MOOC プログラミング
MAGICIANトップ MAGICIAN-Jr. MAGICIAN-講義 過去の資料
MAGICIANとは、材料ゲノム(Materials Genome)、材料情報学(Materials Informatics)、情報化学(Chemo-Informatics)とネットワーク(Networks)を結びつけて(Associate)いかれる人材です。

MAGICIANトップ > 高校生にもわかる化学、薬学系 データサイエンス MAGICIAN-Jr. > 第9回

2021.8.22

第9回 燃えないバッテリーと集団免疫

パーコレーション

ここで話すことは、実は種本がある。
Excel コンピュータ シミュレーション 三井和男著 森北出版
よみがえれ!科学者魂 佐々木總ら 丸善

その中に書いてあるが、パーコレーションというのは、BroadbenとHammersleyによって1957年に提案されたらしい。

液体の浸透以外にも、噂の広がり、伝染病、無機物の混合などを確率的に解くのにつかわれている。
これまでに乱数はきっちり学んできた。
それが2次元になったようなものだ。
まずは、実際にプログラムを走らせてみよう。

確率:
上と下が: ***


10*10のマス目がある。その1つ1つのマス目のところで、コインを投げる。(第4回で行った。)
表が出たら黒く塗る。裏が出たら白のままにする。
通常のコインなら表が出る確率と裏の出る確率は同じで、0.5ずつになる。
ここでは自由に変えることができるようにしてある。
上辺と下辺がつながったかどうかの判定は、黒いマス同志が辺で(斜めはダメ)繋がったものをクラスターと呼び、上辺と下辺が1つのクラスターで繋がった時(例えば電流が流れる)繋がったと判定される。
ロボットやカジノのプロでない限り、確率1/2で表か裏が出る。
トヨタの資料にこのようなものがあったらしい
実際の全固体LiBはこのような形になっているとされている。
先程のシミュレーション結果と同じように、左辺と右辺の間に電気が流れなくてはいけない。

それでは、確率を0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75と変えて各々10回計算して、何回”つながった”か数えてみよう。

確率に対して、結果は徐々に変わるのでなく、ある所から急につながる回数が多くなり0.75以上では必ず繋がる。(実際には10回程度ではやる度に少し違う値になるだろうが。)
ストライクが入れば勝つ!

実際の設計では、このようなパーコレーション・シミュレーションを繰り返し、必ず繋がる限界値を求める。

集団免疫

最近のコロナ騒ぎで、「感染者(ワクチン接種者)が7割を超えると集団免疫が獲得できる」という報道があったがご存知だろうか?
これは、感染者が7割を超えると、その集団に守られて、残りの3割が爆発的に感染が続くということは無くなるという意味であるが、どうしてそうなるか? 何故、デルタ株ではワクチン接種が7割を超えた国でも感染が急増しているのか、パーコレーション・シミュレーションで調べてみよう。

例えば、確率0.3で計算してみる。

この部分がストライクかボールかで話が変わるわ
斜めが接続していなとすると、「小さな未感染クラスターがたくさんできる」という結果になる。
どれかの未感染クラスターに感染が発生しても、他の未感染クラスターに伝播しない。
感染力が強いデルタ株は斜めも飛び越して伝播してしまう。
これがワクチンの接種率が70%を超えても感染が抑えられない理由。3回目のワクチンを打って斜めを止める必要がある。
感染爆発しちゃう!

プログラム(▶︎をクリックして開く)

まずマス目の状態を入れる12*12の配列(st)を用意する。

 var st=new Array(12);

for(var ij=0;ij<12;ij++){
    st[ij]=new Array(12);
}

そして、1行目と1列目には0(ゼロ)を入れる。 それはクラスタの接続を考えやすくするため。

 for(var i=1;i<12;i++){
    st[1][i]=0;
}
for(var i=2;i<12;i++){
    st[i][1]=0;
}

後は、フォームで入力された確率(prb)を使って各マス目の0,1状態を定めていく。

for(var i=2;i<12;i++){
for(var j=2;j<12;j++){
var ZZZ=Math.random();
if(ZZZ<prb){
    st[i][j] = 1;
}
else{
    st[i][j] = 0;
}
}}

クラスーターの接続の判定:
最初は各マス目に連続するクラスタ-番号を割り振っておく。
左上から順番に、 まず、あるマス目が白だったらスキップする。
上と左を調べる。そのどちらかが黒だったら、そのクラスター番号に変更する。
どちらも黒だったら、小さい方のクラスター番号を採用する。

左上から右上、上から下と繰り返し、1行目のどれかのクラスター番号が10行目のどれかのクラスター番号になれば上から下までどこかが繋がっている。(ただしそのマス目は黒である必要はあるが。)

 

MAGICIANトップ > 高校生にもわかる化学、薬学系 データサイエンス MAGICIAN-Jr. > 第9回


Copyright pirika.com since 1999-
Mail: yamahiroXpirika.com (Xを@に置き換えてください) メールの件名は[pirika]で始めてください。