Gebruiken
Opdracht 2 Deadline: Vandaag, om 12u!
Waar zijn we nu? Verwerven Redeneren Voorstellen Gebruiken Verwerven: bron interne representatie Redeneren: Interne representatie interne representatie Gebruiken: Interne representatie doel Voorbeeld van 29 oktober 2006 (begin wintertijd) Nog ten minste 3 seconden wachten tot dat iedereen het hele plaatje gezien heeft
Blokjeswereld ? Blokjes: A, B, C Greep G die één blokje kan verplaatsen Wat moeten we doen om het doel te bereiken?
Gebruiken van kennis om een doel te bereiken: planning I: initiële toestand(en) D: doeltoestand(en) acties (overgangregels tussen de toestanden) Vind: een plan = lineaire reeks acties die van (een van) I naar (een van) D leiden een pad in een toestandsruimte
Aannames: klassiek planning Toestandsruimte is eindig discreet zichtbaar we hebben een volledige kennis over het toestand Toestandovergangen zijn deterministisch veroorzaakt alleen door het plan momenteel
Blokjeswereld: predicaten opTafel(X), op(X,Y), vrij(X) Greep leeg(X) Greep en blokje houdtVast(X,Y) Geen functiesymbolen
Blokjeswereld Verzameling van atomen zonder variabelen {opTafel(A), opTafel(B), op(C, A), leeg(G), vrij(C), vrij(B)} Vraag: wie weet nog wat een literaal betekent? Acties: naam + parameters
Naïeve aanpak Probeer alle mogelijke overgangen totdat het doel bereikt is!
Beter idee: voor iedere actie naam: zetNeerOpTafel(X, Y) parameters: X (greep), Y (blokje) literaal: atoom of negatie van een atoom pre: verzameling van literalen {houdtVast(X,Y)} effect : verzameling van literalen {houdtVast(X,Y), leeg(X), vrij(Y), opTafel(Y)}
Toepassing van acties Voor een verzameling literalen : + - deelverzameling van atomen - - deelverzameling van de negaties van atomen Actie a is toepasbaar op toestand s als pre+(a) s, pre-(a) s = Toepassing van a op s is (s,a) = s \ effect-(a) effect+(a)
Plan Plan = <a1, …, an> (s,<a1, …, an>) = a1, …, an zijn acties (s,<a1, …, an>) = s, als n = 0 ((s, a1), <a2, …, an>), als n > 0 en a1 toepasbaar is op s is toepasbaar op s als (s,) gedefinieerd is
Vlugge Vraag (s) = { | is toepasbaar op s} (s) = {(s,) | (s)} Welke stelling is waar? (s) is een eindige verzameling (s) is een eindige verzameling A en B zijn waar Nog A nog B is waar B is waar, het volgt uit onze basisaanname dat de hele toestandsruimte eindig is,
Plan Gegeven I en D, er bestaat een plan als (*) Dus, bereken (s) voor alle sI en controleer (*) (*) FS = Forward search
Het bestaan van een plan Toestandsruimte is eindig het bestaan van een plan is beslisbaar Gegeven verzameling acties Zonder negatieve effecten met negatieve pre: NP alleen positieve pre: P Met negatieve effecten: PSPACE
ALC, neg eff pos eff, pos pre pos eff, pos/neg pre SHOIN PSPACE NP RE NEXPTIME P EXPTIME Vraag aan de studenten – wat kennen ze nog en wat kennen ze niet meer. P – polynomiaal oplosbare problemen, NP - -”- maar met een niet deterministische Turing machine coNP – complement van een probleem zit in NP PSPACE – polynomiale geheugen en onbeperkte tijd EXPTIME – exponentiele tijd NEXPTIME – niet deterministische exponentiele tijd ELEMENTARY – eindig hoge toren van machten PR – primitief recursieve functie (recursie en compositie van de functies zijn toegelaten) RE – recursively enumerable (recursief opsombaar) – verificatie is mogelijk in eindige tijd (“ja”); ontkrachting kan oneindig lang duren coRE – ontkrachting is in eindige tijd mogelijk; verificatie kan oneindig lang duren, ALL – alle functies coNP coRE ALL
Plan: Voorwaarts zoeken Invoer: A, I, D Uitvoer: Kies s uit I := lege plan Herhaal Als sD, stop, is een oplossing Anders, Kies (niet deterministisch) aA toepasbaar op s Als er geen zijn, faal s := (s,a) := .a
Vlugge Vraag I = {{waarde(v1,’Ma’), waarde(v2,’Di’), waarde(v3,’Wo’)}} D = {{waarde(v1,’Di’), waarde(v2,’Ma’}} A = {toekenning(v,w,x,y) | v,w{v1,v2,v3}, x,y {‘Ma’,’Di’,’Wo’}}, waar naam: toekenning(v,w,x,y) pre: waarde(v,x), waarde(w,y) effect: waarde(v,x), waarde(v,y) Wat is het minimale aantal stappen die “V.z.” nodig heeft om een plan te vinden? Antwoord: 3
Vlugge Vraag Eindigheid van het “voorwaarts zoeken” is niet gegarandeerd: B is waar, het volgt uit onze basisaanname dat de hele toestandsruimte eindig is, Hoe passen jullie het algoritme aan om dit probleem te vermijden?
Plan: Achterwaarts zoeken Invoer: A, I, D Uitvoer: Kies s uit D := lege plan Herhaal Als sI, stop, is een oplossing Anders, Kies aA relevant is voor s Als er geen zijn, faal s := -1(s,a) := a.
Relevant? -1? Herh: actie a is toepasbaar op toestand s als pre+(a) s, pre-(a) s = Actie a is relevant op toestand s als effect+(a) s ≠ , effect-(a) s = Herh: toepassing van een toepasbare a op s is (s,a) = s \ effect-(a) effect+(a) Regressie van s voor a is -1(s,a) = s \ effect(a) pre(a)
Als de niet deterministische keuze alle mogelijkheden doorloopt, dan Vlugge Vraag Als de niet deterministische keuze alle mogelijkheden doorloopt, dan vindt “voorwaarts zoeken” alle plannen. vindt “achterwaarts zoeken” alle plannen. A en B zijn waar. nog A nog B is waar.
Probleem Zoekruimte kan enorm zijn Doel: zoekruimte verkleinen maar dan kunnen we ook sommige plans missen… volledigheid wordt opgeofferd
Achterwaarts – volledigheid = STRIPS (1) Kies s uit D (2) := lege plan (3) Herhaal (4) Als sI, stop, is een oplossing (5) Anders, (6) Kies aA relevant voor s (7) Als er geen zijn, faal (8) Anders, (9) D’ := alle toestanden z.d. pre(a) geldt (10) ’:= STRIPS(I,A,D’) (11) Als ’ faalt, faal (12) Anders (13) s := ((s, ’),a) (14) := . ’.a Eerste deel is gewoon “Achterwaarts zoeken”
Vlugge Vraag ? Acties: blokje nemen, blokje neerzetten. Hoeveel stappen telt door STRIPS gevonden plan voor? ? Antwoord is 6.
Antwoord… KBS/planningVideo.avi
STRIPS vs. Achterwaarts zoeken Recursieve oproep: één onderdeel van de doel-conjunctie. Eenmaal ’ gevonden is, kan die niet meer herzien worden. Beide: beperken de zoekruimte maar leiden tot onvolledigheid
Probleem met STRIPS 3 1 2 5 4 Wij moeten het torentje afbreken om verder te gaan!
Andere aanpakken Reducties Planninggrafen Heuristieken en veel meer! SAT: vervulbaarheid van prepositionele formules CSP veralgemening van SAT voor domeinen andere dan {false, true} Planninggrafen Heuristieken en veel meer!
Reductie naar SAT SAT: vervulbaarheid van CNF formules CNF: C1 … Cn Ci: D1,i … D mi,i D: x of x x – variabel SAT is NP-volledig Twee praktisch efficiënte algoritmen
Reductie naar SAT Invoer: Acties, CNF coderen Initiële Toestanden, Doeltoestanden CNF coderen Oplossen Plan extraheren Variabel- toekenning
Toestand conjunctie van variabelen voor de geldige atomen Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen Atoom uniek variabel opTafel(A) xopTafel(A). Toestand conjunctie van variabelen voor de geldige atomen xopTafel(A) xopTafel(B) xop(C,A) …
xopTafel(A) betekent dat xop(A,B) xop(A,C). Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen xopTafel(A) betekent dat xop(A,B) xop(A,C). Hoe kunnen we het coderen? Toestand = conjunctie van variabelen voor de geldige atomen van negaties van variabelen voor de niet geldige atomen
Vlugge Vraag Hoeveel conjuncten telt de voorstelling van Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen Vlugge Vraag Hoeveel conjuncten telt de voorstelling van {opTafel(A), opTafel(B), op(C, A), vrij(C), vrij(B)} als er geen andere predicaten en constanten zijn? A. 6 B. 13 C. 20 B
Maar, wat betekent xopTafel(A)? Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen Maar, wat betekent xopTafel(A)? nu? morgen? Stel dat onze plan n stappen telt… uniek variabel per atoom en stap! dus: x(opTafel(A), 0), …, x(opTafel(A), n)
Initiële toestand: alle variabelen in 0. Doeltoestand Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen Initiële toestand: alle variabelen in 0. x(opTafel(A), 0) x(opTafel(B), 0) x(opTafel(B), 0) … Doeltoestand x(op(A,B), n) x(op(B,C), n) x(op(B,A), n) … Acties: unieke variabel per actie en per stap: ai (pi ei+1) p pre(a), e effect(a)
Vlugge Vraag zetNeerOpTafel(greep, blokje) Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen Vlugge Vraag zetNeerOpTafel(greep, blokje) Hoeveel variabelen hebben we nodig om deze actie voor te stellen? A. n B. 2n C. 3n C (we hebben drie blokjes)
Initiële en doeltoestanden en acties Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen Initiële en doeltoestanden en acties het is niet voldoende! Twee extra eisen: er is maar één actie per stap atomen die niet bij de effecten horen veranderen niet
Raamaxioom: atomen die niet bij de effecten horen veranderen niet Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen Een actie per stap Voor alle acties a, b en alle 0 i n-1: ai bi Raamaxioom: atomen die niet bij de effecten horen veranderen niet x(atoom, i) x(atoom, i+1) ( ai) x(atoom, i) x(atoom, i+1) ( bi). a z.d. atoom effect+(a) b z.d. atoom effect-(b)
Planningprobleem: initiële toestanden doeltoestanden acties CNF Planningprobleem: initiële toestanden doeltoestanden acties een actie per stap raamaxioom coderen
Vlugge Vraag Aanname: plan heeft n stappen. Hoe weten we wat n is? 1. Als we een plan van lengte n weten te vinden, hoe kunnen we alle plannen vinden die niet langer zijn dan n? 1. Voeg een “dummy” actie die altijd kan plaatsvinden en niets doet.
Vlugge Vraag Aanname: plan heeft n stappen. Hoe weten we wat n is? 2. Als we alle plannen kunnen vinden die niet langer zijn dan n, hoe vinden we alle plans? Wat is de maximale lengte van een plan? De maximale lengte van een plan is een aantal toestanden (onpraktisch, te hoog). Praktisch: probeer eerst plannen niet langer dan 2, dan niet langer dan 4, …)
Reductie naar SAT Invoer: Acties, CNF coderen Initiële Toestanden, Doeltoestanden CNF coderen Oplossen Plan extraheren Variabel- toekenning
Hoe los je SAT op? Davis-Putnam Stochastische procedure voor een probleem van lengte n geeft een oplossing desda een oplossing bestaat Stochastische procedure “desda” geldt niet soms beter geschikt voor grotere problemen
Davis Putnam (1) Opmerking 1: x (x y z) x is true en (y z) Opmerking 2: x (x y z) x is false Opmerking 3: (x y) (x z) of x is true en z of x is false en y
Davis Putnam (2) Davis-Putnam(, oplossing) = true return oplossing = false fail = x ’ Davis-Putnam(’[x/true], oplossing {x/true}) = x ’ Davis-Putnam(’[x/false], oplossing {x/false}) anders kies een variabel y in , Davis-Putnam(y , oplossing) Davis-Putnam(y , oplossing)
Davis Putnam: Boom x (x y z) (x y z) (x y z) (x y) {x/true} (y z) ( y z) (y z) y (y z) ( y z) (y z) y (y z) ( y z) (y z) {y/true} {y/false} z z z {z/false} {z/false} fail true
Vlugge Vraag Wat is de maximale diepte van zo’n Davis Putnam boom? tweemaal het aantal variabelen
Davis Putnam: voor- en nadelen Een oplossing wordt gevonden desda er een bestaat. Zoekproces kan te lang duren
Stochastische processen Idee: probeer een oplossing te raden Dus, gegeven : Kies een willekeurige toekenning Als = true, stop. Anders, herhaal. Niet praktisch…
Beter idee (GSAT) Kies een willekeurige toekenning Als = true, stop. is een oplossing Anders pas aan: m(x) = het aantal conjuncten c in zodanig dat c[x/(x)] = false kies x zodanig dat m(x) het kleinste is. ’ = [x/(x)] Herhaal veranderen van een variabel
Vlugge Vraag = x (x y z) (x y z) (x y z) (x y) = {x/false, y/false, z/false} Wat is ’? {x/true, y/false, z/false} B. {x/false, y/true, z/false} C. {x/false, y/false, z/true} A m(x) = 0 (m(y) = 1, m(z) = 2)
Stochastische methoden: voor- en nadelen Zoekproces is meestal efficiënter Oplossingen kunnen gemist worden Eindigheid is niet gegarandeerd
Huiswerk 18 In plaats van reductie naar SAT, kunnen we constraints satisfaction problems (CSP) gebruiken Wat is een constraints satisfaction problem? Hoe stel je een planningprobleem als CSP? Hoe los je een CSP op? Geef voorbeeld van een planningprobleem en toon aan hoe je die 1) naar CSP vertaald, 2) oplost en 3) een plan extraheert. In te leveren ten laatste op 19 juni 2007
Wat hebben we gedaan? Planning Rechtstreekse aanpakken: Voorwaarts zoeken, Achterwaarts zoeken STRIPS Reductie naar SAT SAT: Davis Putnam Stochastische methoden
Opdracht 3: Procesmining Doel: integreren van MINEPI in ProM. Middelen: MINEPI: presentatie van Toon Calders paper van Manilla, Toivonen en Verkamo presentatie van Klemettinen en Moen ProM: Eric In te leveren tot 4 juli: software + verslag
Opdracht 3 Lees het artikel Implementeer een ProM plugin Beantwoord de vragen in de opgave Implementeer een ProM plugin Besprek de implementatie Voer een reeks experimenten Besprek de experimenten Is MINEPI geschikt voor procesmining?
ProM