dr. Patrick De Causmaecker, KaHo St.-Lieven, Agententechnologie Les 4: praktisch redeneren dr. Patrick De Causmaecker
dr. Patrick De Causmaecker, KaHo St.-Lieven, Praktisch redeneren Beslissen en middelen-doel redeneren Theoretisch redeneren –Alle studenten zijn leergierig –X is een student –X is leergierig Geen actie! Mensen redeneren door –Te beslissen wat ze wensen –Uit te zoeken hoe ze dit kunnen realiseren
dr. Patrick De Causmaecker, KaHo St.-Lieven, Beperkingen en complicaties Beslissen en doel-middelen redeneren zijn rekenintensieve processen die met beperkte middelen moeten uitgevoerd worden. Deze middelen dienen ook nog voor de andere activiteiten => gecontroleerd redeneren Men kan niet oneindig lang wachten met beslissen.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Intenties Intenties in omgangstaal –Als bedoeling (ik verveel jullie intentioneel) –Als geestestoestand (ik ben vast beraden, sedert het begin van het jaar, jullie iets te leren) We gebruiken intenties als mentale toestanden.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Eigenschappen van intenties Pro-attitudes, leiden tot een actie –Rationaliteit: als ik een intentie heb, dan zal ik een actie ondernemen om die te vervullen Persistent: ze veranderen niet te snel –Ze zijn niet absoluut constant, maar ze blijven wel gedurende een zekere tijd bestaan, langer dan de acties die ze verwezenlijken. Bepalen ook wat we niet doen –Ik zal geen acties ondernemen die niet consistent zijn met mijn intenties –Dit verschaft een filter dat de zoekruimte voor de rationele agenten kan inperken.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Formeler Indien je een intentie hebt om een toestand F te bereiken, terwijl je gelooft dat je die toestand nooit zult bereiken heb je een intentie-geloof inconsistentie, en ben je niet rationeel. Indien je een intentie hebt om een toestand F te bereiken, terwijl je niet gelooft dat die toestand zal tot stand komen is intentie-geloof onvolledigheid en is rationeel.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Samenvattend Intenties bepalen het doel-middelen redeneren Intenties zijn pesistent Intenties beperken toekomstige beslissingen Intenties bepalen het geloof voor toekomstig redeneren.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Hoe zijn intenties voorgesteld We veronderstellen verder een symbolische voorstelling, met behulp van eerste orde logica. Dit is niet essentieel. B : huidige geloofspunten (beliefs) Bel: alle mogelijke geloofspunten D: verlangens (desires) Des: alle mogelijk verlangens I: de intenties Int: alle mogelijke intenties
dr. Patrick De Causmaecker, KaHo St.-Lieven, Drie functies Productie van mogelijkheden (desires) –options: (Bel) (Int) -> (Des) Keuze tussen mogelijkheden –filter : (Bel) (Des) (Int) -> (Int) Herzien van de geloofspunten (belief revision function) –brf : (Bel) Per -> (Bel)
dr. Patrick De Causmaecker, KaHo St.-Lieven, Doel-middelen redeneren Planner doel/intentie/taak toestand van de omgeving mogelijke acties plan om doel te bereiken
dr. Patrick De Causmaecker, KaHo St.-Lieven, Eerste planningssysteem STRIPS (Fikes, Nilsson, 1971) Een model van de wereld in eerste-orde predikaten Een verzameling van actie beschrijvingen (schemata) in termen van precondities en postcondities (dit is de belangrijkste bijdragen van STRIPS). Het algoritme baseerde zich op het verschil (de delta) van het te bereiken doel met de werkelijke wereld. Dit was het minst succesvolle deel van STRIPS (te detaillistische planning als resultaat)
dr. Patrick De Causmaecker, KaHo St.-Lieven, De blokkenwereld A BC {Clear(A),On(A,B),OnTable(B),OnTable©,Clear©}
dr. Patrick De Causmaecker, KaHo St.-Lieven, De blokkenwereld “Closed world assumption” –Alles wat niet expliciet als waar aangeduid wordt is niet waar Een actie heeft nu –Een naam (eventueel met parameters) –Een preconditie lijst (pre) –Een verwijder lijst (del, de uitspraken die ongeldig worden) –Een toevoeg lijst (add, de uitspraken die door de actie geldig worden)
dr. Patrick De Causmaecker, KaHo St.-Lieven, Predikaten voor de blokkenwereld On(x,y): object x ligt op object y OnTable(x): object x ligt op de tafel Clear(x): niks ligt op object x Holding(x): de robot heeft x in zijn hand ArmEmpty: de robot heeft niks in zijn hand
dr. Patrick De Causmaecker, KaHo St.-Lieven, De blokkenwereld: voorbeelden van acties Het opeenstapelen van blokken gebeurt in de Stack actie, het omgekeerde is UnStack Stack(x,y) pre {Clear(y),Holding(x)} del {Clear(y),Holding(x)} add {ArmEmpty,On(x,y)} UnStack(x,y) pre {On(x,y),Clear(x),ArmEmpty} del {On(x,y),ArmEmpty} add {Holding(x),Clear(y)}
dr. Patrick De Causmaecker, KaHo St.-Lieven, De blokkenwereld: voorbeelden van acties Analoog voor het opnemen van de tafel: PickUp en PutDown PutDown(x) pre {Holding(x)} del {Holding(x)} add {ArmEmpty,OnTable(x)} PickUp(x,y) pre {Clear(x),OnTable(x),ArmEmpty} del {OnTable(x),ArmEmpty} add {Holding(x)}
dr. Patrick De Causmaecker, KaHo St.-Lieven, Formeler De verzameling acties noteren we opnieuw met Ac –Ac = { 1, 2, … n } Een actie van Ac is een drietal – met –P een verzameling eerste-orde logica formules die de perconditie voor de actie bevatten –D een verzameling eerste-orde logica formules die de te verwijderen feiten aangeven –A een verzameling eerste-orde logica formules die de toe te voegen feiten aangeven
dr. Patrick De Causmaecker, KaHo St.-Lieven, Formeler Een planningsprobleem is dan een drietal met – de geloofspunten van de agent over de begintoestand van de wereld – ={ | Ac} een geïndexeerde verzameling van operatorbeschrijvingen, de plannen – een verzameling eerste-orde logica formules die te realiseren doel, taak of intentie vastleggen Een lineair plan is dan een rij acties in Ac: – = ( 1,…, n )
dr. Patrick De Causmaecker, KaHo St.-Lieven, Formeler Een plan bepaalt voor een probleem een rij van n+1 omgevingsmodellen 0 = , 1, 2,… n met – i =( i-1 \D i ) A i voor 1<=i<=n Een plan = ( 1,…, n ) is aanvaardbaar voor het probleem indien de preconditie van elke actie voldaan is in het voorgaande omgevingsmodel ( i-1 P i voor 1<=i<=n). Een plan = ( 1,…, n ) is correct indien het aanvaardbaar is en n
dr. Patrick De Causmaecker, KaHo St.-Lieven, Formeler Het probleem dat een planningssysteem oplost is nu –Gegeven een planningsprobleem, vind een correct plan voor of laat weten dat er geen bestaat.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Notaties Plannen worden aangeduid met , ’, ”, 1,… pre( ) is de preconditie, body( ) is het lichaam van (alles behalve pre( )). empty( ) betekent dat een lege rij is execute( ) is een procedure die een plan uitvoert zonder te stoppen head( ) is het plan dat bestaat uit de eerste actie van body( ) tail( ) is body( ) waaruit head( ) verwijderd is Voor I Int, B Bel geldt sound( ,I,B) indien correct is voor de intenties in I, gegeven de geloofspunten in B.
dr. Patrick De Causmaecker, KaHo St.-Lieven, De plan functie van een agent De verzameling van alle plannen noemen we Plan. De signatuur van deze functie is –plan: (Bel) (Int) (Ac) -> Plan Een agent hoeft niet noodzakelijk aan plan- generatie te doen. Hij kan bijvoorbeeld beschikken over een plan bibliotheek, met vooraf samengestelde plannen.
dr. Patrick De Causmaecker, KaHo St.-Lieven, B B 0 ;I I 0 ; while true do get next percept p using see(…); B brf(B,p);D options(B,I); I filter(B,C,I); plan(B,I,Ac); while not (empty( ) or succeeded(I,B) or impossible(I,B)) do head( ); execute( ); tail( ); get next percept p using see(…); B brf(B,p); if reconsider(I,B) then D options(B,I);I filter(B,D,I); end-if if not sound( ,I,Ac) then plan(B,I,Ac); end-if end-while Implementatie
dr. Patrick De Causmaecker, KaHo St.-Lieven, Implementatie De basis lus bestaat uit –Observatie en aanpassing van de geloofspunten –Beraden om te beslissen welke intenties gerealiseerd zullen worden Beraden = (Bepalen van de opties, uitfilteren van de opties) –Middel-doel redeneren om een plan te vinden –Uitvoeren van het plan Een belangrijk, subtiel, punt is de trouw aan het gestelde doel en het gekozen plan
dr. Patrick De Causmaecker, KaHo St.-Lieven, Verbondenheid met doel en middelen (commitment) Na een keuze van een optie door het filter als een intentie heeft de agent zich verbonden met deze optie. Dit is tijdelijk persistent, de verbondenheid mag niet onmiddellijk verdwijnen. De vraag is precies hoe lang een verbondenheid dient aangehouden te worden.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Voorbeeld : de huis-robot Willie, breng me een biertje –Ok, boss Na 20 minuten is het biertje er nog niet. Willie was van plan om het te brengen, maar besliste vrij snel om dat toch niet te doen. Je gaat klagen bij de verkoper.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Voorbeeld : de huis-robot 2 Willie, breng me een biertje –Zeker weten Welk bier heb je gekocht? –Roman Vergeet het Na 1 minuut staat Willie voor je met het Roman- biertje in zijn hand. Willie had je tweede boodschap wel begrepen, maar bleef trouw aan zijn oorspronkelijk plan. Je gaat klagen bij de verkoper.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Voorbeeld : de huis-robot 3 Willie, breng me een biertje –Ja meneer Na 1 minuut staat Willie halfweg de living. Hij knijpt het blikje open in zijn hand en gooit het schuimend tegen de muur. Bij de verkoper blijkt dat Willie van plan was je het bier te brengen tot het niet meer mogelijk was. Hij vond juist halfweg de living een plan om de tweede optie te realiseren.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Soorten verbondenheid Blinde trouw (blind commitment) –De agent houdt vast aan de intentie tot hij gelooft dat ze gerealiseerd is. (ook wel fanatieke trouw) Toegewijde trouw (single-minded) –De agent houdt vast aan de intentie tot hij gelooft dat ze gerealiseerd is of dat het niet meer mogelijk is ze te realiseren. Trouw met een open geest (open-minded) –De agent houdt vast aan de intentie zolang hij gelooft dat ze mogelijk is.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Hoe is dit gerealiseerd in het algoritme? Een agent blijft vasthouden aan een plan tot –Het gerealiseerd is –Het onmogelijk is –Er niets meer te doen valt Dit is toegewijde trouw –Zie succeeded(I,B), impossible(I,B) Toewijding aan het doel: –reconsider
dr. Patrick De Causmaecker, KaHo St.-Lieven, Het herbekijken van de situatie Wanneer moeten de doelstellingen opnieuw bekeken worden –Nooit, of bijna nooit, zal leiden tot verloren inspanningen om intenties te realiseren die onmogelijk zijn –Voortdurend herbekijken van intenties kost tijd en energie die niet meer beschikbaar is om werkelijk iets te doen
dr. Patrick De Causmaecker, KaHo St.-Lieven, Het herbekijken van de situatie Laten we veronderstellen dat we over een booleaanse functie beschikken reconsider(…) die beslist of we de beraadslaging over plannen en intenties opnieuw moeten voeren. Wanneer is deze functie optimaal? In de veronderstelling dat de beraadslaging altijd leidt tot de beste intenties, en dat de planning altijd een goed plan produceert, is reconsider(…) optimaal als ze enkel true oplevert als de beraadslaging tot andere intenties en plannen leidt.
dr. Patrick De Causmaecker, KaHo St.-Lieven, reconsider(…) reconsidered Een belangrijke veronderstelling is dat de functie weinig tijd vraagt in vergelijking met het beraadslagingproces zelf. In het ander geval hebben we deze functie zelfs niet nodig. Vastberaden (bold) agenten veranderen nooit van mening. Ze functioneren goed in traag veranderende omgevingen. Voorzichtige (cautious) agenten herbekijken de situatie regelmatig. Ze functioneren goed in snel veranderende omgevingen.
dr. Patrick De Causmaecker, KaHo St.-Lieven, HOMER, Vere and Bickmore, 1990 U: What is in front of you? H: A log. U: Do you own the log? H: No, I don’t. U: The log belongs to you. H: Oh! U: Turn away from your log. H: Ok, I am turning. [Log removed] U: Turn around. H: Ok, I am turning H: I have lost the log! U: Drop the package at the barge next Saturday at 9 pm. H: Ok. U: Are you going to the barge on Saturday? H: Yes. U: What time? H: 8.56 pm.
dr. Patrick De Causmaecker, KaHo St.-Lieven, Voorbeelden
dr. Patrick De Causmaecker, KaHo St.-Lieven, Het PRS (“procedural reasoning system”) (Georgeff, Lansky 1987) Eerste BDI (Belief, Desires, Intentions) architectuur Gebruikt in OASIS (luchtverkeersleiding, Sydney) De agent heeft een verzameling voorgecompileerde plannen, met als componenten: –Doel (postconditie) –Context (preconditie) –Body (het recept)
dr. Patrick De Causmaecker, KaHo St.-Lieven, PRS BeliefsPlans DesiresIntentions Interpreter Input van sensoren Output van acties Omgeving
dr. Patrick De Causmaecker, KaHo St.-Lieven, PRS De “body” bevat plannen, die hebben doelstellingen als basiscomponenten. Een doel op een bepaald punt in het plan betekent dat het doel daar moet gerealiseerd zijn alvorens men verder kan gaan Men kan ook combinaties van doelstellingen hebben: bereik A of B.
dr. Patrick De Causmaecker, KaHo St.-Lieven, PRS proces Bij het opstarten heeft een agent een verzameling plannen, een aantal geloofspunten, voorgesteld als Prolog-achtige feiten, en een doelstelling. Het doel wordt op de intentie-stapel geplaatst. Deze stapel bevat al de doelstellingen waarvan de verwezenlijking verwacht wordt. De planotheek wordt doorzocht naar plannen –Die het doel op de stapel als postconditie hebben –Waarvan de agent gelooft dat de preconditie voldaan is Over de mogelijke plannen (opties) beraadt de agent zich. Dit kan met behulp van meta-niveau plannen, maar ook met behulp van een utility-functie.
dr. Patrick De Causmaecker, KaHo St.-Lieven, PRS proces De gekozen plannen worden dan uitgevoerd. Dit kan betekenen dat andere doelstellingen op de stapel worden geplaatst.
dr. Patrick De Causmaecker, KaHo St.-Lieven, PRS voorbeeld GOALS: ACHIEVE blocks-stacked FACTS: FACT ON “Block5” “Block4”; FACT ON “Block1” “Block2”; FACT ON “Block4” “Block3”; FACT ON “Block3” “Table”; FACT ON “Block1”; FACT CLEAR “Block5”; Plan: { NAME: “Top-level plan” GOAL: ACHIEVE blocks-stacked; CONTEXT: BODY: ACHIEVE ON “Block3” “Table”; ACHIEVE ON “Block2” “Block3”; ACHIEVE ON “Block1” “Block2”; } Plan: { NAME: “Stack blocks that are clear” GOAL: ACHIEVE ON $OBJ1 $OBJ2; CONTEXT: BODY: ACHIEVE CLEAR $OBJ1; ACHIEVE CLEAR $OBJ2; PERFORM move $OBJ1 $OBJ2; UTILITY: 10; FAILURE: EXECUTE print “…”;} Plan: { NAME: “Clear a block” GOAL: ACHIEVE CLEAR $OBJ; CONTEXT: FACT ON $OBJ2 $OBJ BODY: ACHIEVE ON $OBJ2 “Table”; EFFECTS: RETRACT ON $OBJ2 $OBJ FAILURE: EXECUTE print “…”;}