RePast Tutorial V - PowerPoint PPT Presentation

About This Presentation
Title:

RePast Tutorial V

Description:

public void setup() { super.setup(); Hashtable h1 = new Hashtable ... Batch mode allows the user to rerun the model without using the GUI. 15 ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 26
Provided by: LarsErik9
Category:
Tags: repast | setup | tutorial

less

Transcript and Presenter's Notes

Title: RePast Tutorial V


1
RePast Tutorial V
2
Invitation
  • Einführungsvorlesung
  • Agent-Based Models of Geopolitical Processes
  • Thursday, June 10, 2004, 1715
  • ETH Zentrum, HG, Auditorium maximum
  • Apéro follows

3
Todays agenda
  • More on the GUI mode
  • Probes
  • How to create property descriptors
  • How to create custom actions
  • Introducing the batch mode
  • How to use parameters and parameter files
  • How to collect data
  • ExperIPD

4
Probes
  • Probes allow the user to view and manipulate
    single agents
  • Require the display surface to be probeable
  • Variables become available through introspection
    using the get-set-methods (with set-methods
    necessary for changes)

5
How to create property descriptors
  • To adjust parameters at startup or when the
    simulation is paused
  • Can be applied to both models and agents
  • Setup through the pre-defined descriptors
    variable of SimpleModel

6
How to create property descriptors (cont.)
  • Drop-down list

public void setup() super.setup()
Hashtable h1 new Hashtable() h1.put(new
Integer(0), "Von Neumann") h1.put(new
Integer(1), "Moore") ListPropertyDescriptor
pd new ListPropertyDescriptor("Type",
h1) descriptors.put("Type", pd) public
void setType(int type) this.type type
7
How to create property descriptors (cont.)
  • Numerical slider

public void setup() super.setup()
RangePropertyDescriptor d new
RangePropertyDescriptor("NumAgents",

10, 100,
20) descriptors.put("NumAgents",
d) public void setNumAgents(int numAgents)
this.numAgents numAgents
8
How to create custom actions
  • Modify the simulation while it is running
  • Setup through modelManipulator variable of
    SimpleModel
  • Works for buttons, check boxes, sliders, and
    arbitrary Java components

9
How to create custom actions (cont.)
  • modelManipulator.addButton("Clear Space", new
    ActionListener() public void
    actionPerformed(ActionEvent e)
    space.clear() )
  • modelManipulator.addSlider("Slider", 0, 100,
    10, new SliderListener())
  • modelManipulator.addCheckBox("Show/Hide", new
    CheckBoxListener(), false)
  • modelManipulator.addComponent(Component c)

10
Failed invasion of TFT in ALLD-World
ALLD
ALLD
ALLD
ALLD
4448 4
5.0
3
4
3
3
4
8
ALLD
TFT
ALLD
TFT
3
4
3333 4
3.0
ALLD
ALLD
ALLD
11
Successful invasion of two TFT players in
ALLD-World
ALLD
ALLD
ALLD
ALLD
ALLD
4448 4
5.0
ALLD
TFT
TFT
ALLD
TFT
33312 4
5.25
ALLD
ALLD
ALLD
ALLD
12
Further spread of TFT players in ALLD-World
ALLD
TFT
TFT
ALLD
TFT
TFT
TFT
TFT
ALLD
TFT
TFT
ALLD
13
Separating GUI and batch modes
Model extends SimpleModel
ExperIPD
GraphIPD,GridIPD
ModelGUI extends Model
ModelBatch extends Model
14
Working in batch mode
Batch Model
Parameter File
Data File
Replication Runs
Statistics Package
  • Batch mode allows the user to rerun the model
    without using the GUI

15
Subclassing a batch model
class ModelBatch extends Model Batch variables
(data recorder) setup() super.setup()
params ... buildModel()
super.buildModel() create data recorder
step() super.step() record data
main() init.loadModel(m,
"params.txt", true)
class Model extends SimpleModel model
variables setup() buildModel() step()
main()
Batch mode
Parameter file
16
How to use parameters
  • Different purpose depending on context
  • Batch mode allow variables to be changed through
    parameter files
  • GUI mode show the variables in the control panel

public void setup() super.setup()
params "NumPlayers", "PALLC",
"PTFT", "PATFT", "PALLD",
"PAdapt"
17
How to use parameters (cont.)
  • Requires accessor methods

public void setup() super.setup()
params "Variable", ...public double
getVariable() return value public void
setVariable(double value) this.value
value
Setters only required to allow modification
18
How to use parameter files
  • Different effects depending on context
  • GUI mode set initial values
  • Batch mode allow to run sweeps
  • Usually defined in a file named params.txt
  • Runs the simulation with values of 10, 20, and
    30

runs 1 Variable start 10 end 30
incr 10
19
How to use parameter files (cont.)
  • Multiple parameters
  • Nesting

runs 1 Food start 10 end 30 incr
10 runs 10 MaxAge
start 0 end 40 incr 1

runs 10 Food start 10 end 30
incr 10 MaxAge start 10 end 30
incr 10
20
How to use parameter files (cont.)
  • Additional keywords
  • setdefines a single numerical value as a
    constant for the entire collection of batch runs.
  • set_booleandefines a boolean value (true /
    false).
  • set_stringdefines a string value (without any
    white space).
  • set_list,set_boolean_list, set_string_list
    define a space-separated list of values. A batch
    simulation will iterate through the list.

21
How to collect data
  • Recording of simulation states to
  • archive simulation runs
  • further process the data into third-party
    packages (e.g. Excel, Stata, SPSS, SAS, ...)
  • Output format Text files (comma, space or tab
    delimited)

22
How to collect data (contd)
  • Prepare for the measurements in buildModel()
  • Determine the duration of the simulations
  • setStoppingTime(n)
  • Create the data recorder with output to file
    data.txt
  • recorder new DataRecorder(./data.txt,this)
  • Add numeric streams using introspection
  • recorder.createNumericaDataSource(X,this,compu
    teX)
  • The output can be formatted with x number of
    digits before the decimal point, and y after
  • createNumericaDataSource(X,this,computeX,x,y
    )

23
How to collect data (contd)
  • Using introspection requires a method delivering
    the values
  • It is also possible to use inner classes (see the
    Repast How-To Documentation)
  • The data recorder has to be told to record and to
    write the data to file
  • recorder.record()
  • recorder.writeToFile()
  • The user can change the data delimiter
  • recorder.setDelimiter( )

24
Typical output file
  • Timestamp May 31, 2004 60901 PM
  • Neighborhood 0
  • NumOfTimeSteps 200
  • PALLC 0.25
  • PALLD 0.25
  • PATFT 0.25
  • PAdapt 0.2
  • PTFT 0.25
  • WorldSize 16
  • "run" "tick" "Topology" "RngSeed" "ALLC" "TFT"
    "ATFT" "ALLD" "Payoff"
  • 1 200.0 0 1 0.0 256.0 0.0 0.0 3.0000
  • 2 200.0 0 2 0.0 256.0 0.0 0.0 3.0000
  • 3 200.0 0 3 0.0 256.0 0.0 0.0 3.0000
  • 4 200.0 0 4 0.0 256.0 0.0 0.0 3.0000
  • 59 200.0 2 19 0.0 0.0 0.0 256.0 1.0000
  • 60 200.0 2 20 0.0 0.0 0.0 256.0 1.0000

25
Replication results (N 200)
Number of TFT-dominated runs
Initial number of TFT players
Write a Comment
User Comments (0)
About PowerShow.com