如何在PDDL中存储数学值?

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


回答:

我假设你熟悉动作成本和计划指标。如果不是,请在评论中说明。

我想,最简单的方法可能是通过动作成本来实现。需要解决的问题是,在你的情况下,计划的质量与执行计划后访问的地点相关,因此它不直接与你执行的动作的成本相关,而是与你产生的状态变量相关。假设每次执行一个导致代理访问某个位置的动作时,你都会提高计划的质量,那么你可能会得到错误的计划质量,因为你可以多次访问同一个位置。然而,你可以按以下方式解决这个问题:

你只需添加一个增加计划质量的动作increase-plan-quality(?location),形式如下:(1) 在每个位置上只能执行一次(2) 在每个位置上,只有当代理当前位于该位置时才可执行(3) 效果是通过该位置的分数增加计划的质量

然后,你只需要将计划指标设置为最大化即可,完成。

为什么这有效?(A) 如果你的代理在一个位置上,最大化指标会导致规划器应用增加质量的动作(由于(2),该动作是可应用的)(B) 这些额外的动作不会产生错误的计划质量,因为由于(1),每个这样的动作在每个位置上只能应用一次。唯一可能发生的情况是你已经访问了一个位置,但规划器没有应用增加计划质量的动作(尽管它可以这样做)。但这是规划器的选择,我想这不太可能发生。

另一种可能性是依赖所谓的状态依赖动作成本。但这个概念相当新(如果我记得正确的话,大约两年),所以我想只有有限数量的规划器可以处理它们,我还假设需要一个专门的语法,这不是标准PDDL规范的一部分。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注