Definitions

Subgradient methods are algorithms for solving convex optimization problems. Originally developed by Naum Z. Shor and others in the 1960s and 1970s, subgradient methods can be used with a non-differentiable objective function. When the objective function is differentiable, subgradient methods for unconstrained problems use the same search direction as the method of steepest descent.

Although subgradient methods can be much slower than interior-point methods and Newton's method in practice, they can be immediately applied to a far wider variety of problems and require much less memory. Moreover, by combining the subgradient method with primal or dual decomposition techniques, it is sometimes possible to develop a simple distributed algorithm for a problem.

Let $f:mathbb\left\{R\right\}^n to mathbb\left\{R\right\}$ be a convex function with domain $mathbb\left\{R\right\}^n$. The subgradient method uses the iteration

$x^\left\{\left(k+1\right)\right\} = x^\left\{\left(k\right)\right\} - alpha_k g^\left\{\left(k\right)\right\}$
where $g^\left\{\left(k\right)\right\}$ denotes a subgradient of $f$ at $x^\left\{\left(k\right)\right\}$. If $f$ is differentiable, its only subgradient is the gradient vector $nabla f$ itself. It may happen that $-g^\left\{\left(k\right)\right\}$ is not a descent direction for $f$ at $x^\left\{\left(k\right)\right\}$. We therefore maintain a list $f_\left\{rm\left\{best\right\}\right\}$ that keeps track of the lowest objective function value found so far, i.e.
$f_\left\{rm\left\{best\right\}\right\}^\left\{\left(k\right)\right\} = min\left\{f_\left\{rm\left\{best\right\}\right\}^\left\{\left(k-1\right)\right\} , f\left(x^\left\{\left(k\right)\right\}\right) \right\}.$

### Step size rules

Many different types of step size rules are used in the subgradient method. Five basic step size rules for which convergence is guaranteed are:

• Constant step size, $alpha_k = alpha.$
• Constant step length, $alpha_k = gamma/lVert g^\left\{\left(k\right)\right\} rVert_2$, which gives $lVert x^\left\{\left(k+1\right)\right\} - x^\left\{\left(k\right)\right\} rVert_2 = gamma.$
• Square summable but not summable step size, i.e. any step sizes satisfying

$alpha_kgeq0,qquadsum_\left\{k=1\right\}^infty alpha_k^2 < infty,qquad sum_\left\{k=1\right\}^infty alpha_k = infty.$

• Nonsummable diminishing, i.e. any step sizes satisfying

$alpha_kgeq0,qquad lim_\left\{ktoinfty\right\} alpha_k = 0,qquad sum_\left\{k=1\right\}^infty alpha_k = infty.$

• Nonsummable diminishing step lengths, i.e. $alpha_k = gamma_k/lVert g^\left\{\left(k\right)\right\} rVert_2$, where

$gamma_kgeq0,qquad lim_\left\{ktoinfty\right\} gamma_k = 0,qquad sum_\left\{k=1\right\}^infty gamma_k = infty.$
Notice that the step sizes listed above are determined before the algorithm is run and do not depend on any data computed during the algorithm. This is very different from the step size rules found in standard descent methods, which depend on the current point and search direction.

### Convergence results

For constant step size and constant step length, the subgradient algorithm is guaranteed to converge to within some range of the optimal value, i.e.,

## Constrained optimization

One extension of the subgradient method is the projected subgradient method, which solves the constrained optimization problem
minimize $f\left(x\right)$ subject to
$xinmathcal\left\{C\right\}$

where $mathcal\left\{C\right\}$ is a convex set. The projected subgradient method uses the iteration

$x^\left\{\left(k+1\right)\right\} = P left\left(x^\left\{\left(k\right)\right\} - alpha_k g^\left\{\left(k\right)\right\} right\right)$

where $P$ is projection on $mathcal\left\{C\right\}$ and $g^\left\{\left(k\right)\right\}$ is any subgradient of $f$ at $x^\left\{\left(k\right)\right\}.$

### General constraints

The subgradient method can be extended to solve the inequality constrained problem

minimize $f_0\left(x\right)$ subject to
$f_i \left(x\right) leq 0,quad i = 1,dots,m$

where $f_i$ are convex. The algorithm takes the same form as the unconstrained case

$x^\left\{\left(k+1\right)\right\} = x^\left\{\left(k\right)\right\} - alpha_k g^\left\{\left(k\right)\right\}$

where $alpha_k>0$ is a step size, and $g^\left\{\left(k\right)\right\}$ is a subgradient of the objective or one of the constraint functions at $x.$ Take

$g^\left\{\left(k\right)\right\} =$
begin{cases}
` partial f_0 (x)  & f_i(x) leq 0,quad i = 1,dots,m `
` partial f_j (x)  & f_j(x) > 0`
end{cases}

where $partial f$ denotes the subdifferential of $f$. If the current point is feasible, the algorithm uses an objective subgradient; if the current point is infeasible, the algorithm chooses a subgradient of any violated constraint.

*

*