Labbar översikt rtificiell Intelligens II Lektion 1 Labbar översikt Planering (Lab1 Projektinspiration 3 stycken datorlabbar Planering Probabilistisk logik Maskininlärning Handledare Robin, Jonas, hristian, Sara 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 1
Lab 1 PDDL Lab 1 PDDL domän 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 (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 ( PROLEM_NME (define (problem ( DOMIN_NME (:domain (... (: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 ( ob3? :parameters (?ob1?ob2 :precondition (and (block?ob1 (block?ob2 (block?ob3 (on?ob1?ob2 (( ob3? (clear?ob1 (clear ( ob2? :effect (and (on?ob1?ob3 (clear ( ((( ob2? (not (clear?ob3 (not (on?ob1 Lab 1 Exempel Lab 1 PDDL: Domändefinition locks World Sussmananomaly (define (domain blocks-world (:requirements :strips :equality (:predicates (on?x?y ( x? (on-table ( x? (clear ( arm-empty ( x? (holding (( x? (block ;;actions ;;... 2
Lab 1 PDDL: Operatorer (:action pick-up ( ob1? :parameters :precondition (and (block?ob1 ( ob1? (clear ( ob1? (on-table (( arm-empty :effect (and (holding?ob1 (( ob1? (not (on-table (( ob1? (not (clear (((( arm-empty (not Lab 1 PDDL: Problemdefinition ( sussman-anomaly (define (problem ( blocks-world (:domain ( c (:objects a b ( c (:init (block a (block b (block ( a (on-table a (on-table b (on c (( arm-empty (clear b (clear c (((( c (:goal (and (on a b (on b Lab 1 Exempel Lab 1 locks World Sussmananomaly Två uppgifter: Logistik Shakeys värld ( Unstack(,.1 ( PutDown(.2 ( PickUp(.3 ( Stack(,.4 ( PickUp(.5 ( Stack(,.6 Deadline: 9/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 ( logistics (define (domain ( strips : (:requirements (:predicates ( ;; Static predicates: ( v? (object?o(truck?t(airplane?p(vehicle (location?l(airport?a(city?c(loc?l?c ;; Non-static predicates: (at?x?l(in?p?v 3
(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 ( l? :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 (:action unload ( l? :parameters (?o?v ( l? :precondition (and (object?o(vehicle?v(location (( v? (at?v?l (in?o (((( v? :effect (and (at?o?l (not (in?o ;;... (:action drive ( c? :parameters (?t?l1?l2 ( l2? :precondition (and (truck?t(location?l1(location ( c? (city?c(at?t?l1(loc?l1 (( c? (loc?l2 (((( l1? :effect (and (at?t?l2 (not (at?t ;; Fly an airplane between two airports. (:action fly ( a2? :parameters (?p?a1 :precondition (and (airplane?p (airport?a1 (( a1? (airport?a2 (at?p (?a1 :effect (and (at?p?a2 (not (at?p 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 Lab 1 Uppgift 2 Handlingarna Go, Push, limpup, limbdown, TurnOn, TurnOff Objekt: Shakey, rum, dörrar, lysknappar, lådor Shakey ska kunna tända och släcka alla lampor 4
Tips Uppgift - STRIPS örja smått 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 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 med vilken apan kan slå ner bananen. 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 eller ramification påexempelettdetta handlingdinuppdatera? problemet qualification 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 implementera dörrar i världen? 5