我希望尝试创建一个机器人来自动玩电子游戏,并想知道Optaplanner是否可以用于机器人的任务规划。
bot具有启动状态、所需的结束状态以及可以执行的不同任务。目标是使用optaplanner找到可行的任务序列,使bot从启动状态到期望的结束状态,优化为成本最低的。
机器人:
inventory
中的
任务:
H 121任务E 122可以重复E 223。例如,机器人可能需要收集5个木头(收集木材任务,重复5次)
这和Optaplanner有可能吗?什么是正确的方法来模拟这个问题?
任何帮助/指导将不胜感激,我已经梳理了大多数Optaplanner文档和例子。
我研究了@PlanningListVariable,但我不确定这是否符合我的用例。医生说:
每个计划值都分配给一个计划实体。
在我的例子中,任务将是规划值,而Bot将是规划实体(?)。但是,许多任务可能是未使用的,根本不应该分配.所以这看起来不对。
发布于 2022-11-04 17:44:44
这是一个很难在OptaPlanner中建模的域/约束的例子。您的计划实体形成了一系列无限的操作,每个操作都可能影响未来的操作(例如,为了制作一个桶,您需要3个熨斗,它是由过去的操作收集的)。这意味着:
因为您不能在当前的(https://issues.redhat.com/browse/PLANNER-2642).中添加计划实体,所以您需要对达到目标所需的最大操作数进行“猜测”。
您可以做的是使用OptaPlanner作为bot的“策略生成器”。这一体系结构将有四个组成部分:
步骤决定器,它决定立即采取什么行动,以推进到给定的最终目标。它可以是“收集木材”,“矿山矿石”或“将物品列入库存”。这将是一个“短视”的规划师;它将抽象的最终目标转化为OptaPlanner能够理解和解决的更具体的子目标。
动作实现者
https://stackoverflow.com/questions/74310967
复制相似问题