The course responsible for this course has chosen not to move his or her course web page to Studycas yet.
Course page for 2013/2014 (link updated 2014-08-28):
This course is replaced by two courses starting spring 2017: Intelligent agents and Autonomous robots. Intelligent agents home page: http://www.me.chalmers.se/~mwahde/courses/ia/2017/ia.html
Basic mathematical and programming skills are required. It is an advantage, but not absolutely necessary, to be familiar with Matlab. Some background concerning microcontrollers is advantageous, but not a requirement.
The course aims at giving the students an understanding of design principles for autonomous systems, both robots and software agens, and also gives students the opportunity to apply their knowledge in practice through the construction of a simple autonomous robot.
After successfully completing the course, the student will be able to:
- Understand and describe basic properties of robotic hardware, including sensors, actuators and microcontrollers.
- Describe the basics of animal behavior (ethology) and its connection to robotic behaviors.
- Understand the basics of behavior-based robotics and evolutionary robotics.
- Set up and use basic kinematic and dynamic equations for robot motion.
- Define and set up computer simulations of wheeled autonomous robots (using a simulator provided by the lecturer).
- Define and set up evolutionary simulations for the optimization of robotic control systems (using a simulator provided by the lecturer).
- Understand and apply basic methods for behavior generation and behavior selection in autonomous robots.
- Understand the basics of utility theory and its application in robotic behavior selection.
- Understand and describe the basics of swarm intelligence and agent-based economics.
- Construct and use a simple autonomous robot.
The contents of the course are as follows:
- Theory of autonomous robots: Kinematics and dynamics
- Behavior-based robotics
- Evolutionary robotics
- Utility theory, behavioral economics, theory of rational decision-making
- Behavior selection in autonomous robots
- Artificial life and swarm intelligence
- Software agents, particularly agent-based economics
- Learning in autonomous agents
- Robot construction
The course extends over two quarters. In the first part of the course, the theory is covered in 14 lectures. In the second part, a robot construction project is carried out (in groups of 5-6 students). In the final weeks of the course, the constructed robots are applied in a variety of simple tasks.
Lecture notes and handouts
The robot construction project is graded and corresponds to around 30% of the grade. 40% of the grade is determined based on the results of two home problems, and the remaining 30% are determined by the results on a written exam (at the end of the first half of the course).
Please have a look on the external course webpage for more information.
Please have a look on the external course webpage for more information.
Please have a look on the external course webpage for more information.
External course webpage: http://www.me.chalmers.se/~mwahde/courses/aa/2014/aa.html
The course responsible for this course has chosen not to move his or her course web page to Studycas yet.
Course page for 2013/2014 (link updated 2014-08-28):
The course responsible for this course has chosen not to move his or her course web page to Studycas yet.
Course page for 2013/2014 (link updated 2014-08-28):
The course information this term will be published on pingpong.chalmers.se. If you have any requests regarding the course, please contact This email address is being protected from spambots. You need JavaScript enabled to view it..
Much of modelling in the sciences focuses on simple models, highlighting key mechanisms using small sets of moving parts. However, in complex systems the interesting features are often a direct result of having large sets of particles or agents with different characteristics. This makes new tools a necessity. The course introduces simulation techniques frequently used in complex systems to handle models with many heterogeneous parts. Specifically, we will look at agent-based modelling, evolutionary game theory, cellular automata, and networks, with application to physics, biology and social science. We also learn how to validate the outcomes of simulation models in order to reach scientifically sound conclusions.
There is no single book that covers all the topics in the course so we have no required books. However, we aim to provide a set of compulsory (and additional) readings assigned to each lecture that covers and perhaps broadens the content of the lectures.
If you still want something for your shelf, here are some recommendations:
Mark Newman's book on Networks is very good, both comprehensive and well-written. It covers much more than this course, but if you're the type that reads non-fiction and textbooks for fun, I can recommend it. If you want something shorter, the review article Statistical Mechanics of Complex Networks by Albert and Barabasi are available for free and covers most of the network topics we discuss.
For agent-based models we have used Epstein's Generative Social Science for a reading project earlier years. It gives a good overview of what kind of questions agent-based models can be used to handle in the social sciences and also discusses a range of fairly deep issues regarding e.g. what it means to explain a social phenomenon. Epstein's and Axtell's Growing Artificial Societies is shorter and focuses more on a single type of model, but can also serve as an introductory text.
For cellular automata, Ilachinski's Cellular Automata - A Discrete Universe is very comprehensive and covers almost everything even remotedly related to CA. I'm not very impressed with its quality though, and would only recommend it to someone who only need the coverage and can afford to read it with a skeptical mind. You can also take a look at Wolfram's A New Kind of Science (full book available online), though even stronger caveats apply here (see e.g. this review). Wolfram's papers are much more measured, though a bit dated by now. You could for example take a look at his review Statistical Mechanics of Cellular Automata.
Main lecturer: Kolbjørn Tunstrøm (This email address is being protected from spambots. You need JavaScript enabled to view it.)
Tutors: Erik Edlund, Vilhelm Verendel, Clas Andersson, Jonas Einarsson, Martin Nilsson Jacobi
Examiner: Martin Nilsson Jacobi (This email address is being protected from spambots. You need JavaScript enabled to view it.)
You can find us in our offices at the division of Physical Resource Theory, in the EDIT-building.
Ordinary lectures are 8.00-10.00 in MC on Wednesdays and Fridays. Computerlabs replace Friday lectures some weeks and take place in F-T7204 (in Forskarhuset Fysik, street address Fysikgränd 3).
Variations can occur, please check the lecture plan below.
Lecture 1: Wednesday Nov 05 The role of simulations in the study of complex systems; Course information; Introduction to agent based modeling; Collective motion.
Compulsory reading:
Additonal reading:
Lecture slides:
Lecture 2: Friday Nov 07 Agent based models continued; SIR model of disease spreading; Schelling's model of segregation.
Compulsory reading:
Additonal reading:
Lecture 3: Wednesday Nov 12 Evolutionary game theory (guest lecture by Kristian Lindgren).
Compulsory reading:
Lecture 4: Wednesday Nov 19 Modeling of complex systems (guest lecture by Philip Gerlee).
Compulsory reading:
Lecture 5: Friday Nov 21 Networks Part 1; Preferential growth and scale free networks; The small world model.
Compulsory reading:
Additonal reading:
Lecture slides:
Lecture 6: Wednesday Nov 26 Introduction to cellular automata (CA); CA as modeling technique (guest lecture by Martin Nilsson Jacobi).
Compulsory reading:
Additonal reading:
Lecture 7: Wednesday Dec 03 Networks part 2; Community structure and modularity; Percolation and disease spreading on networks.
Lecture 8: Wednesday Dec 10 Stability of complex systems.
See also TimeEdit. But note the change we have made in presentation date from Jan 09 2015 to Dec 19 2014.
The purpose of the problem sets is to provide you with hands on experience of the different methods presented in the course. You will work in groups of 3 and have your work assessed in a series of scheduled computer labs. The problem sets account for 50% of your total course grade.
Grading
There are five problem sets available, each accounting for 25 points. The homework deadlines are set with the assumption that you choose one of Homework 1 and Homework 2, followed by doing the other three. A perfect score is therefore 100.
Note 1: A necessary (but not sufficient) requirement for passing grade is that 10 points are achieved in each homework 1 or 2, 3, 4, and 5.
Note 2: You can build your score anyway you want, attaining a maximum of 125 points (that's right; 25 points more than a perfect score).
The grade limits will be 45 points for grade 3, 65 points for grade 4, and 85 points for grade 5. For GU the limits will be 45 points for G and 75 for VG.
Computer labs
The computer lab sessions serve two purposes: 1) To get help if you are stuck in a problem set (and have not managed to get unstuck by consulting some of your classmates); and 2) To have your homework graded. Previous terms, we have experienced queues during lab hours. Therefore, we emphasise the “home” in homework; being prepared before you enter the lab is crucial for these sessions to run smoothly.
Groups
You will be randomly divided into groups of three (possibly two). The reason for this is to allow for efficient execution of the computer labs; we only have two people available this year assisting in the lab sessions. But: Everyone is meant to program their own code, or at least contribute significantly to each problem set. That is, while you can split up the work in each problem set, you are not allowed to split the problem sets between you. Honor code: If you have not contributed to solving the problems, you should say so during assessment.
The topics of the homework are given below. Instructions for the specific homework's will follow throughout the term.
Lab schedule
All computer labs take place in F-T7204.
Each lab is intended to focus on the specified homework, but there will be an extra lab in the end where you can have assessed any of the homeworks.
The purpose of the project work is to provide you with training in
The project accounts for 50% of your total course grade.
General informationHere are a few project titles from Simulation of Complex Systems 2013:
There are lots of interesting papers to be found under publications (and working papers) at the Santa Fe Institute (SFI). Many ideas that have been brought up and discussed at the Complex Systems seminar can be developed into projects in this course. Also, projects that some of you have done in earlier courses, like Stochastic optimization algorithms, can be continued and developed into new projects here. I also recommend that you search the web; there are so many good papers and ideas to be found out there.
Many of the links below point to papers describing the investigation of a certain model. You may use such a model a starting point for the project, which usually means that you have to do your own implementation. Then you may critically test the limits of the model. What are critical assumptions and parameter values? To what extent are the conclusions drawn by the authors general, etc?
Social systems
Societal structure - hierarchies, norms, institutions. The online Journal of Artificial Societies and Social Simulation provides some ideas and papers.
Voting models
The results of a democratic voting process may heavily depend on the voting system. Explore this by modelling a population of people voting. Read "The complexity of voting" by David A. Meyer.
Modelling segregation in urban areas
See, for example, relevant chapters in Schelling's book on micromotives and macrobehaviour (at Kristian Lindgren's office).
Evolution of strategies in game-theoretic models
There are several possible ideas that could be developed into projects here. Kristian Lindgren and Anders Eriksson have a set of papers, most of them dealing with the Prisoner's Dilemma game, that could serve as a starting point or for inspiration. There are several examples of games in Herbert Gintis' book "Game Theory Evolving" that can be developed into interesting multi-agent models. There are several models (some with source code) presented at Axelrod's "Complexity of Cooperation" web site.
a) The ultimatum game. Make a critical analysis or a modification of the model presented in Science: M. A. Nowak, K. M. Page, and K. Sigmund: "Fairness versus reason in the Ultimatum Game", Science 289, 1773-1775 (2000).
b) Evolution of Cooperation through Indirect Reciprocity, see Leimar, O. and Hammerstein, P. (2001), Proc.Royal.Soc.Lond.B, 745–753. (online text version). This is a reply and critisism of a paper by Nowak and Sigmund i Nature.
Panic and other types of basic group behaviour
How to model the group behaviour in panic situations. See link related to Nature paper Simulating dynamical features of escape panic by Helbing et. al.
Networks and infrastructure systems
Traffic simulation
Make a realistic model of a small part of Göteborg's traffic system. Model a highway with some exits, include tunnel, etc... Very nice Java simulations are available on Helbing's page (two-lane version). A quantitative analysis of how traffic flow is affected by road characteristics, could be a suitable goal for one project.
City growth simulation
How will Göteborg develop in the future? Or, from the map of 1809, how could Göteborg have developed to today? See Project Gigalopolis for an example on how such models can be constructed. We also have a number of papers in the Complex Systems Group, see our project description. One project may involve exploring how different local rules can give rise to different types of growth.
Small world networks
See book and papers by Duncan J. Watts (Small Worlds: The dynamics of networks between order and randomness, Princeton Univ. Press, 1999). A very good review by Mark Newman is available here. There are a lot of new papers published on these ideas.
Economic systems
Artificial markets, software agents, etc.
Lots of information to be found under Leigh Tesfatsion's web page on Agent-Based Computational Economics. She also offers a number of links to software useful for multi-agent modelling, and she offers a long list of suitable student projects (covering a lot of complex systems), see at the bottom of the syllabus page for her course).
a) A simple stock market with a stock (or two).
b) Cournot duopoly, or a simple oligopoly model; see, for example, Fudenberg & Tirole p.14.
c) A Sugarscape inspired model, see Epstein's and Axtell's book.
If you are interested in working on software agents, check the online tutorial by Patty Maes from Software Agents Group at MIT Media Laboratory.
Natural systems, ecosystems
Pattern formation in chemical, biological, and ecological systems.
a) Make a PDE model of a simple chemical system that exhibits pattern formation (2X -> 3X model, see Science paper).
b) Host-parasitoid interactions may lead to complicated space-time patterns; Hassell has done a lot in this area, see, e.g., Hassell, M.P., H.N. Comins, and R.M. May. 1991. Spatial structure and chaos in insect populationd dynamics. Nature 353: 255-258 and Pacala, S., M.P. Hassell, and R.M. May. 1990. Host-parasitoid associations in patchy environments. Nature 344: 150-153.
c) Spatial dynamics in a host-pathogen system, see, for example, paper by G.M. Hood with model description.
Modelling population dynamics - comparing agent-based models with ODEs
Make an agent-based model of a few variations of simple one and two species population dynamics and compare the behaviour with simpler models in terms of ordinary differential equations. When does an ODE work as a good approximation to the more complicated agent-based model?
Ecosystems in fragmented environments
Build an individual based model of a species that lives in a fragmented environment.
Decentralized dynamics of animal flocks
Construct a model in which various types of flocking behaviour may evolve.
Global issues, resources, and the environment
See, for example, the link to Beyond the Limits (incl Mac program and hints on how to get the model for PC)
How many will there be 2050? Try to make a projection of the world population growth to year 2050. There are several approaches possible, see for example paper in Nature by Lutz et al. (For fun, see web page on "world population since creation" with figure that shows a 9 billion population before the flood...)
Modelling resource use in multi-agent systems; tragedy of the commons
Fishery models: Make a model of fishermen harvesting a population that follows a simple dynamics model. Model the fishermen as adaptive agents. Think on how to model their behaviour. How do they adapt their strategies to each other and to the resource?
Artifical worlds and virtual reality
"Physical" simulations in artificial worlds. Here one may use the software package, breve, that Jon Klein has developed in his Master's thesis (runs under MacOSX).
a) Make models of and simulate flock behaviour in 2D or 3D worlds. Follow links from breve; see also Craig Reynolds web page on Boids.
b) Simm's evolving creatures, see, e.g., "Evolving 3D Morphology and behaviour by competition", Artificial Life 1, 353-372 (1995).
Complex system games
Use complex systems ideas in order to design simple but tricky games (either computer-human or human-human). The first versions of the game Blobity of Catchy Software was a project of this course in 2000.
© 2019 FavThemes