{"id":17366509,"url":"https://github.com/airbus/scikit-decide","last_synced_at":"2025-12-29T23:34:03.095Z","repository":{"id":37630576,"uuid":"229239355","full_name":"airbus/scikit-decide","owner":"airbus","description":"AI framework for Reinforcement Learning, Automated Planning and Scheduling","archived":false,"fork":false,"pushed_at":"2024-04-17T06:59:54.000Z","size":6255,"stargazers_count":122,"open_issues_count":18,"forks_count":23,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-04-17T19:21:52.168Z","etag":null,"topics":["artificial-intelligence","decision-making","planning-algorithms","reinforcement-learning","scheduling-algorithms"],"latest_commit_sha":null,"homepage":"https://airbus.github.io/scikit-decide","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/airbus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-12-20T10:03:14.000Z","updated_at":"2024-05-28T14:20:23.005Z","dependencies_parsed_at":"2024-04-19T14:06:44.857Z","dependency_job_id":null,"html_url":"https://github.com/airbus/scikit-decide","commit_stats":{"total_commits":430,"total_committers":14,"mean_commits":"30.714285714285715","dds":0.5697674418604651,"last_synced_commit":"e93ab7b9315b35be06e6658602c5bb5b1e46ba40"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbus%2Fscikit-decide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbus%2Fscikit-decide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbus%2Fscikit-decide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbus%2Fscikit-decide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/airbus","download_url":"https://codeload.github.com/airbus/scikit-decide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240901603,"owners_count":19875725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","decision-making","planning-algorithms","reinforcement-learning","scheduling-algorithms"],"created_at":"2024-10-15T22:00:59.648Z","updated_at":"2025-12-29T23:34:03.090Z","avatar_url":"https://github.com/airbus.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\n                    _  __    _  __              __             _      __\n       _____ _____ (_)/ /__ (_)/ /_        ____/ /___   _____ (_)____/ /___\n      / ___// ___// // //_// // __/______ / __  // _ \\ / ___// // __  // _ \\\n     (__  )/ /__ / // ,\u003c  / // /_ /_____// /_/ //  __// /__ / // /_/ //  __/\n    /____/ \\___//_//_/|_|/_/ \\__/        \\__,_/ \\___/ \\___//_/ \\__,_/ \\___/\n\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/airbus/scikit-decide/actions/workflows/ci.yml?query=branch%3Amaster\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/airbus/scikit-decide/ci.yml?branch=master\u0026logo=github\u0026label=CI%20status\" alt=\"actions status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/airbus/scikit-decide/tags\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/tag/airbus/scikit-decide.svg?label=current%20version\" alt=\"version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/airbus/scikit-decide/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/airbus/scikit-decide.svg\" alt=\"stars\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/airbus/scikit-decide/network\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/airbus/scikit-decide.svg\" alt=\"forks\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n# Scikit-decide for Python\n\nScikit-decide is an AI framework for Reinforcement Learning, Automated Planning and Scheduling.\n\nThis framework was initiated at [Airbus](https://www.airbus.com) AI Research and notably received contributions through the [ANITI](https://aniti.univ-toulouse.fr/en/) and [TUPLES](https://tuples.ai/) projects, and also from [ANU](https://www.anu.edu.au/).\n\n## Main features\n\n\u003c!--features-list-start--\u003e\n\n- **Problem solving:** describe your decision-making problem once and auto-match compatible solvers.\\\n  _For instance planning/scheduling problems can be solved by RL solvers using GNNs._\n- **Growing catalog:** enjoy a growing list of domains \u0026 solvers catalog, supported by the community.\n- **Open \u0026 Extensible:** scikit-decide is open source and is able to wrap existing state-of-the-art domains/solvers.\n- **Domains available:**\n  - [Gym(nasium)](https://gymnasium.farama.org/) environments for reinforcement learning (RL)\n  - [PDDL](https://planning.wiki/) (Planning Domain Definition Language) via [unified-planning](https://github.com/aiplan4eu/unified-planning) and [plado](https://github.com/massle/plado) libraries\n    - encoding in gym(nasium) spaces compatible with RL\n    - graph representations for RL (inspired by [Lifted Learning Graph](https://doi.org/10.1609/aaai.v38i18.29986)) :new:\n  - [RDDL](https://users.cecs.anu.edu.au/~ssanner/IPPC_2011/RDDL.pdf) (Relational Dynamic Influence Diagram Language) using [pyrddl-gym](https://github.com/pyrddlgym-project) library.\n  - Flight planning, based on [openap](https://openap.dev/) or in-house Poll-Schumann for performance model\n  - Scheduling, based on rcpsp problem from [discrete-optimization](https://airbus.github.io/discrete-optimization) library\n  - Toy domains like: maze, mastermind, rock-paper-scissors\n- **Solvers available:**\n  - RL solvers from ray.rllib and stable-baselines3\n    - existing algos with action masking\n    - adaptation of RL algos for graph observation, based on GNNs from [pytorch-geometric](https://pytorch-geometric.readthedocs.io/) :new:\n    - autoregressive models with action masking component by component for parametric actions :new:\n  - Planning solvers from [unified-planning](https://github.com/aiplan4eu/unified-planning) library\n  - RDDL solvers jax and gurobi-based based on pyRDDLGym-jax and pyRDDLGym-gurobi from [pyrddl-gym project](https://github.com/pyrddlgym-project)\n  - Search solvers coded in scikit-decide library:\n    - A*\n    - AO*\n    - Improved-LAO*\n    - Learning Real-Time A*\n    - Best First Width Search\n    - Labeled RTDP\n    - Multi-Agent RTDP\n    - Iterated Width search (IW)\n    - Rollout IW (RIW)\n    - Partially-Observable Monte Carlo Planning (POMCP)\n    - Monte Carlo Tree Search Methods (MCTS)\n    - Multi-Agent Heuristic meta-solver (MAHD)\n  - Evolution strategy: Cartesian Genetic Programming (CGP)\n  - Scheduling solvers from [discrete-optimization](https://airbus.github.io/discrete-optimization),\n    - itself wrapping [ortools](https://developers.google.com/optimization), [gurobi](https://www.gurobi.com/),\n    [toulbar](https://toulbar2.github.io/toulbar2/#), [minizinc](https://www.minizinc.org/),\n    [deap](https://deap.readthedocs.io/) (genetic algorithm), [didppy](https://didppy.readthedocs.io/) (dynamic programming),\n    - and coding local search (hill climber, simulated annealing), Large Neighborhood Search (LNS), and\n    genetic programming based hyper-heuristic (GPHH)\n- **Tuning solvers hyperparameters**\n  - hyperparameters definition\n  - automated study with optuna\n\n\u003c!--features-list-end--\u003e\n\n## Installation\n\nQuick version:\n```shell\npip install scikit-decide[all]\n```\nFor more details, see the [online documentation](https://airbus.github.io/scikit-decide/install).\n\n## Documentation\n\nThe latest documentation is available [online](https://airbus.github.io/scikit-decide).\n\n## Examples\n\nSome educational notebooks are available in `notebooks/` folder.\nLinks to launch them online with [binder](https://mybinder.org/) are provided in the\n[Notebooks section](https://airbus.github.io/scikit-decide/notebooks) of the online documentation.\n\nMore examples can be found as Python scripts in the `examples/` folder, showing how to import or define a domain,\nand how to run or solve it. Most of the examples rely on scikit-decide Hub, an extensible catalog of domains/solvers.\n\n## Contributing\n\nSee more about how to contribute in the [online documentation](https://airbus.github.io/scikit-decide/contribute).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairbus%2Fscikit-decide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fairbus%2Fscikit-decide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairbus%2Fscikit-decide/lists"}