proxsuite-nlp icon indicating copy to clipboard operation
proxsuite-nlp copied to clipboard

Add BFGS

Open fabinsch opened this issue 1 year ago • 1 comments

Start of work to add the Broyden–Fletcher–Goldfarb–Shanno algorithm. For now, it is a class that estimates an (inverse) Hessian from iterates and the corresponding gradients at these iterates. An optimizer can be built around it.

It implements the BFGS update rule (eqn 6.17 p. 140) to estimate the inverse Hessian and the DFP update rule (eqn 6.13 p.139) from Nocedal and Wright, Numerical Optimization, 2nd edition, which have a similar structure.

fabinsch avatar May 31 '24 13:05 fabinsch

For now, the BFGSStrategy works on Euclidian space. As a first step, I checked it therefore on the ur5-ik example and compared it against an identity hessian.

As a next step, BFGSStrategy should be extended to work on Riemannian manifolds. Then, other examples like camera-pose-optimization could be solved.

fabinsch avatar Jun 03 '24 09:06 fabinsch

Let's schedule some time after Nov. 15th to work on this again @fabinsch.

ManifoldFR avatar Oct 29 '24 09:10 ManifoldFR

@fabinsch @jorisv before merging this, we need

  • to rebase on devel
  • add an error when someone uses the algorithm on a non-Euclidean manifold

ManifoldFR avatar Feb 24 '25 15:02 ManifoldFR