Labbar översikt rtificiell Intelligens Lektion 1 Labbar översikt Planering (Lab1 Projektinspiration 3 stycken datorlabbar Planering Probabilistisk logik Maskininlärning Handledare Robin, Jonas, hristian, Kerstin 3 per labb Labbanmälan i webreg 2 personer per grupp Labbar betyg etygen godkänt och väl godkänt ges För G Laborationen uppfyller de krav som anges i respektive labbinstruktion För VG Laborationen uppfyller de krav som anges i respektive labbinstruktion inklusive extrauppgifter Diskussioner visar på en god förståelse och tydlig koppling mellan praktik och teori Välstrukturerad och tydlig programkod Hålla deadlines Lab 1 Planering Syfte Få en känsla för möjligheter och begränsningar med planering Öva på att modellera planeringsproblem Lab 1 Förberedelse Läs kapitel 11 i kursboken Läs igenom labbinstruktionerna Läs igenom How to write domain and problem definitions in PDDL som finns i instruktionerna Lab 1 Två planerare IPP Optimal planerare baserad på Graphplan Iterative deepening * FF Icke-optimal planerare Hittar ofta bra lösningar snabbt Hill climbing
Lab 1 PDDL Planning Domain Definition Language Täcker in, men är ej begränsad till STRIPS-notationen Ni kan dock hålla er till STRIPS-delmängden Tänkt standardspråk för att definiera domäner och beskriva problem Lab 1 PDDL domän (define (domain DOMIN_NME (:requirements [:strips] [:equality] [:typing] [:adl] (:predicates (PREDITE_1_NME [?1?2...?n] (PREDITE_2_NME [?1?2...?n]... (:action TION_1_NME [:parameters [?P1?P2...?Pn] [:precondition PREOND_FORMUL] [:effect EFFET_FORMUL] (:action TION_2_NME...... Lab 1 PDDL problem (define (problem PROLEM_NME (:domain DOMIN_NME (:objects... (:init (PREDITE_NME [1 2... n] (PREDITE_NME [1 2... n]... (:goal (PREDITE_NME [1 2... n] (PREDITE_NME [1 2... n]... Lab 1 PDDL vs STRIPS Move(,, Precond: On(, lear( lear( DD: On(, lear( DELETE: lear( On(, (:action move :parameters (?ob1?ob2?ob3 :precondition (and (block?ob1 (block?ob2 (block?ob3 (on?ob1?ob2 (clear?ob1 (clear?ob3 :effect (and (on?ob1?ob3 (clear?ob2 (not (clear?ob3 (not (on?ob1?ob2 Lab 1 Exempel Lab 1 PDDL: Domändefinition locks World Sussman anomaly (define (domain blocks-world (:requirements :strips :equality (:predicates (on?x?y (on-table?x (clear?x (arm-empty (holding?x (block?x ;;actions ;;...
Lab 1 PDDL: Operatorer (:action pick-up :parameters (?ob1 :precondition (and (block?ob1 (clear?ob1 (on-table?ob1 (arm-empty :effect (and (holding?ob1 (not (on-table?ob1 (not (clear?ob1 (not (arm-empty Lab 1 PDDL: Problemdefinition (define (problem sussman-anomaly (:domain blocks-world (:objects a b c (:init (block a (block b (block c (on-table a (on-table b (on c a (clear b (clear c (arm-empty (:goal (and (on a b (on b c Lab 1 Exempel Lab 1 locks World Sussman anomaly Två uppgifter: Logistik Shakeys värld 1. Unstack(, 2. PutDown( 3. PickUp( 4. Stack(, 5. PickUp( 6. Stack(, Deadline: 17/9 Lab 1 Uppgift 1 Experimentera med IPP och FF Experimentera med problem av olika magnituder Utöka logistics-domänen Redovisas genom utökad domän- och problem-fil och en diskussion av era resultat (define (domain logistics (:requirements :strips (:predicates ;; Static predicates: (object?o(truck?t(airplane?p(vehicle?v (location?l(airport?a(city?c(loc?l?c ;; Non-static predicates: (at?x?l(in?p?v
(define (problem log1 (:domain logistics (:objects truck1 truck2 airplane1 ;;;... (:init ;; two trucks ;; only one airplane ;; all vehicles must be declared as both ;;"vehicle" and their appropriate subtype, (vehicle truck1 (vehicle truck2 (vehicle airplane1 (truck truck1 (truck truck2 (airplane airplane1 (:action load :parameters (?o?v?l :precondition (and (object?o(vehicle?v(location?l (at?v?l (at?o?l :effect (and (in?o?v (not (at?o?l (:action unload :parameters (?o?v?l :precondition (and (object?o(vehicle?v(location?l (at?v?l (in?o?v :effect (and (at?o?l (not (in?o?v ;;... (:action drive :parameters (?t?l1?l2?c :precondition (and (truck?t(location?l1(location?l2 (city?c(at?t?l1(loc?l1?c (loc?l2?c :effect (and (at?t?l2 (not (at?t?l1 ;; Fly an airplane between two airports. (:action fly :parameters (?p?a1?a2 :precondition (and (airplane?p (airport?a1 (airport?a2 (at?p?a1 :effect (and (at?p?a2 (not (at?p?a1 Lab 1 Uppgift 2 Implementera Shakeys värld från noll i PDDL eskriv och lös ett problem i Shakeys värld För VG: utöka och diskutera Shakeys värld Lab 1 Shakeys värld room1 room2 room3 light - - light switch - switch switch light (on (off (off --- door box shakey -------door--------------------door----------------------door------------ light switch - --- (on box corridor Lab 1 Uppgift 2 Handlingarna Go, Push, limpup, limbdown, TurnOn, TurnOff Objekt: Shakey, rum, dörrar, lysknappar, lådor Fundera på: hur kan man befinna sig på olika platser I ett och samma rum?
örja smått Tips Testa era operatorer på små problem som enbart kräver en eller två handlingar för att lösas Undvik ÅÄÖ, använd endast engelska namn Uppgift - STRIPS En apa sitter i ett rum där det hänger en banan i taket. pan når inte bananen Det finns en pinne i rummet, som apan kan använda för att slå ner bananen med. pan kan bara hålla en sak i taget. Initialt är apan på punkt, bananen på punkt och pinnen på punkt. Målet är att apan ska hålla i bananen. Uppgift - STRIPS eskriv problemet Vilka handlingar och objekt behövs? Skriv ner dessa i STRIPS-notation Tänk dig att apan vill lura någon att han fått tag på bananen utan att använda pinnen. Går det att använda STRIPS för att beskriva att pinnen ska vara kvar på ursprungsplatsen? D Ditt axiom för att lyfta något tar antagligen inte hänsyn till att det kan vara för tungt för att lyfta. Är detta ett exempel på ramification eller qualification problemet? Uppdatera din handling för att klara detta! Uppgift 2 örja formulera Shakeydomänen i PDDL Handlingar: Go, Push, limpup, limbdown, TurnOn, TurnOff Objekt: Shakey, rum, dörrar, lysknappar, lådor Fundera på: hur kan man befinna sig på olika platser I ett och samma rum? room1 room2 room3 light - - switch - switch switch light light door box shakey -------door--------------------door----------------------door------------ light switch - box corridor