VMLMB algorithm for Python, Matlab, GNU Octave, and Yorick
OTHER License
This repository provides implementations of the VMLMB
algorithm and
preconditioned linear conjugate gradient method in various high-level
programming languages.
VMLMB
(for Variable Metric Limited Memory with Bounds) is a quasi-Newton
optimization method with small memory requirements and which may take into
account separable bound constraints. This algorithm is of particular interest
for minimizing a smooth cost function of a potentially very large number of
variables (millions or billions) possibly under bound constraints. VMLMB
has
been successfully used to solve many different kinds of problems notably image
restoration in inverse problems framework.
The objective of this repository is to provide algorithms that:
The repository is organized as follows:
Directory matlab
contains a pure
Matlab/GNU
Octave version of VMLMB
and of a
preconditioned linear conjugate gradient method. See file
matlab/README.md
for installation and usage
instructions.
Directory python
contains a pure NumPy
version of VMLMB
and of a preconditioned linear conjugate gradient method.
See file python/README.md
for installation and usage
instructions.
Directory yorick
contains a pure
Yorick version of VMLMB
and of a
preconditioned linear conjugate gradient method. See file
yorick/README.md
for installation and usage
instructions.
Hestenes, M. R. & Stiefel, E. "Methods of Conjugate Gradients for Solving Linear Systems," in Journal of Research of the National Bureau of Standards, 49, pp. 409-436 (1952).
É. Thiébaut, "Optimization issues in blind deconvolution algorithms," in Astronomical Data Analysis II, SPIE Proc. 4847, 174-183 (2002).