エージェントベースのモデルを説明するためのベストプラクティス


14

私は数学生物学/疫学にかなり重点的に取り組んでおり、モデリング/計算科学のほとんどの作業はまだODEのセットに支配されており、明らかにかなり複雑なセットもあります。これらのモデルの利点の1つは、説明と複製がかなり簡単なことです。パラメータ値の表、および方程式自体と、あなたが研究を再現するために必要なすべての方法を、彼らがそれを実装したいと思う方法で誰かに与えました。

しかし、やや複雑なモデルが一般的になり始めています。特に、エージェントベースのモデルは、一連のODEで完全に記述されているとは限らないため、出版物で記述するのが難しく、複製するのが難しいようです。読者が何が起こったのかを理解し、比較的簡単に複製できるようにこれらのモデルを説明する背後に、ガイドラインまたは実際の経験がありますか?


1
私の理解では、正式に記述されたエージェントベースのモデルは、行儀の良い常微分方程式と同じように決定論的で再現しやすいということです。文献の特定の例を指摘していただけますか?
アロンアーマディア

@AronAhmadiaエージェントベースのモデルの多くは、非決定的なコンポーネントに依存しています。例えば、のクリエイターMASONシミュレーションライブラリの思考ランダム性は、乱数ジェネレータの独自の実装...インクルードするなどの重要な十分だった
マイケル・マッゴーワン

@MichaelMcGowan-それが心配でした。乱数ジェネレーターによって駆動されるシミュレーションは、再現性戦略の一部としてシード可能でなければなりませんが、科学者は結論を引き出すために統計に頼らなければなりません。
アロンアーマディア

@AronAhmadia問題の一部は、ABMの正式な説明を構成するものに関して、私がこれまであまりレイアウトを見ていないことです。そして、それは確率論の問題を別にします。
フォマイト

回答:


4

私はそのビジネスでは働いていませんが、完全に説明するには3つの部分があると単純に思います

  1. データ構造(グラフ(有向または無向、加重または無加重)、ツリー、配列、...)および各ノードに関連付けられたデータの観点から説明します。定期的な境界条件や、テスト領域外の近傍の想定状態など、特別な場合の処理​​に注意してください。おそらく、これは問題のあるドメインとのかなり明確な関係を持っています。

  2. エージェントの内部状態と決定方法の説明。繰り返しますが、うまくいけば、これは合理的に明確な解釈を持っています。

  3. エージェントとランドスケープ間のアクションと更新の相対的なタイミングおよび/または同期の説明。およびエージェントのペアまたはグループ間。

擬似コード(または実装の詳細で汚染されていない場合は実際のコード)が役立ちます。


2

Volker Grimmなどがエージェントベースのモデルを記述するために提案したODD(Overview、Design、and Details)プロトコルと呼ばれるものがあります。これは、ABMの機能を理解するために必要な要素のリストで構成され、そのようなモデルの記述をより標準化することを目的としています。

説明する必要があるもののチェックリストは、次のもので構成されます。

概要

  1. 目的
  2. エンティティ、状態変数、スケール
  3. プロセスの概要とスケジューリング

設計

  1. 基本原則
  2. 出現
  3. 適応
  4. 目的
  5. 学習
  6. 予測
  7. センシング
  8. インタラクション
  9. 確率論
  10. 集団
  11. 観察

詳細

  1. 初期化
  2. 入力データ
  3. サブモデル

詳細は

Grimm、V.、Berger、U.、DeAngelis、DL、Polhill、JG、Giske、J.、&Railsback、SR(2010)。ODDプロトコル:レビューと最初の更新。生態モデリング、221、2760–2768。


1

最善の方法は、すべてのコードを補足資料として含めることです。可能であれば、結果を再現するために必要な関連するシードを含むファイルも含めてください。これにより、人々があなたの結果を再作成できるようになるだけでなく(あなたは気にしないかもしれません)、中断したところからより簡単に継続することができます。これにより、作品への新しいコラボレーションと引用が可能になります。残念ながら、これにはコードのクリーンアップを強制することの難しさがあり、バグがないことを確認します。したがって、実際に通常行われているものよりも理想的です。しかし、少なくとも、結果を生成するために使用されたコードのバージョンをアーカイブする必要があります。そうすれば、別の研究者がコードを要求した場合、それを生成できます。

論文の記述に関しては、モデルの主要な新規機能の実装に依存しない高レベルの記述に集中します(これは、最も優れた論文が達成する実用的な部分です)。微調整された場合に結果を定性的に変更する機能に集中してください。私が扱っているほとんどのモデルは定量的な結果を生成しますが、特定の量は通常は関心がなく、定性的な振る舞いのみが対象です(通常、パラメータは自然に観察可能なものからは遠いため)。したがって、モデルの部分を説明することに焦点を合わせます。モデルの部分を変更すると、システムの定性的な動作が変更されます。この考え方により、モデルのすべての最後の詳細を実装まで説明する必要がある場合、モデルはあまり堅牢ではないため、破棄する必要があることがわかります。

紙に書かれた説明で十分かどうかをテストする良い方法は、このプロジェクトに携わっていなかった友人(または学生)に、擬似コードであるモデルの実装方法を説明してもらうことです。彼らがこれを試みている間に立ち往生していない場合(彼らは同じ定性的な結果を生み出すはずのモデルのスケッチに到着するように)、あなたは説明の良い仕事をしたことを知っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.