2017年2月22日水曜日

卒研のレベルを高める手がかり:Multi-level Models In NetLogo 6(その2)

先の記事で、NetLogo 6のMulti-Levelモデリングについて書きました。
http://sparse-dense.blogspot.jp/2017/02/multi-level-models-in-netlogo-6.html

これまでは、それぞれ2つの独立したmodel(NetLogoプログラム)であったものを、有機的、階層的に連結して、そられをマルチスレッドで同時実行させるものでした。さらに、注目すべき、下記の短い論文に出会いました。

[文献1]Arthur Hjorth, et al.: LevelSpace: Constructing Models and
Explanations across Levels, Proc. of the Constructionism 2016, pp.362-363, 2016.

その中にある図を引用させていただきます。
NetLogoの3つのmodelの連携([文献1]より引用、説明加筆)

2ページの論文なので、各modelの詳細は書かれていませんが、すばらしいアイディアであることはすぐに分かりました。以下のような内容です。model-1とmodel-3のソースコードは公開されていますが、model-2(ニューラルネットワーク)の詳細は書かれていませんので、これを自分で設計、実装すれば理解が深まり、実力がつくでしょう。

◎ model-1のみ:狼と羊の個体数のダイナミクス
羊は草を食べ、狼は羊を食べる。羊も狼も一定のエネルギーを得るとある確率で子を増やす。また、ある条件で死ぬ。草もある確率で再生する。この単独モデルでは、これらの確率は乱数で決めていた。

◎ mode-3を追加:温室効果ガスによる気温変動
このモデルを使って、model-1での草の再生の具合を、環境変動(気温変化)に依存させる。

◎ model-2を追加:ニューラルネットワーク
このモデルを、狼の(羊にも適用できるが)脳の働きを簡単に模倣するのに使用する。すなわち、model-1単独の場合は、狼の進むべき方向は乱数で決めていたが、各狼にそれぞれ簡単なニューラルネットワークを割り当てることで、環境(近隣の羊や草の情報)に応じて進む方向を決める。つまり、狼に頭脳を与える。ニューラルネットワークの辺の重みは子に継承させるが、子は、次第に僅かにそれらの重みを変えることで、より環境に適応できるだろう。

メインのmode-1に、上記の2つのモデルmodel-2, model-3を連結させて、それらをマルチスレッドで同時に動かす。これによって、よりリアリティのあるシミュレーションとなっていくだろう。

0 件のコメント:

コメントを投稿