A work-in-progress optimisation library to express optimisation problems and provide a common interface to solvers, as well as offering a framework to create and develop custom optimisation programs. This library is designed to be as generic as possible to allow any type of BLAS package to be interfaced to it.
This is a basic implementation of the necessary components required to represent optimisation problems within a programatic context. This library offers a means to easily express cost and constraints in a unified manner, to which we can interface to solvers (existing or customly made) to solve.
In addition, we provide add-ons for automatic differentiation tools to provide the necessary derivatives.
bopt requires the following third-party libraries in order to be built and installed.
- Boost (Version 1.70 or higher)
For testing purposes we have (this is later be a toggle-able option):
We also include interfaces to open-source solvers for numerical optimisation, we currently include:
- Ipopt
- qpOASES (-DWITH_QPOASES=ON in Installation). Be sure to install qpOASES as a shared library, as this is what is expected by bopt.
- Clone the repo
git clone https://github.com/dazzmo/bopt
- Build the library
cd bopt mkdir build && cd build cmake .. make
- Installation of the library can then be performed by
make install
Distributed under the GNU LESSER GENERAL PUBLIC LICENSE License. See LICENSE.txt for more information.
Damian Abood - damian.abood@sydney.edu.au
Thank you to Jesse Morris for his assistance with build-related concerns and improving the layout of the library.