Subgradient Method

Manopt.subgradient_methodFunction
subgradient_method(M, F, ∂F, x)

perform a subgradient method $x_{k+1} = \mathrm{retr}(x_k, s_k∂F(x_k))$,

where $\mathrm{retr}$ is a retraction, $s_k$ can be specified as a function but is usually set to a constant value. Though the subgradient might be set valued, the argument ∂F should always return one element from the subgradient, but not necessarily deterministic.

Input

  • M – a manifold $\mathcal M$
  • F – a cost function $F:\mathcal M→ℝ$ to minimize
  • ∂F– the (sub)gradient $\partial F: \mathcal M→ T\mathcal M$ of F restricted to always only returning one value/element from the subgradient. This function can be passed as an allocation function (M, y) -> X or a mutating function (M, X, y) -> X, see evaluation.
  • x – an initial value $x ∈ \mathcal M$

Optional

... and the ones that are passed to decorate_options for decorators.

Output

the obtained (approximate) minimizer $x^*$, see get_solver_return for details

source
Manopt.subgradient_method!Function
subgradient_method!(M, F, ∂F, x)

perform a subgradient method $x_{k+1} = \mathrm{retr}(x_k, s_k∂F(x_k))$ in place of x

Input

  • M – a manifold $\mathcal M$
  • F – a cost function $F:\mathcal M→ℝ$ to minimize
  • ∂F- the (sub)gradient $\partial F:\mathcal M→ T\mathcal M$ of F restricted to always only returning one value/element from the subgradient. This function can be passed as an allocation function (M, y) -> X or a mutating function (M, X, y) -> X, see evaluation.
  • x – an initial value $x ∈ \mathcal M$

for more details and all optional parameters, see subgradient_method.

source

Options

For DebugActions and RecordActions to record (sub)gradient, its norm and the step sizes, see the steepest Descent actions.