Skip to main content

Multi Agent Reinforcement Learning on Trains

Project description

Flatland

Test RunningTest Coverage

Flatland

About Flatland

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

Installation

Installation Prerequistes

  • Install Anaconda by following the instructions here.
  • Create a new conda environment:
$ conda create python=3.6 --name flatland-rl
$ conda activate flatland-rl
  • Install the necessary dependencies
$ conda install -c conda-forge cairosvg pycairo
$ conda install -c anaconda tk  

Install Flatland

Stable Release

To install flatland, run this command in your terminal:

$ pip install flatland-rl

This is the preferred method to install flatland, as it will always install the most recent stable release.

If you don't have pip_ installed, this Python installation guide_ can guide you through the process.

.. _pip: https://pip.pypa.io .. _Python installation guide: http://docs.python-guide.org/en/latest/starting/installation/

From sources

The sources for flatland can be downloaded from gitlab

You can clone the public repository:

$ git clone git@gitlab.aicrowd.com:flatland/flatland.git

Once you have a copy of the source, you can install it with:

$ python setup.py install

Test installation

Test that the installation works

$ flatland-demo

Jupyter Canvas Widget

If you work with jupyter notebook you need to install the Jupyer Canvas Widget. To install the Jupyter Canvas Widget read also https://github.com/Who8MyLunch/Jupyter_Canvas_Widget#installation

Basic Usage

Basic usage of the RailEnv environment used by the Flatland Challenge

import numpy as np
import time
from flatland.envs.rail_generators import complex_rail_generator
from flatland.envs.schedule_generators import complex_schedule_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=1),
            schedule_generator=complex_schedule_generator(),
            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

Flatland

Best of Luck !!

Communication

Contributions

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

SBB AICROWD

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flatland-rl-2.1.4.tar.gz (2.4 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page