レポート課題:シミュレーション学
講義のホームページはこちらです.
締め切り
8月8日の23:59まで。
概要
3つのoptionのうち、1つを選んで提出せよ。レポートはいかに創意工夫、 努力、考察したかで評価する。その努力の汗がひしひしと伝わってくるような レポートを提出して欲しい。
なお講義で説明したシミュレータのいくかは ここから入手できる。 そのほかのシミュレータについては 一般公開はしていないが、レポートの参考となる場合には ソースコードなどは提供可能である。 ただしそれらの多くはswarm に基づいている。興味ある場合は早めにコンタクトしてほしい。
Option A
講義で説明した 教科書 の3章にある「性選択のシミュレーション」について以下のことを説明し、かつ実験的に検証せよ。- 定常状態の式(スライドのp.13)が成立することを簡単に証明せよ。
- GAのシミュレーションを行って平衡状態の分布図(スライドのp.14)を実験的にプロットせよ。
- 新しい遺伝子(突然変異)のランナウェイの侵入が生じることをいくつかのパラメータで実験してみよ(スライドのp.19)。
Hint2: 性選択のシミュレーションはこのHPにある(§9.10)。ただしSwarmに基づく実装である。
- Kirkpatrickが提案したモデルによる性選択のシミュレーション
- Kirkpatrickが提案したモデルを二次元格子モデルに拡張した性選択のシミュレーション
Option B
性選択のシミュレーションを実験的に観測・検証してみよう。 講義では尾の長さの性選択について以下のような実験を説明した。- 尾の長さだけに適応するニューラルネットワークの学習をする。 学習例には長いもの、短いものなどを与える。
- 学習されたニューラルネットワークに対して学習例を進化させる。 長いほど適合度を低くする。
- 学習が終わったら、ランダムに生成した学習例に対して認識率と適合度を評価する。すると適合度が低いにもかかわらず、長い尾が進化していた。

この課題では、尾の長さ以外に、対称性や色彩発現など雌が好む形質についての性選択を各自で試してみてほしい。たとえば、円形、特殊な幾何図形、変な形態などを好むようなものに対する進化も起こるだろうか?
性選択の詳細は第4および5回講義で説明している。
Hint1: 以下の論文が参照になる。
- Female preference for symmetrical males as a by-product of selection for mate recognition
- Symmetry, beauty and evolution
Hint2: 単純なANNでも十分だが、チャレンジングな場合にはCNN, AutoEncoderなどのdeep learningを用いて適当な素材をもとに実験してみると面白い。
Option C
講義で説明したような、以下のような例題や自分が面白いと思う複雑系現象から1つを選んで、面白いシミュレーションプログラムを作成せよ。- von Neumannの自己増殖オートマトンの再現
- 人流シミュレーション
- Self-Organization Phenomena in Pedestrian CrowdsのFigs.1,2 and 3 のようなシミュレーションを行う。 廊下を反対方向に動く歩行者は、明確な指示がなくても自ら動きを調整して対向する流れを形成する。
- 「流れ」の5章
- サンゴの成長モデル
- ミツバチ・コロニーの巣板パターン
- Self-Organization in Biological Systems (Princeton Studies in Complexity)
- 生物にとって自己組織化とは何か: 群れ形成のメカニズムの16章(323ページから)に巣のセルラ・オートマトンによる形成モデルの説明がある。
- 「かたち」の2章「ハチの巣の教訓:泡で築く」
- 生物の形態のパターン形成
- 近藤滋先生のホームページを参照するとよい
- 「かたち」の4章にチューリング・モデルの2次元版の解説がある
必ず複雑系のシミュレーションであり、かつ可視化を伴う実装であることが必須である。
いかに創意工夫したかによって評価する。Life Game, Boidのような余りに単純なものやサンプルの模倣は評価が低いので注意すること。
注意事項
以下のものを提出すること。- シミュレーションに関するドキュメント
- 1ページ目に必ず、名前、学籍番号、所属、学年 を記入すること。
- 実現したシミュレーションに関する説明(どの部分をどう創意工夫したかなど)。
- 実装法に関しての説明(ファイルのどの部分をどう変更したか? など)。
- ソースリストの簡単な説明(ソースコードにコメント付加するのでも良い)。
- 実験結果に関する簡単な考察(複雑系シミュレーションとしての意義など)。
- 授業に関するコメント、要望など(次回の参考にするので是非書いて下さい)。
- source code (こちらで実験を確認するので重要)
なお、レポート作成については、講義や教科書で説明しているSwarmシミュレータや、 その他のシミュレータを自分で作成・利用してもよい。
ただし、以下の点に留意すること。
- 可視化をともなう複雑系のシミュレーションであること(とくにOption Cのとき)
- できるだけ一般的なシミュレーションツール、もしくは実行環境であること
- こちらで確認ができるようにreportにおいて実行環境について十分丁寧に説明すること
提出方法
以下のものを提出すること。- プログラムを作成した場合、 実現したシステムに関する説明(どの部分をどう創意工夫したかなど)。さら にアルゴリズム、ソースリストの説明。
- 結果の表示(グラフなどを用いると分かりやすい)。
- 結果に関する考察と評価。
- 授業に関するコメント、要望など(次回の参考にするので是非書いて下さい)。
提出方法はここに示す通りである。 提出されたレポートリストは ここにある。