在模拟中,工作人员必须在地图上移动来执行任务。
每次模拟'tick',他们可以移动一格。
一旦他们与它相邻执行任务需要 10 个滴答声。
任务方块不能通过。有工人的广场不能通过。一个以上的工人可以在一个广场上工作。
工人不相互竞争;目标是尽快完成所有任务。
补充:理想情况下,算法应该易于概念化并且易于实现。这不是每个人都想要的吗?如果它高效,例如模型可以更新和重用,而不是经常从头开始重新计算,这是一个很大的优势。理想情况下,它将能够使用局部最优,因此它不会试图暴力破解 NP 问题,而是避免过于贪婪并提前思考,而不是基本上随机游荡,工人很少注意其他人的计划。
这是一个例子:
工人 1 和 2 必须完成方格 A、B、C 和 D 上的任务。
你如何决定哪个工人做哪个任务?
1 应该做 A 而 2 应该做 C 似乎是不言而喻的。
1 距离 A 4 个方格,因此将在 14 个刻度内完成。1接下来应该去哪里,为什么?
如果有另一个任务 - E - 直接放在 B 上方怎么办?
工人用来决定下一步从哪里进行的逻辑是什么?
我试过的:
这是一个爱好 RTS 游戏,我尝试让它让空闲的工作人员继续执行最近的任务,或者继续执行其他工作人员没有做的最近的任务。
这种贪婪的方法已被证明是非常低效的,玩家测试表明它是站不住脚的。因为战略性的采矿/建筑/耕作是游戏的关键,并且因为我不希望玩家对所有工人进行微观管理和路由,所以我正在寻找一种相当公平且合理的优化算法,工人可以使用它。