Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior |
geopro:pedro:repast [2008/06/17 18:29] – pedro | geopro:pedro:repast [2010/03/09 14:33] (atual) – pedro |
---|
| |
\\ | \\ |
| |
| |
| {{http://www.leg.ufpr.br/~pedro/figures/barros-city-growth.jpg }} |
| |
| {{ http://www.leg.ufpr.br/~pedro/figures/seggregation-crooks.jpg}} |
| |
There are fixed and flexible components. The fixed are the Engine, Logging, and Interactive and Batch Run Modules. | There are fixed and flexible components. The fixed are the Engine, Logging, and Interactive and Batch Run Modules. |
| |
\\ | \\ |
| |
| |
| |
**Abstract:** The use of simulation/modelling systems can simplify the implementation of agent-based models. Repast is one of the few simulation/modelling software systems that supports the integration of geospatial data especially that of vector-based geometries. This paper provides details about Repast specifically an overview, including its different development languages available to develop agent-based models. Before describing Repast’s core functionality and how models can be developed within it, specific emphasis will be placed on its ability to represent dynamics and incorporate geographical information. Once these elements of the system have been covered, a diverse list of Agent-Based Modelling (ABM) applications using Repast will be presented with particular emphasis on spatial applications utilizing Repast, in particular, those that utilize geospatial data. | **Abstract:** The use of simulation/modelling systems can simplify the implementation of agent-based models. Repast is one of the few simulation/modelling software systems that supports the integration of geospatial data especially that of vector-based geometries. This paper provides details about Repast specifically an overview, including its different development languages available to develop agent-based models. Before describing Repast’s core functionality and how models can be developed within it, specific emphasis will be placed on its ability to represent dynamics and incorporate geographical information. Once these elements of the system have been covered, a diverse list of Agent-Based Modelling (ABM) applications using Repast will be presented with particular emphasis on spatial applications utilizing Repast, in particular, those that utilize geospatial data. |
GeoGraphs can import network landscapes and corresponding territorial outline maps from **shape files**. | GeoGraphs can import network landscapes and corresponding territorial outline maps from **shape files**. |
The original version of GeoGraphs was built for Swarm. | The original version of GeoGraphs was built for Swarm. |
| |
| |
| |
{{http://leg.ufpr.br/~pedro/figures/repast-virtual-mars.jpg}} | {{http://leg.ufpr.br/~pedro/figures/repast-virtual-mars.jpg}} |
| |
| |
| ==== Triggering actions==== |
| I have two trigger actions in my SynapseAgent class as below. Basically when its neuron is excited (when its potential is equal to 30) synapses are activated to conduct the neuronal signal to postsynaptic neurons with a delay of 2 time steps because of axonal delay and processing time of synapses. However, axonal delay can change is some circumstances. In this sense, how can I re-schedule my SynapseAgent's trigger methods? Or, should I remove this synapse agent and create a new one? There is a DefaultTriggerAction class but I am not sure how to use it. Is there sample codes (I couldn't find one). |
| |
| Thanks in advace, |
| |
| Önder. |
| |
| public class SynapseAgent { |
| |
| /** |
| * Initially, it takes 10 time steps to process the signal. |
| */ |
| @Watch(watcheeClassName = "wiringexperiment001.SensoryNeuronAgent", |
| watcheeFieldNames = "potential", |
| query = "linked_from", |
| triggerCondition = "$watchee.getPotential() == 30", |
| whenToTrigger = WatcherTriggerSchedule.LATER, |
| scheduleTriggerDelta = 2d) |
| |
| public void activate() { |
| System.out.println("activate! " + RunEnvironment.getInstance().getCurrentSchedule().getTickCount()); |
| Network<Object> network = WiringExperiment001Utility.getNetwork(this); |
| Iterable<RepastEdge<Object>> outEdges = network.getOutEdges(this); |
| Iterator<RepastEdge<Object>> outEdgeIterator = outEdges.iterator(); |
| while (outEdgeIterator.hasNext()) { |
| RepastEdge<Object> edge = outEdgeIterator.next(); |
| edge.setWeight(30); |
| } |
| } |
| @Watch(watcheeClassName = "wiringexperiment001.SensoryNeuronAgent", |
| watcheeFieldNames = "potential", |
| query = "linked_from", |
| triggerCondition = "$watchee.getPotential() == -70", |
| whenToTrigger = WatcherTriggerSchedule.LATER, |
| scheduleTriggerDelta = 2d) |
| public void deactivate() { |
| System.out.println("deactivate! " + RunEnvironment.getInstance().getCurrentSchedule().getTickCount()); |
| Network<Object> network = WiringExperiment001Utility.getNetwork(this); |
| Iterable<RepastEdge<Object>> outEdges = network.getOutEdges(this); |
| Iterator<RepastEdge<Object>> outEdgeIterator = outEdges.iterator(); |
| while (outEdgeIterator.hasNext()) { |
| RepastEdge<Object> edge = outEdgeIterator.next(); |
| edge.setWeight(-70); |
| } |
| } |
| |
| } |
| |
| |