Skip to main content

The AI framework for Reinforcement Learning, Automated Planning and Scheduling

Project description

                _  __    _  __              __             _      __
   _____ _____ (_)/ /__ (_)/ /_        ____/ /___   _____ (_)____/ /___
  / ___// ___// // //_// // __/______ / __  // _ \ / ___// // __  // _ \
 (__  )/ /__ / // ,<  / // /_ /_____// /_/ //  __// /__ / // /_/ //  __/
/____/ \___//_//_/|_|/_/ \__/        \__,_/ \___/ \___//_/ \__,_/ \___/

actions status version stars forks


Scikit-decide for Python

Scikit-decide is an AI framework for Reinforcement Learning, Automated Planning and Scheduling.

This framework was initiated at Airbus AI Research and notably received contributions through the ANITI and TUPLES projects, and also from ANU.

Main features

  • Problem solving: describe your decision-making problem once and auto-match compatible solvers.
    For instance planning/scheduling problems can be solved by RL solvers using GNNs.
  • Growing catalog: enjoy a growing list of domains & solvers catalog, supported by the community.
  • Open & Extensible: scikit-decide is open source and is able to wrap existing state-of-the-art domains/solvers.
  • Domains available:
    • Gym(nasium) environments for reinforcement learning (RL)
    • PDDL (Planning Domain Definition Language) via unified-planning and plado libraries
      • encoding in gym(nasium) spaces compatible with RL
      • graph representations for RL (inspired by Lifted Learning Graph) :new:
    • RDDL (Relational Dynamic Influence Diagram Language) using pyrddl-gym library.
    • Flight planning, based on openap or in-house Poll-Schumann for performance model
    • Scheduling, based on rcpsp problem from discrete-optimization library
    • Toy domains like: maze, mastermind, rock-paper-scissors
  • Solvers available:
    • RL solvers from ray.rllib and stable-baselines3
      • existing algos with action masking
      • adaptation of RL algos for graph observation, based on GNNs from pytorch-geometric :new:
      • autoregressive models with action masking component by component for parametric actions :new:
    • Planning solvers from unified-planning library
    • RDDL solvers jax and gurobi-based based on pyRDDLGym-jax and pyRDDLGym-gurobi from pyrddl-gym project
    • Search solvers coded in scikit-decide library:
      • A*, AO*, Improved-LAO*
      • Value Iteration (VI), Policy Iteration (PI)
      • Labeled RTDP, Learning Real-Time A*
      • LDFS (Label-correcting Depth-First Search), Iterative Deepening A*
      • SSiPP (Short-Sighted Planning), FRET (Find, Revise, Eliminate Traps)
      • iDual (LP-based SSP solver), Goal Probability and Cost Iteration (GPCI)
      • Best First Width Search, Iterated Width (IW), Rollout IW (RIW)
      • Monte Carlo Tree Search (MCTS), POMCP
      • DESPOT, SARSOP, Witness (POMDP solvers)
      • RTDP-Bel (belief-space RTDP), HSVI / GoalHSVI
      • SSPReplan, SSPDetHindsight, SSPPlanMerger (determinization approaches)
      • Multi-Agent RTDP, Multi-Agent Heuristic meta-solver (MAHD)
    • (Probabilistic) PDDL (PPDDL) solvers:
      • FF planner
      • FFReplan / PPDDLReplan (replanning with pluggable inner solvers)
      • FFDetHindsight / PPDDLDetHindsight (determinization in hindsight)
      • RFF / PPDDLPlanMerger (plan aggregation into a policy)
    • PDDL heuristics (with their probabilistic extensions):
      • Delete-Relaxation heuristics
      • FF Heuristic
    • PDDL+ parser and simulators with Probabilistic PDDL extensions
      • Lifted applicable action filtering using Clingo
      • Z3-based event synchronization in python using z3-solver
    • Evolution strategy: Cartesian Genetic Programming (CGP)
    • Scheduling solvers from discrete-optimization,
      • itself wrapping ortools, gurobi, toulbar, minizinc, deap (genetic algorithm), didppy (dynamic programming),
      • and coding local search (hill climber, simulated annealing), Large Neighborhood Search (LNS), and genetic programming based hyper-heuristic (GPHH)
  • Tuning solvers hyperparameters
    • hyperparameters definition
    • automated study with optuna

Installation

Quick version:

pip install scikit-decide[all]

For more details, see the online documentation.

Documentation

The latest documentation is available online.

Examples

Some educational notebooks are available in notebooks/ folder. Links to launch them online with binder are provided in the Notebooks section of the online documentation.

More examples can be found as Python scripts 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.

Contributing

See more about how to contribute in the online documentation.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

scikit_decide-1.1.0-cp312-cp312-win_amd64.whl (57.5 MB view details)

Uploaded CPython 3.12Windows x86-64

scikit_decide-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

