AnyLogic 如何 link 一个代理到另一个代理

AnyLogic how to link one agent to another

我是 anylogic 的相对菜鸟,但我有一项作业要做,所以我的问题来了:

我创建了一群都是患者的代理人......这些患者生病的概率可以说是 30%......我已经实现了这个,但现在我的任务是使用新的药物添加药物这个问题的代理来治愈他们...但是我如何 link 这个新代理与已经存在的代理?我的第一个代理被一条消​​息触发..因此我们必须使用一个事件将此消息发送给第一个被感染的人等..

任何人都可以帮助我如何创建一个新代理并将其 link 交给旧代理来治愈人们?

非常感谢!

好的,既然这是你需要的,我会 post 它作为答案

medicine 有一个名为 SC 的状态图,其中初始状态为 used,第二个状态 notUsed 表示您通过从一个到另一个的消息转换。

当patient进入sick状态后,需要找一个状态为notUsed的agent Medicine才能痊愈,所以用下面的代码找:

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);
}

你将不得不做同样的事情,当一种新药被创造出来时,你可能会用同样的方法在"sick"州找到一个人。 我假设您是在患者代理中调用此函数,但它可能会因调用时间而异。