Skip to content
This repository has been archived by the owner on Mar 24, 2020. It is now read-only.

Latest commit

 

History

History
72 lines (41 loc) · 3.6 KB

File metadata and controls

72 lines (41 loc) · 3.6 KB

Multi-agent Double Deep Q-Networks

A multi-agent version of the Double DQN algorithm, with Foraging Task and Pursuit Game test scenarios.

Forager Task

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

Pursuit Game

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

Multi-agent Double DQN

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

Results

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