scikit_decide-1.1.0-cp312-cp312-macosx_12_0_arm64.whl (14.1 MB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

scikit_decide-1.1.0-cp312-cp312-macosx_10_15_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

scikit_decide-1.1.0-cp311-cp311-win_amd64.whl (57.5 MB view details)

Uploaded CPython 3.11Windows x86-64

scikit_decide-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

scikit_decide-1.1.0-cp311-cp311-macosx_12_0_arm64.whl (13.9 MB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

scikit_decide-1.1.0-cp311-cp311-macosx_10_15_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

scikit_decide-1.1.0-cp310-cp310-win_amd64.whl (57.5 MB view details)

Uploaded CPython 3.10Windows x86-64

scikit_decide-1.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

scikit_decide-1.1.0-cp310-cp310-macosx_12_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

scikit_decide-1.1.0-cp310-cp310-macosx_10_15_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

Details for the file scikit_decide-1.1.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1d11eea203f825bc8096e9f74896c147d01cfe5c5d9056e2dc0efb87c6153129
MD5 f9961ca4ca50d4930e27bdabcbbedef9
BLAKE2b-256 1b6e47aa5b9b53e566875b0ae3329f6f34fd09f50a81fec819076dab76991cbd

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 065deffa71a2a0787b3f8b468e5d255980b65b1aee195ec1bd3dad3f455cba33
MD5 91019fbe23da9e0e0111dea8cc5d1ca1
BLAKE2b-256 2e6b2dbf011ecd373deec004edc02eaf7229b4713459b1e7db94d323991e2602

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp312-cp312-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c0680a40ac5c2ce77e047377369cc3a1fcd0c7350ed6bf15b521d89ef356080c
MD5 90d3ead5206c6c212fd558a0d49afab7
BLAKE2b-256 7a567a606331627893ea417e5db51b14ada6ca40d74b3b6ea4a809d605dd8b96

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 346df7bc3c11a42ea23d08cd6d66015f3f121d5f3db31a2cadd99674aa6ff858
MD5 8fb704063bbb0a1127d6bc9913c69d5f
BLAKE2b-256 7f5387483ec09c5c2b0e67fa50a98f6abf1f2af3647157d3bf6ddd16cc14f64d

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c157b40605f9b1e8e903c0a5b31fc1d9bd735f94a0d10a57e1e3f54c25a3e69f
MD5 3cefbc2c86fc44bf8780a2174d8a1dbe
BLAKE2b-256 92368fb3a0dc766bafdde6de2452f0bbf7beb0320866c748c8309b153ef8b0dc

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2cf587939bab96d83e3df4a35e21f1b00b570bffb4decc59431c679cacc9494e
MD5 c4e506bf88bbdc037b0d481af112f947
BLAKE2b-256 00a3d8f15dd32673053d89ac0bb79d8ca002b14b8705ff5336cdd73f2669a824

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 0f68cbacf790098b59ae1f04c3c5272a5eeba837a7df17a39d99cfa4c128d40a
MD5 33784fe064954a6ce791a655f80f8f97
BLAKE2b-256 3a7de192903cdd5c7658ae401c0dc2dbe62ee300cb653aa476d129d094e5cca1

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 53d381bd839eda8b20e6a0d03d1bd1005fc493fcb357acb3a9c7637480183202
MD5 a52bc230d097cd7d8d11a8751f6cf8b9
BLAKE2b-256 035a5090fbff0bc05be80934758a6751c810f6372b8436050ef1f8c064e80b87

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b074ec6f32cb74789fc26ffc6fd2cdd1bcdb45a391198d3348c0b5174ade6bdd
MD5 08d1a61acbe0b026451784d69b15874b
BLAKE2b-256 91a12cbec0d486985fc5e86a807ca57f0126d5a41550342f21db9b792360c804

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 77e946eb634308db5316ac148354507e10765e087bd23d4420ff8cf904638f23
MD5 a53d9bce418207fed0f011e42bf98540
BLAKE2b-256 2237f218d0a4728415a9c697c6d7f15d116c8f609fb3e4a02c290d5c93825db6

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 230983396ca4c0a7b282d88e96b5bf90c305233c8233f119f06a12cd71b82eb7
MD5 e823a524de612418c8c290bb9f4fa773
BLAKE2b-256 63eca4c70a907619be32064a4c4d934b65d5c97ffa418cd847593bf0f97bfc34

See more details on using hashes here.

File details

Details for the file scikit_decide-1.1.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for scikit_decide-1.1.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 521a6e3b45f8e13be150ba62b630659468df88da10c4478da9d1f49a204f0496
MD5 051dfea624fc0053f2b626cf11ca166d
BLAKE2b-256 477ed1d44edf1480353748a9c44ee507cd957e9396ec35cc93b3dfb0c444dbc9

See more details on using hashes here.

Supported by

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