Please note that most of this material is deprecated. We strongly advise the reader to examine instead the more refined, extensive and better-structured material associated with ongoing MIT course 15.879. This other course includes a systematic introduction to using AnyLogic for Agent-Based Modeling, including hands-on lectures, tutorials, in-class exercises; however, the bootcamp does not cover System Dynamics and Decision Analysis integration material included here. For basic Agent-Based Modeling material, we strongly advise that the reader refer to the material for the MIT course rather than that included below.
This page gives links to slides and video and audio recordings offered as part of a full-semester University of Saskatchewan course on health modeling using AnyLogic, held January-April 2011. This course placed the greatest emphasis on agent-based modeling, but also offered significant amounts of instruction related to System Dynamics and Discrete Event ("Network-Based") modeling. This class was designed to be suitable for those from health science background, and includes tutorials to cover essentials of programming & software engineering, including concepts, syntax, and semantics of Java for AnyLogic users.
The tables below give links to the slides & recordings from the class. I apologize for the limited audio & video quality for these recordings, but hope you will still find them of value. Please note that because different lectures concentrate on different types of modeling (Agent-Based [ABM], Discrete Event Modeling [DES], and System Dynamics [SD] modeling), we have indicated the type of modeling emphasized in each lecture and tutorial using the associated acronyms.
|Lecture Title & Link to Slides||Lecture Video||Notes|
|Intro and Overview||No recording|
|Why ABM & System Science Methods||No recording||Concentrates on ABM, but also relevant to SD|
|Emergence & AnyLogic Software Introduction||No recording||Concentrates on ABM|
|Overview of AnyLogic Interface and infrastructure and Modeling Process||Recording||AnyLogic general, concentrates on ABM|
|Overview of Modeling Process||Recording||ABM & SD|
|Introduction to the Anylogic Interface & Supporting Concepts||Recording||AnyLogic general|
|Causal Loop Diagrams||Recording||SD|
|Stock and Flows||Recording||SD|
|First Order Delays and Aging Chains||Recording||SD|
|Infectious Disease Models||Recording||SD|
|Infectious Disease Model Wrapup||Recording||SD|
|Discrete Intra-agent Dynamics||Recording||ABM|
|Events, Heterogeneity & Basics of Agent Movement in AnyLogic||Recording||ABM|
|Discrete Agent Movement in AnyLogic & Building a Network Model Part 1||Recording||ABM|
|Discrete Inter-Agent Dynamics Via Messaging||Audio Recording||ABM|
|Network Spatially Embedded Agents||Audio recording (joint with following lecture)||ABM|
|Scale-Free Networks||Audio recording (joint with previous lecture)||ABM & SD|
|Scale-Free Networks 2||Recording (joint with following lecture)||ABM & SD. Note that the comments on the interpretation of AnyLogic's "M" parameter are erroneous, and are corrected in later lectures.|
|Discrete Event Modeling 1||Recording (joint with previous lecture)||DES|
|Discrete Event Modeling||Recording||DES|
|Outputting Data||Recording||AnyLogic general|
|Sensitivity Analyses||Recording||ABM & SD|
|Stochastic Processes in AnyLogic and Vensim||Recording||ABM|
|Modeling for Dynamic Decision Problems 1||Recording||A brief primer on combining decision analysis (including decision trees) with simulation models. ABM, SD, DES|
|Calibration||Recording||ABM & SD|
|Calibration 2||Recording||ABM & SD|
|Debugging in AnyLogic||No recording||AnyLogic|
|Tradeoffs between Aggregate and Individual-Based Modeling||Recording||ABM & SD|
|Intervention Selection & Model Tradeoffs||Recording||Concentrates on ABM, some SD|
|Lecture Title & Link to Slides||Lecture Audio or Video||Notes|
|Classes, Objects and References||Recording||ABM|
|Java Expressions with Statistics, Datasets, UI Widgets and Agent Parameters.avi||Recording||AnyLogic general, with concentration on ABM|
|Anylogic and Java||Recording||AnyLogic general, with concentration on ABM|
|Functions and Functional Abstraction||No recording||AnyLogic general, with concentration on ABM|
|Java Events, Types, and Enums||Recording||AnyLogic general, with concentration on ABM|
|Java Expressions and Statements||Recording||AnyLogic general, with concentration on ABM|
|Subscripting in Vensim||Recording||SD|
|Subscripting in Vensim 2 -- Introducing, Progressing between, Mapping and Creating Subranges of Subscripts||Recording||SD|
|Dimensional Reasoning and Dimensional Homogeneity Testing||Recording||SD, but some applicability to many types of modeling|
|Subtyping and Subclassing, A Brief Glimpse||Recording||AnyLogic general, with concentration on ABM|
Material from other lectures and tutorials outside of the scope of this course can be accessed here. Additional coverage of much of the above material will also be found in the August 2011 Agent-Based Modeling Bootcamp for Health Researchers.
I have placed this information online in hopes that it will be of useful to a broader set of people. Users are welcome to distribute links to this page without restriction. I grant rights of non-commercial reuse (including reposting) of the material I have created for educational purposes, as long as it doesn't conflict with the rights of any other individuals.
If you are seeking to reuse this material, just drop me a brief email notification (osgood 'at' cs.usask.ca) to let me know of your planned use, and I request the courtesy of a citation with the repost indicating the original source of materials. I am especially interested in staying in touch with other educators who adopt components of the class material above for use in their own courses. Among other benefits, sending along your address will allow me to notify you of significant updates, of supplemental artifacts (e.g. models) that may be of interest, and could allow for exchange of ideas and suggestions on improving the material.
Please be encouraged to write me if there are any topics on which you feel additional tutorials would be useful.