# Probabilistic Design and OPTimisation framework (PDOPT)
A python framework for set-based design space exploration without explicit elimination rules.
It impements a set-based approach for mapping the requirements on the design space, using a probabilistic surrogate model trained on the provided design model.
This procedure ensures to identify the best candidate areas of the design space with the minimum number of assumptions of the design of the system.
The framework process follows two steps:
- **Exploration Phase**. After breaking down the design space into sets (i.e. sub-spaces), the code evaluates the probability of satisfying the constraints there. Sets that have a low probability are eliminated.
- **Search Phase**. Surviving sets are further explored by introducing a local optimisation algorithm (GA-based), and recovering the locally optimal design points.
The final output is an aggregation of locally optimal points which constitute a rich database of design alternatives capable to minimally satisfy the requirements set by the user.
## Requisites
The following python libraries are required for installing `PDOPT`.
These can be automatically installed with the provided setup script.
- numpy
- scipy
- matplotlib
- pandas
- scikit-learn
- pymoo
- joblib
The optional visualisation tool requires the `dash-plotly` package to be installed.
## Installation
First `git clone` the repository or download the zip file.
Then run the setup from the root folder:
```
pip install -e .
```
Use the `--user` option if not running in admin mode.
## Documentation
Online API documentation with example usage can be found [here](https://pdopt-code.readthedocs.io/en/latest/).
An outdated PDF document with some explaination of the theory behind PDOPT can be found in the docs folder.
Additional information can be found in the following paper: [Application of Probabilistic Set-Based Design Exploration on the Energy Management of a Hybrid-Electric Aircraft
](https://www.mdpi.com/2226-4310/9/3/147)
## Community Guidelines
This software is currently being maintained by me @spin-jet. If you find any bugs, want to contribute or have any questions, you can either open a ticket here on GitHub or send me an email at andrea.spinelli@cranfield.ac.uk
## Acknowledgements
This software was developed within Project ![FutPrInt50](https://futprint50.eu/), with EU Horizon 2020 Grant No. 875551.
The authors wants to thank all the researchers in the project who cotnributed with their input to shape the framework.
## Licensing
Copyright (c) 2021 Cranfield University. This software is released under the permissive MIT License.
Raw data
{
"_id": null,
"home_page": "https://github.com/spinjet/pdopt-code",
"name": "pdopt",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "set-based design,design space exploration,optimization,engineering design",
"author": "Andrea Spinelli",
"author_email": "andrea.spinelli@cranfield.ac.uk",
"download_url": "https://files.pythonhosted.org/packages/9f/52/bd88dcfb22d9d49b62120cec0890151a6bc7d4e0b6b522f6eeb1892ea06b/pdopt-0.5.0.tar.gz",
"platform": null,
"description": "# Probabilistic Design and OPTimisation framework (PDOPT)\r\n\r\nA python framework for set-based design space exploration without explicit elimination rules. \r\nIt impements a set-based approach for mapping the requirements on the design space, using a probabilistic surrogate model trained on the provided design model. \r\nThis procedure ensures to identify the best candidate areas of the design space with the minimum number of assumptions of the design of the system.\r\n\r\nThe framework process follows two steps: \r\n\r\n- **Exploration Phase**. After breaking down the design space into sets (i.e. sub-spaces), the code evaluates the probability of satisfying the constraints there. Sets that have a low probability are eliminated.\r\n- **Search Phase**. Surviving sets are further explored by introducing a local optimisation algorithm (GA-based), and recovering the locally optimal design points.\r\n\r\nThe final output is an aggregation of locally optimal points which constitute a rich database of design alternatives capable to minimally satisfy the requirements set by the user.\r\n\r\n## Requisites\r\n\r\nThe following python libraries are required for installing `PDOPT`. \r\nThese can be automatically installed with the provided setup script.\r\n\r\n- numpy\r\n- scipy\r\n- matplotlib\r\n- pandas\r\n- scikit-learn\r\n- pymoo\r\n- joblib\r\n\r\nThe optional visualisation tool requires the `dash-plotly` package to be installed.\r\n\r\n## Installation\r\n\r\nFirst `git clone` the repository or download the zip file.\r\nThen run the setup from the root folder:\r\n\r\n```\r\npip install -e .\r\n```\r\n\r\nUse the `--user` option if not running in admin mode.\r\n\r\n## Documentation\r\n\r\nOnline API documentation with example usage can be found [here](https://pdopt-code.readthedocs.io/en/latest/).\r\n\r\nAn outdated PDF document with some explaination of the theory behind PDOPT can be found in the docs folder.\r\nAdditional information can be found in the following paper: [Application of Probabilistic Set-Based Design Exploration on the Energy Management of a Hybrid-Electric Aircraft\r\n](https://www.mdpi.com/2226-4310/9/3/147)\r\n\r\n## Community Guidelines\r\n\r\nThis software is currently being maintained by me @spin-jet. If you find any bugs, want to contribute or have any questions, you can either open a ticket here on GitHub or send me an email at andrea.spinelli@cranfield.ac.uk \r\n\r\n\r\n## Acknowledgements\r\n\r\nThis software was developed within Project ![FutPrInt50](https://futprint50.eu/), with EU Horizon 2020 Grant No. 875551.\r\nThe authors wants to thank all the researchers in the project who cotnributed with their input to shape the framework.\r\n\r\n## Licensing\r\n\r\nCopyright (c) 2021 Cranfield University. This software is released under the permissive MIT License.\r\n\r\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Package for Probabilistic Design Space Exploration using Set-Based Design",
"version": "0.5.0",
"project_urls": {
"Homepage": "https://github.com/spinjet/pdopt-code"
},
"split_keywords": [
"set-based design",
"design space exploration",
"optimization",
"engineering design"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "85f941832c780a05e272df041f2ec51a02dae249d0b3484d0cd9b7038ef5f327",
"md5": "e6a2b99d1135ddde31142142de2f267d",
"sha256": "da0561a30b7a491c637d90fb23075f71bde18fb2e26429e2c677961ac7a45899"
},
"downloads": -1,
"filename": "pdopt-0.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e6a2b99d1135ddde31142142de2f267d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 32311,
"upload_time": "2024-02-14T17:48:20",
"upload_time_iso_8601": "2024-02-14T17:48:20.169119Z",
"url": "https://files.pythonhosted.org/packages/85/f9/41832c780a05e272df041f2ec51a02dae249d0b3484d0cd9b7038ef5f327/pdopt-0.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9f52bd88dcfb22d9d49b62120cec0890151a6bc7d4e0b6b522f6eeb1892ea06b",
"md5": "4c5717478df8844c03584ffdb2cc4d29",
"sha256": "096228c2df2fd4c84328761fee018500d4d082bb372d7cd9d5b25605f704da1a"
},
"downloads": -1,
"filename": "pdopt-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "4c5717478df8844c03584ffdb2cc4d29",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 37846,
"upload_time": "2024-02-14T17:48:22",
"upload_time_iso_8601": "2024-02-14T17:48:22.393920Z",
"url": "https://files.pythonhosted.org/packages/9f/52/bd88dcfb22d9d49b62120cec0890151a6bc7d4e0b6b522f6eeb1892ea06b/pdopt-0.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-14 17:48:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "spinjet",
"github_project": "pdopt-code",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pdopt"
}