Подсчитывает в определенный момент времени в AnyLogic
Я пытаюсь запустить стандартную модель, основанную на агентах SIR, при которой агенты переходят из состояния "Подвержено" в "Зараженный" и из "Зараженного" в "Восстановленный". Теперь я заинтересован в расчете мгновенной заболеваемости, то есть количества агентов, которые переходят из состояния "Восприимчивый" в состояние "Зараженный" в данный момент времени t.
Например: в 1-й день (модельное время) 2 агента переходят от "восприимчивого" к "зараженному" В день 2 (модельное время), 5 агентов переходят от "восприимчивого" к "зараженному" в день 3 (модельное время), 7 переход агентов от "восприимчивого" к "зараженному".,,
Я могу получить общее количество "зараженных" агентов, но мне интересно знать это значение каждого временного шага. Я ищу написать функцию, которая кумулятивно складывает количество новых инфекций для каждого временного шага.
Любые идеи о том, как можно сделать это в AnyLogic, были бы очень полезны. Благодарю.
2 ответа
Я предлагаю вам создать коллекцию на главной col_Counter
типа, где ключом является день, а значением - количество заражений. Затем создайте повторяющееся событие в агенте с именем e_Counting
начиная с запуска модели и повторяя каждые 24 часа. В действии напишите:
main.col_Counter.add(date(), v_countsToday);
v_countsToday=0;
Также создайте v_countsToday
как целочисленная переменная в агенте. Добавляйте +1 каждый раз, когда происходит заражение.
Есть много других способов, но это будет работать.
ура