SlideShare a Scribd company logo
Introduction to Computing for
Complex Systems (Session XIII)!




    Eric Provins   Daniel Martin Katz!
Goals For Today!

Multiple Variable Models!

Simple Birth Rates Revisited !


Automation III --- !
   "  "   "The Behavior Space!
Multiple Variable
         Models!

•  We’ve seen that Netlogo
   provides several ways to output
   data and run the model so that
   we can get statistical
   information.!
Multiple Variable
        Models!

•  What if there are several
   variables in a model? Will this
   increase the time it would take
   to test the parameter space?!
Simple Birth Rates!

•  Open the Simple Birth rate
   model!

•  There are three variables,
   carrying capacity, blue fertility
   rate, and red fertility rate.!
!
Simple Birth Rates!

•  The Blues and Reds reproduce
   according to their fertility rate
   and the entire population is
   limited by the carrying capacity.!
Simple Birth Rates!
•  There is already an output
   window on the bottom of the
   screen that will show how long
   it took for one of the colors to
   go extinct.!

•  Use the “run experiment” button
   to start the model. Run the
   model a few times, varying the
   fertility rates.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Simple Birth Rates!

•  The output is relatively simple,
   but it would probably take a
   long time to move through each
   combination of blue and red
   fertility rates, especially if you
   wanted to run the model more
   than once for each combination. !
Simple Birth Rates!

•  We could also vary the carrying
   capacity, which would also
   increase the amount of time it
   would take to run these models
   by hand.!
Automated Analysis !
  of Model Runs!
      Part III!



            T-X!
The Behavior Space!
What is BehaviorSpace?!

•  “BehaviorSpace is a software
   tool integrated with NetLogo
   that allows you to perform
   experiments with models.”!
!
!
•  http://ccl.northwestern.edu/
   netlogo/docs/behaviorspace.html !
What is BehaviorSpace?!

•  “Behavior Space runs a model
   many times, systematically
   varying the model's settings and
   recording the results of each
   model run. This process is
   sometimes called "parameter
   sweeping”!
What is BehaviorSpace?!

•  It lets you explore the model's
   "space" of possible behaviors
   and determine which
   combinations of settings cause
   the behaviors of interest.”!
Why Behavior Space is
         Useful!
•  BehaviorSpace automates the
   movement of the model runs
   through each combination of
   variables, allowing us to move
   quickly across the parameters
   we wish to test.!
Why Behavior Space is
         Useful!

•  It also outputs the information
   into a .csv file so that we can
   use statistical software to
   analyze the data.!
Why Behavior Space is
         Useful!

•  So if you have a lot of model
   runs, multiple variables, or
   want to analyze model data with
   statistical software, then
   BehaviorSpace may be of use to
   you!!
Why Behavior Space !
         is Useful!

•  Let’s see how BehaviorSpace
   works.!
!
•  Go to the Tools scroll down
   menu and click BehaviorSpace.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Working with the !
      Behavior Space!

•  Now you should have the
   experiment page.!
!
•  You will see the options New,
   Edit, Duplicate, Delete, and Run.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Working with the !
     Behavior Space!

•  The New button creates a new
   experiment, and brings you to
   the page where you will be able
   to specify the parameters of the
   model you wish to test and how
   many times you wish the model
   to run per combination.!
Working with the !
     Behavior Space!

•  The Edit button allows you to
   edit any experiment that is saved
   in the BehaviorSpace experiment
   list. !

!
Working with the !
     Behavior Space!

•  If you save your Netlogo
   program, it will also save your
   experiments, so you do not have
   to write out the parameters you
   wish to test each time you turn
   off Netlogo.!
Working with the !
     Behavior Space!

•  The Duplicate button allows you
   to create another copy of an
   experiment that will be saved in
   the experiments box of
   BehaviorSpace.!
Working with the !
     Behavior Space!

•  The Delete button permanently
   deletes an experiment from the
   experiments box.!
Working with the !
     Behavior Space!

