15.08.2015 Views

Introduction to the Modeling and Analysis of Complex Systems

introduction-to-the-modeling-and-analysis-of-complex-systems-sayama-pdf

introduction-to-the-modeling-and-analysis-of-complex-systems-sayama-pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

432 CHAPTER 19. AGENT-BASED MODELSThe former is <strong>to</strong> use ABMs <strong>to</strong> make predictions using validated <strong>the</strong>ories <strong>of</strong> agent behaviors,while <strong>the</strong> latter is <strong>to</strong> explore <strong>and</strong> develop new explanations <strong>of</strong> empirically observedphenomena. These two approaches are different in terms <strong>of</strong> <strong>the</strong> scales <strong>of</strong> <strong>the</strong> known<strong>and</strong> <strong>the</strong> unknown (A uses micro-known <strong>to</strong> produce macro-unknown, while B uses microunknown<strong>to</strong> reproduce macro-known), but <strong>the</strong> important thing is that one <strong>of</strong> those scalesshould be grounded on well-established empirical knowledge. O<strong>the</strong>rwise, <strong>the</strong> simulationresults would have no implications for <strong>the</strong> real-world system being modeled. Of course,a free exploration <strong>of</strong> various collective dynamics by testing hypo<strong>the</strong>tical agent behaviors<strong>to</strong> generate hypo<strong>the</strong>tical outcomes is quite fun <strong>and</strong> educational, with lots <strong>of</strong> intellectualbenefits <strong>of</strong> its own. My point is that we shouldn’t misinterpret outcomes obtained fromsuch explora<strong>to</strong>ry ABMs as a validated prediction <strong>of</strong> reality.In <strong>the</strong> meantime, items 2, 3, 4, <strong>and</strong> 5 in Macal <strong>and</strong> North’s list above are more focusedon <strong>the</strong> technical aspects <strong>of</strong> modeling. They can be translated in<strong>to</strong> <strong>the</strong> following designtasks in actual coding using a programming language like Python:Design tasks you need <strong>to</strong> do when you implement an ABM1. Design <strong>the</strong> data structure <strong>to</strong> s<strong>to</strong>re <strong>the</strong> attributes <strong>of</strong> <strong>the</strong> agents.2. Design <strong>the</strong> data structure <strong>to</strong> s<strong>to</strong>re <strong>the</strong> states <strong>of</strong> <strong>the</strong> environment.3. Describe <strong>the</strong> rules for how <strong>the</strong> environment behaves on its own.4. Describe <strong>the</strong> rules for how agents interact with <strong>the</strong> environment.5. Describe <strong>the</strong> rules for how agents behave on <strong>the</strong>ir own.6. Describe <strong>the</strong> rules for how agents interact with each o<strong>the</strong>r.Representation <strong>of</strong> agents in Python It is <strong>of</strong>ten convenient <strong>and</strong> cus<strong>to</strong>mary <strong>to</strong> defineboth agents’ attributes <strong>and</strong> behaviors using a class in object-oriented programming languages,but in this textbook, we won’t cover object-oriented programming in much detail.Instead, we will use Python’s dynamic class as a pure data structure <strong>to</strong> s<strong>to</strong>re agents’attributes in a concise manner. For example, we can define an empty agent class asfollows:Code 19.1:class agent:pass

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!