PDDL - использование чисел c свободно с использованием solver.planning.domains - PullRequest
0 голосов
/ 24 апреля 2020

Я новичок в планировании, и я ищу помощь с цифрами c свободно. Вот пример домена и проблема, которая не работает так, как я думаю.

Домен:

(define (domain tequila)
  (:requirements :typing :fluents)
  (:types
    bottle
    )
  (:functions
    (amount ?b - bottle)
    )
  (:predicates
    (bottle-finished ?b - bottle)
    )
(:action drink
  :parameters (?b - bottle)
  :precondition (>= (amount ?b) 1)
  :effect (decrease (amount ?b) 1)
  )
 (:action done-drinking
 :parameters (?b - bottle)
 :precondition (= (amount ?b) 0)
 :effect (bottle-finished ?b)
 )
)

и проблема:

(define (problem drink)
  (:domain tequila)
  (:objects
    casamigos-anejo - bottle
  )
  (:init
    (= (amount casamigos-anejo) 4)
  )
  ; drink all the tequila
  (:goal
    (bottle-finished casamigos-anejo) 
  )
)

I ' я запускаю файлы с помощью editor.planning.domains. Я ожидал, что план будет «выпить, выпить, выпить, выпить, выпить», но план, который он находит, просто «выпить». Может кто-нибудь объяснить, если я делаю что-то не так, или это работает правильно, и мои ожидания неверны (я уверен, что я думаю об этом в процедурных терминах)? Спасибо.

1 Ответ

0 голосов
/ 24 апреля 2020

К сожалению, в настоящее время онлайн-решатель обрабатывает только расширение классического планирования (ADL, et c), которое не включает численность c свободно. Надеемся, что это изменится в ближайшем будущем, но в данный момент он-лайн решатель не может решить проблему такого типа.

...