2008 COMP 522A Modelling and Simulation Projects
The purpose of a project
The course has given a birds-eye view of different formalisms:
Causal Block Diagrams, Petri Nets, Statecharts, DEVS, Forrester System Dynamics, ...
These formalisms each have their strengths: some (such as Petri Nets) are more suited for analysis
across all possible behaviours of a system, others are ideally suited for performance analysis
(such as GPSS) whereas others allow for simulation and system synthesis (such as Statecharts).
During the course, the similarities and differences between these formalisms have been
shown.
To study truly complex systems, it is necessary to go beyond this limited
set of formalisms. On the one hand, this means looking at other formalisms. On the other
hand, this means combining formalisms. A continuous (e.g., CBD) and discrete-event (e.g., DEVS)
formalism can for example be combined to form a "hybrid" formalism. Another example
is the combination of some notion of spatial distribution with a known formalism
such as state automata. One such combination leads to cellular automata.
The purpose of the projects is to let you explore these new formalisms.
During the project presentations, you will be exposed to a large number
of new formalisms which were not covered during the lectures.
There are two types of projects:
- building a simulator/analysis tool for a new formalism
- using an existing formalism/tool to study an interesting problem by means of modelling and simulation
The structure of a project
- All material related to your project needs to be posted on the course
web-page (to provide access to future generations of COMP 522 students).
You will be given an account on the MSDL web server (look on WebCT for the login name and password).
Just follow the link (with your name between [ ]) next to your project.
Note that you have to append /manage to the URL of your project page
to be able to edit it.
- Your project website should include the proposal, the solution (code as well as discussion), references ...
Have a look at this nice example.
- Requirements/Design/Implementation/Tests
- Possibly iterate over multiple prototypes
- All implementations in Python or a Modelling and Simulation formalism/language/tool
(except when explicitly agreed otherwise)
- Milestones/deliverables:
- Discuss/negotiate project subject with instructor by Friday 7 November
- Post project proposal + present/discuss in person with instructor/TA
- Progress discussions (weekly)
- Post presentation, report and sources
- Final presentation (+ demo) in class (on Monday 15 December). Note that you
need to attend the presentations given by your colleagues.
Examples
2008 Projects
Building a simulator/analysis tool
- Hybrid (continuous-discrete) modelling and simulation
- DEVS
- Improved pythonDEVS simulator [Fei Men]
- Distributed classic DEVS simulator with TimeWarp [Amr Al Mallah].
- Symbolic transformation of Coupled into Atomic models (classic DEVS, using muModelica compiler) [Jesse Doherty].
- DEVS simulator in Modelica (using "when").
- Emulating classic DEVS in parallel DEVS.
- Causal Block Diagrams (CBD)
- Cellular Automata (CA)
- Petri Nets
- Analysis of Place/Transition nets (conservation via matrix representation).
- A Coloured Petri Net simulator.
- Analysis of Timed Petri Nets.
- Process Algebra
- Type checking/inference and analysis for a small timed, process algebra-like language
[Darin Morrison].
- Analysis of Statecharts + Sequence Diagrams through mapping on Place/Transition Petri Nets
[Wisam Al Abed].
Using an existing simulator/analysis tool in a particular application domain
- Distributed Physics System performance analysis using DEVS [Tom Chen].
- Discrete-Event Modelling of Computer Architecture. In particular, design,
from basic building blocks, the datapath for a simple 8-bit processor
(specification).
- Modelling (emergent) agent behaviour.
- Study the behaviour of a spatially
distributed system: disease spreading.
- Study flocking of boids using collections of interacting Statechart in
Repast [Diana Gheorghiu].
- Study behaviour of ants using a discrete-time, cellular agent model in
Repast [Fabian Kalin].
- Use Coloured Petri Nets with time (CPN Tools)
to model network routing [Amin Ranjbar].
- Use the multi-formalism modelling and simulation tool
Ptolemy II to study a
personalized rapid transportation system
[Onur Duman].
- Model simple aircraft dynamics using CBDs. Use behaviour trace to animate behaviour in
FlightGear (see also The Mathworks'
example)
[Elijah Johnson].
- Model and synthesize in-browser user interfaces (for Domain-Specific Modelling) with Statecharts
[Raphael Mannadiar].
Original Work
You are encouraged to help each other formulate
the ideas behind projects and find inspiration in the literature
and on the web, but each team is required to
submit their own original work. Handing in work that is not your
own, original work as if it is your own is plagiarism.
All re-use, collaboration, inspiration must be explicitly
mentioned in the assignment.
McGill University values academic integrity. Therefore all students
must understand the meaning and consequences of cheating, plagiarism
and other academic offences under the code of student conduct and
disciplinary procedures (see
www.mcgill.ca/integrity for more
information).