Multi-Agent Systems Lab course Introduction
Introduction Below you can find the introduction for the lab course ‘Multi-Agent Systems’. The lab course is about the predator-prey simulator (also pursuit domain). The related material (software, manual, instructions) can be downloaded from http://www.science.uva.nl/~msnel/teaching/mas/ For the predator-prey simulator (also pursuit domain) there are two assignments. Each assignment will focus on one or more aspects of a Multiagent System (MAS). In general, in both assignments the group of predators is modeled as a MAS whose goal is to capture the preys as quickly as possible. For the predator-prey simulator we have the following assignments: • Rational independent agents and multiagent coordination • (Multiagent) Reinforcement Learning On each deadline you should hand in a report (approximately 4-5 pages, LATEXpreferred) that should at least describe your approach (the algorithm you implemented, and perhaps how you dealt with any problems that occurred) and the results (the capture times you managed to achieve). Capture times should indicate the average number of cycles of each episode and the respective standard deviation. Each episode starts with a random initialization of all agents and ends when all preys are captured.
1
Working with the Pursuit Domain Starting up First retrieve all needed files to work with the pursuit simulator. Download the pursuit-package-v0.9-bin.tar.gz archive file from the lab course website. The source code of the predator and related files are all located in src/ directory. Choose the programming language that you want to use (either C++, Java or Python) and navigate to the corresponding directory. The files in this directory can be altered in order to change the behavior of the simulator and the policy of the agents. You should now have the following files: • Predator.*: source files of the default predator • pursuit.conf: configuration file for the pursuit simulator • monitor.conf: configuration file for the pursuit monitor • Makefile: makefile to compile the sources • start.sh: script to start all the related programs Now compile the predator sources by typing make. Note that to automatically set all the environment variables for your programming environment you have to add either the gcc or jdk package to your .pkgrc file in your home directory. After compiling, you can start the simulator, monitor, two preys and two predators by issuing the start.sh script1 . It is possible that you get the following error when the monitor is started: Error: Could not open /dev/nvidiactl because the permissions are too resticitive. Please see the FREQUENTLY ASKED QUESTIONS section of /usr/share/doc/NVIDIA GLX-1.0/README for steps to correct. This means the nvidia drivers are still locked by a previous user who hasn’t logged off properly. Please contact
[email protected] to kill the processes of that user or reboot the machine. 1
Change the paths such that they point to the right directories.
2
Server parameters It is possible to change the configuration of the program by setting different server parameters in pursuit.conf. For some exercises these parameters have to be changed. The following table lists the server parameters that stay fixed for all exercises. Beneath each exercise the parameters that have to be changed are listed. option columns rows nr episodes allow comm
value 15 15 50 false
option visible distance allow diagonal prey allow diagonal pred penalize all
value -1 false false false
Table 1: All exercises
Prey The same prey will be used in all exercises. This default prey stands still with a probability of 0.2. In all other cases it will move randomly to an adjacent unoccupied cell. As an example consider the case where the three cells south, east and west of the prey are occupied. The prey will then stand still with probability 0.2 and move north with probability 0.8.
Familiarizing Before starting with the first exercise, try to familiarize yourself with the simulator. Read the complete manual, learn how to use the simulator: start the world (server) with different parameters, initialize one or more agents (predators or preys), play back logs using the logplayer and try to understand the client-server functionality of the system.
Killing programs Please make sure that before you logout, you have killed all programs related to the lab course. You can check this with the command ps -ef | grep ${USER} Then kill all listed programs related to the pursuit domain with the command 3
killall program_name
4