MAML Course Outline
This document summarizes a course on MAML,
the Multi-Agent Modelling Language. The aim is to teach MAML to
students/researchers willing to write agent-based models. MAML provides
a useful tool for those who are familiar with Swarm
or at least Objective-C. The course is based on this
tutorial. Besides MAML it also devotes some thoughts to Objective-C
and Object Oriented Programming if necessary.
The course was held at Systems Laboratory on October 1998 by Kozsik
Tamás. The course schedule was the following:
- Monday 18.00
- Wednesday 18.00
Source code for programs:
Introduction. Telemodelling project, modelling environment.
Structuring: user's computer and Simulation Engine. The advantages
of the Internet. Simulations with huge computational needs. Modelling:
model design, parametrization, simulation, result analysis. Reuse
of results: visualization, parameter space search. Tools for non-programmers:
graphical user interfaces, suitable language - MAML.
Introduction to MAML. Important terms: model, agent, timestep,
schedule, plan, observe. Swarm, Objective-C. Difficulties. Aim of
MAML. Current status vs. future plans. The @ sign: macros (shorthands),
translation to Swarm. Example: empty model. Using unchecked C: hello
world. Implementation terms: init, var (state), sub (rule). Separation
of model and output: observe. Batch and gui. Compilation errors.
How to use things.
First models. Show it on a computer, demonstration of the
above. The empty model.
The generated Swarm code. The dumb
model: @var, @sub, model variable.
Graphical and batch mode observation, as in Step
1.1 and Step 1.2
of the tutorial. First try of writing MAML-program: the
Adding graphical observation to the model built last time:the
expected result. Discussing schedules with Step
2 of the tutorial. Try schedules with ab: first preserve gui
observation then rewrite it in batch
mode. Stop the latter by pressing
Ctrl-C. The final
version of ab contains the maxTimeSteps variable and the @import
Talking about Step 3 of
the tutorial. Writing a simple simulation.
The expected result.
Then we can enhance
Not known yet.