Метрика (общая стоимость) не минимизирована с Metric-FF

Я пытаюсь использовать 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))
)

В результате вызывается do2, несмотря на то, что do1 является более дешевой операцией. Если я меняю их положение в доменном файле, выбирается do1.

Если вы знаете какого-либо планировщика, решающего это правильно, я был бы счастлив использовать его.

0 ответов

Другие вопросы по тегам