【发布时间】:2019-04-13 07:16:55
【问题描述】:
亲爱的 AnyLogic 社区,
我创建了一个模型来评估不同的自主控制方法。
我的代理人有不同的截止日期,并希望最先为截止日期最快的代理人提供服务。目前,传入的代理没有以任何方式排序,而是根据 FIFO 规则提供服务。
是否有可能在不添加单独队列的情况下修改服务块中代理的顺序?
非常感谢您的时间和帮助!
【问题讨论】:
-
使用优先级...截止日期越早,优先级越高。代理将根据他们的优先级获得服务。你试过了吗?
-
我现在分配了优先级,但我不知道如何在服务块中调用它们?
-
在一个服务块中,只能使用优先级来按优先级调用资源。您无法对服务对象中的嵌入队列进行排序。您需要在服务之前添加另一个队列对象,只有在那里您才能使其按优先级排序(或如下建议的代理比较)。另外,确保将服务对象队列大小设置为 1(0 是不可能的),这样服务中就不会发生排队。
-
这是否意味着像 Felipe 建议的那样根据代理的优先级设置任务优先级并不能确保优先级最高的订单首先得到服务?
-
我认为实际上可能不会。从服务块的帮助中不清楚。建议您创建自己的手动测试,看看它是如何工作的 :-) 您可能是正确的,服务块的优先级实际上对队列进行了排序。我从不使用它,因为 queue-seize-delay-release 块给了我更大的灵活性 :-) 很抱歉造成混乱
标签: java simulation anylogic