エージェントベースのモデリング用に存在するツールキット、言語、ライブラリの種類と、それらの長所/短所を知りたいです。
10 に答える
あなたの質問に答える 2009 年 6 月の調査を見つけました。
エージェントベースのモデリングおよびシミュレーションツールの調査
Au。RJアラン
概要
エージェント ベースのモデリングとシミュレーションは、離散イベント シミュレーションに基づいた計算負荷の高い手法であり、その起源は遺伝的アルゴリズムにあります。これは、動的で複雑なシステムをシミュレートし、「緊急」の動作を観察するための強力な手法です。ABMS の最も一般的な用途は、トラフィック フローやサプライ チェーンなどの社会シミュレーションと最適化の問題です。計算科学と工学における他の用途を調査します。ABMS は、GPGPU (CUDA を使用する nVidia など) などの新しいアーキテクチャで実行するように適合されています。Argonne National Laboratory には、Exascale ABMS に関する Web サイトがあり、SciDAC Programme からの資金提供を受けて IBM BlueGene でモデルを実行しています。2009 年の夏に、ABMS の方法論とアプリケーションに関するワークショップを開催する予定です。 キーワード エージェント ベースのモデリング、考古学
ウィキペディアにもかなり良いリンクがあります:
http://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software
モデリングの面では、エージェント指向のモデリング言語である FAML を見てください。これはかなり学術的な論文ですが、興味によっては役立つかもしれません: http://ieeexplore.ieee.org/xpl/freepre_abs_all.jsp?isnumber=4359463&arnumber=4967615
これが古いスレッドであることは承知していますが、追加情報を追加しても問題ないと思いました。エージェントベースのモデリング専用の優れた新しい Web サイトがあります。このサイトには、さまざまな分野でエージェントベースのモデリングに取り組んでいる論文、チュートリアル、ツール、リソース、および研究者へのリンクが含まれています。
古いスレッドですが、完全を期すために、ABM に使用できるAnylogicとpyabmもあります。
複数の環境や言語でエージェントベースのモデルをプログラミングした経験があります。私の意見では、比較的単純なモデルを実装したい場合は、Netlogo を使用してください。負荷の高いモデルにも Netlogo を使用することは可能ですが (私はこれを成功させました)、ある時点で、java/python/c++ のようなプログラミング言語の柔軟性が、Netlogo で使用可能なネイティブ メソッドの利便性を上回り、特にパフォーマンスが大きな問題になるとき。
リペーストは少し肥大化しています。経験豊富なプログラマーであれば、ABM の構築を開始するために本当に必要なのは、イベントをスケジュールして乱数を引き出す機能だけです。残り (エージェント/環境とその動作の定義) は、自分で作成できます。モデル内のオブジェクトの管理に関しては、使い慣れた通常のデータ構造 (配列、ハッシュ、ツリーなど) を使用してください。この目的のために、スケジューラーを実装し、乱数ジェネレーターをラップする「ABMUtils」(github 上) という非常に軽量な Java ライブラリーを開発しています。これは開発の初期段階ですが、今後数か月で (シンプルに) 肉付けする予定です。
私は OSCON 2008 でドラマティスを紹介されました。これは、Ruby と Python のエージェント ベースのフレームワークです。著者 (Steven Parkes) は彼のブログにいくつかの参考文献を掲載しており、言語にとらわれないActors ディスカッション リストの運営に取り組んでいます。
erights.org のこのページには、アクターのメッセージ パッシング モデルを紹介および調査するコア ペーパーへの優れたリファレンス セットが含まれています。
進化経済学者なら、Laboratory for Simulation Development (LSD)もチェックできます。
PHPおよびJava開発者は、KATOを確認する必要があります。