序文
本書『社会シミュレーションの技法』は、社会問題や経済問題をシミュレーションによって探求し理解するための実践的なガイドである。いったいなぜ社会科学においてコンピュータ・シミュレーションが用いられているのかということを説明した上で、社会シミュレーションのいくつかのアプローチを具体的に解説していく。本書を読めば、あなたもこの分野の文献を理解できるだけでなく、自分でシミュレーションを作成できるようになるだろう。
近年、社会シミュレーションへの関心は世界的に急速に高まっているが、それは性能が向上したパーソナル・コンピュータの普及によるところが大きい。また、社会シミュレーションの分野は、数学におけるセル・オートマトン理論や分散人工知能の発展からも多大な影響を受けており、これらの分野から社会シミュレーションにすぐに適用できるようなツールが提供されている。このような分野特有の背景があることから、読者にはプログラミングの初歩的な知識があること(例えばBasicによる簡単なプログラミング経験など)、そして社会科学や経済学の知識も多少あることを想定して本書は書かれている。読者はおもに社会科学者や大学院生の方を想定しているが、それに限らずコンピュータ科学者や、この話題に関心のある一般の方にも、興味深く読んでいただけるはずである。
本書の執筆に至った背景には、自分たちの研究分野だということは別として、社会科学におけるシミュレーションへの関心が世界的に高まってきたということがある。例えば、1992年から行われているSimulating Societiesという一連のコンファレンスなどでも、そのような関心の高さが示され、この最初の2回分の論文集はSimulating Societies (Doran and Gilbert 1994b)およびArtificial Societies (Gilbert and Conte 1995)として出版されている。
本書ではまず、どのような場合にシミュレーションによって社会現象を理解し、また説明したりするのかという話から始める。特に、シミュレーションは理論に導かれた営みであるべきであり、シミュレーションから得られる成果も、単なる特定現象の予測ではなく、さらなる理論の発展へとつながるものであるという点を強調したい。第2章ではシミュレーションに関する一般的な方法論を紹介し、典型的な研究プロセスについての概要を説明する。それ以降の章では、7種類のシミュレーション技法を順に考察していく。各章は、おおむね次のような構成で書かれている。
●技法の歴史的経緯などの概要
●その技法のための代表的なソフトウェア・パッケージについての解説
●モデルの仕様からプログラミング、シミュレーションの実行、結果の解釈までのプロセスの説明
●実際にその技法を用いている研究例の紹介
●注釈付きの参考文献リスト本書で取り上げるシミュレーション技法は、システムダイナミクスと世界モデル、ミクロシミュレーションモデル、待ち行列モデル、マルチレベルシミュレーションモデル、セル・オートマトンモデル、マルチエージェントモデル、そして学習と進化のモデルである。
訳者序文 (本書の紹介と読み進め方)
社会科学とプログラミングの両方の知識が必要という著者序文の一節を読んで、身構えた方も多いかもしれません。確かに、社会シミュレーションの研究では、コンピュータ上に動くモデルを作成し、それを用いて社会現象の理解や予測をするので、社会科学とプログラミングの両方の力をもっていれば、その魅力を十分に堪能できるでしょう。しかしだからといって、両方の知識をもっていなければ、この分野に入ることができないわけではありません。必要に応じて学んでいけば良いわけですし、他の専門をもつ人とチームを組んで取り組むこともできるからです。
社会シミュレーションの分野は、近年、複雑系科学などの成果を受けてさらなる発展を遂げています。本書は、昔ながらの技法から最新の技法までを、研究例を交えて紹介している世界で初めての入門書です。このような広い範囲をカバーすることができたのは、この分野を先導し、研究コミュニティを組織してきた著者たちだからだといえるでしょう。ぜひ本書から、社会シミュレーションとはどのような考え方なのか、キーワードやキーコンセプトは何か、何ができて何ができないのか、どういう応用が可能なのかなどを、吸収していただければと思います。
本書は、第1章と第2章で社会シミュレーション一般についての紹介をした後、第3章以降で個別のシミュレーション技法について解説していきます。第3章から第9章までの各章は、ほぼ独立して読める構造になっていますので、必ずしも前から順番に読んでいく必要はありません。社会シミュレーションの発展の歴史をほぼ時系列に追っているので、最新の議論を知りたければ、むしろ後半の章(例えば第7章以降)から読むというのも良い方法だといえるでしょう。
本書をパラパラとめくってみると、プログラムリストや数式が目に飛び込んでくると思います。これはシミュレーション技法を具体的に紹介するためのものです。もしプログラムや数学に馴染みがないのであれば、そういった部分は思い切って読み飛ばして、全体的な考え方をつかんでいただければよいのではないかと思います。基本的な考え方の全体像を理解してから、必要に応じて具体的な内容を重点的に読み返す―――そんな読み方をおすすめしたいと思います。
原書で紹介されている文献リストには、日本語で書かれた文献は含まれていません。そこで、翻訳にあたっては、本文中の脚注と文献案内で、日本語で書かれた文献を加えるようにしました。この入門書を出発点として、さらに次へと進んでいただければ幸いです。