使用参数 (%) 定义代理,main 中的延迟时间基于它。 (任意逻辑)

Posted

技术标签:

【中文标题】使用参数 (%) 定义代理,main 中的延迟时间基于它。 (任意逻辑)【英文标题】:Define agent with parameter (%) and delay time in main is based of it. (Anylogic) 【发布时间】:2018-08-26 23:20:21 【问题描述】:

我还是 Anylogic 的新手,但到目前为止我真的很享受。

我有一个简单的模型,它有一个名为“Passenger”的单独代理。在乘客内部,我有一个名为“WITH_CHILDREN”的参数,它的默认值为 randomTrue(0.5)。

在我的主要流程中,我希望“WITH_CHILDREN”结果为 TRUE 的乘客在特定延迟流程中花费更长的时间。

我认为它会是这样的(在延迟的 on enter 动作中):

if(passenger.WITH_CHILDREN == true)

    delayTime = triangular(1,5,15);
else
    delayTime = triangular(0,1,1.5);

但是这有很多错误:( 我想将它从代理链接到反对设置延迟百分比,因为我有未来的百分比参数将用于其他延迟......如果这有意义的话。

任何帮助将不胜感激,谢谢! :D

【问题讨论】:

【参考方案1】:

您可以使用以下代码直接在延迟块的延迟时间中定义:

agent.WITH_CHILDREN ?  triangular(1,5,15) : triangular(0,1,1.5)

而且因为图像优于 1000 字(我在图像中犯了一个错误……它是代理。不是乘客。

当你在actions中使用delayTime时,它只是一个可读的变量,你不能改变它。

并了解 ?和 : java 中的运算符在这里: http://www.cafeaulait.org/course/week2/43.html

【讨论】:

谢谢费利佩!效果很好。步行图书馆也一样吗?关于服务时间延迟...在处理 ped 库时我似乎无法找到变量...想法?再次感谢您的初步回答! :D 等等,其实我的回答有误……不是passenger.WITH_CHILDREN,应该是agent.WITH_CHILDREN,在步行图书馆里你用ped而不是agent 不用担心 Felipe,您的解决方案对我来说很有意义,我设法弄清楚了。如果代理放置在主流程模型上(来自项目层次结构),您可以调用“passenger.WITH_CHILDREN”吗? 如果整个模型中只有唯一的乘客,那么是的...如果你有一个人口,那么你将不得不做乘客.get(i).WITH_CHILDREN 其中 i 是乘客...不过要访问该乘客,您需要在源代码块中添加自定义人口并将其链接到您主要拥有的乘客人口...有点复杂 太棒了!谢谢费利佩。最后一个快速问题-尽管我可能应该将其发布为一个单独的问题。如何更改动画中 3D/2D 模型的颜色。再说一次,在 SOURCE 进程中,在 ON-EXIT 中,我可以有一个 Java 代码说: if(ped.WITH_CHILDREN == true) changecolour;

以上是关于使用参数 (%) 定义代理,main 中的延迟时间基于它。 (任意逻辑)的主要内容,如果未能解决你的问题,请参考以下文章

检索代理抓住车队运输机作为参数

如何将 Main 中的参数提供给 Anylogic 中的代理

在AnyLogic中更改选定代理的主类参数

参数未传递给 WiX 中的延迟自定义操作

如何使用 Agent 的参数来设置 Block 的行为

AnyLogic:停止延迟块中特定代理的延迟