Agententechnologie Les 2 dr. Patrick De Causmaecker
Definitie Autonomie (algemeen aanvaard) Leren (zeker niet altijd nodig noch gewenst) … Een agent is een computersysteem, gesitueerd in een omgeving, dat in staat is autonoom acties in deze omgeving te ondernemen om zijn ontwerpdoelen te realiseren. (Wooldridge and Jennings 1995)
Agent Omgeving Actie output Sensor input
Definitie Een agent –Beïnvloedt zijn omgeving –Heeft meestal geen volledige, maar wel gedeeltelijke controle –Het tweemaal uitvoeren van een bepaalde actie in een identieke situatie kan tot verschillende resultaten leiden Hiertoe beschikt de agent over een repertoire aan acties Deze zijn zinvol, en mogelijk, afhankelijk van de omgevingsvariabelenm
Definitie Het probleem van de agent is te beslissen welke van zijn acties het best kan uitvoeren om zijn doel te bereiken Een agentenarchitectuur is een softwarestructuur voor een beslissingssysteem dat in een omgeving functioneert
Voorbeeld: Regelsystemen Voorbeeld: een thermostaat Deze werkt volgens de volgende regels: Onderscheid omgeving, actie en invloed op de omgeving Te koud => verwarming aan Temperatuur OK => verwarming af
Voorbeeld: Software Demons X Windows xbiff volgt en stuurt de binnenkomende Xbiff leeft in een software-omgeving Het zal LINUX software functies uitvoeren om zijn informatie te bekomen (ls om de mailbox te controleren) Het gebruikt software functies om zijn omgeving te beïnvloeden (het aanpassen van het icoon op de werktafel van de gebruiker) Als agentenarchitectuur is het even eenvoudig als de thermostaat.
Omgevingen Toegankelijk versus ontoegankelijk Deterministisch versus indeterministisch Statisch versus dynamisch Discreet versus continu
Toegankelijkheid Physische beperkingen van het meettoestel: –Bijv. de ogenblikkelijke temperatuur aan de noordpool van Mars Er is steeds onzekerheid en onvolledige informatie in gelijk welke omgeving De agent moet kunnen beslissen Hogere toegankelijkheid van de omgevingsvariabelen maakt de agent eenvoudiger
Determinisme Een omgeving is deterministisch als het resultaat van een actie steeds ondubbelzinnig bepaald is Indeterminisme wordt veroorzaakt door –De beperkte invloed van de agent, de controle is gedeeltelijk –De beperkte mogelijkheden van de agent –De complexiteit van de omgeving Indeterminisme maakt het nodig om het resultaat van een actie steeds te controleren
Statisch/Dynamisch Verandert het systeem enkel door de acties van de agent? Denk aan software systemen, grote bouwkundige constructies, bezoekers van een tentoonstelling… De meeste systemen zijn dynamisch Dit betekent dat de agent continu data moet vergaren en dat de toestand kan wijzigen tijdens de actie Het voorspellen van de resultaten wordt moeilijker, en het synchroniseren en coördineren van de eigen acties met deze van andere processen wordt essentieel
Tenslotte: Discreet of continu Classificeer: –Schaken, taxi rijden, navigeren,, word processing, taal Wat is moeilijker? We spreken van open en gesloten systemen
Interactie met de omgeving Origineel: functionele systemen –Compilers Ze eindigen, gegeven een preconditie, wordt er een postconditie gerealiseerd Top down ontwerp laat toe om functionele programmatuur te ontwerpen… f:I->O
Interactie: reactiviteit De meeste programma’s zijn reactief in de zin –Dat ze een relatie met de omgeving en andere modules onderhouden en reageren op signalen –Dat ze snel kunnen reageren op veranderingen in de omgeving (ook wel “responsiviteit”) –Dat ze eerder onmiddellijk reageren op veranderingen dan erover na te denken Reactieve agenten moeten voortdurend lokale beslissingen nemen waarvan de gevolgen globaal zijn
Reactieve systemen Bijvoorbeeld een printer server wordt geconfronteerd met twee aanvragende processen p1 en p2. Hij beslist systematisch p1 te laten voorgaan. Dit lost het probleem onmiddellijk op, maar creëert een lange termijn probleem. Men kan de agent lange termijn redeneringen laten opbouwen, maar dit blijkt zeer moeilijk te zijn. Eén oplossing is het gebruik van episodes. De gebeurtenissen in verschillende episodes zijn dan onafhankelijk, en de agent dient slechts te redeneren binnen de lopende episode.
Reactieve systemen: classificatie Drie mogelijke situaties: –Beslissen binnen een tijdspanne –Het realiseren van een bepaalde toestand –Het herhaald uitvoeren van een taak, zo vaak mogelijk Als tijd geen rol speelt kan het beslissingsproces zeer grondig gebeuren. In andere gevallen kan het beperkt zijn tot milliseconden.
Intelligente agenten Als kenmerken van intelligentie in agenten beschouwt men: –Reactiviteit: waarnemen en reageren –Proactiviteit: doelgericht handelen –Sociale vaardigheid: in staat tot interactie Vb proactiviteit: C-programma –Veronderstelt een constante omgeving Vb reactiviteit: Ook niet moeilijk De waarheid ligt evenwel in het midden, dit is wel gecompliceerd
Agenten en Objecten Objecten zijn acteurs, met mensachtige bedoelingen en vaardigheden. Ze beslissen en vragen informatie aan andere agenten. Het essentiële verschil met agenten zit in de autonomie –Objecten implementeren methodes die door andere objecten kunnen aangeroepen worden –Agenten beslissen zelf wat ze doen, ook als ze door andere agenten aangemoedigd worden
Objecten doen het gratis, Agenten doen het omdat ze het willen
Agenten en Expertsystemen Vb: Mycin,… Expertsystemen zijn consultants, ze werken niet onmiddellijk in op mensen of omgevingen Ze kunnen in het algemeen geen proactief gedrag vertonen Ze hebben geen sociale vaardigheden
Agenten als intentionele systemen Een intentioneel systeem handelt vanuit geloof, verwachtingen, wensen,… Een eerste orde intentioneel systeem heeft enkel geloof, verwachtingen, wensen betreffende de dingen, niet betreffende geloof, verwachtingen en wensen Een hogere orde intentioneel systeem heeft dit wel
Een (te eenvoudig) voorbeeld Een lichtschakelaar is een agent met de mogelijkheid om stroom door te laten, die steeds stroom doorlaat als hij gelooft dat we dat willen en nooit indien hij gelooft dat we dat niet willen. We geven onze intenties te kennen door om te schakelen. Uiteraard kan een schakelaar veel eenvoudiger beschreven worden.
Intentioneel? Hoe meer we weten van een systeem, hoe minder nood we hebben aan een beschrijving in termen van geloof, verwachtingen, wensen. Denett onderscheidt drie visies: –Physisch –Ontwerp –Intentioneel
Abstracte architecturen voor intelligente agenten De omgeving kan in een eindig aantal toestanden voorkomen: –E = {e,e’,…} De acties van een agent vormen ook een eindige verzameling –Ac= { , ’,…} Een run ‘r’ van een agent in een omgeving is een rij met afwisselend een toestand en een actie: –R=e 0 - 0 -> e 1 - 1 -> e 2 - 2 ->… - u -> e u
Abstracte architectuur Symbolen: –R is de verzameling van alle runs –R Ac is de verzameling van alle runs die eindigen op een actie –R E is de verzameling van alle runs die eindigen op een omgeving –r,r’ zijn steeds elementen van R.
Abstracte architectuur De toestandstransformatie: – : R Ac ->P(E) –Beeldt een run die eindigt in een actie af op een verzameling omgevingstoestanden –De resulterende omgeving hangt dus af van de volledige geschiedenis, en niet van laatste toestand en laatste actie alleen –We spreken over een verzameling van mogelijke resulterende toestanden, het resultaat van een actie is dus niet deterministisch – (r) kan leeg zijn, in dat geval eindigt de run (met een actie)
Abstracte architectuur Een omgeving is een drietal: –Env = –Met E een verzameling omgevingstoestanden, e 0 een initiële toestand en een toestandstransformatie. Een agent is een functie –Ag: R E -> Ac –Deze is dus deterministisch. Een systeem is een paar bestaande uit een agent en een omgeving. Binnen een systeem bestaat er een verzameling mogelijke runs: R(Ag, Env) bevat alle beëindigde runs (er worden geen oneindige runs bekeken).
Abstracte architectuur Een rij –(e 0, 0, e 1, 1, e 2, 2 …) Is een run van agent Ag in omgeving Env= indien –e 0 de begintoestand is van Env – = Ag() –Voor u>0 e u ( (e 0, 0, … u-1 …)) u = Ag ( (e 0, 0, … u-1, e u )
Zuiver reactieve agenten Deze reageren enkel op de huidige toestand, en houden geen rekening met het verleden: –Ag: E -> Ac Leg zelf het verband met de algemene definitie Hoe ziet de thermostaat agent er nu uit?
Perceptie We hebben de agent tot nu toe gedefinieerd als een functie. Deze functie kan opgesplitst worden in twee delen: perceptie en actie. (dit is een ontwerpbeslissing die leidt tot een specifieke agentarchitectuur!) We onderscheiden –De functie see die de agent toelaat de omgeving te observeren –De functie action die het beslissingsproces van de agent modelleert
Agent Omgeving Actie output Sensor input seeaction
Perceptie Er geldt: –see : E -> Per –action : Per * -> Ac action werkt dus op rijen van percepties. Een agent is nu een paar: –Ag= De functie action hoeft uiteraard niet steeds alle details van de perceptie in rekening te brengen
Perceptie: een voorbeeld Veronderstel dat de enige informatie die we over de wereld kennen vervat zijn in de uitspraken: –x=‘De temperatuur is hier goed’ –y=‘Guy Verhofstadt is eerste minister’ De omgeving kent de volgende toestanden –E={e 1 = { x, y}, e 2 = { x,y}, e 3 = {x, y}, e 4 = {x,y}} Hoe ziet onze thermostaat er nu uit?
Perceptie Twee omgevingstoestanden e 1 en e 2 worden equivalent (~) genoemd indien –e 1 ~ e 2 a.s.a. see( e 1 )=see( e 2 ) De equivalentieklassen van ~ karakteriseren de agent –|~| = |E| betekent dat de agent alle toestanden kan onderscheiden –|~| = 1 betekent dat de agent geen perceptie heeft
Agenten met een toestand De beslissingsfunctie van de agent houdt rekening met het verleden. Dit kan gemodelleerd worden via een agententoestand I. We hebben nu –see: E -> Per –action: I->Ac –next: I x Per -> I De gekozen actie voor een agent in toestand i en een omgeving in toestand e is nu –action(next(i,see(e))) De nieuwe toestand van de agent is nu –i’=next(i,see(e)) (Het gevolg van de actie op de omgeving is niet deterministisch en nog steeds mede bepaald door het verleden: –e’ (r) (r is de run van de agent))
Hoe vertellen weet de agent wat te doen? Twee benaderingen: –een “nuttigheidsfunctie” u –een “predicaten” specificatie Een nuttigheidsfunctie is een performantiemaat die aangeeft of een toestand, momenteel of op lange termijn, goed is Een “predicaten” specificatie is een verzameling criteria waarop de agent beoordeeld wordt
Nuttigheidsfuncties (Utility) Een eerste benadering is een functie te definiëren die een toestand kan beoordelen –u:E->R Op basis van deze functie kan de nuttigheid van een actie beoordeeld worden als het –minimum van de bereikbare u-waarden –gemiddelde van de bereikbare u-waarden –… Het lokale karakter van deze benadering leidt tot kortzichtige agenten
Nuttigheidsfuncties (Utility) Men kan ook nuttigheid aan de runs toekennen: –u:R->R Dit laat toe om agenten verder te laten kijken Bijvoorbeeld: Tileworld (Pollack 1990)
Nuttigheidsfuncties Als we een waarschijnlijkheid toevoegen aan de transformator en veronderstellen dat u begrensd is naar boven (u(r) < k voor alle runs r in R) dan kunnen we de waarschijnlijkheid berekenen dat run r voorkomt als agent Ag in de omgeving Env geplaatst wordt : P(r|Ag,Env) en –som over r in R(Ag,Env) van P(r|Ag,Env) = 1
Nuttigheidsfuncties We kunnen nu op zoek gaan naar de optimale agent voor deze omgeving: –Ag opt = arg max som(u(r) P(r|Ag,Env) ) –(max loopt over alle agenten Ag, som over alle runs in R(Ag,Env)) Een probleem dat hierbij optreedt is de berekenbaarheid. De middelen van de agenten zijn beperkt, we kunnen dus niet steeds de optimale agent realiseren. Dit leidt tot een alternatieve definitie van de optimale agent waarbij max loopt over de mogelijke agenten.
Predicaten specificaties Een nadeel van nuttigheidsfuncties is dat het niet steeds natuurlijk is om een agent te definiëren via een dergelijke functie Mensen denken meer in termen van plannen en doelen, uitspraken die waar moeten gemaakt worden zoals ‘de temperatuur moet hier steeds goed zijn’ Als we de waarden van onze nuttigheidsfunctie beperken tot {0,1} dan bereiken we uiteraard een dergelijk model: –u(r) = 1 a.s.a. (r)
Taakomgevingen Een taakomgeving is een paar met –Env een omgeving en :R->{0,1} We noemen een predikaat over de runs R De runs die aan het predikaat voldoen noemen we R Een agent Ag slaagt als –R (Ag,Env) = R(Ag,Env) Of als – r R(Ag,Env) : (r) Of alternatief: – r R(Ag,Env) : (r)
Taakomgevingen Men maakt een onderscheid tussen –Realisatietaken (achievement tasks) –Onderhoudstaken (maintenance tasks) Realisatietaken beogen het bereiken van een bepaalde voorwaarde op de omgeving. Onderstel dat een deelverzameling van de toestanden G aan dit criterium voldoet, dan is (r) waar indien de run r van de agent resulteert in een toestand van G Onderhoudstaken beogen het vermijden van bepaalde toestanden B. (r) is waar indien de run r van de agent resulteert in een toestand die zich niet in B bevindt.
Agent synthese Een synthese algoritme is een functie –Syn: TE->(Ag { }) Die een taakomgeving afbeeldt op een agent of faalt. Het algoritme is –Gezond (sound) indien het enkel succesvolle agenten genereert –Volledig (complete) indien het een agent genereert van zodra er een succesvolle agent bestaat