•  The Run button begins the
   process of running your
   experiment and outputting the
   data into a file.!
Experiment Setup!
•  Let’s go to the experimental setup!

•  Click the ‘New’ button.!

•  You should now see a screen that
   will allow you to detail the
   variables you wish to test and
   how the program should run the
   experiment.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Setting up an
       Experiment!
•  The Experimental setup screen
   has a title box, a variables box,
   an area that allows you to
   control how many times the
   model should run per
   combination, and boxes that
   specify any commands you wish
   the program to run when the
   setup or go button is pressed.!
!
Setting up an
!       Experiment!
•  There are also boxes that allow
   you to detail any conditions
   that should stop the running of
   the program and any commands
   that should go into effect at
   the end of the model run.!

•  It also includes the ability to
   determine a limit to how many
   steps the model will run for.!
Setting up an
        Experiment!
•  Let’s take an in depth look at
   each of these features.!

•  I will give the title “Experiment
   #1: Blue & Red Fertility [0 1
   10]” to my experiment and move
   on to the variables box.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Variables Box!
•  The variables box includes
   variables that come from
   sliders, switches, and choosers
   (draw down menus) on the
   interface. It can also include
   variables found within the
   program code.!
Variables Box!

•  The user is be able to specify
   the boundaries of the parameter
   space they wish BehaviorSpace
   to “sweep” through. This is done
   by writing in the variables and
   the values the user wishes to
   test.!
Variables Box!
•  BehaviorSpace keeps variables
   higher up in the box constant as
   it cycles through the lower
   variables’ value settings, only
   moving the higher variables to
   their next setting after
   finishing a complete cycle
   through the possible
   alternatives in the variables
   below it.!
Variables Box!
•  If the runs are taking place in
   parallel, the output may not
   exactly mirror this process.!

•  Regardless of the case, no
   matter where you locate a
   variable, the entire parameter
   space for all the variables you
   define in the box will be tested.!
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!

•  Assigning a value to a variable:!

•  Ex: ["blue-fertility" 10] This will
   give the variable blue-fertility
   the value of 10 in all of the
   model runs.!
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!
•  Assigning two values to a
   variable (listing values)!
!
•  Ex: ["blue-fertility" 1 2] gives the
   variable blue-fertility the value
   of 1 and runs through all other
   combinations (if there are other
   variables), and then moves on to
   2 and runs through all the
   other possible combinations
   with red-fertility and carrying
   capacity.!
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!
•  Assigning multiple values to a
   variable (listing values)!

•  Ex: ["blue-fertility" 1 2 4 7] Runs
   through 1 and 2 and also does
   4 and then 7. !
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!

•  Using an interval to assign
   multiple values!

•  The interval must be inside a set
   of brackets!
!
How to’s!

•  Ex: ["blue-fertility" [1 1 3]] This
   example runs through the
   values 1 through 3, moving at
   an increment of 1. Therefore, it
   will assign the value 1, 2, and 3
   to the variable as it moves
   through the different
   combinations.!
!
How to’s!
•  When assigning values to a
   variable with an interval, be
   careful to only include the
   numbers you wish to test. The
   interval is inclusive and will test
   all the numbers you specify.!

•  Ex: ["blue-fertility" [0 1 4]] This will give the
   variable the values 0, 1, 2, 3, and 4.!
How to’s!

•  Behavior Space is entirely
   inclusive of the specified range!

•  In other words, Inclusive will
   execute all Parameter Combos in
   the Range!


!
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!

•  Repetitions: The user can select
   how many times Netlogo should
   run a given combination of
   variables!
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!
•  Measure runs using these
   reporters: This is what the
   model will measure and output
   in the data.!


•  Measure runs at every step:
   Checking this means the data
   will include output for each
   step in the model!
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!
•  Setup Commands: The user can
   include commands that will be
   executed in addition to calling
   the ‘to setup’ procedure when
   the setup button is hit.!
