私は、イタリアで百日咳の疫学的モデルを構築しています。ここでは、予防接種スケジュールは生後 III、V、および IX 月に設定されています。その後、4 ~ 6 歳で追加接種が行われ、14 歳で追加接種が行われます。エージェントはイタリアの人口分布を再現しています。私は前世紀のデータを使用して、最初の人口をさまざまな州に分割しました。別の論文から毎日の接触に関するデータを取得しましたが、これらのデータに基づいて、すべてのエージェントが他のエージェントと接続します。
2006年から2014年までのイタリアでの百日咳の疫学を再現したいので、感染者数に興味があります
新しいエージェント (シミュレーション中に生まれた) は状態 S に入ります...生後 3 か月目 (生後 60 日から 89 日) で、エージェントはワクチン接種を受けて状態を変更できます (V1 に移動)...毎日の確率は状態の変更 (ProbVaccD)...これは、トランジションで書いたコードです。
condition: age() >= 60./365 && age()<90./365
guard: randomTrue(main.ProbVaccD)
モデルの時間は「days」であり、「age()」はreturn time(YEAR) - birthDate;
「birthDate」が変数であるとして定義された関数であり、エージェントが生まれたモデルの時間 (YEAR) を格納します。
条件を毎日評価したいので、「周期イベント」に「繰り返し時間1日」を追加したのaction: onChange();
ですが・・・これでよろしいでしょうか?
私が心配している点は、一部のエージェント (状態 Ip、Is、R1、R2、および R3 のもの) が、接続されているすべてのエージェントに毎日メッセージを送信するという事実です...
エージェントが 8 つのメッセージを受信し、条件が 8 回 (メッセージごとに 1 回) + 1 回 ("onChange();) 関数で評価されるとします。
前もって感謝します!!!