Kstar Planner is an Automated PDDL based planner that includes planners for top-k and top-quality planning computational tasks.
Project description
Kstar Planner is an Automated PDDL based planner that includes planners for top-k and top-quality planning computational tasks.
The codebase consists of multiple planners, for multiple computational problems, roughly divided into two categories:
- Top-k planning
- Top-quality planning
2.1. Top-quality planning
2.2. Unordered top-quality planning
The planner implements
- Pure K* search based top-k and top-quality planning
- Symmetry based pruning: OK* search
- Partial order reduction: RK* search Both symmetry based pruning and partial order reduction can be used together: ORK* search
Installation
pip install kstar-planner
Running (examples)
Top-k
OK* with lmcut heuristic
from kstar_planner import planners
from pathlib import Path
domain_file = Path("your/path/domain.pddl")
problem_file = Path("your/path/problem.pddl")
plans = planners.plan_topk(domain_file=domain_file, problem_file=problem_file, number_of_plans_bound=100, timeout=30)
print(plans)
Top-quality
OK* with iPDB heuristic (recommended)
from kstar_planner import planners
from pathlib import Path
domain_file = Path("your/path/domain.pddl")
problem_file = Path("your/path/problem.pddl")
heuristic = "ipdb(transform=undo_to_origin())"
plans = planners.plan_topq(domain_file=domain_file, problem_file=problem_file, quality_bound=1.0,number_of_plans_bound=100, timeout=30, search_heuristic=heuristic)
print(plans)
Unordered Top-quality
ORK* with iPDB heuristic (recommended)
from kstar_planner import planners
from pathlib import Path
domain_file = Path("your/path/domain.pddl")
problem_file = Path("your/path/problem.pddl")
heuristic = "ipdb(transform=undo_to_origin())"
plans = planners.plan_unordered_topq(domain_file=domain_file, problem_file=problem_file, quality_bound=1.0,number_of_plans_bound=100, timeout=30, search_heuristic=heuristic)
print(plans)
Citing
Top-k planning
@InProceedings{lee-et-al-socs2023,
title = "On K* Search for Top-k Planning",
author = "Junkyu Lee and Michael Katz and Shirin Sohrabi",
booktitle = "Proceedings of the 16th Annual Symposium on
Combinatorial Search (SoCS 2023)",
publisher = "{AAAI} Press",
year = "2023"
}
@InProceedings{katz-lee-ijcai2023,
author = "Michael Katz and Junkyu Lee",
title = "K* Search Over Orbit Space for Top-k Planning",
booktitle = "Proceedings of the 32nd International Joint
Conference on Artificial Intelligence (IJCAI 2023)",
publisher = "{IJCAI}",
year = "2023"
}
Top-quality planning
@InProceedings{katz-lee-socs2023,
title = "K* and Partial Order Reduction for Top-quality Planning",
author = "Michael Katz and Junkyu Lee",
booktitle = "Proceedings of the 16th Annual Symposium on
Combinatorial Search (SoCS 2023)",
publisher = "{AAAI} Press",
year = "2023"
}
Licensing
Kstar Planner is an Automated PDDL based planner that includes planners for top-k and top-quality planning computational tasks. Copyright (C) 2023 Junkyu Lee, Michael Katz, IBM Research, USA. The code extends the Fast Downward planning system. The license for the extension is specified in the LICENSE file.
Fast Downward
Fast Downward is a domain-independent classical planning system.
Copyright 2003-2022 Fast Downward contributors (see below).
For further information:
- Fast Downward website: https://www.fast-downward.org
- Report a bug or file an issue: https://issues.fast-downward.org
- Fast Downward mailing list: https://groups.google.com/forum/#!forum/fast-downward
- Fast Downward main repository: https://github.com/aibasel/downward
Tested software versions
This version of Fast Downward has been tested with the following software versions:
OS | Python | C++ compiler | CMake |
---|---|---|---|
Ubuntu 20.04 | 3.8 | GCC 9, GCC 10, Clang 10, Clang 11 | 3.16 |
Ubuntu 18.04 | 3.6 | GCC 7, Clang 6 | 3.10 |
macOS 10.15 | 3.6 | AppleClang 12 | 3.19 |
Windows 10 | 3.6 | Visual Studio Enterprise 2017 (MSVC 19.16) and 2019 (MSVC 19.28) | 3.19 |
We test LP support with CPLEX 12.9, SoPlex 3.1.1 and Osi 0.107.9. On Ubuntu, we test both CPLEX and SoPlex. On Windows, we currently only test CPLEX, and on macOS, we do not test LP solvers (yet).
Contributors
The following list includes all people that actively contributed to Fast Downward, i.e. all people that appear in some commits in Fast Downward's history (see below for a history on how Fast Downward emerged) or people that influenced the development of such commits. Currently, this list is sorted by the last year the person has been active, and in case of ties, by the earliest year the person started contributing, and finally by last name.
- 2003-2022 Malte Helmert
- 2008-2016, 2018-2022 Gabriele Roeger
- 2010-2022 Jendrik Seipp
- 2010-2011, 2013-2022 Silvan Sievers
- 2012-2022 Florian Pommerening
- 2013, 2015-2022 Salomé Eriksson
- 2018-2022 Patrick Ferber
- 2021-2022 Clemens Büchner
- 2021-2022 Dominik Drexler
- 2022 Remo Christen
- 2015, 2021 Thomas Keller
- 2016-2020 Cedric Geissmann
- 2017-2020 Guillem Francès
- 2018-2020 Augusto B. Corrêa
- 2020 Rik de Graaff
- 2015-2019 Manuel Heusner
- 2017 Daniel Killenberger
- 2016 Yusra Alkhazraji
- 2016 Martin Wehrle
- 2014-2015 Patrick von Reth
- 2009-2014 Erez Karpas
- 2014 Robert P. Goldman
- 2010-2012 Andrew Coles
- 2010, 2012 Patrik Haslum
- 2003-2011 Silvia Richter
- 2009-2011 Emil Keyder
- 2010-2011 Moritz Gronbach
- 2010-2011 Manuela Ortlieb
- 2011 Vidal Alcázar Saiz
- 2011 Michael Katz
- 2011 Raz Nissim
- 2010 Moritz Goebelbecker
- 2007-2009 Matthias Westphal
- 2009 Christian Muise
History
The current version of Fast Downward is the merger of three different projects:
- the original version of Fast Downward developed by Malte Helmert and Silvia Richter
- LAMA, developed by Silvia Richter and Matthias Westphal based on the original Fast Downward
- FD-Tech, a modified version of Fast Downward developed by Erez Karpas and Michael Katz based on the original code
In addition to these three main sources, the codebase incorporates code and features from numerous branches of the Fast Downward codebase developed for various research papers. The main contributors to these branches are Malte Helmert, Gabi Röger and Silvia Richter.
License
The following directory is not part of Fast Downward as covered by this license:
- ./src/search/ext
For the rest, the following license applies:
Fast Downward is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
Fast Downward is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
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
Built Distributions
Hashes for kstar_planner-1.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82465d2f489d63dcd9f53186a1a7283d2bf4f1337e28817e5b70fd1c68e6b0cf |
|
MD5 | 5f8d8d2a7bc4dc39e3bf32248c5bf5e8 |
|
BLAKE2b-256 | 6f762fd888a4a5571d260bcf9cc837c9e1b06822b8341e25782ebe3beed06dc6 |
Hashes for kstar_planner-1.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df40e4b984d83c8057583b60c6b362b4d8beaee40cd8607904824a187902972b |
|
MD5 | 23fa786b730fb0562ee907d768ccff3a |
|
BLAKE2b-256 | ee996509c6657941367af66375a12d0eadf81afcc12cf97204f76434865d6c31 |
Hashes for kstar_planner-1.4.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0610870a87a1f46d99162ee1201ab3c439530cf7febc7b78295789ca4c244240 |
|
MD5 | 01ce95a90e12a5bfb15d30fb887b80bd |
|
BLAKE2b-256 | 9069eaa46dded6edd468ae81bfcd4414064a8fa1116ca1a4900145819d151204 |
Hashes for kstar_planner-1.4.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fff71703d6551176294bdf4e9af19dec7492f0fc4a714999fc0ea1640f0311c |
|
MD5 | 3600c82a0dd1b621acf4814c99588348 |
|
BLAKE2b-256 | 9297a1b4097778f423e331a5f8b5ce06c80a4d4cc3e964897fe38994279a95d2 |
Hashes for kstar_planner-1.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5335a58f630a6e249b80c08e6e3bccee280ab98e37dcd20f5f67b8c43b60ebe0 |
|
MD5 | 6c581b9b125022ec4998341f825dd386 |
|
BLAKE2b-256 | 9c2df836dd12542d40b7d198d4e8aae2a55e0ede641dad7d4fd56ba384671a53 |
Hashes for kstar_planner-1.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2c6ac0a0750ecd9f37197ebd773ffa444251c53d2854fc0983178ac7c7eeb01 |
|
MD5 | e4d6e3907872e80d06c5d7fc216f4151 |
|
BLAKE2b-256 | c14c1621bd269f43868419c51dfcdd850a25372b37e989c536f85f239916f9a3 |
Hashes for kstar_planner-1.4.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 012c4694015c4fc04f0754977a00da0aaf5015a143199494af619115d65a3e07 |
|
MD5 | 44889c715334771bd45fb0663e1b7ffb |
|
BLAKE2b-256 | de0d20b2b5c351f797909da1bbd97e0d5af1b32773686b7e077d7f9011069164 |
Hashes for kstar_planner-1.4.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d564db79be92cb2aa685a4ef40a309955fa06e845f668db7928a6e0df03345fb |
|
MD5 | 31cbe5adeb9a01d1adfe541f6082a035 |
|
BLAKE2b-256 | 4d3768e5deb75b0b9b6ad84f309a23932ff3caf0b32b843216db0504b6dc3a49 |
Hashes for kstar_planner-1.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 228e90810c0d084c61f0d9aa2d73dda67b568a46242c7b7cebe892249bc5282e |
|
MD5 | e4e88c438269ba4cfae4098e9f724d58 |
|
BLAKE2b-256 | 4b4a52ecfdb29aff5d2a598635e87406f26632117a6558c0b10dcf0422ac1ab0 |
Hashes for kstar_planner-1.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7405f90142547bec6d50c65adae0358769cd38e5681e04628f4e723db2ae6c0b |
|
MD5 | 4fd43a9d6344e0c90a3879d321799255 |
|
BLAKE2b-256 | c558351f7d09f0f7f7ee6539d489cc2aa64bd52a2d9892bde52d9e24980db731 |
Hashes for kstar_planner-1.4.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56f4ac4f2c881e7a551c6bd6b22a4ad14b4689b00ef58880cc404592e4298545 |
|
MD5 | e481c9a2a9d79c82cc9c29dd48c688ab |
|
BLAKE2b-256 | c7e56e357bbc68f65b023ece13d00f077668e3b4e384000c6debf252d88c06e5 |
Hashes for kstar_planner-1.4.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb2d7113af6454b98508c6521b870dc753d1fe1352b7b00658fbfd7d2edd106e |
|
MD5 | 84e258ed497dd58f2c397dfce2f5cf8e |
|
BLAKE2b-256 | 23d73fb34dc9edbcd6dcbb2a2c42674f6c0bdb5ddceba075e9bd57f16cad15f5 |
Hashes for kstar_planner-1.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4eafb52d60ea8ff35271f62e4f6f5158d45e72858a7028422783d19bba1f5314 |
|
MD5 | a0b58fb1aa01874be29a973bf0518e26 |
|
BLAKE2b-256 | 73d3fa1d48935a69789204ffe2fe118faa5924d0ece60421886a17377bc971f0 |
Hashes for kstar_planner-1.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c77e3afd72497b3279a3f11f1a6ba6c7783191b8eb5685ee1333cb0812c6df07 |
|
MD5 | efd2697a315da013cbada7462784cb63 |
|
BLAKE2b-256 | 91db07f39c3bacb5af50434fe9b86358592092525e85e53533f8e53a9ad82ae2 |
Hashes for kstar_planner-1.4.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45e509cc50448cb799a7de3a55f19d90000631eabdecb062ac17eef48cf8ed12 |
|
MD5 | c07960af9d31308a5646afe13efd9178 |
|
BLAKE2b-256 | d4733a6397322badcea5d9a26f582ac260eeb374811dd93e9992809ccab6238c |
Hashes for kstar_planner-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | add52e3a1863610517513a69e3d8199c18062919c45f07be0c33ed98d81a8f42 |
|
MD5 | 65f4cec834ad85ca61daeb3294753b41 |
|
BLAKE2b-256 | 7d32cf4f536c669ca316932566b691d5fc3d7eb6447278c6a7f50c29dc8c85bf |
Hashes for kstar_planner-1.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ac83a952fc0c84893390aea7bc09bf54d4903f2045cb937d15729c4036c01bf |
|
MD5 | a92008781ab2e8503ba989bfbc286338 |
|
BLAKE2b-256 | 06a67e2ad052b283e2e91b7c7699d68987b5481a8a8f0e6c5d53d8e7083a3983 |
Hashes for kstar_planner-1.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e688ea801e50d5f95451aa22700d271ffa81dfaa57e27e7103bfe7b6f8d7e89 |
|
MD5 | c26ab6bb76f066999b7cb0d9247e23d0 |
|
BLAKE2b-256 | 3b13ab17d8d20ff0d36b1d658e6de2084bbbb98eaa496fe3abf10277220068b2 |
Hashes for kstar_planner-1.4.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8997a772773160421580287684af363a0cdb16197c37543b3575a43eec609b6 |
|
MD5 | 3d87a6ac6fe6212b88f571272bf92247 |
|
BLAKE2b-256 | dd6bfb3b298ef94fd5f50ab651d7d8eed162af493cce79fe2b50a5a1be1cb6cf |
Hashes for kstar_planner-1.4.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19fe792ae99cd687b6c2df3cbc3ec12654129ad5f108dbb7c174f3378390f358 |
|
MD5 | 1cfd8c56ea3d3e23b292ae763fb2d2bc |
|
BLAKE2b-256 | fd8b04df43fce35b7b87edd64a151291f3123a69dc9c47766c40c14ae3015a91 |