lOMoARcPSD
ABM college 1 ABM simulaties om: complexe interactie van actoren en systemen te modeleren. Om te kijken wat de gevolgen zijn van bepaalde keuzes en om uiteindelijk beter beleid te kunnen ontwikkelen. Een verzameling van samenwerkende componenten die samen een geheel vormen. Actor voert een handeling uit waarmee die zijn omgeving beïnvloed. - handelt alleen of samenwerking met anderen - kennis/vaardigheden om een bepaalde taak uit te voeren - heeft observeerbaar gedrag - heeft interactie met omgeving - hij leert Agent is een stuk software dat een representatie van een actor kan zijn een model is een formalisatie (expliciet maken)en een vereenvoudiging (aannames/keuzes) van de perceptie/het begrip van de modelleur tot de werkelijkheid. Model is vereenvoudigde weergave van de werkelijkheid. 3 verschillende agentscholen: AI, ABM, MAS. MAS: agenten zijn stukje software om probleem op te lossen, zijn een designtool. ABM: simuleren van problemen. AI: agent is autonoom cognitieve identiteit, die problemen oplost. Componenten ABM: - collectie van agenten en hun status - regels die interacties tussen agenten bepalen - omgeving waarin agenten leven college 2 Geschiedenis: 1943-1970: computers integraal onderdeel van WO2. Heel groot en niet onderling verbonden tot eindjaren 60. Er werd alleen machinetaal gebruikt 1970-1980: technologie ontwikkelde zich en academische en zakelijke instellingen begonnen afhankelijk te worden van computers. Op plaatsen als Berkeley, MIT, Bell labs, XEROX Palo Alto Research Center, werden computers verder ontwikkeld(UNIX,C). Ook het ontwikkelen van netwerken (Usenet, later Arpanet). Talen werden naar een hoger niveau getild) 1980-1990: publieke aandacht en toegang tot computers nam toe. Overheidsinstellingen en grote corporaties maken nu ook gebruik van computers. Doordat AT&T gebruik ging maken van UNIX, kwamen andere afleidingen van het OS. Daarna kwam de persoonlijke industrie op (MS,Apple, Attari) 1990-Nu: Internet ontstond in 1991. Tim Berners introduceert HTML, WWW en Mosaic(Later Netscape Navigator en firefox geworden). 1
lOMoARcPSD
Voordat er search engines waren, waren er boeken waarin websites aangegeven stonden waarin informatie stond over websites. Moore’s Law: elke 2.5 jaar verdubbelt het aantal transistors op microchips. Die dingen worden steeds sneller en kleiner. (CPU’s en Opslag, 64gb telefoon in je broekzak) Dus rekenkracht(CPU) en opslag, wordt steeds veel kleiner en groter, ook goedkoper(prijs per transistor neemt af). Dit geldt niet voor batterij life. Programmeercursus Variabelen: getal of bool? Globale variabelen: maken gebruik van set. Hebben een globale scope, kunnen in elke functie door het hele programma gebruikt worden. Lokale variabelen: maken gebruik van let. Hebben een lokale scope, zijn alleen geldig binnen een functie. Turing complete: in elke programmeer taal heb je genoeg aan: uitvoer, variabelen(globaal,lokaal), voorwaardelijke opdrachten(if en ifelse) en lussen(while en loop/recursie). In elke programmeertaal met turing complete kan je elk andere turing complete schrijven. Verschil while en loop/recursie: While loopt net zolang door als de reporter de waarde true aanneemt wordt, anders stopt die zelf. loop/recursie runt commands altijd, behalve als er een stop command wordt ingeschreven. Data types: - primitief: getallen, boolean, floats - complex(samengesteld): sets(verzamelingen) en lists(lijsten) voorbeelden agentsets: sets van turtles, patches en links bij sets is volorde waarin turtles iets doen random turtles ; alle turtles other turtles ; all other turtles other turtles-here ; all other turtles on this patch turtles with [color = red]; alle rode turtles turtles-here with [color = red]; alle rode turtles op deze patch Met ask kan je agenten vragen iets te doen. Any? Om te kijken of een set members heeft All? Om te kijken of alle agents in een set dezelfde eigenschappen hebben Count: sets tellen
2
lOMoARcPSD
if (all? Turtles [color = red] [print “yes”] Lists, naast verzamelingen(sets), ook lijsten. Deze hebben een vaste volgorde, vergeleken met de sets die dat niet hadden. De lists kunnen primitieve types gebruiken, maar wij gebruiken getallen. lijsten zijn handig omdat je functies voor lists kan gebruiken - foreach - reduce - map Foreach is een iterator. Past iets toe op elk element in een lijst. to go foreach [1 2 3 4] [ if (? > 2) [write ? print "groter dan 2"]] end Reduce is een andere iterator die het mogelijk maakt om een functie op alle elementen in de lijst toe te passen. Gebeurd op basis van links naar rechts. Uitkomst eerste functie wordt toepast op volgende element in lijst. to go show reduce * [ 1 2 3 4] end Map doet ongeveer zelfde als foreach, het verschil is dat map een reporter en lijst als input heeft en een lijst als output. Map [? > 3] [2 4 6]
map
<list>
=> [false, true, true] college 3 Agent is autonoom, hij heeft controle over zijn toestand en gedrag. Hij is in staat flexibel probleemoplossend gedrag te vertonen. Proactief en reactief: kan tijdig reageren op veranderingen om omgeving en is in staat om te anticiperen op eventuele toekomstige veranderingen. Een agent is een probleemoplosser. Hij is een entiteit met goed gedefinieerde grenzen en interfaces, die duidelijk identificeerbare problemen oplost. Ontvangt informatie uit omgeving via sensoren en beïnvloed omgeving weer met zijn effectoren. Ook hebben agenten een duidelijk doel. 3
lOMoARcPSD
Een agent is iets wat iets doet bij anderen, wat hij doet wordt bepaald door zijn probleem. Wat hij wil bereiken is wat hij wil oplossen. Agent-grenzen zijn vaak natuurlijke grenzen: mensen, landen, regio’s Toestand Agent heeft interne toestand en extern observeerbaar gedrag. Bij ABM wordt interne toestand zo ontworpen dat geobserveerd gedrag zo goed mogelijk wordt gerepresenteerd. (bij life model: agent = patch, state = boolean(living), input van environment(past de state aan) Bij MAS wil men dat het gewenste externe gedrag optreed. Voorbeeld wegennet met auto’s Toestand en gedrag: snelheid, richting(agent) verkeersstromen(systeem) interactie: afstand environment: wegennet tijd: discreet Voorbeeld conducteur met vertraging. Toestand en gedrag: treinritten, locatie(agent), vertragingen(systeem) interactie: berichten environment: spoor tijd: real-time( multi agent systeem dat bepaald probleem oplost) Echter zal je bij dit vaak weinig echte autonomie zien bij agenten i.v.m. hoge complexiteit van software die er voor vereist is. De theorie komt uit een AI hoek. Autonomie zit wel veel in MAS voorbeelden. ABM: - systeem niveau: verken mogelijke toestanden(scenario gedreven) - agent: overleven/blijven bestaan - voorbeeld: begrijpen van mogelijke toekomsten en wegen er naar toe - environment bepaald door modelleur(soep = ongestructureerd, ruimte, netwerk) MAS: - systeem niveau: creëer gewenste situatie (doel-gedreven) - agent: samen een systeem niveau doel bereiken - voorbeeld: nieuwe planning bij NS, waar is de trein? - environment bepaald door werkelijkheid
4
lOMoARcPSD
Voorbeelden MAS; operationeel systeem, conducteur (fysiek). Voorbeelden ABM; olieprijs, rente(scenario bepaald door ABM modelleur), ABM experimenteer je meer. Toestand wordt gevormd door volgende 3: interne staat: wat in de agent zit lokale staat: wat in de buurt van de agent zit globale staat: wat is er in de environment Computers zijn slecht in random getallen. Computer speelt vals, gebruikt pseudo random getallen. college 4 Interactie met jezelf, andere agenten en de omgeving. Dus interactie met je zelf: - wijzigen interne representatie - wijzigen control flow - combinatie eerste 2 Bij life bijvoorbeeld: enige interactie die patch met zichzelf kan hebben, is van kleur veranderen. Ander voorbeeld interactie met je zelf : agent representeert fabriek, input is materiaal, output is koper, wat doe je met die output, verkopen of niet?. Interactie met jezelf op basis van informatie uit omgeving interactie met andere agenten: - direct en indirect direct: agent a praat met b(bericht) indirect: agent a beïnvloedt omgeving, dit wordt door b opgemerkt en op basis daarvan gaat die actie uitvoeren) gestructureerd en ongestructureerd - gestructureerd: met vooraf bepaalde agenten interactie voeren volgens protocol - ongestructureerd: interactie met willekeurige agenten Interactie met de omgeving: alles wat de agent beïnvloed, maar niet door de agent beïnvloed kan worden. (globals, de sliders). Strikt genomen zijn andere agenten ook deel van environment Mieren die bijvoorbeeld spoort achterlaten om later te herinneren wat de route was voor t spoor, nu zien andere mieren dit spoor ook en maken hier gebruik van. Indirecte interactie
5
lOMoARcPSD
via environment. Andere voorbeelden: wegennet, btw, rente, weersvoorspelling. In netlogo willen we individuele agenten modelleren en door interactie systeemgedrag krijgen. statisch vs dynamisch scenario vs real-life Voorbeelden wegennet (statisch (lange termijn) real life). Auto’s wel dynamisch BTW is 19.5(statisch scenario) Weer (dynamisch real life) hoogte CO2 emissie (dynamisch scenario) Hangt er vanaf of je naar individuele agenten of van een grotere afstand. We willen uitspraken doen op systeemniveau en dat is waar we geïnteresseerd in zijn. Exploratief vs Design Exploratief is typisch ABM, scenario gedreven. What if? Achterhalen hoe een bestaand fenomeen werkt. Design: Klassieke MAS aanpak. Doel gedreven. Hoe los ik X op? Nieuw systeem ontwerpen of bestaand systeem verbeteren. Operationeel probleem. voorbeelden niveau (strategisch, tactisch en operationeel) en (exploratief en design): hoe voorkom ik verstopping van toevoerswegen in Amsterdam: design en operationeel Impact van een overstroming in Thailand op computer prijzen: exploratief en strategisch 7 miljard euro bezuinigen op begroting nederland: exploratief en strategisch introductie elektrische auto op markt(wat zou het kunnen doen) exploratief en tactisch het hangt af van je doel / probleem voor welke je kiest. Strategisch – tactisch – operationeel met voorbeelden 1. Strategisch (lange termijn gevolgen(beleid) strandvakantie om te ontspannen 2. Tactisch (projecten, activiteiten die strategisch doel bereiken) reizen met trein 3. Operationeel (real-time beslissing die direct invloed heeft op tactisch doel) koop kaartje, pak trein van 10:15 LIFE is Turing complete
6
lOMoARcPSD
Oscilatoren(iets wat een bepaalde periode heeft en terug komt in dezelfde vorm): repetitieve figuren, hebben een periode. college 5 modelleer een probleem, niet een systeem. Strategisch/tactisch/operationeel of exploratief/design? hangt af van je probleem. Strategische exploratie als: - grote onzekerheid over systeem - grote oplosruimte met veel mogelijkheden - grote belangen bestuur - lange termijn - grof model(hoofdlijnen) - Wat moeten we doen? Operationeel design als - goed gedefinieerd systeem(zorgen dat juiste boek wordt aanbevolen ) - concreet probleem/doel - efficiëntie, schaalbaarheid, praktische toepasbaarheid zijn belangrijk. - korte termijn - fijn model - Hoe moeten we het doen? Tactisch als - mengvorm strategisch en operationeel - management laag - Welke middelen zetten we in om doel te bereiken? In de praktijk kom je veel mengvormen van deze 3 tegen. Exploratief: Generative science Design: Distributed-agent-systemen Generative science “if you didnt grow it, you did not explain it” Er is complex gedrag, vaak op systeem niveau, bijvoorbeeld de flock. Hoe kunnen we verklaren hoe zoiets werken door een relatief eenvoudig model te maken van een agent(vogeltje), die om zich heen kijkt en waardoor ze samen op systeem niveau komen door complexe interactie. Vogeltjes(simple units), hebben bepaalde relaties tot andere vogels(kunnen om zichheen kijken en op basis daarvan passen ze hun gedrag aan. je hebt dus vaak heel eenvoudig gedrag van de individuele agent. Door te kijken naar de 7
lOMoARcPSD
interactie tussen die simpele agenten en op systeem niveau te kijken, krijg je complex gedrag. Dit noemen ze ook wel emergentie Nu zijn de flocks homogeen en is het interessanter als dit heterogeen wordt, 4 agenten die bijvoorbeeld anders zijn en allemaal verschillend met elkaar interactie voeren. experiment Epstein, generactivist: agenten worden in omgeving gezet, in geval van flocks eenvoudig(lege ruimte) en we laten ze simpele interacties voeren en wat gebeurt er dan? Distributed agent systemen( je moet nu iets ontwerpen om concrete operationele vraagstukken op te lossen) - search agents (web-crawelers) - financiale agents(buying tickets, books) - negotiating agents( energymarket, e-commerce)(agent op ebay die voor jou biedt) - management agents(verkeer, energy, slimme meter bijvoorbeeld, machines(wie moet waarheen) Multi-agent-systems as paradigm: - oplossingsgericht terwijl ze samenwerken (ABM is juist overleven/concurrentie) In net logo maak je agenten binnen 1 simulatie binnen 1 programma binnen 1 machine op 1 geheugen. Bij MAS zijn de agenten van natuur al verspreid over resources( over workstations, servers, notebooks en smartphones.) (ebay, we hebben allemaal agenten die voor ons bieden, ik op smartphone, jij op laptop. Deze agenten willen wel allemaal het zelfde bereiken en hebben verschillende resources. Wie heeft toegang tot welke CPU, netwerk. etc. De agenten zijn dus mobiel, agent platform ondersteunt agenten(OS) Software schrijven is heel lastig. Voorkeuren implenteren in slimme agent, deze agenten praten met elkaar en gaan onderhandelen. In Netlogo: Self = me Myself = de turtle of patch die mij gevraagd heeft om te doen wat ik nu doe college 6 Model cyclus: 1. Probleem formuleren en actor identificatie: 2. Systeem identificatie en decompositie wat zit in het systeem en wat niet? Hoe zit het systeem in elkaar? Agenten en hun toestanden en gedrag(sensoren en effectoren). Wat is de environment? En de tijd? 8
lOMoARcPSD
Waar gaan we naar opzoek voor informatie voor ons model? 3. Concept formalisatie concepten uit taal moeten worden vertaald naar precieze en eenduidige, door computer begrijpbare structuren. Hoe ga je vertrouwen vertalen? getallen, strings, booleans, lijsten en classen zijn het enige wat een computer begrijpt. 4. Model formalisatie (diagram) We weten nu wat en wie binnen het model is. We weten nog niet wie wat doet , hoe en wanneer. Model narrative: ‘verhaal’ vertelt hoe het model eruit ziet. agent wordt wakker, gaat dit en dit doen met dit en dit op deze tijd op deze locatie. 5. Software implementatie (hoe koppel ik in computer) we weten nu: wie is er, wat en wanneer ze het met wie/wat doen en een precieze beschrijving van alles. Het model is feitelijk klaar, moet alleen worden gebouwd. dit is het feitelijk programmeren in Java, Netlogo, etc. 6. Model verificatie je hebt nu een model in de computer dat werkt, maar doet die wat ik wil? Doet de agent wat ik wil? 7. Experimenteren run programma aantal keer over een brede range met verschillende parameterinstellingen(wat doet je model in verschillende omstandigheden)? 8. Data analyse wat is er in al de data? Op zoek naar patronen en regelmaat. 9. Model validatie (is je model wel zinnig) lijkt het gemodelleerde gedrag op geobserveerde patroon? gebaseerd op empirische gegevens. Wanneer lijkt het ‘goed’ genoeg? Wat kan er gebeuren in de toekomst? - literatuur validatie - vinden experts het aannemelijk - geschiedenis na doen - 2e model met andere aannames 10. Model gebruik Je voorspelt niet de toekomst! Het model is in staat deze dingen te doen, geeft inzicht in het probleem om opgelost te worden. 9
lOMoARcPSD
Modelleer proces is erg nuttig voor stakeholder: systematisch probleem verkennen college 7 Bekendste voorbeeld AI: BDI platforms: JASON, 2APL, GOAL, JACK, JADEX MAS bekendste voorbeelden: Agenstscape, JADE, Cougaar, SeMoA Netlogo bekendste voorbeelden: Netlogo, Repast, Swarm, Mason
10