Как я могу представить проблему графа в PDDL? - PullRequest
0 голосов
/ 06 апреля 2020

Например, у меня есть следующая проблема: у меня есть агент по продажам, который продает 4 продукта (a, b, c и d). Всего у нее 10 клиентов: 3, которым нужен продукт a, 3, которым нужен продукт b, 3, которым нужен продукт c, и 1, которым нужен продукт d. не у каждого клиента есть дорога (ссылка) ко всем другим клиентам. агент в настоящее время находится в доме клиента 1, которому нужен продукт а, и его цель - удовлетворить клиента 10, которому нужен продукт d. такой, что нужно go через всех клиентов добраться до клиента 10.

Может кто-нибудь помочь, пожалуйста? Спасибо!

1 Ответ

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

Вам необходимо настроить свой график как набор «предикатов связности» в разделе 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.

...