All Projects → microsoft → Maro

microsoft / Maro

Licence: mit
Multi-Agent Resource Optimization (MARO) platform is an instance of Reinforcement Learning as a Service (RaaS) for real-world resource optimization problems.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Maro

Virtualhome
API to run VirtualHome, a Multi-Agent Household Simulator
Stars: ✭ 80 (-78.84%)
Mutual labels:  reinforcement-learning, simulator
Gym Duckietown
Self-driving car simulator for the Duckietown universe
Stars: ✭ 379 (+0.26%)
Mutual labels:  reinforcement-learning, simulator
Simulator
A ROS/ROS2 Multi-robot Simulator for Autonomous Vehicles
Stars: ✭ 1,260 (+233.33%)
Mutual labels:  reinforcement-learning, simulator
Gym Minigrid
Minimalistic gridworld package for OpenAI Gym
Stars: ✭ 1,047 (+176.98%)
Mutual labels:  reinforcement-learning, agent
Machine Learning And Reinforcement Learning In Finance
Machine Learning and Reinforcement Learning in Finance New York University Tandon School of Engineering
Stars: ✭ 173 (-54.23%)
Mutual labels:  finance, reinforcement-learning
Pgdrive
PGDrive: an open-ended driving simulator with infinite scenes from procedural generation
Stars: ✭ 60 (-84.13%)
Mutual labels:  reinforcement-learning, simulator
Gym Fx
Forex trading simulator environment for OpenAI Gym, observations contain the order status, performance and timeseries loaded from a CSV file containing rates and indicators. Work In Progress
Stars: ✭ 151 (-60.05%)
Mutual labels:  reinforcement-learning, agent
Osim Rl
Reinforcement learning environments with musculoskeletal models
Stars: ✭ 763 (+101.85%)
Mutual labels:  reinforcement-learning, simulator
Awesome Carla
👉 CARLA resources such as tutorial, blog, code and etc https://github.com/carla-simulator/carla
Stars: ✭ 246 (-34.92%)
Mutual labels:  reinforcement-learning, simulator
Learningx
Deep & Classical Reinforcement Learning + Machine Learning Examples in Python
Stars: ✭ 241 (-36.24%)
Mutual labels:  reinforcement-learning, agent
Holodeck Engine
High Fidelity Simulator for Reinforcement Learning and Robotics Research.
Stars: ✭ 48 (-87.3%)
Mutual labels:  reinforcement-learning, simulator
simobility
simobility - light-weight mobility simulation framework. Best for quick prototyping
Stars: ✭ 29 (-92.33%)
Mutual labels:  simulator, transportation
Bullet3
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
Stars: ✭ 8,714 (+2205.29%)
Mutual labels:  reinforcement-learning, simulator
Pypownet
A power network simulator with a Reinforcement Learning-focused usage.
Stars: ✭ 69 (-81.75%)
Mutual labels:  reinforcement-learning, simulator
Pygame Learning Environment
PyGame Learning Environment (PLE) -- Reinforcement Learning Environment in Python.
Stars: ✭ 828 (+119.05%)
Mutual labels:  reinforcement-learning, agent
Doom Net Pytorch
Reinforcement learning models in ViZDoom environment
Stars: ✭ 113 (-70.11%)
Mutual labels:  reinforcement-learning, agent
Habitat Lab
A modular high-level library to train embodied AI agents across a variety of tasks, environments, and simulators.
Stars: ✭ 587 (+55.29%)
Mutual labels:  reinforcement-learning, simulator
Gibsonenv
Gibson Environments: Real-World Perception for Embodied Agents
Stars: ✭ 666 (+76.19%)
Mutual labels:  reinforcement-learning, simulator
Simple rl
A simple framework for experimenting with Reinforcement Learning in Python.
Stars: ✭ 179 (-52.65%)
Mutual labels:  reinforcement-learning, agent
snmpman
Easy massive SNMP-agent simulation with the use of simple YAML files
Stars: ✭ 28 (-92.59%)
Mutual labels:  agent, simulator

License Platform Python Versions Code Size Docker Size Issues Pull Requests Dependencies test build docker docs PypI Versions Wheel Citi Bike CIM VM Scheduling Gitter Stack Overflow Releases Commits Vulnerability Scan Lint Coverage Downloads Docker Pulls Play with MARO

MARO LOGO

Multi-Agent Resource Optimization (MARO) platform is an instance of Reinforcement learning as a Service (RaaS) for real-world resource optimization. It can be applied to many important industrial domains, such as container inventory management in logistics, bike repositioning in transportation, virtual machine provisioning in data centers, and asset management in finance. Besides Reinforcement Learning (RL), it also supports other planning/decision mechanisms, such as Operations Research.

