シミュレーションプログラムの結果をどうとらえるか?

まず、スイスの記事を全世界にちゃんと発表しようというswissinfoに拍手。素晴らしい取り組み。

で、リンク先の記事なのだけどセンセーショナルなタイトルの割にはさっぱり意味のわからない記事。

この研究に携わった進化生態学の研究者たちは、生体は代償がないと分かっているにもかかわらず、なぜ共同作業をしたり協力し合ったりするのかという問題を、人助けをする人ほどほかの人から助けられるという考え方はどうやって出来上がったのかということを調べることで解明しようとした。そのため、生体がどのように融和していくかを擬似化できる生物進化のアルゴリズムを作った。そして、良い経験をすぐ思い出すようにプログラムされたグループと、悪い経験をすぐ思い出すようにプログラムされた2つのグループを作った。

ビジネスマンや経済学者と同じように進化生態学の研究者も世の中をコストと利益で見る。利益は進化生態学の場合は、生き延びることであったり繁殖することであったりする。ランキン氏はコンピューターを使い「数学的生体」に上記の 2つのグループを混ぜ合わせ、25回の融和をさせてみた。その中から、1番少ないコストで最も利益を上げたサンプルを取り上げ、次の実験にも使い、負けたサンプルは取り除いた。このプロセスを2500回して結果を集計した。

その結果は「評判の悪い生体、つまりほかから助けを受けない生体は強く、評判が良い生体は淘汰される。最良の策は思いやりを持たないこと」
だとランキン氏は言う。

この結果のどこが「苦い経験の方が人を進歩させる」という記事のタイトルになるのか?「生き残る=進歩」という解釈をしないと意味が通らない。また、この実験を行ったランキン氏も「道徳的なことを言いたいわけではない。複雑な世界を非常に単純化したコンピューターで作られたモデルでの論理だ」というとおり、あるモデルにおいてこういう結果がでたというだけのこと。

シミュレーションプログラムで得られた結果は現実世界でも必ず成り立つというのは間違い。シミュレーションプログラムは、ある数学的モデルに基づき計算を行うプログラムのことなので、その数学的モデルがシミュレートしたい対象をちゃんと表せていなければ、いくら計算したところで意味がない。

なので、シミュレーションプログラムの結果を評価するときにはまず基となる数学モデルがシミュレート対象に対して適切かどうかが最も重要な評価のポイント。結果の重要性はモデルの重要性に比べて低い。上の記事は、もっとも重要なモデルの部分がざっくりなのでこれをどう解釈して良いのかわからないところ。まあ、論文読めという話だけど。

ちなみにシミュレーションプログラム系の論文は以下のポイントで日々生まれてくると私は認識している。

  • シミュレート対象のものを表す数学モデルの提案・改善
  • ある数学モデルに基づいたシミュレーションプログラムの実行速度向上・精度向上