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

就餐:代理执行命令

龚志
2023-03-14

我有一个名为truck的代理,它将执行一些操作(例如装载包裹)。这里的问题与执行动作的代理的随机序列有关。例如,假设我有三辆卡车,装载顺序是随机的。

Run-1: truck-1, truck-3, truck-2
Run-2: truck-2, truck-1, truck-3
Run-3: truck-3, truck-1, truck-2
...

如何确保代理(卡车)根据顺序执行操作,例如通过其id,以便我们始终可以从模拟中获得一致的结果。

Run-1: truck-1, truck-2, truck-3
Run-2: truck-1, truck-2, truck-3
Run-3: truck-1, truck-2, truck-3
...

共有1个答案

燕琨
2023-03-14

至少有三种方法可以做到这一点。

>

  • 如果设置了随机种子,则在所有其他条件相同的情况下,卡车的顺序应该是相同的。它很可能不会按id排序,但应该是相同的。

    创建所有卡车时,将其添加到ArrayList。按id对该列表进行排序,模拟的每个勾号在该列表中迭代,在每个卡车上执行卡车操作。一个快速的谷歌应该向你展示如何使用比较器排序Java列表。

    调整调度以反映卡车id——例如,卡车1在1.0处执行,此后每勾一次,卡车2在1.1处执行,之后每勾一次,卡车3在1.2处执行,等等。

    3的一种变体。通过id设置调度优先级——所有卡车都可以在1.0执行,此后每滴答一次,但卡车1具有最高优先级,卡车2紧随其后,依此类推。

    附带说明,计划中项目的随机迭代是默认的,以防止常见的ABM行为执行排序问题,例如先行者优势。

  •  类似资料:
    • 如果我的计算机有12个内核,我的模型有15个场景运行,批量运行是否会自动将最初的12个运行分配给每个内核,并同时运行相应的运行以节省时间?如果是,我还想知道我是否可以控制核心的使用,例如,在批量运行时限制使用8个核心,以防止单次运行规模过大时出现OOM。

    • 我正在为自己建立一个实验室来学习,我正在尝试建立一个在Ubuntu 20.04虚拟机上运行的3节点集群。请耐心等待,因为我还在学习:slight_smile:希望我能提供所有需要的数据来诊断这个问题。 起初,我有我的集群,但3个节点处于未就绪状态,因为我没有运行任何CNI插件。 kubectl get nodes NAME STATUS ROLES AGE VERSION主节点NotReady控制

    • 关于如何只使用一个条件就获得所需的代理集,有一个答案:Repast:如何根据特定条件获得特定的代理集? 这样的事情如何在多种条件下工作?(例如问rich_people[财富

    • 我以前使用Netlogo,有一些非常好的内置方法,允许我从总人口中筛选和控制所需的代理。(见:http://ccl.northwestern.edu/netlogo/docs/dictionary.html#agentsetgroup).例如,我可以很容易地用简单的代码在模拟中命令不同级别的人员代理,例如: 在Repast中,是否有专门为方便控制代理集而构建的方法列表?

    • 我在一本书中读到,Repast Simphony中的投影可以是投影界面的任何用户实现。我想创建一个自定义投影,但它看起来比我预期的更复杂。你们有没有人尝试过创建自己的投影?如果是的话,你能解释一下如何进行吗?非常感谢。