agent based modeling and simulation
play

Agent-Based Modeling and Simulation Implementing a First Agent-Based - PowerPoint PPT Presentation

Agent-Based Modeling and Simulation Implementing a First Agent-Based Model Dr. Alejandro Guerra-Hernndez Universidad Veracruzana Centro de Investigacin en Inteligencia Artificial Sebastin Camacho No. 5, Xalapa, Ver., Mxico 91000


  1. Agent-Based Modeling and Simulation Implementing a First Agent-Based Model Dr. Alejandro Guerra-Hernández Universidad Veracruzana Centro de Investigación en Inteligencia Artificial Sebastián Camacho No. 5, Xalapa, Ver., México 91000 mailto:aguerra@uv.mx http://www.uv.mx/personal/aguerra August 2019 - January 2020 Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 1 / 36

  2. Introduction and Objectives Credits ◮ These slides are completely based on the book of Railsback and Grimm [1], chapter 5. ◮ Any difference with this source is my responsibility. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 2 / 36

  3. Introduction and Objectives Introduction Programming in NetLogo ◮ We continue your lessons in NetLogo, but from now on the focus will be on programming and using real ABMs that address real scientific questions. ◮ The Mushroom Hunt model of session 2 was neither very agent-based nor scientific, in ways we discuss in this chapter. ◮ You are going to start actually using an ABM to produce and analyze meaningful output and address scientific questions. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 3 / 36

  4. Introduction and Objectives Objectives Learning Objectives ◮ Understand how to translate a model from its written description in ODD format into NetLogo code. ◮ Understand how to define global, turtle, and patch variables. ◮ Become familiar with NetLogo’s most important primitives, such as ask, set, let, create-turtles, ifelse, and one-of. ◮ Start learning good programming practices, such as making very small changes and constantly checking them, and writing comments in your code. ◮ Produce your own software for the Butterfly model described in session 4. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 4 / 36

  5. ODD and NetLogo Correspondance ODD Protocol ◮ We have introduce de ODD Protocol for descibing an ABM, and as an example provided the ODD formulation of a butterfly hilltopping model. ◮ What do we do when it is time to make a model described in ODD actually run in NegLogo? ◮ It turns out to be quiet straightforward because the organizations of ODD and NetLogo correspond closely. ◮ The major elements of an ODD formulation have corresponding elements in NetLogo. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 5 / 36

  6. ODD and NetLogo Correspondance Purpose ◮ From now on, we will include the ODD descriptions of our ABMs on NetLogo’s Information tab. ◮ These descriptions will the start with a short statement of the model’s overall purpose. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 6 / 36

  7. ODD and NetLogo Correspondance Entities, State Variables, and Scales ◮ Basic entities for ABMs are built into NetLogo: the World of square patches, turtles as mobile agents, and the observer. ◮ The state variables of the turtles and patches, and perhaps other types of agents, are defined via turtles − own [ ] and patches − own [ ] statements. ◮ The variables characterizing the global environment are defined in the globals [ ] statement. ◮ In NetLogo, as in ODD, these variables are defined right at the start. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 7 / 36

  8. ODD and NetLogo Correspondance Process Overview and Scheduling ◮ This, exactly, is represented in the go procedure. ◮ Because a well designed go simply calls other procedures that implement all the submodels, it provides an overview (but not the detailed implementation) of all processes, and ◮ specifies their schedule, that is, the sequence in which they are executed each tick. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 8 / 36

  9. ODD and NetLogo Correspondance Design Concepts ◮ These concepts describe the decisions made in designing a model and so do not appear directly in the NetLogo code. ◮ However, NetLogo provides many primitives and interface tools to support these concepts. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 9 / 36

  10. ODD and NetLogo Correspondance Initialization ◮ This corresponds to an element of every NetLogo program, the setup procedure. ◮ Pushing the setup button should do everything described in the Initialization element of ODD. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 10 / 36

  11. ODD and NetLogo Correspondance Input Data ◮ If the model uses a time series of data to describe the environment, the program can use NetLogo’s input primitives to read the data from a file. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 11 / 36

  12. ODD and NetLogo Correspondance Submodels ◮ The submodels of ODD correspond closely but not exactly to procedures in NetLogo. ◮ Each of a model’s submodels should be coded in a separate NetLogo procedure that is then called from the go procedure. ◮ Sometimes, though, it is convenient to break a complex submodel into several smaller procedures. ◮ These correspondences between ODD and NetLogo make writing a program from a model’s ODD formulation easy and straightforward. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 12 / 36

  13. Butterfly Hilltopping From ODD to NetLogo Hierarchical, step-by-step Development ◮ Program the overall structure of a model first, before starting any of the details. This keeps you from getting lost in the details early. Once the overall structure is in place, add the details one at a time. ◮ Before adding each new element (a procedure, a variable, an algorithm requiring complex code), conduct some basic tests of the existing code and save the file. This way, you always proceed from firm ground: if a problem suddenly arises, it very likely (although not always) was caused by the last little change you made. ◮ First, let us create a new NetLogo program, save it, and include the ODD description of the model on the Information tab. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 13 / 36

  14. Butterfly Hilltopping From ODD to NetLogo Excercise I ◮ Start NetLogo and use File/New to create a new NetLogo program. Use File/Save to save the program under the name butterfly-corridors.nlogo in an appropriate folder. ◮ Go to the page of Grimm’s book: http://www.railsback-grimm-abm-book.com ◮ Download de ODD description of the butterfly model (chapter 4). ◮ Go to the information tab in NetLogo, click the Edit button, and paste in the model description accordingly. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 14 / 36

  15. Butterfly Hilltopping From ODD to NetLogo Excercise II ◮ Let us implement first the entities, state variables, and scales part of the model. ◮ Go to the procedure tab and insert: globals [ ] 1 patches − own [ ] 2 turtles − own [ ] 3 ◮ Click on the check button, there should be no error message. ◮ Since butterflies have no other state variables other than their location, we do not need to define new variables for the turtles. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 15 / 36

  16. Butterfly Hilltopping From ODD to NetLogo Excercise III ◮ But patches have a variable for elevation, insert: patches − own [ elevation ] 1 ◮ NetLogo infers the type of the variables from the first value assigned via the primitive set . ◮ Now, go to the interface tab, click the Settings button, and change "Location of origin" to Corner and Bottom Left; change the number of columns and rows to 149. Turn off the two world wrap tick boxes, so that our model has closed boundaries. ◮ If the world is too big, click again the Settings button, and set the "Patch size" to 3 or so. ◮ Save the changes. Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 16 / 36

  17. Butterfly Hilltopping From ODD to NetLogo Excercise IV ◮ At the end of the existing program, insert this: to setup 1 ca 2 ask patches 3 [ 4 5 ] 6 reset-ticks 7 end 8 ◮ Click the Check button again to make sure the syntax of this code is correct. ◮ Assigning elevations to the patches will create a topographical landscape for the butterflies to move in. What should the landscape look like? Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 17 / 36

  18. Butterfly Hilltopping From ODD to NetLogo Excercise V ◮ The ODD description is incomplete: it simply says we start with a simple artificial topography. ◮ To start it is a good idea to create simple scenarios for easily predicting what should happen. Creating two hills will do: ask patches 1 [ 2 let elev1 100 - distancexy 30 30 3 let elev2 50 - distancexy 120 100 4 5 ifelse elev1 > elev2 6 [ set elevation elev1 ] 7 [ set elevation elev2 ] 8 9 set pcolor scale-color green elevation 0 100 10 ] 11 Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 18 / 36

  19. Butterfly Hilltopping From ODD to NetLogo Excercise VI ◮ Add the corresponding button to setup the model: Dr. Alejandro Guerra-Hernández (UV) Agent-Based Modeling and Simulation ABMS 2019 19 / 36

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend