Я новичок в планировании, и я ищу помощь с цифрами 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. Я ожидал, что план будет «выпить, выпить, выпить, выпить, выпить», но план, который он находит, просто «выпить». Может кто-нибудь объяснить, если я делаю что-то не так, или это работает правильно, и мои ожидания неверны (я уверен, что я думаю об этом в процедурных терминах)? Спасибо.