Open5

シミュレーションの各手法

みつよしみつよし

概要

SpreadsheetによるPL、Jupyter Notebookによるデータ分析、時間発展する系のシミュレーション計算など
それぞれの特徴と選択すべき状況について

みつよしみつよし

シミュレーション計算

多数のエージェントの状態を時間経過で計算する
セルオートマトンなどもそう

memo

  • Spreadsheetと異なり、各エージェントのインスタンスが固定されていないため、エージェント間の関係性の記述に工夫がいる

課題

  • 複数エージェントが操作できる状態がある場合
    • FXの注文など
    • 複数の処理が同時に実行されることで重複処理される
    • なぜ起きるか?
      • トランザクションは往復処理が必要なのに対し、t-1の状態に対してtの状態が定まる系では1tickで処理の往復ができないため
    • 買い注文の受理と物品の購入を同時に行うこともできない
みつよしみつよし

メモ

総量の限られた資源をどのように表現するか

  • 問題
    • エージェントが自身の状態変化のみに関心をもつというモデルと、全体の状態の総計に対して制約を設けるという考えは相性が悪い
    • この相性の悪さをどのように解決するか
  • 解決案
    • transactionエージェントを発行する
    • transaction発行処理と受け取り処理の関数を実装し、利用時はstateをそこに通して更新をかける
    • 重複処理を避けるのが非常に難しい

同期的に他エージェントの状態を変更する

  • 他エージェントの状態を変更できる
    • 状態の隠蔽が必要
  • 問題点
    • 進化的計算をする場合は他エージェントから影響を受けるエージェントの計算サイクルあたりの計算量が増えるので淘汰圧がかかってしまう