レポート課題:シミュレーション学

講義のホームページはこちらです.

締め切り


8月8日の23:59まで。

概要


3つのoptionのうち、1つを選んで提出せよ。レポートはいかに創意工夫、 努力、考察したかで評価する。その努力の汗がひしひしと伝わってくるような レポートを提出して欲しい。
なお講義で説明したシミュレータのいくかは ここから入手できる。 そのほかのシミュレータについては 一般公開はしていないが、レポートの参考となる場合には ソースコードなどは提供可能である。 ただしそれらの多くはswarm に基づいている。興味ある場合は早めにコンタクトしてほしい。

Option A

講義で説明した 教科書 の3章にある「性選択のシミュレーション」について以下のことを説明し、かつ実験的に検証せよ。
  1. 定常状態の式(スライドのp.13)が成立することを簡単に証明せよ。
  2. GAのシミュレーションを行って平衡状態の分布図(スライドのp.14)を実験的にプロットせよ。
  3. 新しい遺伝子(突然変異)のランナウェイの侵入が生じることをいくつかのパラメータで実験してみよ(スライドのp.19)。
Hint1: Kirkpatrickのモデルの論文は以下にある。 また、教科書 複雑系のシミュレーション:Swarmによるマルチ・エージェ ントシステム"(伊庭斉志著、コロナ社) の3章で詳しく説明している。
Hint2: 性選択のシミュレーションはこのHPにある(§9.10)。ただしSwarmに基づく実装である。
  • Kirkpatrickが提案したモデルによる性選択のシミュレーション
  • Kirkpatrickが提案したモデルを二次元格子モデルに拡張した性選択のシミュレーション

Option B

性選択のシミュレーションを実験的に観測・検証してみよう。 講義では尾の長さの性選択について以下のような実験を説明した。
  1. 尾の長さだけに適応するニューラルネットワークの学習をする。 学習例には長いもの、短いものなどを与える。
  2. 学習されたニューラルネットワークに対して学習例を進化させる。 長いほど適合度を低くする。
  3. 学習が終わったら、ランダムに生成した学習例に対して認識率と適合度を評価する。すると適合度が低いにもかかわらず、長い尾が進化していた。


この課題では、尾の長さ以外に、対称性や色彩発現など雌が好む形質についての性選択を各自で試してみてほしい。たとえば、円形、特殊な幾何図形、変な形態などを好むようなものに対する進化も起こるだろうか?
性選択の詳細は第4および5回講義で説明している。

Hint1: 以下の論文が参照になる。 これらの論文の解説は、参考書:進化計算と深層学習 -創発する知能(伊庭斉志著、オーム社) の1.4節で詳しく説明している。
Hint2: 単純なANNでも十分だが、チャレンジングな場合にはCNN, AutoEncoderなどのdeep learningを用いて適当な素材をもとに実験してみると面白い。

Option C

講義で説明したような、以下のような例題や自分が面白いと思う複雑系現象から1つを選んで、面白いシミュレーションプログラムを作成せよ。

必ず複雑系のシミュレーションであり、かつ可視化を伴う実装であることが必須である。
いかに創意工夫したかによって評価する。Life Game, Boidのような余りに単純なものやサンプルの模倣は評価が低いので注意すること。

注意事項

以下のものを提出すること。
  • シミュレーションに関するドキュメント
    • 1ページ目に必ず、名前、学籍番号、所属、学年 を記入すること。
    • 実現したシミュレーションに関する説明(どの部分をどう創意工夫したかなど)。
    • 実装法に関しての説明(ファイルのどの部分をどう変更したか? など)。
    • ソースリストの簡単な説明(ソースコードにコメント付加するのでも良い)。
    • 実験結果に関する簡単な考察(複雑系シミュレーションとしての意義など)。
    • 授業に関するコメント、要望など(次回の参考にするので是非書いて下さい)。
  • source code (こちらで実験を確認するので重要)

なお、レポート作成については、講義や教科書で説明しているSwarmシミュレータや、 その他のシミュレータを自分で作成・利用してもよい。
ただし、以下の点に留意すること。
  • 可視化をともなう複雑系のシミュレーションであること(とくにOption Cのとき)
  • できるだけ一般的なシミュレーションツール、もしくは実行環境であること
  • こちらで確認ができるようにreportにおいて実行環境について十分丁寧に説明すること
万一これらが守られない場合やこちらで実行が確認できない場合には、採点の対象とならないことがある。

提出方法

以下のものを提出すること。
  • プログラムを作成した場合、 実現したシステムに関する説明(どの部分をどう創意工夫したかなど)。さら にアルゴリズム、ソースリストの説明。
  • 結果の表示(グラフなどを用いると分かりやすい)。
  • 結果に関する考察と評価。
  • 授業に関するコメント、要望など(次回の参考にするので是非書いて下さい)。

提出方法はここに示す通りである。 提出されたレポートリストは ここにある。