The AI framework for Reinforcement Learning, Automated Planning and Scheduling
Project description
_ __ _ __ __ _ __
_____ _____ (_)/ /__ (_)/ /_ ____/ /___ _____ (_)____/ /___
/ ___// ___// // //_// // __/______ / __ // _ \ / ___// // __ // _ \
(__ )/ /__ / // ,< / // /_ /_____// /_/ // __// /__ / // /_/ // __/
/____/ \___//_//_/|_|/_/ \__/ \__,_/ \___/ \___//_/ \__,_/ \___/
Scikit-decide for Python
Scikit-decide is an AI framework for Reinforcement Learning, Automated Planning and Scheduling.
Installation
1. Make sure to have a Python 3.7+ environment
The use of a virtual environment for scikit-decide is recommended, e.g. by using conda:
On MacOS/Linux:
python3 -m venv /path/to/new/virtual/environment
source /path/to/new/virtual/environment/bin/activate
On Windows:
py -m venv \path\to\new\virtual\environment
\path\to\new\virtual\environment\Scripts\activate
2. Quick install [Recommended]
pip3 install -U pip
pip3 install scikit-decide[all]
3. Install from source
pip3 install -U pip
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
git clone --recurse-submodules -j8 https://github.com/Airbus/scikit-decide.git
cd scikit-decide
poetry install --no-root --extras all
poetry build
Documentation
Online
The latest documentation is available online.
Locally
You can also run the documentation locally (e.g. when you are contributing to it or to access an older version).
1. Install the documentation
The documentation is using VuePress to generate an interactive static website.
First, get Yarn (package manager) by following these installation steps.
Make sure you are in the "scikit-decide" root directory and install documentation dependencies:
cd YOUR_LOCAL_PATH_TO_GIT_CLONED_SKDECIDE
yarn install
2. Access the documentation
Make sure you are in the "scikit-decide" root directory and start the local documentation server:
cd YOUR_LOCAL_PATH_TO_GIT_CLONED_SKDECIDE
yarn docs:dev
Open your web browser to access the documentation (by default on http://localhost:8080).
Examples
The examples can be found in the /examples
folder, showing how to import or define a domain, and how to run or solve it. Most of the examples rely on scikit-decide Hub, an extensible catalog of domains/solvers.
Some examples are automatically embedded as Python notebooks in the Examples
section of the documentation.
Playground
The best example to try out scikit-decide capabilities might be examples/full_multisolve.py
. This interactive console experience makes it easy to pick a domain among a pre-defined catalog selection:
- Simple Grid World
- Maze
- Mastermind
- Cart Pole (OpenAI Gym)
- Mountain Car continuous (OpenAI Gym)
- ATARI Pacman (OpenAI Gym)
...and then solve it with any compatible solver (detected automatically) among following selection:
- Random walk
- Simple greedy
- Lazy A* (classical planning)
- PPO: Proximal Policy Optimization (deep reinforcement learning)
- POMCP: Partially Observable Monte-Carlo Planning (online planning for POMDP)
- CGP: Cartesian Genetic Programming (evolution strategy)
- IW: Iterated Width search (width-based planning)
Note: some requirements declared in above solvers still need fine-tuning, so in some cases an auto-detected compatible solver may still be unable to solve a domain (for now).
These combinations are particularly efficient if you want to try them out:
- Simple Grid World -> Lazy A*
- Maze -> Lazy A*
- Mastermind -> POMCP: Partially Observable Monte-Carlo Planning
- Cart Pole -> PPO: Proximal Policy Optimization
- Mountain Car continuous -> CGP: Cartesian Genetic Programming
- ATARI Pacman -> Random walk
Warning: some domains/solvers might require extra manual setup steps to work at 100%. In the future, each scikit-decide hub entry might have a dedicated help page to list them, but in the meantime please refer to this:
- [domain] OpenAI Gym ones -> gym for loading Gym environments not included by default
- [solver] PPO: Proximal Policy Optimization -> see Stable Baselines installation
- [solver] IW: Iterated Width search (same for AOstar, Astar, BFWS) -> special C++ compilation (see Installation 2.c. above)
Unit tests
Pytest is required to run unit tests (pip install pytest
).
Make sure you are in the "scikit-decide" root directory and run unit tests (the "-v" verbose mode is optional but gives additional details):
cd YOUR_LOCAL_PATH_TO_GIT_CLONED_SKDECIDE
poetry run pytest -vv -s tests/solvers/cpp
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.
Source Distributions
Built Distributions
Hashes for scikit_decide-0.9.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abdf7d643377f217fe37d67c8f752691ed5c817934be2a4f50e4c1c5547e32e1 |
|
MD5 | b3f1d22a2864450e8e3249c89ca4df46 |
|
BLAKE2b-256 | 57ee7369f902b0dc2b8f2e32f0ad20ae3b2f60e2e5575b22a6521267cc6f0d9b |
Hashes for scikit_decide-0.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e046b90ba17c472112433dc63aff0885fe7b1d61fc669f6a15ba0f7f7699615 |
|
MD5 | a82d76873c0d6f356c6a9ed2bc82db32 |
|
BLAKE2b-256 | 2b81b56250801975c17d18ce8fb44faf104a3a196f40f989d5575408fdecab52 |
Hashes for scikit_decide-0.9.2-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c597a0c0606e4fd7af089146661b692661eb9eed0737f393fb5b9ebe22649c8 |
|
MD5 | 09e909afb21d8dcc8ef394b0df96bea2 |
|
BLAKE2b-256 | 7da7b9ea1856e35c9ef95091fdbe720e77b803e4af95d3a98a916fab48869886 |
Hashes for scikit_decide-0.9.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a113c60d3d7a7d9d307cafc6f2df07ef3a946121483a5bc4ecbb9877bcc22242 |
|
MD5 | e990182e489764d2e04fda2486cdc67f |
|
BLAKE2b-256 | ff2c2560e0f1ae8e4be43fdb5eafe38092053ea7c8b43224cffa004984feaf01 |
Hashes for scikit_decide-0.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2f35b1e257a296db66b9d6f4b1ab610d1cc278448ff190c178297e6b99b0cf3 |
|
MD5 | d45feac128ebda91173e2912fa9178a9 |
|
BLAKE2b-256 | 04cbfefb51bd7d8200a469dc735637c6461024e7e4908bb9fb00128566b10d54 |
Hashes for scikit_decide-0.9.2-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d320b9f49d8ec5ac2f73c8d767dfcf8f748b561f2d8325218302c228a9236fe |
|
MD5 | 70263a772c65582d21b99f3309c3e66b |
|
BLAKE2b-256 | 473e2770781374d38000e569438cb785829242b6650c0d57f97c7545e8d4bed8 |