プログラミング環境としては、NetLogoを使用しています。NetLogoの基本的なことはこのブログでも紹介しています。ここです。
セミナーではテキストは使っていませんが、最終回近くになって、下記の英語書籍にある例題をやってもらうことにしました。
Steven F. Railsback, Volker Grimm :Agent-Based and Individual-Based Modeling: A Practical Introduction(この中の、Butterfly Hill-topping(蝶の山越え)という例題)
蝶は高い山をどうやって越えるのでしょうか。その戦略をいろいろと考察するようになっています。それを通して、エージェント指向モデリングの理解を深めるというものです。英語のテキストですが、何とか理解してやってもらいました。
(1)円錐の山ならば、….
下図では、高い円錐と低い円錐の山が2つあります。暗い部分が低く、白くなるほど高い場所を示しています。円錐と分かっていれば、行動は決まっていますね。とにかく、自分がいる近傍のもっとも高い方へ行けば一直線に山頂へ着くでしょう。
円錐の山と分かっていれば、一直線に山頂へ行ける |
(2)山が円錐形とは限らない場合は….
蝶は、実際の山の全体像を知ることはできません。自分の近傍の情報しか得られないので、どの方向へ進むべきかは、戦略が必要です。とにかく現在地よりも高いところへ行くだけは、うまく行きません。「適当なある戦略」をもって、山を登ろうとする2匹の蝶を下図に示します。赤い蝶は、まさに紆余曲折しながらも、ほぼ高い方の山頂へ到着したようです。一方、黄色の蝶もなんとか、低い方の山頂へ近づいています。
「必ずしも高い方向へ向かわない」戦略で山頂をめざす |
(3)本当の山野のデータを使え!
次に、この英語のテキストでは、実際の(たぶん)米国のある山野の地勢図を使って、そこで蝶の山越えをさせています。下図では、白い部分の尾根がいくつかあります。暗い部分は谷になっています。青と赤の2匹の蝶を放しました。この実際の地形でも(2)でとっている戦略はある程度うまく行っているようです。少なくも青い蝶にとっては。
実際の地勢図での蝶の山越えの様子 |
これは一例なのですが、セミナー、卒研では、簡単な想定だけでなく、できるだけ実際の環境、実社会の情報の元で実験と考察を行うことが必要です。それによって次のステップへ向かうきっかけが掴めるのではないでしょうか。