Skip to content

Implement generic proximal Newton solver for solving nonsmooth minimization problems

Patrick Jaap requested to merge feature/pn-solver into master

This commit add a generic proximal Newton solver to solve non-smooth minimization problems of the form

min J(x) = f(x) + g(x)

where f is a smooth C^2 function and g is possibly non-smooth. The algorithm is based on the Solvers::LoopSolver and inherits from Solvers::Solver. During the solve() call increments of the second order subproblems

min 0.5*f''(x)[dx,dx] + f'(x)[dx] + g(x + dx) + r||dx||^2

are computed and the iterate is updated by x := x + dx. Details and documentation are provided at the class definition.

A simple test case is added which solves a minimization problem with an analytical solution.

Merge request reports