在 Anylogic 中发送和接收两个带有消息的双精度数
sending and recieving two double with a message in Anylogic
我想在 Anylogic 模型中将消息从每个代理发送到消息有两个参数的其他代理。当另一个代理收到 "communication" 中的消息时,检查第一个参数。如果它通过了一个条件,我们以某种方式使用第二个参数,如果没有,我们以另一种方式使用它。
例如:
X、Y、Z为智能体的参数。
我在过渡中发送消息。
并在 "connection-link to agent"
收到
我要的条件是:
if sender.X > receiver.X
receiver.Z=receiver.Z + sender.Y;
如果 sender.X < receiver.X
receiver.Z=receiver.Z - sender.Y;
所以我应该同时将 X 和 Y 从一个代理发送到另一个代理。
但我不能在转换中发送消息:
sendToAllConnected(X,Y);
你能帮帮我吗?
我使用此代码("op" 是代理参数):
if(msg.op<this.op)
this.op=this.op+msg;
if (msg.op<this.op)
this.op=this.op-msg;
和此代码:
if (sender.op<this.op)
this.op=this.op+msg;
if (sender.op<this.op)
this.op=this.op-msg;
但我有一个错误,op 无法解析或不是一个字段。
发送对发件人对象的引用。不要尝试发送 X 和 Y 值。一旦发送了发送方对象,接收方对象就可以对该消息对象(对发送方的引用)进行推理,并获得适用的 x 和 y 值。
我想在 Anylogic 模型中将消息从每个代理发送到消息有两个参数的其他代理。当另一个代理收到 "communication" 中的消息时,检查第一个参数。如果它通过了一个条件,我们以某种方式使用第二个参数,如果没有,我们以另一种方式使用它。 例如: X、Y、Z为智能体的参数。
我在过渡中发送消息。
并在 "connection-link to agent"
收到我要的条件是:
if sender.X > receiver.X receiver.Z=receiver.Z + sender.Y;
如果 sender.X < receiver.X receiver.Z=receiver.Z - sender.Y;
所以我应该同时将 X 和 Y 从一个代理发送到另一个代理。 但我不能在转换中发送消息: sendToAllConnected(X,Y);
你能帮帮我吗?
我使用此代码("op" 是代理参数):
if(msg.op<this.op)
this.op=this.op+msg;
if (msg.op<this.op)
this.op=this.op-msg;
和此代码:
if (sender.op<this.op)
this.op=this.op+msg;
if (sender.op<this.op)
this.op=this.op-msg;
但我有一个错误,op 无法解析或不是一个字段。
发送对发件人对象的引用。不要尝试发送 X 和 Y 值。一旦发送了发送方对象,接收方对象就可以对该消息对象(对发送方的引用)进行推理,并获得适用的 x 和 y 值。