-
Notifications
You must be signed in to change notification settings - Fork 1
chivalry123/otkpp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Introduction ------------ OTK++ is a nonlinear constrained/unconstrained optimization library written in C++. It also has a Python-based interface for testing and comparing algorithms and a Qt-based GUI for demonstration purposes. Linear algebra operations and Python interfaces are written by using uBLAS and Boost.Python. Implemented algorithms ---------------------- The currently implemented algorithms are for minimization of functions of the form f:R^n->R. Some algorithms also support imposing bound constraints. The following algorithms are implemented by the author of this package: Line search algorithms: * More and Thuente * Fletcher Trust region algorithms: * Steihaug * Dogleg Multidimensional solvers: Direct search: * Hooke-Jeeves * Nelder-Mead simplex Gradient-based (with line searches) * PARTAN * Fletcher-Reeves and Polak-Ribiere conjugate gradient * BFGS and L-BFGS * Modified Newton Gradient-based (using trust regions) * Steihaug-SR1 * Dogleg-BFGS Other algorithms included in this library: * Algorithms implemented in the GSL multimin package (version 1.11) * L-BFGS-B for bound-constrained large-scale optimization [3] * LMBM algorithm for nonsmooth large-scale optimization [4] Requirements ------------ Required dependencies: uBLAS >= 1.34 g++ >= 4.2 CMake >= 2.6 Optional dependencies: Library/program Version CMake flag Enables GSL >= 1.11 -DWITH_GSL=ON/OFF GSL minimization algorithms GNU libmatheval >= 1.1.3 -DWITH_LIBMATHEVAL=ON/OFF symbolic function evaluation gfortran >= 4.2 -DWITH_FORTRAN=ON/OFF algorithms implemented in Fortran (e.g. LMBM) Qt >= 4.3 -DWITH_QT=ON/OFF Qt-based GUI Qwt >= 5.1 -DWITH_QT=ON/OFF 2d plotting widgets QwtPlot3D >= 0.2 -DWITH_QT=ON/OFF 3d plotting widgets The above flags are set to 'ON' by default. Installation ------------ Installing the C++ libraries: ----------------------------- OTK++ uses CMake as its build system. To install the C++ libraries, extract the otkpp tarball and type the following commands: cmake . <optional flags> <- put your CMake flags here make make install By default, headers will be installed in /usr/local/include/otkpp, libraries in /usr/local/lib and binaries in /usr/local/bin. You can change the install prefix by appending -DCMAKE_INSTALL_PREFIX=<your-prefix> to the list of CMake flags. Installing PyOTK: ----------------- PyOTK uses distutils for compiling the C++ interface libraries and copying the Python scripts to appropriate directories in the system path. To install PyOTK, extract the pyotk tarball and type the following command: python setup.py install References ---------- The algorithms implemented in OTK++ are based on the following references: [1] J. Nocedal and S.J. Wright, Numerical Optimization, 1999 [2] C.T. Kelley, Iterative Methods for Optimization, 1999 [3] C. Zhu, R.H. Byrd and J. Nocedal, L-BFGS-B: Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization (1997), ACM Transactions on Mathematical Software, Vol 23, Num. 4, pp. 550-560 [4] N. Karmitsa, "LMBM - FORTRAN Subroutines for Large-Scale Nonsmooth Minimization: User's Manual", TUCS Technical Report, No. 856, Turku Centre for Computer Science, Turku, 2007. Seppo Pulkkinen <[email protected]>
About
Automatically exported from code.google.com/p/otkpp
Resources
Stars
Watchers
Forks
Packages 0
No packages published