opof


Nameopof JSON
Version 0.3.1 PyPI version JSON
download
home_pagehttps://opof.kavrakilab.org
SummaryOpen-source framework for solving the Planner Optimization Problem
upload_time2023-05-20 19:36:00
maintainer
docs_urlNone
authorYiyuan Lee
requires_python>=3.9
licenseBSD-3
keywords opof optimization machine learning reinforcement learning planning robotics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
    <img src="https://github.com/opoframework/opof/blob/master/docs/_static/img/banner.svg?raw=true" width="500px"/>
</p>

OPOF, the Open-Source Planner Optimization Framework, is an open source framework for developing domains and algorithms for planner optimization. It provides a standard API to communicate between optimization algorithms and domains, along with a set of stable algorithm implementations. 

Our complete documentation is available at [https://opof.kavrakilab.org](https://opof.kavrakilab.org).

[![Build and Test](https://github.com/opoframework/opof/actions/workflows/build_and_test.yml/badge.svg)](https://github.com/opoframework/opof/actions/workflows/build_and_test.yml)

OPOF is developed and maintained by the [Kavraki Lab](https://kavrakilab.org) at Rice University.

## Algorithms

OPOF includes the following stable algorithm implementations. 

* [Generator-Critic (GC)](https://opof.kavrakilab.org/algorithms/GC.html) - Learns a conditional and stochastic generator using gradient-based deep learning techniques.
* [SMAC](https://opof.kavrakilab.org/algorithms/SMAC.html) - Learns an unconditional and deterministic generator using the latest Bayesian optimization techniques. Wrapper around the actively maintained [SMAC3](https://github.com/automl/SMAC3) Bayesian optimization library. 
* [PyPop](https://opof.kavrakilab.org/algorithms/PyPop.html) - Learns an unconditional and deterministic generator using the latest evolution strategies. Wrapper around the actively maintained [PyPop7](https://github.com/Evolutionary-Intelligence/pypop) library for population-based (i.e. evolution strategy) techniques. 

We expect the list to grow with time, and welcome any additions.

## Domains

Domains are available as external packages maintained separately from OPOF. Some existing domain include:

* [opof-grid2d](https://github.com/opoframework/opof-grid2d) - Simple navigation domains in a 2D grid world to help users familiarize with OPOF. They also act as a sanity check for developing optimization algorithms.
* [opof-sbmp](https://github.com/opoframework/opof-sbmp) - Sampling-based motion planning (SBMP) domains for high-DoF robots to accomplish real-world picking tasks. They include the optimization of planner hyperparameters, sampling distributions, and projections.
* [opof-pomdp](https://github.com/opoframework/opof-pomdp) - Online POMDP planning domains for 2D navigation under uncertainty. They include the optimization of macro-actions.

We expect the list to grow with time, and welcome any additions.

## Installation

To install OPOF's core library, run `pip install opof`.

External packages containing additional domains and algorithms may be installed alongside OPOF. Please refer to the specific package's setup instructions.

OPOF is officially tested and supported for Python 3.9, 3.10, 3.11 on Linux.

## API
Below is an example of interacting with the `RandomWalk2D[11]` domain. 

```python
from opof_grid2d.domains import RandomWalk2D

domain = RandomWalk2D(11)
problems = domain.create_problem_set()
planner = domain.create_planner()

parameters = [pspace.rand(100).numpy() for pspace in domain.composite_parameter_space()]
for i in range(100):
    result = planner(problems(), [p[i] for p in parameters], [])
    print(result["objective"])
```

Our complete documentation is available at [https://opof.kavrakilab.org](https://opof.kavrakilab.org).

## Citing
If you use OPOF, please cite us with:

```
@article{lee23opof,
  author = {Lee, Yiyuan and Lee, Katie and Cai, Panpan and Hsu, David and Kavraki, Lydia E.},
  title = {The Planner Optimization Problem: Formulations and Frameworks},
  booktitle = {arXiv},
  year = {2023},
  doi = {10.48550/ARXIV.2303.06768},
}
```

## License

OPOF is licensed under the [BSD-3 license](https://github.com/opoframework/opof/blob/master/LICENSE.md).

OPOF is developed and maintained by the [Kavraki Lab](https://www.kavrakilab.org/) at Rice University, funded in part by NSF RI 2008720 and Rice University funds.

            

Raw data

            {
    "_id": null,
    "home_page": "https://opof.kavrakilab.org",
    "name": "opof",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "opof,optimization,machine learning,reinforcement learning,planning,robotics",
    "author": "Yiyuan Lee",
    "author_email": "yiyuan.lee@rice.edu",
    "download_url": "",
    "platform": null,
    "description": "<p align=\"center\">\n    <img src=\"https://github.com/opoframework/opof/blob/master/docs/_static/img/banner.svg?raw=true\" width=\"500px\"/>\n</p>\n\nOPOF, the Open-Source Planner Optimization Framework, is an open source framework for developing domains and algorithms for planner optimization. It provides a standard API to communicate between optimization algorithms and domains, along with a set of stable algorithm implementations. \n\nOur complete documentation is available at [https://opof.kavrakilab.org](https://opof.kavrakilab.org).\n\n[![Build and Test](https://github.com/opoframework/opof/actions/workflows/build_and_test.yml/badge.svg)](https://github.com/opoframework/opof/actions/workflows/build_and_test.yml)\n\nOPOF is developed and maintained by the [Kavraki Lab](https://kavrakilab.org) at Rice University.\n\n## Algorithms\n\nOPOF includes the following stable algorithm implementations. \n\n* [Generator-Critic (GC)](https://opof.kavrakilab.org/algorithms/GC.html) - Learns a conditional and stochastic generator using gradient-based deep learning techniques.\n* [SMAC](https://opof.kavrakilab.org/algorithms/SMAC.html) - Learns an unconditional and deterministic generator using the latest Bayesian optimization techniques. Wrapper around the actively maintained [SMAC3](https://github.com/automl/SMAC3) Bayesian optimization library. \n* [PyPop](https://opof.kavrakilab.org/algorithms/PyPop.html) - Learns an unconditional and deterministic generator using the latest evolution strategies. Wrapper around the actively maintained [PyPop7](https://github.com/Evolutionary-Intelligence/pypop) library for population-based (i.e. evolution strategy) techniques. \n\nWe expect the list to grow with time, and welcome any additions.\n\n## Domains\n\nDomains are available as external packages maintained separately from OPOF. Some existing domain include:\n\n* [opof-grid2d](https://github.com/opoframework/opof-grid2d) - Simple navigation domains in a 2D grid world to help users familiarize with OPOF. They also act as a sanity check for developing optimization algorithms.\n* [opof-sbmp](https://github.com/opoframework/opof-sbmp) - Sampling-based motion planning (SBMP) domains for high-DoF robots to accomplish real-world picking tasks. They include the optimization of planner hyperparameters, sampling distributions, and projections.\n* [opof-pomdp](https://github.com/opoframework/opof-pomdp) - Online POMDP planning domains for 2D navigation under uncertainty. They include the optimization of macro-actions.\n\nWe expect the list to grow with time, and welcome any additions.\n\n## Installation\n\nTo install OPOF's core library, run `pip install opof`.\n\nExternal packages containing additional domains and algorithms may be installed alongside OPOF. Please refer to the specific package's setup instructions.\n\nOPOF is officially tested and supported for Python 3.9, 3.10, 3.11 on Linux.\n\n## API\nBelow is an example of interacting with the `RandomWalk2D[11]` domain. \n\n```python\nfrom opof_grid2d.domains import RandomWalk2D\n\ndomain = RandomWalk2D(11)\nproblems = domain.create_problem_set()\nplanner = domain.create_planner()\n\nparameters = [pspace.rand(100).numpy() for pspace in domain.composite_parameter_space()]\nfor i in range(100):\n    result = planner(problems(), [p[i] for p in parameters], [])\n    print(result[\"objective\"])\n```\n\nOur complete documentation is available at [https://opof.kavrakilab.org](https://opof.kavrakilab.org).\n\n## Citing\nIf you use OPOF, please cite us with:\n\n```\n@article{lee23opof,\n  author = {Lee, Yiyuan and Lee, Katie and Cai, Panpan and Hsu, David and Kavraki, Lydia E.},\n  title = {The Planner Optimization Problem: Formulations and Frameworks},\n  booktitle = {arXiv},\n  year = {2023},\n  doi = {10.48550/ARXIV.2303.06768},\n}\n```\n\n## License\n\nOPOF is licensed under the [BSD-3 license](https://github.com/opoframework/opof/blob/master/LICENSE.md).\n\nOPOF is developed and maintained by the [Kavraki Lab](https://www.kavrakilab.org/) at Rice University, funded in part by NSF RI 2008720 and Rice University funds.\n",
    "bugtrack_url": null,
    "license": "BSD-3",
    "summary": "Open-source framework for solving the Planner Optimization Problem",
    "version": "0.3.1",
    "project_urls": {
        "Documentation": "https://opof.kavrakilab.org",
        "Homepage": "https://opof.kavrakilab.org",
        "Source": "https://github.com/opoframework/opof"
    },
    "split_keywords": [
        "opof",
        "optimization",
        "machine learning",
        "reinforcement learning",
        "planning",
        "robotics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3d17b53a786ef978ec399685e2d386c94d72d8963fafffc3f2c581caba676dee",
                "md5": "ac99952ba4e036542efae09807721fce",
                "sha256": "52e007b5971a489eb957fdc8c109f30ab70a72937ce30c5d119857abb32fc0cb"
            },
            "downloads": -1,
            "filename": "opof-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ac99952ba4e036542efae09807721fce",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 35753,
            "upload_time": "2023-05-20T19:36:00",
            "upload_time_iso_8601": "2023-05-20T19:36:00.935684Z",
            "url": "https://files.pythonhosted.org/packages/3d/17/b53a786ef978ec399685e2d386c94d72d8963fafffc3f2c581caba676dee/opof-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-20 19:36:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "opoframework",
    "github_project": "opof",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "opof"
}
        
Elapsed time: 0.06617s