2006年10月13日

Repastのチュートリアル

何事も、実際に手を動かしながら覚えるのが一番。ということで、Repastのチュートリアルの紹介です。英語の文章になってしまいますが、アリゾナ大学のMurphyさんが作成したものがお勧めです(>Murphyさんのページ)。エージェントが格子空間に落ちているお金を集めて歩く”The Carry Drop Model”を一行一行追いながら(全部で32ステップもあります)作成していくことができます。まずこのモデルを案内に従いながら作ってみて、次に自分の作りたいモデルにチャレンジするのが良いかもしれません。

投稿者 taku_kadoya : 20:46 | コメント (0)

2006年10月08日

EclipseでRepastをつかう

Eclipseは、オープンソースのJavaの開発環境です。いろいろな便利機能が搭載されていて、プラグインを使って機能の追加もできます。ただのテキストエディタを使うよりもずっと便利です。RepastはJavaのクラスライブラリなので、Eclipseと組み合わせて使うことができます。ここでは、Repastの本体と一緒に配布されているサンプルプログラムをEclipseから実行する例を紹介します。

まず必要なのはRepastとEclipseのインストールです。Repastはこちら(>Repastのウェブページ)から、Eclipseはこちら(>VectorのAll-in-one Eclipseのページ)からダウンロードできます。

インストール終了後、Eclipseを立ち上げるとワークスペースの場所を決めるように求められます。ワークスペースを指定した後、Eclipseの新規プロジェクトを作成し、プロジェクトのビルド・パスにrepastのクラスライブラリが入っているファイルを追加するという手順で作業を進めます。

ファイル > 新規 > プロジェクト  >  Javaプロジェクト

を選択します。新規プロジェクト作成用のウィザードが立ち上がるので、任意のプロジェクト名をつけます(例ではtestModelとしています)。

WS000003.JPG


次へ > ライブラリー > 外部JARの追加 

から、Repastのインストールフォルダーの中にある、repast.jarを指定して終了をクリックします。

WS000002.JPG

そうすると、指定した名前のプロジェクトがワークスペース上に作られます。これで作成したプロジェクト内では、repastに組み込まれているクラスをインポートして使うことができます。

WS000004.JPG


試しに、作成したプロジェクト内にRepast本体と一緒に配布されているGame of Lifeというサンプルコードをインポートして動かしてみます。パッケージエクスプローラー上で、作成したプロジェクトファイルを右クリックし、

新規 > パッケージ

から新しいパッケージを作ります。パッケージ名は、インポートするコードにあわせて、"uchicago.src.repastdemos.life"とします。

WS000005.JPG

次に、パッケージエクスプローラー上で新しく作成したパッケージ(uchicago…)を右クリックし、

インポート > ファイルシステム > 次に

を選択します。ここで、ソースディレクトリにRepastインストールフォルダー内のサンプルコードの入ったフォルダ(ここではlife)を指定し、終了します。これで、パッケージの下に、ソースコードが書かれた.javaファイルがインポートされるはずです。

WS000006.JPG

けれども、インポートしたファイルにはエラーがでます。これは、ソースコードで使われているクラスの一部がまだ、ビルド・パス上に含まれていないためです。そこで、プロジェクトファイルを右クリックし、

ビルド・パス > 外部アーカイブの追加

から、Repastインストールフォルダー内にある、colt.jarを追加します。このライブラリは、様々な乱数を発生させるクラスを含んでいるため、ほとんどのシミュレーションプログラムで用いられています。

WS000007.JPG


これで、セッティングは終わりです。早速、Javaアプリケーションとして実行してみてください。実行すると、以下のようなタスクバーとパラメーター設定用のウィンドウが出てきます。

WS000008.JPG

WS000010.JPG

タスクバーの再生ボタンをおすと、新たなウィンドウが立ち上がり、シミュレーションが始まります。

WS000009.JPG


投稿者 taku_kadoya : 13:57 | コメント (0)

2006年10月07日

個体ベースモデルを手軽に:Repast

Repast (Recursive Porus Agent Simulation Toolkit)は、個体(エージェント)ベースモデルをつくるためのソフトウェアで、Javaのクラスライブラリとして使えます。シカゴ大で開発されたRepastは社会科学系の分野で使われていることが多いようです。

生態学分野でも、野外で観察された現象を理解するのに、"モデル"をつくるとことが有効なことが良くあります。個体ベースモデルは、仕組みが簡単な上に現実に即した複雑さも容易に組み込めるので、フィールドデータの分析と相性がいい手法だと思います。

Repastでは、対象とする生物の行動規則などの特性や、その生物が動き回る空間、スケジュールなど個体ベースモデルを作るときに必要となる基本的な要素を含んだ、個体ベースモデルのひな形が用意されています。したがって、モデルを作るときには、そのひな形に必要なプログラムを足していけばよいということになります。一から自分で作るよりは断然楽です。あくまでも用意されているのは、ひな形だけなので自由度が下がるということもありません。

パラメーターを読み込んだり、結果を書き出したり、いろいろな確率分布から乱数を発生させたりとシミュレーションをするうえで役に立つクラスも多々用意されています。中でも特に、メリットが大きいのはシミュレーションの「視覚化」が簡単に行える機能でしょうか。シミュレーションの過程を視覚化することは、システムの挙動を理解したりバグを発見したりするのに大変便利です。Repastのひな形にそって作られたプログラムなら、数行のコードを追加するだけでシミュレーションの結果をリアルタイムで視覚化することができます。Repastで作られたモデルの例はこちらから見ることができます。

投稿者 taku_kadoya : 23:24 | コメント (0)