Key Components of MARO:

  • Simulation toolkit: it provides some predefined scenarios, and the reusable wheels for building new scenarios.
  • RL toolkit: it provides a full-stack abstraction for RL, such as agent manager, agent, RL algorithms, learner, actor, and various shapers.
  • Distributed toolkit: it provides distributed communication components, interface of user-defined functions for message auto-handling, cluster provision, and job orchestration.

MARO Key Components

Contents

File/folder Description
maro MARO source code.
docs MARO docs, it is host on readthedocs.
examples Showcase of MARO.
notebooks MARO quick-start notebooks.

Install MARO from PyPI

  • Mac OS / Linux

    pip install pymaro
    
  • Windows

    # Install torch first, if you don't have one.
    pip install torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
    
    pip install pymaro
    

Install MARO from Source (Editable Mode)

  • Prerequisites

  • Enable Virtual Environment

    • Mac OS / Linux

      # If your environment is not clean, create a virtual environment firstly.
      python -m venv maro_venv
      source ./maro_venv/bin/activate
      
    • Windows

      # If your environment is not clean, create a virtual environment firstly.
      python -m venv maro_venv
      
      # You may need this for SecurityError in PowerShell.
      Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
      
      # Activate the virtual environment.
      .\maro_venv\Scripts\activate
      
  • Install MARO

    • Mac OS / Linux

      # Install MARO from source.
      bash scripts/install_maro.sh
      
    • Windows

      # Install MARO from source.
      .\scripts\install_maro.bat
      
  • Notes: If your package is not found, remember to set your PYTHONPATH

    • Mac OS / Linux
    export PYTHONPATH=PATH-TO-MARO
    
    • Windows
    $Env:PYTHONPATH=PATH-TO-MARO
    

Quick Example

from maro.simulator import Env

env = Env(scenario="cim", topology="toy.5p_ssddd_l0.0", start_tick=0, durations=100)

metrics, decision_event, is_done = env.step(None)

while not is_done:
    metrics, decision_event, is_done = env.step(None)

print(f"environment metrics: {env.metrics}")

Environment Visualization

# Enable environment dump feature, when initializing the environment instance
env = Env(scenario="cim",
          topology="toy.5p_ssddd_l0.0",
          start_tick=0,
          durations=100,
          options={"enable-dump-snapshot": "./dump_data"})

# Inspect environment with the dump data
maro inspector env --source ./dump_data

Show Cases

  • Case I - Container Inventory Management CIM Inter Epoch CIM Intra Epoch

  • Case II - Citi Bike Citi Bike Inter Epoch Citi Bike Intra Epoch

Run Playground

  • Pull from Docker Hub

    # Run playground container.
    # Redis commander (GUI for redis) -> http://127.0.0.1:40009
    # Local host docs -> http://127.0.0.1:40010
    # Jupyter lab with maro -> http://127.0.0.1:40011
    docker run -p 40009:40009 -p 40010:40010 -p 40011:40011 arthursjiang/maro:cpu
    
  • Build from source

    • Mac OS / Linux

      # Build playground image.
      bash ./scripts/build_playground.sh
      
      # Run playground container.
      # Redis commander (GUI for redis) -> http://127.0.0.1:40009
      # Local host docs -> http://127.0.0.1:40010
      # Jupyter lab with maro -> http://127.0.0.1:40011
      docker run -p 40009:40009 -p 40010:40010 -p 40011:40011 maro/playground:cpu
      
    • Windows

      # Build playground image.
      .\scripts\build_playground.bat
      
      # Run playground container.
      # Redis commander (GUI for redis) -> http://127.0.0.1:40009
      # Local host docs -> http://127.0.0.1:40010
      # Jupyter lab with maro -> http://127.0.0.1:40011
      docker run -p 40009:40009 -p 40010:40010 -p 40011:40011 maro/playground:cpu
      

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Related Papers

Container Inventory Management

CIM Vis

Wenlei Shi, Xinran Wei, Jia Zhang, Xiaoyuan Ni, Arthur Jiang, Jiang Bian, Tie-Yan Liu. "Cooperative Policy Learning with Pre-trained Heterogeneous Observation Representations". AAMAS 2021

Xihan Li, Jia Zhang, Jiang Bian, Yunhai Tong, Tie-Yan Liu. "A Cooperative Multi-Agent Reinforcement Learning Framework for Resource Balancing in Complex Logistics Network". AAMAS 2019

Related News

MSRA Top-10 Hack-Techs in 2021

Open Source Platform MARO: Anywhere Door for Resource Optimization

AI from "Point" to "Surface"

Cite Us

License

Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].