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

来自3个源的基于AnyLogic优先级的队列

杨凌
2023-03-14

我有一个AnyLogic模型,有3个连接到队列的源。如何为每个源设置其优先级(或者可以是明显的参数?)以及应该向field Agent priority写入什么(默认值为零)。在此处输入图像描述

共有1个答案

寿元白
2023-03-14

要做到这一点,您必须使用名为priority的参数或变量创建一个自定义代理。

在源块上,您定义代理的优先级。例如:

agent.priority=2;

在队列块中,您选择队列中的“基于优先级”选项(这就是您所做的),并将代理优先级设置为agent.priority

 类似资料:
  • 很好的一天!我尝试在AnyLogic 8.7.6中构建网络模型。我有两个具有不同优先级的源(来自第一个源的数据包获得优先级2,来自第二个源的数据包获得优先级1)。来自源的数据包被传输到队列。队列应按优先级对其进行排序。 优先级参数在源代理中定义。 我做了一个简单的实验。源1每秒生成1个代理,源2每秒生成10个代理。我们看到队列是空的:( 我不知道为什么。队列没有根据它们的优先级对它们进行排序。 P

  • 非常感谢您抽出时间!

  • 我需要一个优先级队列,它首先获得具有最高优先级值的项目。我当前正在使用队列库中的PriorityQueue类。但是,这个函数只先返回值最小的项。我尝试了一些很难看的解决方案,比如(sys.maxint-priority)作为优先级,但我只是想知道是否存在更优雅的解决方案。

  • 我在模拟中使用下面的代码。因为我一遍又一遍地调用dijkstra方法,性能对我来说非常关键。,我使用PriorityQueue将图的节点保持相对于它们到源的距离的升序。PriorityQueue为我提供了以O(log n)复杂度访问距离最小的节点。但是,要在重新计算节点距离后保持节点有序,我需要首先删除节点,而不是再次添加它。我想可能有更好的方法。我感谢任何反馈。提前感谢所有社区。

  • 在前面的部分中,你了解了称为队列的先进先出数据结构。队列的一个重要变种称为优先级队列。优先级队列的作用就像一个队列,你可以通过从前面删除一个项目来出队。然而,在优先级队列中,队列中的项的逻辑顺序由它们的优先级确定。最高优先级项在队列的前面,最低优先级的项在后面。因此,当你将项排入优先级队列时,新项可能会一直移动到前面。我们将在下一章中研究一些图算法看到优先级队列是有用的数据结构。 你可能想到了几种

  • 我试图实现Dijkstra算法的一个版本,以找到公共汽车从起点到终点的最短路线。不幸的是,我似乎找不到swift提供优先级队列类型的库或其他方式,所以我似乎必须自己编写代码。 话虽如此,有人能指出我做这件事的正确方向吗? 目前我的想法如下: 到目前为止这是我的代码。似乎太短太残忍了...我一定是在概念上漏掉了什么。