AnyLogic, как связать одного агента с другим
Я относительный новичок в отношении anylogic, но у меня есть задание, которое нужно сделать в моей домашней работе, так что вот мой вопрос:
Я создал группу агентов, которые все пациенты... эти пациенты заболевают с вероятностью, скажем, 30%... Я уже реализовал это, но теперь моя задача - добавить лекарство, используя новый агент для этой проблемы, чтобы исцели их... но как связать этого нового агента с уже существующим? Мой первый агент запускается сообщением... поэтому мы должны использовать событие, отправляющее это сообщение первому человеку, который заразился и т. Д.
Может кто-нибудь помочь мне, как я могу создать нового агента и связать его со старым, чтобы исцелить людей?
Спасибо заранее!
1 ответ
Хорошо, так как это то, что вам нужно, я опубликую это как ответ
медицина имеет диаграмму состояний, называемую SC, с начальным состоянием, которое используется, и вторым состоянием, за исключением случаев, когда вы переходите от одного сообщения к другому.
когда пациент добирается до состояния больного, ему нужно будет найти агента "Медицина", который находится в состоянии, которое не может быть излечено, поэтому вы найдете его с помощью следующего кода:
Medicine med=findFirst(main.medicines,m->m.inState(m.notUsed));
if(med!=null){//meaning that there is at least one not used medicine
med.SC.fireEvent("use medicine");
send("get better",this);
}
Возможно, вам придется сделать то же самое, вероятно, при создании нового лекарства, вы используете тот же метод, чтобы найти парня в состоянии "больной". Я предполагаю, что вы вызываете эту функцию в агенте пациента, но она может отличаться в зависимости от того, когда ты это называешь