1 / 59

Gebruiken

Gebruiken. Opdracht 2. Deadline: Vandaag, om 12u!. Redeneren. Verwerven. Voorstellen. Gebruiken. Waar zijn we nu?. ?. Blokjeswereld. Blokjes: A, B, C Greep G die één blokje kan verplaatsen Wat moeten we doen om het doel te bereiken?.

tovi
Download Presentation

Gebruiken

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gebruiken

  2. Opdracht 2 Deadline: Vandaag, om 12u!

  3. Redeneren Verwerven Voorstellen Gebruiken Waar zijn we nu?

  4. ? Blokjeswereld Blokjes: A, B, C Greep G die één blokje kan verplaatsen Wat moeten we doen om het doel te bereiken?

  5. Gebruiken van kennis om een doel te bereiken: planning • Kennis: • I: initiële toestand(en) • D: doeltoestand(en) • acties (overgangregelstussen de toestanden) • Vind: een plan = lineaire reeks acties die van (een van) I naar (een van) D leiden • een pad in een toestandsruimte

  6. 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

  7. Blokjeswereld: predicaten • Blokjes • opTafel(X), op(X,Y), vrij(X) • Greep • leeg(X) • Greep en blokje • houdtVast(X,Y) • Geen functiesymbolen

  8. Blokjeswereld • Verzameling van atomen zonder variabelen • Acties: naam + parameters {opTafel(A), opTafel(B), op(C, A), leeg(G), vrij(C), vrij(B)}

  9. Naïeve aanpak • Probeer alle mogelijke overgangen totdat het doel bereikt is!

  10. 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)}

  11. 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)

  12. Plan • Plan  = <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

  13. 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

  14. Plan • Gegeven I en D, er bestaat een plan als • Dus, bereken (s) voor alle sI en controleer (*) (*) 

  15. 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

  16. ALC, neg eff pos eff, pos pre pos eff, pos/neg pre SHOIN PSPACE NP RE NEXPTIME EXPTIME P coNP coRE ALL

  17. Plan: Voorwaarts zoeken Invoer: A, I, D Uitvoer:  Kies s uit I  := lege plan Herhaal Als sD, stop,  is een oplossing Anders, Kies (niet deterministisch) aA toepasbaar op s Als er geen zijn, faal Anders, s := (s,a)  := .a

  18. 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?

  19. Vlugge Vraag Eindigheid van het “voorwaarts zoeken” is niet gegarandeerd: Hoe passen jullie het algoritme aan om dit probleem te vermijden?

  20. Plan: Achterwaarts zoeken Invoer: A, I, D Uitvoer:  Kies s uit D  := lege plan Herhaal Als sI, stop,  is een oplossing Anders, Kies aA relevant is voor s Als er geen zijn, faal Anders, s := -1(s,a)  := a.

  21. 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)

  22. 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.

  23. Probleem • Zoekruimte kan enorm zijn • Doel: • zoekruimte verkleinen • maar dan kunnen we ook sommige plans missen… • volledigheid wordt opgeofferd

  24. Achterwaarts – volledigheid = STRIPS (1) Kies s uit D (2)  := lege plan (3) Herhaal (4) Als sI, stop,  is een oplossing (5) Anders, (6) Kies aA 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

  25. ? Vlugge Vraag • Acties: blokje nemen, blokje neerzetten. • Hoeveel stappen telt door STRIPS gevonden plan voor?

  26. Antwoord… KBS/planningVideo.avi

  27. 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

  28. Probleem met STRIPS 3 1 2 5 4 Wij moeten het torentje afbreken om verder te gaan!

  29. Andere aanpakken • Reducties • SAT: vervulbaarheid van prepositionele formules • CSP veralgemening van SAT voor domeinen andere dan {false, true} • Planninggrafen • Heuristieken • en veel meer!

  30. 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

  31. Reductie naar SAT Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen Oplossen Plan extraheren Variabel- toekenning

  32. 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)  …

  33. 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

  34. 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

  35. 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)

  36. 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)

  37. 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

  38. 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

  39. 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)

  40. CNF • Planningprobleem: initiële toestanden  doeltoestanden  acties  een actie per stap  raamaxioom coderen

  41. 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?

  42. 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?

  43. Reductie naar SAT Invoer: Acties, Initiële Toestanden, Doeltoestanden CNF coderen Oplossen Plan extraheren Variabel- toekenning

  44. Hoe los je SAT op? • Davis-Putnam • voor een probleem van lengte n • geeft een oplossing desda een oplossing bestaat • Stochastische procedure • “desda” geldt niet • soms beter geschikt voor grotere problemen

  45. 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

  46. 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)

  47. 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

  48. Vlugge Vraag • Wat is de maximale diepte van zo’n Davis Putnam boom?

  49. Davis Putnam: voor- en nadelen • Een oplossing wordt gevonden desda er een bestaat. • Zoekproces kan te lang duren

More Related