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
- Slides - what are models,
why model, emergent behavior, complex systems
- Emoji simulator: forest
fire model, blank model,
more models!
- Readings
- To Do: Get comfortable with python if you haven’t used it much! You
can use Google Colab to
get started or use your own python installation if you prefer. See the
Additional useful info section below for tutorials and more info!
- Lecture 2: Introduction to Agent-Based Models
- Lecture 3: Case study: Modeling the Ancestral Puebloan communities
of Long House Valley (the Artificial Ancestral Puebloan Project (AAP))
- Readings
- Papers on the AAP (see also the references in the slides)
- Lab 1: Introduction to ABMs, NetLogo, and Python
- Intro to the PyCX library for simulating complex systems models in
Python
- Extra Notes: Chaos Game!
- Interesting links & extra things
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
- 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
- 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: Analyzing Model Outputs
- Lecture 12: Parallel Computing
- Additional tools for more advanced parallel computing:
- Lab 4: Parameter sampling and sensitivity
5. Parameter estimation from data
Topics covered: parameter estimation, MCMC, parameter identifiability
& uncertainty, model comparison (e.g. AIC/BIC/etc)
- Lecture 13: Introduction to parameter estimation
- Thinking about the challenges of linking data with models, and what
these approaches can (and can’t) tell you
- Maximum likelihood methods, optimization basics
- Lecture 14: Introduction to Bayesian parameter estimation & MCMC
- Lecture 15: Identifiability
- Lecture 16: Model selection and the AIC
6. Advanced/additional topics
- Potential Topics:
- decision/game theory
- chaos and fractals
- classic example complex systems models (Kuramoto oscillators,
Sugarscape, etc.)
- more advanced environments (e.g. putting ABMs on GIS)
- active subspaces, dimension reduction
- model selection
- clustering, PCA
- machine learning and complex systems
- webpage scraping, basics of API’s, pulling data from various places
(social media, google, government sources)
- Lecture 17 and 18: Machine learning and AI
- Lecture 19: ABM Environments and Mapping/GIS
- 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 20: Game & decision theory
Additional useful info
Useful links and extra readings will be posted here. (Some of these
are a bit outdated now but keeping them just in case they’re
helpful!)
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