GithubHelp home page GithubHelp logo

jaggbow / saf Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 5.0 97.87 MB

This repository contains code for the paper "Stateful Active Facilitator: Coordination and Environmental Heterogeneity in Cooperative Multi-Agent Reinforcement Learning". https://arxiv.org/abs/2210.03022

Python 87.96% Shell 12.04%
coordination multi-agent-reinforcement-learning reinforcement-learning reinforcement-learning-environments

saf's People

Contributors

cmeo97 avatar jaggbow avatar kaiyuanmifen avatar veds12 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

saf's Issues

MARLGrid integration

Integrate the MARLGrid environment into the codebase and include coordination and heterogeneity levels

Put all relevant files under the folder src/envs/marlgrid/. Once the environment code is ready, make sure it's callable from src/envs/__init__.py using the get_env function.

Additional IPPO/MAPPO training details

We still need to implement additional PPO training details to benefit from the full performance of IPPO and MAPPO [1,2]. Here are the things that should be implemented:

  • Feature Pruning: Form a state by concatenating environment provided global state and agent's local observation and then prune out redundant information. This is highly environment specific so we might need to change the obs_to_state_wrapper to account for that. No change needed elsewhere.
  • Value Normalization: Regress value network output to the normalized value target. This was found to help the training significantly for MAPPO
  • Recurrent-MAPPO: MAPPO that operates with RNNs (GRU for example) instead of simple MLPs
  • Frame stacking: Provide a stack of observations instead of only one

References:

[1] The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games

[2] (https://github.com/marlbenchmark/on-policy/tree/main/onpolicy)[https://github.com/marlbenchmark/on-policy/tree/main/onpolicy]

Add support for CNN architectures

Add the possibility to use a CNN architecture for all implemented algorithms in the code base. Appropriate reshaping might be needed, in that case, make sure runner.py is compatible with it too

Add SAF as an additional model

The model code should be under src/policies and it should follow the same logic as in ippo.py and mappo.py.

Once it's created, create a new yaml config file for the SAF model in configs/policy/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.