How to’s!
•  Go Commands: The user can
   include commands that will be
   executed in addition to calling
   the ‘to go’ procedure when the
   go button is hit.!
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!
•  Stop Conditions: This box
   allows the user to specify
   conditions that would end the
   model run if they were met. !

!
How to’s!
•  While there may be many reasons
   a modeler would want to do
   this, one reason could be to
   prevent illogical or undesirable
   combinations of variables from
   occurring while the program
   sweeps through parameter
   space. !
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!

•  Final Commands: The user can
   specify commands to run at the
   end of a model run.!
ICPSR - Complex Systems Computing - Session 7 - 2012
How to’s!
•  Time Limit: The user can specify
   how many ticks a given
   combination of variables will be
   allowed to run before stopping.!

•  In certain instances model run
   will go on forever … need to
   have a time limit in that case!
ICPSR - Complex Systems Computing - Session 7 - 2012
Simple Birth Rates in
     the Behavior Space!

!
•  OK, now let’s run the model. We
   will put a time limit of 100 ticks
   for each model run.!
Enter!
these !
Values !
As !
shown!
!
Running BehaviorSpace!
•  Select the experiment we just
   created and hit “Run”.!
•  You will now be given the option
   to select if your data will be
   put in a spreadsheet or in a
   table.!
•  The data file will be saved as a
   comma separated values (.csv)
   file.!
Parallelization!
•  You will also be given the option
   to choose how many experiments
   should run in parallel.!

•  By default, Netlogo will run
   one experiment for each core
   processor in your computer.!
Parallelization!
!
•  Only one experiment will be
   shown on screen, the others
   will be run in the background.!

•  You should individually test
   what your computer can handle,
   since many parallel runs can
   slow down your computer.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Increasing the Speed!

•  After making those choices the
  model will begin to run.!

•  You will have the option to turn
   off viewing the plot and
   updating the visualization,
   plots, and monitors. This will
   help increase the speed of the
   runs.!
Increasing the Speed!

•  You can also use the speed
   slider, which determines how !
  many times the image should be
   updated.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Output!
•  Spreadsheet data!
!
•  At the top, the data sheet will
   include the model and experiment
   name, and the size of the world.!

•  The commas will allow you to
   demarcate where the columns
   should be in the program you will
   use to analyze the data.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Output!
•  Tables (might be easier to work with in
    outside statistical software)!
!
•  At the top, the data sheet will
   include the model and experiment
   name, and the size of the world.!

•  The commas will allow you to
   demarcate where the columns
   should be in the program you will
   use to analyze the data.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Output!
•  You will probably want to edit
   the file before sorting it. The
   information at the top can be
   copied and pasted elsewhere if
   you need it. !

•  The actual output from the
   model runs will be below.!
ICPSR - Complex Systems Computing - Session 7 - 2012
Output!
•  Once you have edited your file,
   you will be able to sort the data
   as you wish. !
  "Example in Excel Data --> TexttoColumns!
  "Then select delimited and by comma!
 !
•  As we saw before, the output may
   not be in the order, since many
   runs may have been running in
   parallel.!
Output!

•  Once your data is in a useful
   format, you can begin to analyze
   it! !
ICPSR - Complex Systems Computing - Session 7 - 2012
In Summary!
•  We have seen that
   BehaviorSpace can run through
   the parameter space much
   faster than having a human go
   by hand through all the
   different variable combinations.!
In Summary!
!
•  The previous data file took a
   little more than 5 minutes to
   create and output.!
There are Limitations!
•  But it moved in increments of
   1.0 and the carrying capacity
   remained constant across the
   different combinations. Most
   importantly, the model was
   limited to 100 ticks, which may
   not be enough time to witness
   the dynamics the model is
   supposed to display.!
There are Limitations!

•  By adding these other features
   we will see how quickly the
   length of time required to run
   the models would grow if we
   added smaller increments of
   movement across the parameter
   space and the extra carrying
   capacity variable.!
