Как отладить домен / проблему PDDL, если время ожидания планировщика истекает? - PullRequest
0 голосов
/ 09 июля 2020
• 1000 Сообщения об ошибках были более полезными, когда мой синтаксис был неправильным. Я попытался визуализировать иерархию объектов и определение проблемы, но не смог найти проблему. Torchlight не работает с ADL, и другие инструменты анализа, похоже, требуют плана. Есть ли инструменты, которые мне не хватает, которые мне следует использовать?

Для записи, это мои определения домена и проблемы (на основе AIPS-1998 сборки и IP C 2011 захваты домены / проблемы):

(define (domain assembly-simple)
   (:requirements :adl)
   (:types assembly - object
           robot - robot)   
   (:predicates (available ?x - object)
        (complete ?a - assembly)
        (incorporated ?part ?whole - assembly)
        (part-of ?part ?whole - assembly)
        (assemble-order ?part1 ?part2 ?whole - assembly)
        (robot-carries-an-object ?r - robot)
        (robot-carries-this-object ?r - robot ?o - object))

    (:action pick
      :parameters (?robot - robot ?part - object)
      :precondition (and (available ?part)
                         (not (robot-carries-an-object ?robot)))
      :effect (and (robot-carries-an-object ?robot)
                   (robot-carries-this-object ?robot ?part)
                   (not (available ?part))))
    
    (:action assemble
      :parameters (?robot - robot ?part ?whole - assembly)
      :precondition (and  (robot-carries-this-object ?robot ?part)
                          (part-of ?part ?whole)
                          (forall (?prev - assembly)
                                  (imply (assemble-order ?prev ?part ?whole)
                                         (incorporated ?prev ?whole))))
      :effect (and 
                  (not (robot-carries-this-object ?robot ?part))
                  (not (robot-carries-an-object ?robot))
                  (incorporated ?part ?whole)
                  (not (available ?part))
                  (when (not (exists (?p - assembly)
                                     (and (part-of ?p ?whole)
                                          (not (= ?p ?part))
                                          (not (incorporated ?p ?whole)))))
                        (and (complete ?whole)
                             (available ?whole)))))
)

Проблема:

(define (problem simple-prob)
   (:domain assembly-simple)
   (:objects base-plate motor-plate sub-assembly - assembly
             bot - robot)
   (:init (not (robot-carries-an-object bot))
          (available base-plate)
          (available motor-plate)
          (available sub-assembly)
          (part-of base-plate sub-assembly)
          (part-of motor-plate sub-assembly)
          (assemble-order base-plate motor-plate sub-assembly))
          
   (:goal (complete sub-assembly)))

Заранее благодарим за любые указатели.

1 Ответ

2 голосов
/ 09 июля 2020

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

Если бы мне пришлось У меня есть подозрение, что эффекты действия не обрабатываются пост-обработкой. В ближайшие недели / месяцы вся инфраструктура онлайн-решений будет капитально отремонтирована, и поэтому, надеюсь, эта проблема будет решена как часть этого. учитывая Docker, предназначенный для инструментов планирования: https://hub.docker.com/r/aiplanning/planutils

Там вы должны иметь возможность запустить downward или lama и получить прямой доступ к планировщикам.

...