Подсчитывает в определенный момент времени в 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 каждый раз, когда происходит заражение.

Есть много других способов, но это будет работать.

ура

Другие вопросы по тегам