Just
40,814,201
Runs to Go
Limitations!
•  40,814,201 runs is a lot!
•  Let’s assume (probably
   incorrectly) that it takes 1 sec /
   run (Including all the steps in
   one run of the model)!

•  40814201 / 60 secs / 60 mins /
   24 hours / 7 days = 67.484
   weeks, 1.298 years!
!
Limitations!
•  That’s not including parallel
   runs, but even if you could run
   100 in parallel, it would still
   take a considerable amount of
   time!

•  Thus, full parameter sweep
   Probably Not feasible in
   Netlogo!
Limitations!
•  One option would be to limit the
   parameter space to an area of
   specific interest. !

•  For example, the dynamics of
   two competing groups with
   varying fertility rates is not
   particularly interesting when
   the carrying capacity is zero
   from the outset. !
Limitations!
•  Netlogo was mainly designed for
   visualizations and as an
   introductory language.!

•  If you write good modular code,
   you will be able to convert your
   model into another language that
   can perform massively parallel
   runs more efficiently than
   Netlogo (e.g. Python or C++)!

More Related Content

PDF
ICPSR - Complex Systems Models in the Social Sciences - Lab Session 6 - Profe...
PPTX
Waffle: A feature switch/flag/toggle application for Django
PDF
Understanding and predicting biological complex system.
PDF
ICPSR - Complex Systems Models in the Social Sciences - Lab Session 7, 8 - Pr...
PPTX
Datamining with R
PPTX
Programming with R in Big Data Analytics
PDF
Introduction to r
PPTX
Programming Environment in Matlab
ICPSR - Complex Systems Models in the Social Sciences - Lab Session 6 - Profe...
Waffle: A feature switch/flag/toggle application for Django
Understanding and predicting biological complex system.
ICPSR - Complex Systems Models in the Social Sciences - Lab Session 7, 8 - Pr...
Datamining with R
Programming with R in Big Data Analytics
Introduction to r
Programming Environment in Matlab

Similar to ICPSR - Complex Systems Computing - Session 7 - 2012 (20)

PPTX
Matlab: Programming Environment
PDF
Malab tutorial
PDF
MATLAB for Technical Computing
PPTX
R - Get Started I - Sanaitics
PDF
Open Machine Learning
PPTX
An Introduction to Simulation in the Social Sciences
PPTX
Power point presentation on loading and handling data in R
PPTX
R ppt for skejsjsjsjjssjskskskskskksk.pptx
PDF
Introduction to MATrices LABoratory (MATLAB) as Part of Digital Signal Proces...
PPT
An introduction to R is a document useful
PPTX
Introduction to scientific computing with matlab.pptx
PDF
Introduction to R programming
PDF
Mathematica for Physicits
PDF
The Basics of MATLAB
PDF
An ntutorial[1]
PDF
spss Amos 20 user_guide
PPTX
Getting_Start_MATLAB_BVM1.pptx
PDF
Introduction to the R Statistical Computing Environment
PPTX
Matlab Workshop Presentation
PDF
A Profile of Today's SBML-Compatible Software
Matlab: Programming Environment
Malab tutorial
MATLAB for Technical Computing
R - Get Started I - Sanaitics
Open Machine Learning
An Introduction to Simulation in the Social Sciences
Power point presentation on loading and handling data in R
R ppt for skejsjsjsjjssjskskskskskksk.pptx
Introduction to MATrices LABoratory (MATLAB) as Part of Digital Signal Proces...
An introduction to R is a document useful
Introduction to scientific computing with matlab.pptx
Introduction to R programming
Mathematica for Physicits
The Basics of MATLAB
An ntutorial[1]
spss Amos 20 user_guide
Getting_Start_MATLAB_BVM1.pptx
Introduction to the R Statistical Computing Environment
Matlab Workshop Presentation
A Profile of Today's SBML-Compatible Software
Ad

More from Daniel Katz (20)

