Вам необходимо настроить свой график как набор «предикатов связности» в разделе init
, например:
(adjacent l1 l2) (adjacent l2 l3) ...
Это представляет собой соединение между l1
и l2
и между l2
и l3
; это могут быть путевые точки или местоположения ваших клиентов. Затем вам нужно действие, которое перемещается по графику:
(:action move
:parameters (?from ?to - location)
:precondition (and
(adjacent ?from ?to)
(at salesman ?from))
:effect (and
(at salesman ?to)
(not (at salesman ?from)))
Затем вам также нужно действие deliver
, которое гарантирует, что продавец имеет какой-то товар, находится у покупателя и, как результат, покупатель имеет товар (а продавец нет). Затем вы устанавливаете goal
, что у всех клиентов есть товары, которые они хотят, и вам должно быть хорошо, чтобы go.