AnyLogic, как связать одного агента с другим - PullRequest
0 голосов
/ 06 июня 2018

Я относительный новичок в отношении anylogic, но у меня есть задание, которое я должен выполнить в своей домашней работе, поэтому здесь возникает мой вопрос:

Я создал группу агентов, которые все пациенты ... эти пациенты заболевают сВероятность, скажем, 30% ... Я уже реализовал это, но теперь моя задача состоит в том, чтобы добавить лекарство, используя новый агент для этой проблемы, чтобы излечить их ... но как мне связать этот новый агент с уже существующим?Мой первый агент запускается сообщением ... поэтому мы должны использовать событие, отправляющее это сообщение первому человеку, который заразился и т. Д.

Может кто-нибудь помочь мне, как я могу создать нового агента и связать егостарому, чтобы исцелить людей?

Большое спасибо заранее!

1 Ответ

0 голосов
/ 06 июня 2018

хорошо, так как это то, что вам нужно, я опубликую это как ответ

лекарство имеет диаграмму состояний под названием 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);
}

Возможно, вам придется сделать то же самое, вероятно, когда вы создаете новое лекарство, вы используете тот же метод, чтобы найти парня в состоянии "больной". Я предполагаю, что вы вызываете эту функцию вагент пациента, но может отличаться в зависимости от того, когда вы его вызываете.

...