PDF
Legal Analytics versus Empirical Legal Studies - or - Causal Inference vs Pre...
PDF
Can Law Librarians Help Law Become More Data Driven ? An Open Question in Ne...
DOCX
Why We Are Open Sourcing ContraxSuite and Some Thoughts About Legal Tech and ...
PDF
Fin (Legal) Tech – Law’s Future from Finance’s Past (Some Thoughts About the ...
PDF
Exploring the Physical Properties of Regulatory Ecosystems - Professors Danie...
PDF
Law + Complexity & Prediction: Toward a Characterization of Legal Systems as ...
PDF
Building Your Personal (Legal) Brand - Some Thoughts for Law Students and Oth...
PDF
Measure Twice, Cut Once - Solving the Legal Profession Biggest Challenges Tog...
PDF
Artificial Intelligence and Law - 
A Primer
PDF
Machine Learning as a Service: #MLaaS, Open Source and the Future of (Legal) ...
PDF
Technology, Data and Computation Session @ The World Bank - Law, Justice, and...
PDF
LexPredict - Empowering the Future of Legal Decision Making
PDF
{Law, Tech, Design, Delivery} Observations Regarding Innovation in the Legal ...
PDF
Legal Analytics Course - Class 11 - Network Analysis and Law - Professors Dan...
PDF
Legal Analytics Course - Class 12 - Data Preprocessing using dPlyR - Professo...
PDF
Legal Analytics Course - Class 10 - Information Visualization + DataViz in R ...
PDF
Legal Analytics Course - Class #4 - Github and RMarkdown Tutorial - Professor...
PDF
Legal Analytics Course - Class 9 - Clustering Algorithms (K-Means & Hierarch...
PDF
Legal Analytics Course - Class 8 - Introduction to Random Forests and Ensembl...
PDF
Legal Analytics Course - Class 7 - Binary Classification with Decision Tree L...
Legal Analytics versus Empirical Legal Studies - or - Causal Inference vs Pre...
Can Law Librarians Help Law Become More Data Driven ? An Open Question in Ne...
Why We Are Open Sourcing ContraxSuite and Some Thoughts About Legal Tech and ...
Fin (Legal) Tech – Law’s Future from Finance’s Past (Some Thoughts About the ...
Exploring the Physical Properties of Regulatory Ecosystems - Professors Danie...
Law + Complexity & Prediction: Toward a Characterization of Legal Systems as ...
Building Your Personal (Legal) Brand - Some Thoughts for Law Students and Oth...
Measure Twice, Cut Once - Solving the Legal Profession Biggest Challenges Tog...
Artificial Intelligence and Law - 
A Primer
Machine Learning as a Service: #MLaaS, Open Source and the Future of (Legal) ...
Technology, Data and Computation Session @ The World Bank - Law, Justice, and...
LexPredict - Empowering the Future of Legal Decision Making
{Law, Tech, Design, Delivery} Observations Regarding Innovation in the Legal ...
Legal Analytics Course - Class 11 - Network Analysis and Law - Professors Dan...
Legal Analytics Course - Class 12 - Data Preprocessing using dPlyR - Professo...
Legal Analytics Course - Class 10 - Information Visualization + DataViz in R ...
Legal Analytics Course - Class #4 - Github and RMarkdown Tutorial - Professor...
Legal Analytics Course - Class 9 - Clustering Algorithms (K-Means & Hierarch...
Legal Analytics Course - Class 8 - Introduction to Random Forests and Ensembl...
Legal Analytics Course - Class 7 - Binary Classification with Decision Tree L...
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
A Presentation on Artificial Intelligence
PDF
cuic standard and advanced reporting.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Electronic commerce courselecture one. Pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
KodekX | Application Modernization Development
Per capita expenditure prediction using model stacking based on satellite ima...
A Presentation on Artificial Intelligence
cuic standard and advanced reporting.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Network Security Unit 5.pdf for BCA BBA.
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Electronic commerce courselecture one. Pdf
Machine learning based COVID-19 study performance prediction
The Rise and Fall of 3GPP – Time for a Sabbatical?
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
MYSQL Presentation for SQL database connectivity
Advanced methodologies resolving dimensionality complications for autism neur...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KodekX | Application Modernization Development

ICPSR - Complex Systems Computing - Session 7 - 2012

  • 1. Introduction to Computing for Complex Systems (Session XIII)! Eric Provins Daniel Martin Katz!
  • 2. Goals For Today! Multiple Variable Models! Simple Birth Rates Revisited ! Automation III --- ! " " "The Behavior Space!
  • 3. Multiple Variable Models! •  We’ve seen that Netlogo provides several ways to output data and run the model so that we can get statistical information.!
  • 4. Multiple Variable Models! •  What if there are several variables in a model? Will this increase the time it would take to test the parameter space?!
  • 5. Simple Birth Rates! •  Open the Simple Birth rate model! •  There are three variables, carrying capacity, blue fertility rate, and red fertility rate.! !
  • 6. Simple Birth Rates! •  The Blues and Reds reproduce according to their fertility rate and the entire population is limited by the carrying capacity.!
  • 7. Simple Birth Rates! •  There is already an output window on the bottom of the screen that will show how long it took for one of the colors to go extinct.! •  Use the “run experiment” button to start the model. Run the model a few times, varying the fertility rates.!
  • 9. Simple Birth Rates! •  The output is relatively simple, but it would probably take a long time to move through each combination of blue and red fertility rates, especially if you wanted to run the model more than once for each combination. !
  • 10. Simple Birth Rates! •  We could also vary the carrying capacity, which would also increase the amount of time it would take to run these models by hand.!
  • 11. Automated Analysis ! of Model Runs! Part III! T-X!
  • 13. What is BehaviorSpace?! •  “BehaviorSpace is a software tool integrated with NetLogo that allows you to perform experiments with models.”! ! ! •  http://ccl.northwestern.edu/ netlogo/docs/behaviorspace.html !
  • 14. What is BehaviorSpace?! •  “Behavior Space runs a model many times, systematically varying the model's settings and recording the results of each model run. This process is sometimes called "parameter sweeping”!
  • 15. What is BehaviorSpace?! •  It lets you explore the model's "space" of possible behaviors and determine which combinations of settings cause the behaviors of interest.”!
  • 16. Why Behavior Space is Useful! •  BehaviorSpace automates the movement of the model runs through each combination of variables, allowing us to move quickly across the parameters we wish to test.!
  • 17. Why Behavior Space is Useful! •  It also outputs the information into a .csv file so that we can use statistical software to analyze the data.!
  • 18. Why Behavior Space is Useful! •  So if you have a lot of model runs, multiple variables, or want to analyze model data with statistical software, then BehaviorSpace may be of use to you!!
  • 19. Why Behavior Space ! is Useful! •  Let’s see how BehaviorSpace works.! ! •  Go to the Tools scroll down menu and click BehaviorSpace.!
  • 21. Working with the ! Behavior Space! •  Now you should have the experiment page.! ! •  You will see the options New, Edit, Duplicate, Delete, and Run.!
  • 23. Working with the ! Behavior Space! •  The New button creates a new experiment, and brings you to the page where you will be able to specify the parameters of the model you wish to test and how many times you wish the model to run per combination.!
  • 24. Working with the ! Behavior Space! •  The Edit button allows you to edit any experiment that is saved in the BehaviorSpace experiment list. ! !
  • 25. Working with the ! Behavior Space! •  If you save your Netlogo program, it will also save your experiments, so you do not have to write out the parameters you wish to test each time you turn off Netlogo.!
  • 26. Working with the ! Behavior Space! •  The Duplicate button allows you to create another copy of an experiment that will be saved in the experiments box of BehaviorSpace.!
  • 27. Working with the ! Behavior Space! •  The Delete button permanently deletes an experiment from the experiments box.!
  • 28. Working with the ! Behavior Space! •  The Run button begins the process of running your experiment and outputting the data into a file.!
  • 29. Experiment Setup! •  Let’s go to the experimental setup! •  Click the ‘New’ button.! •  You should now see a screen that will allow you to detail the variables you wish to test and how the program should run the experiment.!
  • 31. Setting up an Experiment! •  The Experimental setup screen has a title box, a variables box, an area that allows you to control how many times the model should run per combination, and boxes that specify any commands you wish the program to run when the setup or go button is pressed.! !
  • 32. Setting up an ! Experiment! •  There are also boxes that allow you to detail any conditions that should stop the running of the program and any commands that should go into effect at the end of the model run.! •  It also includes the ability to determine a limit to how many steps the model will run for.!
  • 33. Setting up an Experiment! •  Let’s take an in depth look at each of these features.! •  I will give the title “Experiment #1: Blue & Red Fertility [0 1 10]” to my experiment and move on to the variables box.!
  • 35. Variables Box! •  The variables box includes variables that come from sliders, switches, and choosers (draw down menus) on the interface. It can also include variables found within the program code.!
  • 36. Variables Box! •  The user is be able to specify the boundaries of the parameter space they wish BehaviorSpace to “sweep” through. This is done by writing in the variables and the values the user wishes to test.!
  • 37. Variables Box! •  BehaviorSpace keeps variables higher up in the box constant as it cycles through the lower variables’ value settings, only moving the higher variables to their next setting after finishing a complete cycle through the possible alternatives in the variables below it.!
  • 38. Variables Box! •  If the runs are taking place in parallel, the output may not exactly mirror this process.! •  Regardless of the case, no matter where you locate a variable, the entire parameter space for all the variables you define in the box will be tested.!
  • 40. How to’s! •  Assigning a value to a variable:! •  Ex: ["blue-fertility" 10] This will give the variable blue-fertility the value of 10 in all of the model runs.!
  • 42. How to’s! •  Assigning two values to a variable (listing values)! ! •  Ex: ["blue-fertility" 1 2] gives the variable blue-fertility the value of 1 and runs through all other combinations (if there are other variables), and then moves on to 2 and runs through all the other possible combinations with red-fertility and carrying capacity.!
  • 44. How to’s! •  Assigning multiple values to a variable (listing values)! •  Ex: ["blue-fertility" 1 2 4 7] Runs through 1 and 2 and also does 4 and then 7. !
  • 46. How to’s! •  Using an interval to assign multiple values! •  The interval must be inside a set of brackets! !
  • 47. How to’s! •  Ex: ["blue-fertility" [1 1 3]] This example runs through the values 1 through 3, moving at an increment of 1. Therefore, it will assign the value 1, 2, and 3 to the variable as it moves through the different combinations.! !
  • 48. How to’s! •  When assigning values to a variable with an interval, be careful to only include the numbers you wish to test. The interval is inclusive and will test all the numbers you specify.! •  Ex: ["blue-fertility" [0 1 4]] This will give the variable the values 0, 1, 2, 3, and 4.!
  • 49. How to’s! •  Behavior Space is entirely inclusive of the specified range! •  In other words, Inclusive will execute all Parameter Combos in the Range! !
  • 51. How to’s! •  Repetitions: The user can select how many times Netlogo should run a given combination of variables!
  • 53. How to’s! •  Measure runs using these reporters: This is what the model will measure and output in the data.! •  Measure runs at every step: Checking this means the data will include output for each step in the model!
  • 55. How to’s! •  Setup Commands: The user can include commands that will be executed in addition to calling the ‘to setup’ procedure when the setup button is hit.!
  • 56. How to’s! •  Go Commands: The user can include commands that will be executed in addition to calling the ‘to go’ procedure when the go button is hit.!
  • 58. How to’s! •  Stop Conditions: This box allows the user to specify conditions that would end the model run if they were met. ! !
  • 59. How to’s! •  While there may be many reasons a modeler would want to do this, one reason could be to prevent illogical or undesirable combinations of variables from occurring while the program sweeps through parameter space. !
  • 61. How to’s! •  Final Commands: The user can specify commands to run at the end of a model run.!
  • 63. How to’s! •  Time Limit: The user can specify how many ticks a given combination of variables will be allowed to run before stopping.! •  In certain instances model run will go on forever … need to have a time limit in that case!
  • 65. Simple Birth Rates in the Behavior Space! ! •  OK, now let’s run the model. We will put a time limit of 100 ticks for each model run.!
  • 67. Running BehaviorSpace! •  Select the experiment we just created and hit “Run”.! •  You will now be given the option to select if your data will be put in a spreadsheet or in a table.! •  The data file will be saved as a comma separated values (.csv) file.!
  • 68. Parallelization! •  You will also be given the option to choose how many experiments should run in parallel.! •  By default, Netlogo will run one experiment for each core processor in your computer.!
  • 69. Parallelization! ! •  Only one experiment will be shown on screen, the others will be run in the background.! •  You should individually test what your computer can handle, since many parallel runs can slow down your computer.!
  • 71. Increasing the Speed! •  After making those choices the model will begin to run.! •  You will have the option to turn off viewing the plot and updating the visualization, plots, and monitors. This will help increase the speed of the runs.!
  • 72. Increasing the Speed! •  You can also use the speed slider, which determines how ! many times the image should be updated.!
  • 74. Output! •  Spreadsheet data! ! •  At the top, the data sheet will include the model and experiment name, and the size of the world.! •  The commas will allow you to demarcate where the columns should be in the program you will use to analyze the data.!
  • 76. Output! •  Tables (might be easier to work with in outside statistical software)! ! •  At the top, the data sheet will include the model and experiment name, and the size of the world.! •  The commas will allow you to demarcate where the columns should be in the program you will use to analyze the data.!
  • 78. Output! •  You will probably want to edit the file before sorting it. The information at the top can be copied and pasted elsewhere if you need it. ! •  The actual output from the model runs will be below.!
  • 80. Output! •  Once you have edited your file, you will be able to sort the data as you wish. ! "Example in Excel Data --> TexttoColumns! "Then select delimited and by comma! ! •  As we saw before, the output may not be in the order, since many runs may have been running in parallel.!
  • 81. Output! •  Once your data is in a useful format, you can begin to analyze it! !
  • 83. In Summary! •  We have seen that BehaviorSpace can run through the parameter space much faster than having a human go by hand through all the different variable combinations.!
  • 84. In Summary! ! •  The previous data file took a little more than 5 minutes to create and output.!
  • 85. There are Limitations! •  But it moved in increments of 1.0 and the carrying capacity remained constant across the different combinations. Most importantly, the model was limited to 100 ticks, which may not be enough time to witness the dynamics the model is supposed to display.!
  • 86. There are Limitations! •  By adding these other features we will see how quickly the length of time required to run the models would grow if we added smaller increments of movement across the parameter space and the extra carrying capacity variable.!
  • 88. Limitations! •  40,814,201 runs is a lot! •  Let’s assume (probably incorrectly) that it takes 1 sec / run (Including all the steps in one run of the model)! •  40814201 / 60 secs / 60 mins / 24 hours / 7 days = 67.484 weeks, 1.298 years! !
  • 89. Limitations! •  That’s not including parallel runs, but even if you could run 100 in parallel, it would still take a considerable amount of time! •  Thus, full parameter sweep Probably Not feasible in Netlogo!
  • 90. Limitations! •  One option would be to limit the parameter space to an area of specific interest. ! •  For example, the dynamics of two competing groups with varying fertility rates is not particularly interesting when the carrying capacity is zero from the outset. !
  • 91. Limitations! •  Netlogo was mainly designed for visualizations and as an introductory language.! •  If you write good modular code, you will be able to convert your model into another language that can perform massively parallel runs more efficiently than Netlogo (e.g. Python or C++)!