Course topics
Topics are subject to change and rearrangement! (We may also not get through all the topics listed)
Lecture slides, links to assignment instructions, and readings will be posted in each topic as we get to them.
1. Introduction to agent-based models (ABMs)
Topics covered: overview of basic concepts, coding intro, why model?, intro to ABMs and their pros/cons, philosophy of complex systems, emergent behavior/phenomena, classic examples in biological, social, and physical systems, etc.
- Lecture 1: Introduction and overview
- Lecture 2: Introduction to Agent-Based Models
- Slides - how to choose a modeling framework, intro to ABMs
- Readings
- Lab 1: Introduction to ABMs, NetLogo, and Python
- Lecture 3: Case study: Modeling the Ancestral Puebloan communities of Long House Valley (the Artificial Ancestral Puebloan Project (AAP))
- Slides
- Readings
- Papers on the AAP (see also the references in the slides)
- Intro to the PyCX library for simulating complex systems models in Python
2. Cellular automata
Topics covered: overview of basic cellular automata (CA) concepts, emergent behavior, classes of CA, examples of CA (e.g. Conway’s Game of Life), coding and analysis methods for CA, applications
- Lecture 4: Intro to cellular automata
- Slides
- Readings
- Miscellaneous interesting things
- Lecture 5: Cellular automata dynamics
- Lab 2: Cellular Automata and Intro to Networks
3. Networks
- Lecture 6: Introduction to Networks
- Lecture 7: Random networks, dynamics on networks and of networks
- Lecture 8: Adaptive networks, mean-field approximation of networks
4. Parameter sweeps, sampling, and sensitivity analysis
- Lecture 9: Sampling, visualization, uncertainty
- Slides
- Readings
- PARTE (Properties, Actions, Rules, Time, Environment) framework
- ODD (Overview, Design concepts, and Details) Protocol
- Yang Y, Roux AV, Auchincloss AH, Rodriguez DA, Brown DG. A spatial agent-based model for the simulation of adults’ daily walking within a city . American journal of preventive medicine. 2011 Mar 1;40(3):353-61.
- Lecture 10: Sensitivity analysis
- Lecture 11: Model Analysis
- Lab 4: Parameter sampling and sensitivity
5. Advanced/additional topics
- Potential Topics:
- parameter estimation, MCMC
- parameter identifiability & uncertainty
- model comparison (e.g. AIC/BIC/etc)
- decision/game theory
- parallelization in Python
- classic example complex systems models (Kuramoto oscillators, Sugarscape, etc.)
- more advanced environments (e.g. GIS)
- active subspaces, dimension reduction
- Lecture 12: Parallel Computing
- Lecture 13: Introduction to parameter estimation
- Lecture 14: Introduction to Bayesian parameter estimation & MCMC
- Lecture 15: Identifiability
- Lecture 16: Game & decision theory
- Lecture 17: ABM Environments
- Slides
- Intro to mapping with Folium
- Predator-prey bubble tea example
- Mapping tutorials
- Making 3 Easy Maps in Python - the point map example here may be particularly useful for visualizing agents on a map (where you can define their x,y locations in terms of e.g. latitude and longitude). This uses the module
folium
, which is one of the common mapping packages.
- Making maps in Basemap This is another package for mapping, and you can similarly do point maps and plot other features on the map. The syntax for
basemap
seems pretty straightforward, so this may be a useful package to consider also. There’s an additional tutorial for Basemap here also.
- Lecture 18: Model selection and the AIC
- Lecture 19: Clustering methods
Additional useful info
Useful links and extra readings will be posted here.
Coding and typesetting resources
Overall Coding Resources
ABM Resources
- Modules/packages for agent-based modeling
Math Resources
Books used in the course
Interesting papers and extra readings