Artificial intelligence 如何在PDDL中存储数学值?

Artificial intelligence 如何在PDDL中存储数学值?,artificial-intelligence,planning,pddl,Artificial Intelligence,Planning,Pddl,我需要在PDDL中创建一个计划来访问n个地方的子集,每个地方都有一个分数。我需要最大化效用,它被定义为每个分数的总和。如何在PDDL中表示此域?具体来说,我如何存储每个地方的得分?我假设您熟悉行动成本和计划指标。如果没有,请在评论中说明 我想,最简单的方法是通过行动成本。要解决的问题是,在您的案例中,计划的质量与您在执行计划后访问过的地方相关,因此它与您执行的操作的成本没有直接关联,而是与您生成的状态变量相关。因此,假设每次执行导致代理访问某个位置的操作时,您都会提高计划的质量,那么您可能会获得

我需要在PDDL中创建一个计划来访问n个地方的子集,每个地方都有一个分数。我需要最大化效用,它被定义为每个分数的总和。如何在PDDL中表示此域?具体来说,我如何存储每个地方的得分?

我假设您熟悉行动成本和计划指标。如果没有,请在评论中说明

我想,最简单的方法是通过行动成本。要解决的问题是,在您的案例中,计划的质量与您在执行计划后访问过的地方相关,因此它与您执行的操作的成本没有直接关联,而是与您生成的状态变量相关。因此,假设每次执行导致代理访问某个位置的操作时,您都会提高计划的质量,那么您可能会获得错误的计划质量,因为您可以多次访问同一位置。但是,您可以按如下方式解决此问题:

您只需添加以下形式的行动计划质量(?位置): (1) 在每个位置,它只可执行一次 (2) 在每个位置,只有代理当前位于该位置时,它才是可执行的 (3) 该效果通过该位置的分数提高计划的质量

然后,您只需要将计划度量设置为最大化,就完成了

为什么这样做有效? (A) 如果您的代理在某个位置,最大化指标将导致计划员应用提高质量的措施(由于(2)该措施适用) (B) 这些额外措施不会导致错误的计划质量,因为由于(1),每个此类措施在每个位置仅适用一次。唯一可能发生的事情是,您访问了一个位置,但计划员没有应用提高计划质量的操作(尽管它可以这样做)。但这是规划者的选择,我想这不太可能


另一种可能是依靠所谓的依赖国家的行动成本。但是这个概念非常新(如果我没记错的话,大约两年),所以我想能够处理它们的计划者数量有限,而且我还假设需要一种特殊的语法,而这种语法不是标准PDDL规范的一部分。

非常感谢。我已经尝试了一段时间,这有助于解决这个问题。