我希望尝试创建一个自动玩视频游戏的机器人,并且想知道 Optaplanner 是否可以用于机器人的任务规划。
机器人具有起始状态、期望的结束状态以及它可以执行的不同任务。目标是使用 optaplanner 找到可行的任务序列,使机器人从起始状态进入所需的最终状态,优化成本最低。
机器人:
任务:
Optaplanner 可以做到这一点吗?模拟这个问题的正确方法是什么?
任何帮助/指导将不胜感激,我已经梳理了大部分 Optaplanner 文档和示例。
我已经研究过@PlanningListVariable,但我不确定这是否适合我的用例。文档说:
每个计划值都分配给一个计划实体。
在我的例子中,任务将是规划值,而机器人将是规划实体(?)。但是,许多任务可能未使用,根本不应该分配......所以它看起来不正确。
这是一个很难在 OptaPlanner 中建模的域/约束的示例。您的规划实体形成了一系列无限的行动,每个行动都可能影响未来的行动(例如,为了制作一个水桶,您需要 3 个铁,这是由过去的行动收集的)。这意味着:
改变过去的行为很可能会违反涉及未来行为的约束。这使得 OptaPlanner 很难更改过去的操作,除非它之后的所有/大多数操作也被删除。
您需要“猜测”达到目标所需的最大操作数量,因为您当前无法在移动中添加计划实体 (https://issues.redhat.com/browse/PLANNER-第2642章