A multi-agent version of the Double DQN algorithm, with Foraging Task and Pursuit Game test scenarios.
The Forager Task is in Java 8 and pre-compiled. If you want/need to recompile it, just compile the .java
files in Forager/src
including the libraries on Forager/include
.
To run, just
java -jar Forager/Forager.jar
The Pursuit Game is in C, and originally by Kok et al.. It is also pre-compiled for Linux x64 systems, but you can compile it after installing GL and glut libraries with
cd Pursuit
./configure
make
To run, adjust configurations on Pursuit/pursuit/src/pursuit.conf
, and just
./Pursuit/start.sh
The Multi-agent Double DQN algorithm is in the MaDDQN
folder. Original DQN code by devsisters, you will need Python3.3+, TDQM, matplotlib, python-tk and TensorFlow 0.13+. Adjust configuration on MaDDQN/src/config.py
, and just
python3 MaDDQN/src/main.py
The algorithm works almost out of the box with the two testing scenarios. Below are some results for the Foraging Task. It shows the results of several stages of learning. For 7x7 maps, we used a neural network with 2 hidden layers of 50 nodes each, RelU activation. For 15x15 maps, we used a neural network with 2 hidden layers, 250 nodes each, and RelU activation.
2 agents, 10 berries
Low-training | High-training |
---|---|
For the Pursuit Game, there is an example of a 1v2 situation, where it is impossible for the agent to catch the prey, and then a 2v2 on a small and a large map.
1v2 | 2v2 |
---|---|
15x15 map, 4 agents, 10 berries
15x15 map, 2 predator, 2 prey
15x15 map, 2 predators, 3-6 prey, 3 obstacles (generalization, 10%)
3 prey | 4 prey | 6 prey |
---|---|---|
![]() |
![]() |
![]() |
15x15 map, 4 predators, 3 prey, 3 obstacles