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 Distribution

scikit_decide-1.1.1.tar.gz (21.0 MB view details)

Uploaded Source

Built Distributions

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

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

Uploaded CPython 3.12Windows x86-64

scikit_decide-1.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

scikit_decide-1.1.1-cp312-cp312-macosx_12_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

scikit_decide-1.1.1-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.1-cp311-cp311-win_amd64.whl (57.5 MB view details)

Uploaded CPython 3.11Windows x86-64

scikit_decide-1.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

scikit_decide-1.1.1-cp311-cp311-macosx_12_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

scikit_decide-1.1.1-cp311-cp311-macosx_10_15_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

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

Uploaded CPython 3.10Windows x86-64

scikit_decide-1.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

scikit_decide-1.1.1-cp310-cp310-macosx_12_0_arm64.whl (14.1 MB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

scikit_decide-1.1.1-cp310-cp310-macosx_10_15_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

Details for the file scikit_decide-1.1.1.tar.gz.

File metadata

  • Download URL: scikit_decide-1.1.1.tar.gz
  • Upload date:
  • Size: 21.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scikit_decide-1.1.1.tar.gz
Algorithm Hash digest
SHA256 4dd501a2d82c2eadf2b7286bf5a6534a9a4c64af853a316e4977730d18c85dfd
MD5 d9ffe241a1e9545515d63e5592768359
BLAKE2b-256 cdfd46185faaa175724b934951833841c4cef0dfe21d199a960ff8d5b323189b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f57eac23e2fbeae2f707f89210722d8577a15c08824700096a132b09718e61c6
MD5 297e5e557f4fe1c6213324a1f9e1a5cc
BLAKE2b-256 4160a22414dd0a59e13358884a0336df1989553ac69b855d85fd325aac30d7e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b8bfaa7ae47ab56eaa83b38bb30dcf40e576c8a5764a53dc55b01cd2da8548cc
MD5 d6855b70b77a2711d48d582cf8d2169e
BLAKE2b-256 4f91f1c1f9c03468123e348a50730a7d4ccdbc581ce28a3c5b4b20827977f441

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c55ff43c60b30203276eee4cdca9d26d0d1c5a0d0d5b5151b57cbdd8455ef0dd
MD5 a859a30fa2907a9051320a2f9ee4996f
BLAKE2b-256 9d5d58304e164a6e5cb1236505f30ddb6b4fb23c2905e52d945c668c475c13e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 81220fa30a466b21e1c7b6ab12b69acec86f9d49b1f4cd8fce3b832d16112cbc
MD5 e2e0943963d644f4b4def9cc7f13a6a3
BLAKE2b-256 083871424ee6ee023a31d355e9a961862fa4b3dc79303e891ead98037389be11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 34ca442fdafda12a37ec3a9996b2ed817922ddf92adfbe53357257a2b61058c1
MD5 2cd157450ae8a246a0fe7156708ad5c9
BLAKE2b-256 0274c9f7a2e3f63ecde2be3b45e545ccb9d6d54cfa4982d58a005df2d38ea4bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b8ffcab7eebd53798460c959bd1cfaeccd5ac790755082cb77abf5e7684c36d9
MD5 be921e77b1ff57c30fecae5c670e9f77
BLAKE2b-256 e29a0d86f27269dbc39e32485fdcf66000ebc80b08cca2157ef3196d99f1d5fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 65bf8aaa5b8d4012d139e03ba416cafef1bfe3a3eef9834f55c14292b39fc2d9
MD5 69f3b1fae4219365dd1db1258d6a630e
BLAKE2b-256 a3f672aad06a94e0033302714eac9721d5d6e865c2fd49a26f4e2a1a8ff2a9a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 44c6dc8e68234ab3107faad88d0de94537c17fcd5f5d81be1ecbc0ab4048a1c4
MD5 33d775402197aac3b27e0e5c3fac804b
BLAKE2b-256 7faf79fbb085e5507c830a71c7a9390aa90711c4a6040f31822d1aa64e027a0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6ab5c4255805fab430a7ae6ae3584392cf4ec3b5ee666ffb75a10655380b657d
MD5 3bddd4607ba2abd467bd9c625a9fea70
BLAKE2b-256 3100b11a3e6f6435d21fece7377a71283a0a56ee423f4bfb2aa00ba9efe0ca11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 117bd9945122a12b1ea60efc902e5a72ba6902721f5bcd57b4f02406e59883a1
MD5 b48a5d0d29079a40a04e3c88dfef6954
BLAKE2b-256 be5350c9ad5ef5a20ad98be970f179519964907e8834a7b072cc30b49c9420ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 210fabf553692222e7fffffdb60c0caac4844568823fd96aed3808c9f8742f0f
MD5 217893a83cf36893899e08e5e34d8f93
BLAKE2b-256 2cfa19fc7a6c1c6260682c85a27243544a7c5dd9e876b4c1562cb0fc592ce557

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for scikit_decide-1.1.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 db45d1ea150af5efe7091dc7e6dbc9a1a729c8d9635be2f735218699da5159ff
MD5 d30a00639bca981bb1029ffc7eddd5d6
BLAKE2b-256 824f9e7e99221a27bd8efc2d50be127c8a3731df42b2b48792475d7b0ca67230

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