Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:krr:lab_pddl [2015/06/10 08:17]
msl [5 Automatyczne rozwiązywanie problemów zapisanych w PDDL]
pl:dydaktyka:krr:lab_pddl [2019/06/27 15:50] (aktualna)
Linia 43: Linia 43:
  
 <code lisp> <code lisp>
 +
 (define (domain blocksworld) ​ (define (domain blocksworld) ​
   (:​requirements :strips) ; wymagany STRIPS   (:​requirements :strips) ; wymagany STRIPS
Linia 96: Linia 97:
   - Proszę uruchomić wyniki prac z poprzednich ćwiczeń. Solver jest wywoływany poprzez komendę:   - Proszę uruchomić wyniki prac z poprzednich ćwiczeń. Solver jest wywoływany poprzez komendę:
     * ''​./​ff -o <sciezka do pliku z domena> -f <sciezka do pliku z instancja problemu>''​     * ''​./​ff -o <sciezka do pliku z domena> -f <sciezka do pliku z instancja problemu>''​
-  - Proszę porównać wydajność solvera ​w porównaniu ​do rozwiązania Prologowego z laborki "​przeszukowanie grafów"​)+  - Proszę porównać wydajność solvera do rozwiązania Prologowego z laborki "​przeszukowanie grafów"​) 
 + 
 +===== - Typowanie ===== 
 + 
 +Poprzez dopisanie '':​typing''​ w sekcji '':​requirements''​ można rozszerzyć możliwości języka PDDL o dodanie typów do istniejących obiektów, czy też parametrów akcji. Można w ten sposób małym kosztem wyeliminować dużą liczbę nielegalnych akcji. 
 + 
 +Typy definiowane są po sekcji '':​requirements''​ poprzez dopisanie: ''​(:​types nazwa1 nazwa2 ...)''​ dla typów o nazwach ''​nazwa1'',​ ''​nazwa2'',​ etc. Następnie każdy parametr predykatu i akcji musi zostać opatrzony odpowiednią adnotacją określającą jego typ, np. ''?​x - typ''​ oznacza, że parametr ''?​x''​ musi być typu ''​typ''​ w danej akcji lub predykacie. 
 + 
 +Podobnie w definicji instancji problemu należy wszystkie obiekty opatrzyć odpowiednimi adnotacjami (''​- typ''​ określającymi ich typ. 
 + 
 +==== - Ćwiczenie ==== 
 + 
 +Proszę uzupełnić pliki świata klocków o adnotacje i przetestować,​ czy nadal wszystko działa. 
 + 
 +<WRAP center round tip 60%> 
 +Czy jesteś w stanie zasymulować typowanie bez dodawania konstrukcji '':​typing''?​ Jak można byłoby tego dokonać w Prologu? 
 +</​WRAP>​ 
 + 
 +==== - Wieże Hanoi ==== 
 + 
 +Mając już przetestowaną reprezentację problemu świata klocków, proszę zgeneralizować problem dodając do niego dwa dodatkowe elementy: 
 +  - na stole jest ograniczona liczba miejsc, na których można położyć klocek  
 +  - żeby położyć klocek A na klocku B, wymagane jest, aby klocek B był większy od klocka A 
 +Uwagi: 
 +  
 +  * nie jest wymagane, aby w problemie istniał tylko jeden klocek danego rozmiaru 
 +  * na początku można przyjąć, ze liczba miejsc na stole jest stała i wynosi, np. 3.  
 +  * można również założyć, że istnieje określona liczba klocków 
 +  * następnie należy jednak zgeneralizować model, tak by obsługiwał różną liczbę wolnych miejsc i klocków zdefiniowaną w pliku instancji problemu 
 + 
 +===== - Action Description Language ===== 
 + 
 +Reprezentacja STRIPS jest bardzo ograniczona i, aby rozszerzyć warunki akcji o nowe konstrukcje,​ należy dopisać w sekcji '':​requirements'' ​ dopisać dodatkowe wymaganie '':​adl''​. [[http://​en.wikipedia.org/​wiki/​Action_description_language#​Comparison_between_STRIPS_and_ADL|ADL]] różni się od STRIPS w kilku zasadniczych względach, m.in.: 
 +  * wspierane są warunki [[http://​pl.wikipedia.org/​wiki/​Rachunek_predykat%C3%B3w_pierwszego_rz%C4%99du|pierwszego rzędu]] (w praktyce oznacza to dodanie kwantyfikatorów do języka): ''​(forall (?x1 ?x1 ...) <​warunek>​) (exists (?x1 ?x2 ...) <​warunek>​)''​ 
 +  * warunki mogą zawierać negatywne literały: ''​(not <​warunek>​)''​ 
 +  * warunki mogą zawierać alternatywy:​ ''​(or <​warunek1>​ <​warunek2>​)''​ 
 +  * [[http://​en.wikipedia.org/​wiki/​Closed-world_assumption|świat jest otwarty]] (w STRIPSie, tak samo jak w Prologu [[http://​en.wikipedia.org/​wiki/​Closed-world_assumption|świat jest zamknięty]]) 
 + 
 +==== - Ćwiczenia ====
  
 +  - w definicji dziedziny świata klocków należy przy pomocy nowych konstrukcji wyeliminować ''​clear''​.
 +  ​
  
pl/dydaktyka/krr/lab_pddl.1433917050.txt.gz · ostatnio zmienione: 2019/06/27 15:52 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0