Center-of-gravity method
The center-of-gravity method is a theoretic algorithm for convex optimization. It can be seen as a generalization of the bisection method from one-dimensional functions to multi-dimensional functions.[1]: Sec.8.2.2 It is theoretically important as it attains the optimal convergence rate. However, it has little practical value as each step is very computationally expensive.
Input
Our goal is to solve a convex optimization problem of the form:
minimize f(x) s.t. x in G,
where f is a convex function, and G is a convex subset of a Euclidean space Rd.
We assume that we have a "subgradient oracle": a routine that can compute a subgradient of f at any given point (if f is differentiable, then the only subgradient is the gradient ; but we do not assume that f is differentiable).
Method
The method is iterative. At each iteration t, we keep a convex region Gt, which surely contains the desired minimum. Initially we have G0 = G. Then, each iteration t proceeds as follows.
- Let xt be the center of gravity of Gt.
- Compute a subgradient at xt, denoted f'(xt).
- By definition of a subgradient, the graph of f is above the subgradient, so for all x in Gt: f(x)−f(xt) ≥ (x−xt)Tf'(xt).
- If f'(xt)=0, then the above implies that xt is an exact minimum point, so we terminate and return xt.
- Otherwise, let Gt+1 := {x in Gt: (x−xt)Tf'(xt) ≤ 0}.
Note that, by the above inequality, every minimum point of f must be in Gt+1.[1]: Sec.8.2.2
Convergence
It can be proved that
.
Therefore, [1]: Sec.8.2.2
References
- ^ a b c Nemirovsky and Ben-Tal (2023). "Optimization III: Convex Optimization" (PDF).