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] It is theoretically important as it attains the optimal convergence rate. However, it has little practical value as each step is very computationally expensive.
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 Rn.
\nablaf
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.
Note that, by the above inequality, every minimum point of f must be in Gt+1.
It can be proved that
Therefore,.Volume(Gt+1)\leq\left[1-\left(
n n+1 \right)n\right] ⋅ Volume(Gt)
In other words, the method has linear convergence of the residual objective value, with convergence rate.f(xt)-minGf\leq\left[1-\left(
n n+1 \right)n\right]t/n[maxGf-minGf]
\left[1-\left( | n |
n+1 |
\right)n\right]1/n\leq(1-1/e)1/n
2.13nln(1/\epsilon)+1
The main problem with the method is that, in each step, we have to compute the center-of-gravity of a polytope. All the methods known so far for this problem require a number of arithmetic operations that is exponential in the dimension n. Therefore, the method is not useful in practice when there are 5 or more dimensions.
The ellipsoid method can be seen as a tractable approximation to the center-of-gravity method. Instead of maintaining the feasible polytope Gt, it maintains an ellipsoid that contains it. Computing the center-of-gravity of an ellipsoid is much easier than of a general polytope, and hence the ellipsoid method can usually be computed in polynomial time.