SkillAgentSearch skills...

LMBM

Nonsmooth Unconstrained Optimization via Limited Memory Bundle Method

Install / Use

/learn @ZJU-FAST-Lab/LMBM
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

LMBM

Nonsmooth Unconstrained Optimization via Limited Memory Bundle Method

Feature

  1. The solver is a C++11 wrapper for the FORTRAN solver LMBM, which suits Large-Scale Nonsmooth Unconstrained Nonlinear Optimization.

  2. It is a substitution to L-BFGS when nonsmooth optimization is inevitable. For example, nonsmoothness is quite common in various robotics applications where spatially discretized data is often incorporated into optimization problem.

Building

To build the lib, first make sure you have gfortran, g++, make, and CMake installed. This toolchain is often installed by default in many Linux environments. Then, clone this repository and rename it LMBM. Now cd into this directory to build the shared lib for LMBM solver.

  cd LMBM/lmbm/
  make

Then a shared lib for LMBM is generated. Two files lmbm.so and lmbm.h are all you need for conducting nonsmooth optimization in any C++ application. The header file contains sufficient information about how the lib should be called and tuned.

A simple example is also provided where a nonsmooth function is minimized by LMBM. The CMakeList.txt shows how the lib should be linked by your own projects. Run the following commands to build and execute the example.

  cd ..
  mkdir build
  cd build
  cmake ..
  make
  ./lmbm_example

Reference

  1. Haarala, N., Miettinen, K. and Mäkelä, M.M., 2007. Globally convergent limited memory bundle method for large-scale nonsmooth optimization. Mathematical Programming, 109(1), pp.181-205.
  2. Karmitsa, N., 2007. LMBM–FORTRAN subroutines for Large-Scale nonsmooth minimization: User’s manual’. TUCS Technical Report, (856).
  3. Bagirov, A., Karmitsa, N. and Mäkelä, M.M., 2014. Introduction to Nonsmooth Optimization: Theory, Practice and Software. Springer.
View on GitHub
GitHub Stars15
CategoryDevelopment
Updated1y ago
Forks2

Languages

Fortran

Security Score

65/100

Audited on Feb 18, 2025

No findings