geopro:pedro:swarm
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
| geopro:pedro:swarm [2007/07/09 18:59] – pedro | geopro:pedro:swarm [2007/07/17 19:50] (atual) – pedro | ||
|---|---|---|---|
| Linha 11: | Linha 11: | ||
| ^**Homepage** | ^**Homepage** | ||
| ^**Origin** | ^**Origin** | ||
| - | ^**Year** | + | ^**Year** |
| ^**Version** | ^**Version** | ||
| ^**License** | ^**License** | ||
| Linha 25: | Linha 25: | ||
| How to compile swarm in ubuntu [[http:// | How to compile swarm in ubuntu [[http:// | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | \\ | ||
| + | ==== The Swarm Simulation System: A Toolkit for Building Multi-agent Simulations==== | ||
| + | |N. Minar, R. Burkhart, C. Langton, M. Askenazi, | [[http:// | ||
| + | \\ | ||
| + | |||
| + | **Abstract: | ||
| + | systems. In the Swarm system the basic unit of simulation is the swarm, a collection of agents executing a schedule of actions. | ||
| + | Swarm supports hierarchical modeling approaches whereby agents can be composed of swarms of other agents in nested | ||
| + | structures. Swarm provides object oriented libraries of reusable components for building models and analyzing, displaying, and | ||
| + | controlling experiments on those models. | ||
| + | |||
| + | \\ | ||
| + | |||
| + | [...] collection of independent agents interacting via discrete events. [...] There are no domain | ||
| + | specific requirements such as particular spatial environments, | ||
| + | Swarm simulations have been written for such diverse areas [...] | ||
| + | |||
| + | The basic unit of a Swarm simulation is the agent. An agent is any actor in a system, | ||
| + | any entity that can generate events that affect itself and other agents. Simulations consist | ||
| + | of groups of many interacting agents. [...] Simulation of discrete interactions between | ||
| + | agents stands in contrast to continuous system simulations, | ||
| + | phenomena are quantities in a system of coupled equations. | ||
| + | |||
| + | In addition to being containers for agents, swarms can themselves be agents. [...] | ||
| + | an agent can also itself be a swarm: a collection of objects and a schedule of actions. | ||
| + | In this case, the agent' | ||
| + | its swarm. Hierarchical models can be built by nesting multiple swarms. | ||
| + | |||
| + | Swarm has the following components: | ||
| + | * **SwarmObject**: | ||
| + | * **Swarm**: Model swarms and observer swarms are written by using code inherited from this base class. | ||
| + | * **Activity**: | ||
| + | * **Simtools**: | ||
| + | |||
| + | Ambiguity can occur in partial orders and time-based schedules as a result of two or | ||
| + | more actions scheduled at the same time or in the same relative order. Swarm resolves | ||
| + | such ambiguity by defining a " | ||
| + | execute a group of actions that are defined at the same time. Options include running the | ||
| + | group in an arbitrary, fixed order running the group in a random order every time or | ||
| + | actually running each action concurrently, | ||
| + | The explicit notation of a concurrent group type helps to expose and remove any hidden | ||
| + | assumptions in the time structure of a model. | ||
| + | |||
| + | __TerraME: | ||
| + | |||
| + | |||
| =====Swarm User Guide===== | =====Swarm User Guide===== | ||
| Linha 39: | Linha 88: | ||
| One agent always inherits the class SwarmObject, | One agent always inherits the class SwarmObject, | ||
| - | @interface | + | @interface |
| - | | + | int x, y; |
| - | | + | int xsize,ysize; |
| - | | + | int myColor; |
| - | | + | int unhappy; |
| - | | + | int nhoodType; |
| - | float randomMoveProbability; // chance of moving randomly | + | int radius; |
| + | int idnumber; | ||
| + | double myTolerance, | ||
| | | ||
| - | id < | + | BOOL edgeWrap; |
| - | int worldXSize, worldYSize; // how big that world is | + | BOOL moved; |
| - | | + | |
| - | Color bugColor; | + | |
| } | } | ||
| Linha 60: | Linha 110: | ||
| should have a method, such as getAgentList, | should have a method, such as getAgentList, | ||
| - | | + | The ModelSwarm controls the application, |
| + | |||
| + | @interface ModelSwarm : Swarm { | ||
| + | // [...] | ||
| + | id < | ||
| + | id world; | ||
| + | } | ||
| + | |||
| + | // functions of the class | ||
| + | // [...] | ||
| + | stepThroughList; | ||
| + | getAgentList; | ||
| + | |||
| + | The ModelSwarm defines a scheduler of actions it will execute, and it sends " | ||
| + | |||
| + | | ||
| { | { | ||
| - | modelSchedule=[Schedule createBegin: | + | |
| - | [modelSchedule setRepeatInterval: 1]; | + | id modelActions = [ActionGroup create: self]; |
| - | | + | [modelActions createActionTo: |
| | | ||
| - | | + | |
| + | if (synchronous) | ||
| + | [modelActions | ||
| | | ||
| - | | + | modelSchedule = [Schedule createBegin: |
| + | [modelSchedule setRepeatInterval: | ||
| + | modelSchedule = [modelSchedule createEnd]; | ||
| + | |||
| + | [modelSchedule at: 0 createAction: | ||
| + | | ||
| } | } | ||
| - | [modelSchedule at: 0 createActionForEach: | ||
| Linha 100: | Linha 171: | ||
| * Object2dDisplay: | * Object2dDisplay: | ||
| * Int2dFiler: (deprecated) save the state of any Discrete2d: object (or a subclass thereof) to a specified file. | * Int2dFiler: (deprecated) save the state of any Discrete2d: object (or a subclass thereof) to a specified file. | ||
| + | |||
| + | |||
| ===== Examples available at swarm wiki===== | ===== Examples available at swarm wiki===== | ||
| Linha 171: | Linha 244: | ||
| - | =====Papers===== | + | The creation of a group of agents, by a Model Swarm. Note that the model creates and puts it in the world. |
| - | ==== The Swarm Simulation System: A Toolkit | + | |
| - | |N. Minar, R. Burkhart, C. Langton, M. Askenazi, | [[http:// | + | { |
| + | StupidBug* stupidBug | ||
| + | |||
| + | stupidBug | ||
| + | | ||
| + | [stupidBug setRandPosition]; | ||
| + | |||
| + | | ||
| + | } | ||
| - | //Swarm is a multi-agent software platform for the simulation | + | __TerraME__: |
| - | systems. In the Swarm system | + | this moment, each agent chooses his position/ |
| - | Swarm supports hierarchical modeling approaches whereby agents can be composed of swarms of other agents | + | |
| - | structures. Swarm provides object oriented libraries of reusable components for building models and analyzing, displaying, and | + | |
| - | controlling experiments on those models.// | + | |
| - | //[...] collection of independent agents interacting via discrete events. [...] There are no domain | ||
| - | specific requirements such as particular spatial environments, | ||
| - | Swarm simulations have been written for such diverse areas [...]// | ||
| - | //The basic unit of a Swarm simulation is the agent. An agent is any actor in a system, | + | =====TODO===== |
| - | any entity that can generate events that affect itself and other agents. Simulations consist | + | |
| - | of groups of many interacting agents. [...] Simulation of discrete interactions between | + | Some applications using swarm: |
| - | agents stands in contrast to continuous system simulations, | + | |
| - | phenomena are quantities in a system of coupled equations.// | + | |
| - | //In addition to being containers for agents, swarms can themselves be agents. [...] | + | * Schelhorn, T., O' |
| - | an agent can also itself be a swarm: a collection of objects | + | * Haklay, M., O' |
| - | In this case, the agent's behavior is defined by the emergent phenomena of the agents inside | + | * Batty, M., Desyllas, J. and Duxbury, E. (2003), 'Safety in Numbers? Modelling Crowds and Designing Control for the Notting Hill Carnival', |
| - | its swarm. Hierarchical models can be built by nesting multiple swarms,// as shown in the | + | |
| - | figure below. | + | Swarm learning curve: |
| + | |||
| + | * Najlis, R., Janssen, M.A. and Parker, D.C. (2001), ' | ||
geopro/pedro/swarm.1184007581.txt.gz · Última modificação: 2007/07/09 18:59 por pedro
