« Applåder och panik | Main | Kort om R och simulering - ett praktikfall »
augusti 12, 2003
Agent-baserad modellering - simuleringar av emergenta fenomen
Tidigare har jag skrivit om komplexa nätverk, lite om emergenta (självorganiserande) fenomen, se t.ex. vissa av mina anteckningar i kategorin Dynamiska system.
Just nu kollar jag in agent-baserad modellering (agent based modeling), som är ett sätt att modellera bland annat sådana fenomen. Nedanstående är en liten länkdump och kommentarer.
Ett av de systemen som jag ofta använder för att "leka med" sådana simuleringar är NetLogo. Fördelen med NetLogo, jämfört med andra (såsom de utomordentliga Swarm och RePast, som egentligen är mer kompetenta) är dels att det finns en massa färdiga exempel (cirka 120 följer med paketet), dels - och kanske framförallt - att det är mycket enkelt att skapa en Java-applet av simuleringen. Möjligen ska man använda Swarm, Repast eller andra system för att göra professionella simuleringar, men NetLogo är rackarna bra att prototypa med. NetLogo använder en variant av Logo, ett Lisp-inspirerat språk, vilket kan medföra vissa inkörningsproblem, och tyvärr är dokumentationen inte helt uttömmande.
Här är några av de simuleringarna jag rekommenderar att man först tittar på. Har man läst lite böcker om komplexa nätverk känner man nog igen det mesta.
Samtliga sidor har en rätt bra introduktion som förklarar fenomentet och vad som händer i simuleringen. Själva simulerings kör man via länken "Run Xxxxx in your browser". På simuleringssidan finns även källkoden (skrivit i ett Logo-liknande språk).
För samtliga simuleringar gäller det att först klicka på "Setup" och sedan på "Go". För att stoppa simuleringen: klicka på Go igen. Om man har ändrat parametrar måste kan klicka på Setup och sedan Go, vissa parametrar kan man ändra i realtid.
Hör av dig om du har några problem eller andra kommentarer kring NetLogo. Jag har suttit en del med detta och kan kanske hjälpa till.
- Myror.
- Eldflugor. Det var just eldflugor som fick Watts och Strogatz att börja sin forskning om komplexa nätverk.
- Fågelflockar
- Trafikköer
- Segregation
En fullständig lista på modeller att leka med finns i Models Library. Samtliga dessa följer med utvecklingsversionen av programmet. som kan laddas ner via detta formulär. Det finns även Community Models.
Böcker då, finns det inga böcker att läsa om detta? Ah, roligt att du frågade!
Tyvärr finns det rätt få böcker skrivna specifikt om agentbaserad modellering. Några böcker som jag tycker är bra och med flera exempel är
- Thomas Schellings "Micromotives and Macrobehavior" som jag skrev om häromdagen är också full med exempel på sådana fenomen.
- Jag håller just på att läsa Growing Artificial Societies: Social Science from the Bottom Up av Epstein och Axtell, som handlar om ett annat system, SugarScape, där man simulerar sociala fenomen såsom handel, spridning av sjukdomar etc. En recension är nog att vänta.
- Steven Johnsons Emergence är en rätt bra introduktion till emergens-fenomentet. T.ex. diskuteras en del om myror och andra biologiska fenomen. Resnick tillhör en av centralgestalterna i boken, men stor vikt i boken läggs på hur städer har utvecklats, vilket är ett annat exempel på ett emergent fenomen. Via Amazon-länken ovan finns en rad andra böcker inom samma ämnen.
- En bok som jag snart kommer att läsa är Axelrods The Complexity of Cooperation, med underrubriken Agent-Based Models of Competion and Collaboration. Han utgår här från sin forskning om Fångarnas dilemma (Prisoner's Dilemma) som han bland annat skrev om i The Evolution of Cooperation (har ej läst hela).
- Det finns en onlinebok som i ett kapitel behandlas agent-baserad modellering:
Simulation for the Social Scientist av Nigel Gilbert och Klaus G. Troitzsch. Kan vara värd att kika på. Boken beskriver en rad olika tekniker för att simulera och studera socialt beteende, inklusive Systems Dynamics and World Models.Här är Amazon-länken.
'Turtles, Termites, and Traffic Jams: Explorations in Massively Parallel Microworlds av Mitchel Resnick Denna bok beskriver ett system liknande NetLogo: StarLogo, som var före NetLogo, men är inte riktigt lika intuitivt att använda. StarLogo var ett av de första systemen som använde sig av denna typ av agent-baserad modellering.
Resnicks bok är inriktad mycket till pedagoger och försöker föra i bevis att barn och ungdomar (liksom vuxna!) bör tidigt lära sig att analysera fenomen även utifrån en decentraliserad synpunkt. Detta innebär att man inte - bara - ska försöka att se en ledare eller en direkt orsak till ett fenomen. T.ex. har simuleringen av fågelflockarna nämnd ovan ingen ledare som styr färden, liksom myrsimuleringen har ingen som säger åt den enskilde myran att gå dit eller dit.
En sista not: Tyvärr har jag inte hittat något riktigt bra system som simulerar kompelxa nätverk av den typ Watts/Strogatz/Barabasi/andra har studerat. T.e.x har RePast en del sådana funktioner och Indigo har även lite skoj saker, men inte tillräckligt kraftfulla för att vara riktigt användbara.
Någon som vet något sådant system? Det får gärna vara skrivet i Java, men det är absolut inget krav.
Posted by hakank at augusti 12, 2003 11:54 FM Posted to Agentbaserad modellering | Komplexitet/emergens | Social Network Analysis/Complex Networks