0

私は、イタリアで百日咳の疫学的モデルを構築しています。ここでは、予防接種スケジュールは生後 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();) 関数で評価されるとします。

前もって感謝します!!!

4

0 に答える 0