Skip to content

Commit 8060ae5

Browse files
committed
add missing page
1 parent 89f2530 commit 8060ae5

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Generalized Cauchy Direction subsolver
2+
3+
The Generalized Cauchy Direction (GCD) subsolver is a component in optimization algorithms that handle problems with bound constraints. It solves the following problem
4+
5+
```math
6+
\begin{align*}
7+
\operatorname*{arg\,min}_{Y ∈ T_p D \times \mathcal{M}}&\ m_p(Y) = ⟨X_g, Y⟩_p + \frac{1}{2} ⟨\mathcal{H}_p[Y], Y⟩_p\\
8+
\text{such that}& \ \exp_p(Y) = \exp_p(\alpha X) \in D \times \mathcal{M} \text{ for some } \alpha \in \mathbb{R}
9+
\end{align*}
10+
```
11+
12+
where $X$ is a given direction, the exponential map handles projection of the tangent vector when reaching the boundary, $D$ is a box domain ([`Hyperrectangle`](@extref Manifolds.Hyperrectangle)), $\mathcal{M}$ is a Riemannian manifold, $X_g$ is the gradient of a scalar function $f$ at point $p$ and $\mathcal{H}_p$ is a linear operator that approximates the Hessian of $f$ at $p$.
13+
14+
The solver is currently primarily intended for internal use by optimization algorithms that require bound-constrained subproblem solutions.
15+
16+
## Internal types and method
17+
18+
### Symbols related to the GCP computation
19+
20+
These symbols are directly used by solvers to compute the descent direction corresponding to the Generalized Cauchy point.
21+
22+
```@docs
23+
Manopt.requires_generalized_cauchy_direction_computation
24+
Manopt.find_generalized_cauchy_point_direction!
25+
Manopt.GeneralizedCauchyDirectionFinder
26+
```
27+
28+
### Symbols related to the Hessian approximation
29+
30+
These symbols are used to evaluate the Hessian approximation at specific tangent vectors during the generalized Cauchy point computation.
31+
32+
```@docs
33+
Manopt.hessian_value
34+
Manopt.hessian_value_eb
35+
```
36+
37+
### Symbols related to bound handling
38+
39+
These are internal symbols used to manage and manipulate bound constraints during the GCP computation.
40+
41+
```@docs
42+
Manopt.init_updater!
43+
Manopt.AbstractSegmentHessianUpdater
44+
Manopt.GenericSegmentHessianUpdater
45+
Manopt.get_bounds_index
46+
Manopt.get_stepsize_bound
47+
Manopt.get_at_bound_index
48+
Manopt.set_stepsize_bound!
49+
Manopt.set_zero_at_index!
50+
```
51+
52+
### Symbols related to specific Hessian approximations
53+
54+
```@docs
55+
Manopt.LimitedMemorySegmentHessianUpdater
56+
Manopt.hessian_value_from_inner_products
57+
Manopt.set_M_current_scale!
58+
```

0 commit comments

Comments
 (0)