<p align="center">
<img src="docs/source/_static/logo.png" alt="WLPlan Logo" style="height:256px; width:auto;">
</p>
------
WLPlan
======
[](https://pypi.org/project/wlplan/)
[](https://github.com/DillonZChen/wlplan/LICENSE)
<p class="flex-wrapper"><img src="docs/source/_static/favicon.png" style="height:1em; display:inline; padding-right:0.1em;">Plan is a library for generating graph representations and feature embeddings of PDDL planning problems and states for machine learning tasks. WLPlan currently supports both classical and numeric planning problems.</p>
The main pipeline in WLPlan consists of (1) converting planning problems and states into graphs, and (2) synthesising feature embeddings by running a variant of the Weisfeiler-Leman (WL) algorithm on the resulting graph.
<p align="center">
<img src="docs/source/_static/pipeline.svg" alt="WLPlan" title="WLPlan"/>
</p>
Detailed documentation for WLPlan can be found in the official website available [here](https://dillonzchen.github.io/wlplan).
## Installation
### Python Interface
The Python interface can be installed simply with
pip install wlplan
The PyPI release only supports `python>=3.10`. Alternatively, you can also install the package from the source code with the `install.sh` script.
### C++ Interface
The C++ interface can be installed in your project by running
./cmake_build.py <path/to/installation>
and adding the following to the root CMakeLists.txt file of your project
list(APPEND CMAKE_PREFIX_PATH "<path/to/installation>")
find_package(wlplan)
...
target_link_libraries(<your_project> PRIVATE wlplan)
## References
### Academic Publications
Some academic publications which use WLPlan are listed as follows.
- Daniel Höller. **Learning Heuristic Functions for HTN Planning**. In ICAPS 2025 Workshop on Bridging the Gap Between AI Planning and Reinforcement Learning (PRL), 2025.
- Dillon Z. Chen. **Symmetry-Invariant Novelty Heuristics via Unsupervised Weisfeiler-Leman Features**. In ICAPS 2025 Workshop on Heuristics and Search for Domain-independent Planning (HSDIP), 2025.
- Dillon Z. Chen. **Weisfeiler-Leman Features for Planning: A 1,000,000 Sample Size Hyperparameter Study**. In 28th European Conference on Artificial Intelligence (ECAI), 2025.
- Mingyu Hao, Dillon Z. Chen, Felipe Trevizan, and Sylvie Thiébaux. **Effective Data Generation and Feature Selection in Learning for Planning**. In 28th European Conference on Artificial Intelligence (ECAI), 2025.
- Rebecca Eifler, Nika Beriachvili, Arthur Bit-Monnot, Dillon Z. Chen, Jan Eisenhut, Jörg Hoffmann, Sylvie Thiébaux, and Florent Teichteil-Königsbuch. **An Operator-Centric Trustable Decision-Making Tool for Planning Ground Logistic Operations of Beluga Aircraft**. In 28th European Conference on Artificial Intelligence (ECAI), 2025.
- Dillon Z. Chen and Sylvie Thiébaux. **Graph Learning for Numeric Planning**. In 38th Conference on Neural Information Processing Systems (NeurIPS), 2024.
- Dillon Z. Chen, Felipe Trevizan, and Sylvie Thiébaux. **Return to Tradition: Learning Reliable Heuristics with Classical Machine Learning**. In 34th International Conference on Automated Planning and Scheduling (ICAPS), 2024.
### Bibtex
The academic reference for WLPlan is given by the bibtex entry
```
@article{chen-wlplan-2024,
author = {Dillon Z. Chen},
title = {WLPlan: Relational Features for Symbolic Planning},
journal = {CoRR},
volume = {abs/2411.00577},
year = {2024},
}
```
Raw data
{
"_id": null,
"home_page": null,
"name": "wlplan",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "wlplan, automated planning, machine learning",
"author": "Dillon Z. Chen",
"author_email": "\"Dillon Z. Chen\" <dillon.chen1@gmail.com>",
"download_url": null,
"platform": null,
"description": "<p align=\"center\">\n <img src=\"docs/source/_static/logo.png\" alt=\"WLPlan Logo\" style=\"height:256px; width:auto;\">\n</p>\n\n------\n\nWLPlan\n======\n\n[](https://pypi.org/project/wlplan/)\n[](https://github.com/DillonZChen/wlplan/LICENSE)\n\n<p class=\"flex-wrapper\"><img src=\"docs/source/_static/favicon.png\" style=\"height:1em; display:inline; padding-right:0.1em;\">Plan is a library for generating graph representations and feature embeddings of PDDL planning problems and states for machine learning tasks. WLPlan currently supports both classical and numeric planning problems.</p>\n\nThe main pipeline in WLPlan consists of (1) converting planning problems and states into graphs, and (2) synthesising feature embeddings by running a variant of the Weisfeiler-Leman (WL) algorithm on the resulting graph.\n\n<p align=\"center\">\n <img src=\"docs/source/_static/pipeline.svg\" alt=\"WLPlan\" title=\"WLPlan\"/>\n</p>\n\nDetailed documentation for WLPlan can be found in the official website available [here](https://dillonzchen.github.io/wlplan).\n\n## Installation\n### Python Interface\nThe Python interface can be installed simply with\n\n pip install wlplan\n\nThe PyPI release only supports `python>=3.10`. Alternatively, you can also install the package from the source code with the `install.sh` script.\n\n### C++ Interface\nThe C++ interface can be installed in your project by running\n\n ./cmake_build.py <path/to/installation>\n\nand adding the following to the root CMakeLists.txt file of your project\n\n list(APPEND CMAKE_PREFIX_PATH \"<path/to/installation>\")\n find_package(wlplan)\n ...\n target_link_libraries(<your_project> PRIVATE wlplan)\n\n## References\n### Academic Publications\nSome academic publications which use WLPlan are listed as follows.\n- Daniel H\u00f6ller. **Learning Heuristic Functions for HTN Planning**. In ICAPS 2025 Workshop on Bridging the Gap Between AI Planning and Reinforcement Learning (PRL), 2025.\n- Dillon Z. Chen. **Symmetry-Invariant Novelty Heuristics via Unsupervised Weisfeiler-Leman Features**. In ICAPS 2025 Workshop on Heuristics and Search for Domain-independent Planning (HSDIP), 2025.\n- Dillon Z. Chen. **Weisfeiler-Leman Features for Planning: A 1,000,000 Sample Size Hyperparameter Study**. In 28th European Conference on Artificial Intelligence (ECAI), 2025.\n- Mingyu Hao, Dillon Z. Chen, Felipe Trevizan, and Sylvie Thi\u00e9baux. **Effective Data Generation and Feature Selection in Learning for Planning**. In 28th European Conference on Artificial Intelligence (ECAI), 2025.\n- Rebecca Eifler, Nika Beriachvili, Arthur Bit-Monnot, Dillon Z. Chen, Jan Eisenhut, J\u00f6rg Hoffmann, Sylvie Thi\u00e9baux, and Florent Teichteil-K\u00f6nigsbuch. **An Operator-Centric Trustable Decision-Making Tool for Planning Ground Logistic Operations of Beluga Aircraft**. In 28th European Conference on Artificial Intelligence (ECAI), 2025.\n- Dillon Z. Chen and Sylvie Thi\u00e9baux. **Graph Learning for Numeric Planning**. In 38th Conference on Neural Information Processing Systems (NeurIPS), 2024.\n- Dillon Z. Chen, Felipe Trevizan, and Sylvie Thi\u00e9baux. **Return to Tradition: Learning Reliable Heuristics with Classical Machine Learning**. In 34th International Conference on Automated Planning and Scheduling (ICAPS), 2024.\n\n### Bibtex\nThe academic reference for WLPlan is given by the bibtex entry\n```\n@article{chen-wlplan-2024,\n author = {Dillon Z. Chen},\n title = {WLPlan: Relational Features for Symbolic Planning},\n journal = {CoRR},\n volume = {abs/2411.00577},\n year = {2024},\n}\n```\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "WLPlan: Relational Features for PDDL Planning",
"version": "2.1.0",
"project_urls": {
"Documentation": "https://dillonzchen.github.io/comingsoon.html",
"Homepage": "https://dillonzchen.github.io/comingsoon.html",
"Source": "https://github.com/dillonzchen/wlplan"
},
"split_keywords": [
"wlplan",
" automated planning",
" machine learning"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a3feb6d585e6244c4efed935352bb16719b661523b5d623bda7595f983961e64",
"md5": "91cc785930f0e9147771bdc2462ee0cf",
"sha256": "ab2f1b6d863be561c4280ddd2e19f8e39b99df1a3df8e460196f7007641fa424"
},
"downloads": -1,
"filename": "wlplan-2.1.0-cp310-cp310-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "91cc785930f0e9147771bdc2462ee0cf",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 628018,
"upload_time": "2025-10-11T11:54:08",
"upload_time_iso_8601": "2025-10-11T11:54:08.935033Z",
"url": "https://files.pythonhosted.org/packages/a3/fe/b6d585e6244c4efed935352bb16719b661523b5d623bda7595f983961e64/wlplan-2.1.0-cp310-cp310-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b38d5e8e6c796e46d60878f14c8ab0d1ccd7082ab89230b3a6deec2c62430517",
"md5": "bbb95fa13fe70619210ca05f6c7b78f3",
"sha256": "50e2376cadc3646c682e92e3a768ce57bbd428c3172702751d82a0934f23c42d"
},
"downloads": -1,
"filename": "wlplan-2.1.0-cp311-cp311-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "bbb95fa13fe70619210ca05f6c7b78f3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 630542,
"upload_time": "2025-10-11T11:52:07",
"upload_time_iso_8601": "2025-10-11T11:52:07.521914Z",
"url": "https://files.pythonhosted.org/packages/b3/8d/5e8e6c796e46d60878f14c8ab0d1ccd7082ab89230b3a6deec2c62430517/wlplan-2.1.0-cp311-cp311-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ed233e571ad768309e6ee5453f08859594d4691025ce9fa5c03781ffcbf2de90",
"md5": "e75f14fc2fab65763de721597f553268",
"sha256": "c21e46a5f0f4dc71bca73206811eee1261b0e4e3756c433b266384ce753971f0"
},
"downloads": -1,
"filename": "wlplan-2.1.0-cp312-cp312-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "e75f14fc2fab65763de721597f553268",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 631192,
"upload_time": "2025-10-11T11:52:52",
"upload_time_iso_8601": "2025-10-11T11:52:52.134340Z",
"url": "https://files.pythonhosted.org/packages/ed/23/3e571ad768309e6ee5453f08859594d4691025ce9fa5c03781ffcbf2de90/wlplan-2.1.0-cp312-cp312-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-11 11:54:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dillonzchen",
"github_project": "wlplan",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "wlplan"
}