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

Define agent with parameter (%) and delay time in main is based of it. (Anylogic)

我有一个简单的模型,它有一个名为 'Passenger' 的独立代理。在 Passenger 内部,我有一个名为 'WITH_CHILDREN' 的参数,它的默认值是 randomTrue(0.5).

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

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

if(passenger.WITH_CHILDREN == true){

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

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

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

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

而且因为一张图片胜过 1000 字(我在图片中犯了一个错误...它是 agent,不是 passenger。

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

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