【发布时间】:2020-08-04 23:24:31
【问题描述】:
让我们有一个模型,其中两种类型的代理到达系统:狗和猫。这个代理有一个双倍类型的参数年龄。代理进入应按年龄排序的唯一队列,然后由单个服务器提供服务并退出系统,如以下示例 Proposed model 所示。
我的第一个问题是:如何使用年龄属性通过代理比较对队列进行排序?
我面临的主要问题是队列块(与几乎所有块一样)需要在高级属性中定义单个代理类型。首先,我尝试使用代理类型“代理”直接在队列中执行此操作,因为两种实体类型的属性名称相同(queue example1),但随后出现错误“无法解决年龄或不是field”作为一般代理类型“代理”没有这样的属性。然后,我尝试将 agent1 和 agent2 转换为 dog 和 cat,如 (queue example2) 中所示,但当然在运行时我得到错误 dog can't be cast to cat 或反之亦然,因为我们不知道 agent1在给定时间将是猫或狗的类型。
考虑到我通过退出/输入块路由代理的版本,我遇到了同样的问题,我可以在输入块中使用的唯一代理类型来合并不同的代理类型是“代理”,但是随后不能使用不同坐席类型的属性年龄对队列进行排序。
我的第二个问题是:如何将 n 个代理类型路由到 x 个不同的位置,以便之后可以使用各个参数或变量而无需转换代理类型(因为我们不知道哪个会进入块) ?
【问题讨论】:
标签: simulation anylogic