Skip to content

hatleon/multi_agent_systems

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-Agent Systems

License

Description

Code for the final project of the Multi-Agent Systems course at the University of Amsterdam.

We are tasked with designing an autonomous public transportation system for the city of Amsterdam. Given the highly complex and decentralized nature of the problem, a multi-agent system (MAS) design is a natural approach for building an efficient solution without requiring expert engineering. The goal of our system is to minimize:

  • the passengers' waiting time
  • leasing and operational costs of vehicles
  • inter-bus communication costs

In our setup each agent is a bus, and its environment consists of other agents, passengers, and 24 bus stops represented in an undirected graph. Our baseline method is a set of heuristic decision functions modeled in a subsumption architecture, that each agent uses to compute its next action given its current beliefs. We investigated two other methods for designing agents, where we used a Deep Q-network to learn the action-value of each state-action pair, and differential evolution for tuning the hyperparameters of our baseline heuristic method.

An agent's decision flowchart
An agent's decision flowchart

Documents

Training and Testing

Running and visualizing a Simulation:

A new simulation can be created and observed by running the run_simulation.py python script in the command line as python -m run_simulation.py. It may take some time to finish. This will create a video file in the same directory named simulation_result.avi. You can open this video to see the simulation visually.

Training the models

The iPython notebook file learning.ipynb shows the evolution procedure and training phase for the DQN algorithm. You can open the notebook by running in the command line: jupyter notebook learning.ipynb. Note that you will need to install the Python dependencies specified below.

Dependencies

Python 3.x: NumPy, Keras, pandas, jupyter, matplotlib, SciPy, pyparsing

Contributors

Copyright

Copyright © 2016 Dana Kianfar, Jose Gallego and Marco Federici.

This project is distributed under the MIT license. Please review the UvA regulations governing Fraud and Plagiarism in case you are a student at the UvA.

About

(课程)Multi-Agent Systems Course 2017 - MSc Artificial Intelligence @ UvA

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 40.3%
  • NetLogo 33.4%
  • Python 26.3%