Skip to main content

A python-wrapped version of OPTGRA, an algorithm for constrained optimization

Project description

Optgra

build-status

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.

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:

>>> 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyoptgra-0.1.9.tar.gz (245.4 kB view hashes)

Uploaded Source

Built Distributions

pyoptgra-0.1.9-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

pyoptgra-0.1.9-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

pyoptgra-0.1.9-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

pyoptgra-0.1.9-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

pyoptgra-0.1.9-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page