This class contains an extension of the Dogleg Algorithm where a line search is performed across the Dogleg arc (interpolation of gradient and Gauss-Newton directions).
This algorithm is applicable to cases where the trust region is not correlated between algorithm iterations.
template<class M, class F, class VALUES>
Compute the update point for one iteration of the Dogleg Line Search algorithm, starting with a trust region of |N| * minDelta the algorithm searches trust regions from |N| * minDelta to maxDelta where |N| is the number of variables in the system.
The algorithm returns the search point with minimum cost that meets the Wolfe Conditions. Evaluation points for the line search are computed according to a geometric series step_{k+1} = stepSize * step_k.
- Template Parameters
-
- Parameters
-
| params | The parameters for dogleg line search |
| Rd | The Bayes' net or tree as described above. |
| f | The original nonlinear factor graph with which to evaluate the accuracy of \( M(\delta x) \) to adjust \( \delta \). |
| x0 | The linearization point about which \( \bayesNet \) was created |
| verbose | Flag to write debug information. |
- Returns
- A DoglegIterationResult containing the new
delta, the linear update dx_d, and the resulting nonlinear error f_error.
The search bounds are scaled by the number of variables in the system