Optgra
======
|build-status|
.. |build-status| image:: https://github.com/esa/pyoptgra/actions/workflows/workflow.yaml/badge.svg
:target: https://github.com/esa/pyoptgra/actions
This repository provides *pyoptgra*, a python package wrapping (and including) OPTGRA.
OPTGRA is an optimization algorithm developed and implemented by Johannes Schoenmaekers, it is specifically designed for near-linear constrained problems, which commonly occur in trajectory optimization.
The full documentation can be found here_.
.. _here: https://esa.github.io/pyoptgra/
Installation
============
With Pip
--------
Pyoptgra is available on PyPi and can be installed with pip:
* ``pip install pyoptgra``
Compile from Source
-------------------
First install a C++ compiler, a fortran compiler, cmake, python and python build, then clone the repository and build with ``python -m build``
Usage
=====
Pyoptgra is designed as a pygmo_ user-defined algorithm: First create an instance of the *optgra* class with all relevant parameters, then pass a pygmo.population containing your problem to the instance's *evolve* method:
.. _pygmo: https://esa.github.io/pygmo2/
>>> import pygmo
>>> import pyoptgra
>>> prob = pygmo.problem(pygmo.schwefel(30)) # using the schwefel test problem from pygmo, with 30 dimensions
>>> pop = pygmo.population(prob, 1)
>>> algo = pygmo.algorithm(pyoptgra.optgra())
>>> pop = algo.evolve(pop) # the actual call to OPTGRA
License
=======
Copyright 2008, 2021 European Space Agency
Pyoptgra/Optgra is available under two different licenses. You may choose to license and use it under version 3 of the GNU General Public License or under the ESA Software Community Licence (ESCL) 2.4 Weak Copyleft. We explicitly reserve the right to release future versions of Pyoptgra and Optgra under different licenses.
Copies of GPL3 and ESCL 2.4 can be found in the root directory of this package,
you can also obtain them at https://www.gnu.org/licenses/gpl-3.0.txt
and https://essr.esa.int/license/european-space-agency-community-license-v2-4-weak-copyleft
Raw data
{
"_id": null,
"home_page": "https://github.com/esa/pyoptgra",
"name": "pyoptgra",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "optimization,constraints",
"author": "Moritz von Looz",
"author_email": "Johannes Schoenmaekers <johannes.schoenmaekers@esa.int>, Moritz von Looz <moritz.von.looz@esa.int>",
"download_url": "https://files.pythonhosted.org/packages/41/84/574d71ee9c317e8d925f310147aca59cd259bcfeb3d680910576251ecf8a/pyoptgra-0.1.9.tar.gz",
"platform": null,
"description": "Optgra\n======\n\n|build-status|\n\n.. |build-status| image:: https://github.com/esa/pyoptgra/actions/workflows/workflow.yaml/badge.svg\n :target: https://github.com/esa/pyoptgra/actions\n\nThis repository provides *pyoptgra*, a python package wrapping (and including) OPTGRA.\nOPTGRA is an optimization algorithm developed and implemented by Johannes Schoenmaekers, it is specifically designed for near-linear constrained problems, which commonly occur in trajectory optimization.\n\nThe full documentation can be found here_.\n\n.. _here: https://esa.github.io/pyoptgra/\n\nInstallation\n============\n\nWith Pip\n--------\n\nPyoptgra is available on PyPi and can be installed with pip:\n\n* ``pip install pyoptgra``\n\nCompile from Source\n-------------------\n\nFirst install a C++ compiler, a fortran compiler, cmake, python and python build, then clone the repository and build with ``python -m build``\n\nUsage\n=====\n\nPyoptgra is designed as a pygmo_ user-defined algorithm: First create an instance of the *optgra* class with all relevant parameters, then pass a pygmo.population containing your problem to the instance's *evolve* method:\n\n.. _pygmo: https://esa.github.io/pygmo2/\n\n>>> import pygmo\n>>> import pyoptgra\n>>> prob = pygmo.problem(pygmo.schwefel(30)) # using the schwefel test problem from pygmo, with 30 dimensions\n>>> pop = pygmo.population(prob, 1)\n>>> algo = pygmo.algorithm(pyoptgra.optgra())\n>>> pop = algo.evolve(pop) # the actual call to OPTGRA\n\nLicense\n=======\n\nCopyright 2008, 2021 European Space Agency\n\nPyoptgra/Optgra is available under two different licenses. You may choose to license and use it under version 3 of the GNU General Public License or under the ESA Software Community Licence (ESCL) 2.4 Weak Copyleft. We explicitly reserve the right to release future versions of Pyoptgra and Optgra under different licenses.\n\nCopies of GPL3 and ESCL 2.4 can be found in the root directory of this package,\nyou can also obtain them at https://www.gnu.org/licenses/gpl-3.0.txt\nand https://essr.esa.int/license/european-space-agency-community-license-v2-4-weak-copyleft\n",
"bugtrack_url": null,
"license": "GPL-3.0 or ESCL-2.4",
"summary": "A python-wrapped version of OPTGRA, an algorithm for constrained optimization",
"version": "0.1.9",
"project_urls": {
"Homepage": "https://github.com/esa/pyoptgra"
},
"split_keywords": [
"optimization",
"constraints"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e5c0518cc91e24dc68700d7d6f8094b77b1543fa1300db51d81cfb7cc70f4415",
"md5": "361be3fa5f1aeefbbc2f17a403ec89b3",
"sha256": "8141347c8dbf8b61c850855457890e5888557eb510beae7bda06a2eb4e1e68f0"
},
"downloads": -1,
"filename": "pyoptgra-0.1.9-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"has_sig": false,
"md5_digest": "361be3fa5f1aeefbbc2f17a403ec89b3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 1108120,
"upload_time": "2023-06-21T13:44:46",
"upload_time_iso_8601": "2023-06-21T13:44:46.851503Z",
"url": "https://files.pythonhosted.org/packages/e5/c0/518cc91e24dc68700d7d6f8094b77b1543fa1300db51d81cfb7cc70f4415/pyoptgra-0.1.9-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "975fe341b7f96819a510b7d6307e71aad4913bec8e74dabe4aa7f02bc73e7156",
"md5": "6f66509165f1caf88fd3dd8f0e9ae2e1",
"sha256": "683c1494a63825f564c58ea325bba7d4355e98fc0a436fda9537d0b47caec411"
},
"downloads": -1,
"filename": "pyoptgra-0.1.9-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"has_sig": false,
"md5_digest": "6f66509165f1caf88fd3dd8f0e9ae2e1",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": null,
"size": 1106760,
"upload_time": "2023-06-21T13:44:50",
"upload_time_iso_8601": "2023-06-21T13:44:50.021061Z",
"url": "https://files.pythonhosted.org/packages/97/5f/e341b7f96819a510b7d6307e71aad4913bec8e74dabe4aa7f02bc73e7156/pyoptgra-0.1.9-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1a0f88dc12e58e84f1ed2c4d6e336220c109009b3032eb3b47efc4a1aa8b03cc",
"md5": "cc07355033d0e78216db5b6bc5066971",
"sha256": "5d9a944b898ede595c2768f81056319b41c5aca649396aa833173e9a1f7f15ec"
},
"downloads": -1,
"filename": "pyoptgra-0.1.9-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"has_sig": false,
"md5_digest": "cc07355033d0e78216db5b6bc5066971",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 1108844,
"upload_time": "2023-06-21T13:44:53",
"upload_time_iso_8601": "2023-06-21T13:44:53.297077Z",
"url": "https://files.pythonhosted.org/packages/1a/0f/88dc12e58e84f1ed2c4d6e336220c109009b3032eb3b47efc4a1aa8b03cc/pyoptgra-0.1.9-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ab82535155377847eb2f869f26dd379220bcfb3f24df74cf427ed6f00325d8f1",
"md5": "7907e0d84be5562211e8d51b38ad68c5",
"sha256": "a0cc5722fb9987126067fb799c6a1e339b3ae43f41867c0e2c6fc95628311395"
},
"downloads": -1,
"filename": "pyoptgra-0.1.9-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"has_sig": false,
"md5_digest": "7907e0d84be5562211e8d51b38ad68c5",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 1108194,
"upload_time": "2023-06-21T13:44:57",
"upload_time_iso_8601": "2023-06-21T13:44:57.191632Z",
"url": "https://files.pythonhosted.org/packages/ab/82/535155377847eb2f869f26dd379220bcfb3f24df74cf427ed6f00325d8f1/pyoptgra-0.1.9-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5884ca15cdf83daf5e204fe454e250e95ac25ac5cbe0e21cb0fb33455abebce1",
"md5": "67fe24c63c828dfe92f1ba2fe745352d",
"sha256": "7c72a23f65add33b798b4b35921f6a06cbc4a80a0eb8b889a2caaf090b564e7c"
},
"downloads": -1,
"filename": "pyoptgra-0.1.9-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"has_sig": false,
"md5_digest": "67fe24c63c828dfe92f1ba2fe745352d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 1108225,
"upload_time": "2023-06-21T13:45:02",
"upload_time_iso_8601": "2023-06-21T13:45:02.062147Z",
"url": "https://files.pythonhosted.org/packages/58/84/ca15cdf83daf5e204fe454e250e95ac25ac5cbe0e21cb0fb33455abebce1/pyoptgra-0.1.9-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4184574d71ee9c317e8d925f310147aca59cd259bcfeb3d680910576251ecf8a",
"md5": "28c03a5b848c710e9c9763884c3ad056",
"sha256": "1816794797a6c2dc46d9e7f745801367479deaa56e729d90b16ea1fd2e1b5b6b"
},
"downloads": -1,
"filename": "pyoptgra-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "28c03a5b848c710e9c9763884c3ad056",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 245375,
"upload_time": "2023-06-21T13:45:25",
"upload_time_iso_8601": "2023-06-21T13:45:25.800716Z",
"url": "https://files.pythonhosted.org/packages/41/84/574d71ee9c317e8d925f310147aca59cd259bcfeb3d680910576251ecf8a/pyoptgra-0.1.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-21 13:45:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "esa",
"github_project": "pyoptgra",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyoptgra"
}