当前位置: 首页 > 知识库问答 >
问题:

AnyLogic中的意外行为SelectOutput块

柳修平
2023-03-14

在一个模型中,我使用一个使用条件的selectoutput块,该条件基于代理的p_Dx_EGFR_SOC_AH参数,该参数的类型为选项列表(选项:Mutated,NotMutated,UnknownStatus)。如果agent.p_dx_egfr_soc_ah==mutated的计算结果为true,则通过true端口退出,否则通过false端口退出。为了检查它是否正常工作,我在selectoutput块的on exit(True)字段中包含了一个traceln(agent.p_dx_egfr_soc_ah);

结果它并不像预期的那样起作用。跟踪线显示具有参数的三个选项之一的代理通过真端口退出:

对于假端口也是如此;具有三个选项之一的代理通过该端口退出。我在这里做错了什么,还是这是一个已知的bug在Anylogic?

共有1个答案

夔修伟
2023-03-14

事情发生的顺序是

  1. 代理在源块的出口端口处于打开状态
  2. 代理计算selectoutput块上的条件
  3. 代理移出源块,并对“on Exit”操作进行计算

这意味着,如果更改源块代理的on exit操作的参数值。parameter=1,则代理仍将在selectoutput的true exit退出时退出,因为条件已经计算完毕

 类似资料:
  • 我正在研究任何逻辑。假设我有3种代理类型(公、母、猫)(链接中的截图)。 问题:我想让男性和女性“只”到“mandf队列”,猫在selectoutput之后“只”到“c队列”。 我试图在selectOutput的“probability”栏中放一个if语句,但我不知道如何提取代理的名称。我应该使用一个参数吗?比如,如果我有12种代理类型,那该怎么做呢 谢谢你

  • 问题内容: 前一阵子,在使用Class.getMethod和自动装箱时,我遇到了类似的问题,因此在自己的查找算法中实现它很有意义。但是,真正让我感到困惑的是,以下两种方法也不起作用: String.class实现了Serializable接口,我确实希望它包含在lookup方法中。 我也必须在自己的查找算法中考虑这一点吗? 编辑 :我确实读过Javadoc, 所以让我强调一下问题的第二部分 :如果

  • 我是Python的新手,我对Python处理空对象的方式有点困惑。 考虑这段代码; 我得到了这段代码的以下输出。 我假设由{}初始化的对象是有效对象。为什么Python不那样对待它?为什么要得到diff If条件的diff输出? 在C++中,当我说 如果obj不是NULL,它将进入IF块(不管它是垃圾值还是其他) 但当我翻译成Python时也是一样的。 为什么?我读到Python将{}计算为fal

  • 问题内容: 我想撤消一个列表,但是我设法做到了,但是在工作的中间我发现了一些奇怪的事情。下面的程序按预期工作,但list_reversed [i] = list [len(list)-1-i] 和 print(list [i]) (顺理成章地注释了 最后一行 )这 行 引起了 list 的更改。我没看到什么?我的Python版本是3.3.3。先感谢您。 问题答案: 以下: 使两个变量引用相同的列表

  • 我想写一个新的扩展区域的自定义容器类。此CustomContainer的子级列表不应可见。它包含一个窗格(称为rootPane),而这个窗格又包含一个vbox。并且这个VBox的children列表应该用于真正地向容器中添加子级(通过getInnerChildren访问)。这就是它的简化结构。 我的问题是,添加一个新的子项会导致CustomContainer本身的错误布局行为,因为它的高度增加了,

  • 请注意,NULL字节始终存在,您可以使用检查它。 我知道我可以使用获得类似的结果。我不是在问其他选择,我只是想了解格式字符(如doc所说的“NUL填充字符串”)背后的逻辑。 “NULL”值在哪里涉及到所有这些?