Метрика (общая стоимость) не минимизирована с 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.
Если вы знаете какого-либо планировщика, решающего это правильно, я был бы счастлив использовать его.