公制(总成本)未使用Metric-FF最小化

时间:2016-08-30 20:22:48

标签: ff planning pddl

我尝试使用Metric-FF(v2.1)来解决经典规划问题。我注意到我的计划不是最优的,并开始尝试最小化成本。我意识到尽管成本最小化被激活,但计划者似乎并没有考虑成本。 我创建了以下最小示例,其中包含一个谓词和两个相同的方法(除了它们的成本):

(define (domain metrictest)
    (:requirements :strips :action-costs)
    (:predicates (done ?x))

    (:functions (total-cost) - number)

    (:action do1
        :parameters (?x)
        :precondition (not (done ?x))
        :effect (and (done ?x) (increase (total-cost) 1))
    )

    (:action do2
        :parameters (?x)
        :precondition (not (done ?x))
        :effect (and (done ?x) (increase (total-cost) 5))
    )
)

我想要解决的是:

(define (problem problem_1)
    (:domain metrictest)
    (:objects foo)
    (:init (= (total-cost) 0))
    (:goal (forall (?t) (done ?t)))
    (:metric minimize (total-cost))
)

尽管 do1 是更便宜的操作,但仍然会调用 do2 。如果我在域文件中更改其位置,则会选择do1。

如果您知道任何可获得的计划员正确地解决了这个问题,我很乐意使用它。

0 个答案:

没有答案