1 / 32

The Swarm Simulation System

The Swarm Simulation System. Je planmäßiger die Menschen vorgehen, desto wirksamer vermag sie der Zufall treffen . Katja Luther, Holger Meyer. Outline. Why is the influence of interventions on complex systems (ecosystems, economic systems, metabolism) usually not predictable?

toya
Download Presentation

The Swarm Simulation System

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. The Swarm Simulation System Je planmäßiger die Menschen vorgehen, desto wirksamer vermag sie der Zufall treffen. Katja Luther, Holger Meyer

  2. Outline • Why is the influence of interventions on complex systems (ecosystems, economic systems, metabolism) usually not predictable? • Criteria for simulation systems • Representation of complex interactions • Agentbased model • Building of hierarchical structures (recursion) From Elements to Systems - The Swarm Simulation System

  3. Why Simulation? • John Briggs, F. David Peat: "Komplexe Systeme sind letzen Endes nicht analysierbar, nicht auf Teile reduzierbar, weil die Teile durch Annäherung und Rückkopplung ständig aufeinander einwirken". From Elements to Systems - The Swarm Simulation System

  4. Scenarios • Simulation of ecosystems • „Superorganisms“ (e.g. ants, bees, etc.) • Processes in business companies (micro) and national economy (macro) • Load balancing in telecommunication networks From Elements to Systems - The Swarm Simulation System

  5. The Swarm Simulations System • Basic principle: groups of simple interacting agents creating a complex system behavior • Swarm provides a general for writing computer simulations • The Swarm system supports implementation of multi-level systems by composing hierarchical swarms of agents From Elements to Systems - The Swarm Simulation System

  6. What is Swarm? A virtual machine / a discrete event simulator • Virtual machine: an abstract instruction processor. Example: the Java virtual machine • But instead of Java instructions, Swarm interprets instructions describing temporal events and constraints via Schedules, Swarms, and their associated parameterizations From Elements to Systems - The Swarm Simulation System

  7. Model GUI Swarm kernel Operating System CPU Swarm as a virtual computer • A computer’s CPU executes program instructions • Swarm kernel is virtual CPU running model and GUI events • Nested Swarms merge activity schedules into one From Elements to Systems - The Swarm Simulation System

  8. Swarm System Design From Elements to Systems - The Swarm Simulation System

  9. Real World Multi-level Systems • Ecosystem • Ant Colony or Beehive • An Ant or Bee • Organ • Cell • Global Economy • National Economy • Business Company • Employee From Elements to Systems - The Swarm Simulation System

  10. Hierarchical Modeling by Swarm From Elements to Systems - The Swarm Simulation System

  11. Interactions of Nested Swarms • Swarm allows swarms to be agents creating a new swarm in the next level of the hierarchical model (nested swarms) • Time hierarchy:Top-down synchronized time-management across the simulation From Elements to Systems - The Swarm Simulation System

  12. Example: Heatbugs From Elements to Systems - The Swarm Simulation System

  13. Implementation Heatbugs public class Heatbug { /** my current unhappiness */ public double unhappiness; /** my spatial coordinates */ public int x, y; /** my ideal temperature and how much heat I put out */ public int idealTemperature, outputHeat; /** chance of moving randomly */ public double randomMoveProbability; /** my colour (display) */ public byte bugColor; ... From Elements to Systems - The Swarm Simulation System

  14. Bottom up modeling If <cond> then <action1> else <action2> Inanimate agents Observer Animate agents Data Organizations of agents From Elements to Systems - The Swarm Simulation System

  15. Implementation ObserverSwarm public class HeatbugObserverSwarm extends GUISwarmImpl { /** one parameter: update freq */ public int displayFrequency; /** ActionGroup for sequence of GUI events */ public ActionGroup displayActions; /** the single Schedule instance */ public Schedule displaySchedule; /** the Swarm we're observing */ public HeatbugModelSwarm heatbugModelSwarm; From Elements to Systems - The Swarm Simulation System

  16. RepeatIntervall=1 stepRule step upateLattice count=100 class Heatbug idealTemperature(1700<=uniformRandom<=3500) outputHeat(3000<=uniformRandom<=10000) imgColor(byteConstant=64) heatbug populate HeatbugsModelSwarm ActionGroup agents classes environment heatspace type=heatspace world type=Grid2d From Elements to Systems - The Swarm Simulation System

  17. Implementation Modelswarm public class HeatbugModelSwarm extends SwarmImpl{ // simulation parameters public int numBugs; public int maxOutputHeat, minOutputHeat; public double evaporationRate; public double diffuseConstant; public int worldXSize,worldYSize; public int minIdealTemp, maxIdealTemp; public double randomMoveProbability; From Elements to Systems - The Swarm Simulation System

  18. Implementation Modelswarm-2 public class HeatbugModelSwarm extends SwarmImpl{ ... /** ActionGroup for holding an ordered sequence of action */ public ActionGroup modelActions; /** the single Schedule */ public Schedule modelSchedule; /** list of all the heatbugs and the world the bugs live in */ public List heatbugList; public Grid2d world; public HeatSpace heat; From Elements to Systems - The Swarm Simulation System

  19. Open probe for class Close probe Probe Input value for variable Executes method Probes and GUI • A probe can be used to communicate with the objects in real time • Default probe map shows all variables From Elements to Systems - The Swarm Simulation System

  20. Implementation ProbeMap //in contructor of HeatbugModelSwarm class HeatbugModelProbeMap extends EmptyProbeMapImpl { … //definition of addVar() and addMessage() public HeatbugModelProbeMap (Zone _aZone, Class aClass) { super (_aZone, aClass); addVar ("numBugs"); … addMessage ("toggleRandomizedOrder"); addMessage ("addHeatbug:"); } } /*Now, install our custom probeMap class directly into the probeLibrary */ ... From Elements to Systems - The Swarm Simulation System

  21. Method buildObjects() public Object buildObjects (){ super.buildObjects(); heat = new HeatSpace(getZone(),worldXSize, worldYSize,diffuseConst, evapoRate); world = new Grid2dImpl (getZone(), worldXSize, worldYSize); heatbugList = new LinkedList(); for (i = 0; i < numBugs; i++) { idealTemp = getRandBetween(minIdealTemp, maxIdealTemp); outputHeat = getRandBetween(minOutputHeat, maxOutputHeat); Heatbug hbug = new Heatbug (world, heat); heatbugList.add (hbug); ... From Elements to Systems - The Swarm Simulation System

  22. Implementation buildActions() public Object buildActions () { super.buildActions(); modelActions = new ActionGroupImpl (getZone()); //erzeugen der Actionsund zufügen zu ActionGroup modelActions.createActionTo$message (heat, new Selector (heat.getClass (), “updateLattice", false)); //erzeugen von modelSchedule und zufügen der ActionGroup modelSchedule = new ScheduleImpl (getZone (), 1); modelSchedule.at$createAction (0, modelActions); From Elements to Systems - The Swarm Simulation System

  23. Arborgames Model of forest dynamics • Examine the role of fire on species diversity • Discrete cells with one (two) individual per cell • Local interaction of trees in a neighborhood generates landscape dynamics From Elements to Systems - The Swarm Simulation System

  24. Arborgames Response to disturbance • Landscape dynamics allow recursive response to disturbance • Expansion of fire is governed by the contagion of local forest structure From Elements to Systems - The Swarm Simulation System

  25. Simulation of population dynamics • Development of population diversity in a forest with medium strength of disturbance • Development of population diversity with strong disturbance From Elements to Systems - The Swarm Simulation System

  26. And now something completely different ... From Elements to Systems - The Swarm Simulation System

  27. Computational-Fields • Movement of the agents is driven by these Co-Fields • Co-Fields are established by the infrastructure and by the agents • Agent movements induces changes of Co-Field – composing a feedback cycle From Elements to Systems - The Swarm Simulation System

  28. The Swarm API • objectbaseBase classes for simulated objects – the "agents“ • activitySchedule execution mechanism – the "process" • spaceSpatial environment library • simtoolsCollected tools (non-GUI) useful for developing Swarm simulations • guiGraphical Interface library • analysisObjects that help with data processing From Elements to Systems - The Swarm Simulation System

  29. Using Swarm API: Museum import swarm.Globals; import swarm.space.Discrete2dImpl; public class Museum extends Discrete2dImpl { public ListImpl rooms; ... // In Constructor: rooms = new ListImpl(Globals.env.globalZone); ... public void draw(){ ((Room)rooms.atOffset(0)).draw(startX,startY); ... From Elements to Systems - The Swarm Simulation System

  30. Using Swarm API: Agents import swarm.objectbase.Swarm; import swarm.objectbase.SwarmImpl; import swarm.activity.ActionGroupImpl; import swarm.activity.ScheduleImpl; import swarm.activity.Activity; public class PeopleSwarm extends SwarmImpl{ ... public Activity activateIn(Swarm swarmContext) { super.activateIn(swarmContext); peopleSchedule.activateIn(this); return getActivity(); } From Elements to Systems - The Swarm Simulation System

  31. Using Swarm API: GUI public void createFieldRasters() { ZoomRasterImpl fieldRaster; int numFields = modelSwarm.museumSwarm.museum.rooms.getCount(); fieldRasters = new ListImpl(getZone()); for(int i=0; i<numFields;i++) { fieldRaster = new ZoomRasterImpl(getZone(),"room "+i+“fieldRaster"); fieldRaster.setWidth$Height(museum.getSizeX(), museum.getSizeY()); fieldRaster.setWindowTitle("room ;"+i+" field"); fieldRasters.addLast(fieldRaster); ... From Elements to Systems - The Swarm Simulation System

  32. Resources • www.swarm.org • Chris Langton et. al.: The Swarm Simulation System A tool for studying complex systems, Santa Fe Institute 1999 • www.ctsgroup.ch • The Co-Fields Project – Agent Group (Franco Zamonelli) Università di Modena e Reggio Emilia polaris.ing.unimo.it/didattica/curriculum/marco/Web-Co-Fields/cofields.html • Swarm User Guide, Swarm Development Group, University of Kansas Department of Political Science, Paul Johnson, 2000 • Benedikt Stefansson: Swarmfest ’99 Tutorial Session One: Introduction (www.swarm.org) From Elements to Systems - The Swarm Simulation System

More Related