使用参数 (%) 定义代理,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
我有一个简单的模型,它有一个名为 '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