Multi Agent Reinforcement Learning on Trains
Project description
‘
Flatland is a opensource toolkit for developing and comparing Multi Agent Reinforcement Learning algorithms in little (or ridiculously large !) gridworlds. The base environment is a two-dimensional grid in which many agents can be placed, and each agent must solve one or more navigational tasks in the grid world. More details about the environment and the problem statement can be found in the official docs.
This library was developed by SBB , AIcrowd and numerous contributors and AIcrowd research fellows from the AIcrowd community.
This library was developed specifically for the Flatland Challenge in which we strongly encourage you to take part in.
NOTE This document is best viewed in the official documentation site at Flatland-RL Docs
Contents
Quick Start
$ conda create python=3.6 --name flatland-rl
$ conda activate flatland-rl
$ conda install -c conda-forge cairosvg pycairo
$ conda install -c anaconda tk
$ pip install flatland-rl
Test that the installation works
$ flatland-demo
Basic Usage
Basic usage of the RailEnv environment used by the Flatland Challenge
import numpy as np
import time
from flatland.envs.generators import complex_rail_generator
from flatland.envs.rail_env import RailEnv
from flatland.utils.rendertools import RenderTool
NUMBER_OF_AGENTS = 10
env = RailEnv(
width=20,
height=20,
rail_generator=complex_rail_generator(
nr_start_goal=10,
nr_extra=1,
min_dist=8,
max_dist=99999,
seed=0),
number_of_agents=NUMBER_OF_AGENTS)
env_renderer = RenderTool(env)
def my_controller():
"""
You are supposed to write this controller
"""
_action = {}
for _idx in range(NUMBER_OF_AGENTS):
_action[_idx] = np.random.randint(0, 5)
return _action
for step in range(100):
_action = my_controller()
obs, all_rewards, done, _ = env.step(_action)
print("Rewards: {}, [done={}]".format( all_rewards, done))
env_renderer.render_env(show=True, frames=False, show_observations=False)
time.sleep(0.3)
and ideally you should see something along the lines of
Best of Luck !!
Contributions
Flatland is an opensource project, and we very much value all and any contributions you make towards the project. Please follow the Contribution Guidelines for more details on how you can successfully contribute to the project. We enthusiastically look forward to your contributions.
Partners
Acknowledgements
Vaibhav Agrawal <theinfamouswayne@gmail.com>
Anurag Ghosh
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.