geopro:pedro:mason
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:mason [2007/07/03 04:06] – pedro | geopro:pedro:mason [2007/08/06 13:53] (atual) – 150.163.2.54 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
====== Mason ====== | ====== Mason ====== | ||
- | //MASON is a fast discrete-event multiagent simulation library core in Java, designed to be the foundation for large custom-purpose Java simulations, | + | // |
+ | simulation library core in Java, designed to be the foundation for large custom-purpose Java simulations, | ||
+ | provide more than enough functionality for many lightweight simulation needs.// | ||
+ | {{ http:// | ||
\\ | \\ | ||
Linha 15: | Linha 18: | ||
\\ | \\ | ||
+ | MASON has execution speed as a high priority. MASON 1-35% faster than Repast. | ||
It has an example of Schelling' | It has an example of Schelling' | ||
Linha 21: | Linha 24: | ||
- | | + | |
- | sch.neighbors.getNeighborsMaxDistance(loc.x, | + | sch.neighbors.getNeighborsMaxDistance(loc.x, |
+ | |||
+ | // compute value | ||
+ | double val = 0; | ||
+ | int threshold = sch.threshold; | ||
+ | int numObjs = neighborsX.numObjs; | ||
+ | int[] objsX = neighborsX.objs; | ||
+ | int[] objsY = neighborsY.objs; | ||
+ | int myVal = locs[x][y]; | ||
| | ||
- | // compute value | + | for(int i=0;i<numObjs;i++) |
- | double val = 0; | + | { |
- | int threshold = sch.threshold; | + | |
- | int numObjs = neighborsX.numObjs; | + | && |
- | | + | |
- | int[] objsY = neighborsY.objs; | + | val += 1.0/ |
- | | + | if (val >= threshold) return; |
+ | } | ||
+ | } | ||
| | ||
- | for(int i=0; | + | |
- | { | + | int newLocIndex |
- | if (locs[objsX[i]][objsY[i]] == myVal // just like me | + | Int2D newLoc = (Int2D)(sch.emptySpaces.objs[newLocIndex]); |
- | && !(objsX[i] == x && objsY[i] == y)) // but it's NOT me | + | sch.emptySpaces.objs[newLocIndex] = loc; |
- | { | + | |
- | val += 1.0/Math.sqrt((x-objsX[i])*(x-objsX[i]) + (y-objsY[i])*(y-objsY[i])); | + | |
- | if (val >= threshold) return; // we're not moving | + | |
- | } | + | |
- | } | + | |
| | ||
- | // find a new spot to live -- a random jump? Move to a nearby location? | + | |
- | int newLocIndex = state.random.nextInt(sch.emptySpaces.numObjs); | + | int swap = locs[newLoc.x][newLoc.y]; |
- | Int2D newLoc = (Int2D)(sch.emptySpaces.objs[newLocIndex]); | + | locs[newLoc.x][newLoc.y] = locs[loc.x][loc.y]; |
- | sch.emptySpaces.objs[newLocIndex] = loc; | + | locs[loc.x][loc.y] = swap; |
- | + | // adopt new position | |
- | | + | loc = newLoc; |
- | int swap = locs[newLoc.x][newLoc.y]; | + | |
- | locs[newLoc.x][newLoc.y] = locs[loc.x][loc.y]; | + | |
- | locs[loc.x][loc.y] = swap; | + | |
- | // adopt new position | + | |
- | loc = newLoc; | + | ====MASON: A New Multi-Agent Simulation Toolkit==== |
+ | |S Luke, C Cioffi-Revilla, | ||
+ | |||
+ | \\ | ||
+ | |||
+ | **Abstract: | ||
+ | designed to serve as the basis for a wide range of multi-agent simulation tasks ranging from swarm robotics to ma- | ||
+ | chine learning to social complexity environments. MASON carefully delineates between model and visualization, | ||
+ | lowing models to be dynamically detached from or attached to visualizers, | ||
+ | scribe the MASON system, its motivation, and its basic architectural design. We then discuss five applications of MA- | ||
+ | SON we have built over the past year to suggest its breadth of utility. | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Agents and the Schedule MASON employs a specific usage of the term agent: a computational entity which may | ||
+ | be scheduled to perform some action, and which can manipulate the environment. Note that we do not explicitly | ||
+ | state that the agent is physically in the environment, | ||
+ | it may be; in this case we would refer to the agent as an | ||
+ | embodied agent. Agents are brains, and do not need to be | ||
+ | bodies. MASON does not schedule events on the schedule to send to an agent; rather it schedules the agent itself. | ||
+ | |||
+ | Fields MASON' | ||
+ | with locations in some notional space. Many of these fields | ||
+ | are little more than wrappers for simple 2D or 3D arrays. | ||
+ | Others provide sparse relationships. An object may exist in | ||
+ | multiple fields at one time (and, for some fields, in the same | ||
+ | field more than once). The use of fields is entirely optional. | ||
+ | |||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
+ | ====doing==== | ||
+ | MASON was developed by the | ||
+ | Evolutionary Computation Laboratory (ECLab) and the Centre for Social Complexity at | ||
+ | George Mason University. | ||
+ | dynamically charting (e.g. histograms, line graphs, pie charts, etc) model output during a | ||
+ | simulation, or allow GIS data to be imported / exported (Luke et al., 2004). However, the | ||
+ | developers of MASON are continuing to develop further functionality, | ||
+ | will develop and contribute tools themselves (e.g. GIS integration). Unfortunately there is | ||
+ | little technical documentation and a relatively small user group in comparison to some of the | ||
+ | other systems identified within this paper. However, how-to documentation, | ||
+ | models (e.g. the seminal heat bugs example, network models, etc), and several publications | ||
+ | detailing the implementation and / or application of MASON are available for a prospective | ||
+ | modeller to evaluate the system further (MASON, 2006). | ||
+ | |||
+ | |||
+ | ====MASON: A Multiagent Simulation Environment==== | ||
+ | |S. Luke and C. Cioffi-Revilla and L. Panait and K. Sullivan and G. Balan, 2005|Simulation|[[http:// | ||
+ | |||
+ | \\ | ||
+ | |||
+ | **Abstract: | ||
+ | to serve as the basis for a wide range of multi-agent simulation tasks ranging from swarm robotics | ||
+ | to machine learning to social complexity environments. MASON carefully delineates between model | ||
+ | and visualization, | ||
+ | to change platforms mid-run. This paper describes the MASON system, its motivation, and its basic | ||
+ | architectural design. It then compares MASON to related multi-agent libraries in the public domain, | ||
+ | and discusses six applications of the system built over the past year which suggest its breadth of | ||
+ | utility. | ||
+ | |||
+ | \\ | ||
+ | |||
+ | MASON was designed as a smaller and faster alternative to Repast, with a clear focus on computationally | ||
+ | demanding models with many agents executed over many | ||
+ | iterations. Design appears to have been driven largely by | ||
+ | the objectives of maximizing execution speed and assuring complete reproducibility across hardware. The abilities | ||
+ | to detach and re-attach graphical interfaces and to stop a | ||
+ | simulation and move it among computers are considered | ||
+ | a priority for long simulations. MASON’s developers ap- | ||
+ | pear intent on including only general, not domain-specific, | ||
+ | tools. | ||
geopro/pedro/mason.1183435590.txt.gz · Última modificação: 2007/07/03 04:06 por pedro