The center-of-gravity method is a theoretic algorithm for
convex optimization
Convex optimization is a subfield of mathematical optimization that studies the problem of minimizing convex functions over convex sets (or, equivalently, maximizing concave functions over convex sets). Many classes of convex optimization problems ...
. It can be seen as a generalization of the
bisection method from one-dimensional functions to multi-dimensional functions.
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
Convex optimization is a subfield of mathematical optimization that studies the problem of minimizing convex functions over convex sets (or, equivalently, maximizing concave functions over convex sets). Many classes of convex optimization problems ...
problem of the form:
minimize ''f''(''x'') s.t. ''x'' in ''G'',
where ''f'' is a
convex function
In mathematics, a real-valued function is called convex if the line segment between any two distinct points on the graph of a function, graph of the function lies above or on the graph between the two points. Equivalently, a function is conve ...
, and ''G'' is a
convex subset
In geometry, a set of points is convex if it contains every line segment between two points in the set.
For example, a solid cube (geometry), cube is a convex set, but anything that is hollow or has an indent, for example, a crescent shape, is n ...
of a Euclidean space ''R
n''.
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
In vector calculus, the gradient of a scalar-valued differentiable function f of several variables is the vector field (or vector-valued function) \nabla f whose value at a point p gives the direction and the rate of fastest increase. The g ...
; but we do not assume that ''f'' is differentiable).
Method
The method is
iterative. At each iteration ''t'', we keep a convex region ''G
t'', which surely contains the desired minimum. Initially we have ''G''
0 = ''G''. Then, each iteration ''t'' proceeds as follows.
* Let ''x
t'' be the
center of gravity of ''G''
t.
* Compute a subgradient at ''x
t'', denoted ''f''
'(''x
t'').
** By definition of a subgradient, the graph of ''f'' is above the subgradient, so for all ''x'' in ''G''
t: ''f''(''x'')−''f''(''x
t'') ≥ (''x''−''x
t'')
Tf'(''x
t'').
* If ''f''
'(''x
t'')=0, then the above implies that ''x
t'' is an exact minimum point, so we terminate and return ''x
t.''
* Otherwise, let ''G
t''
+1 := .
Note that, by the above inequality, every minimum point of ''f'' must be in ''G
t''
+1.
Convergence
It can be proved that
.
Therefore,
.
In other words, the method has
linear convergence of the residual objective value, with convergence rate
. To get an ε-approximation to the objective value, the number of required steps is at most
.
Computational complexity
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.
See also
The
ellipsoid method
In mathematical optimization, the ellipsoid method is an iterative method for convex optimization, minimizing convex functions over convex sets. The ellipsoid method generates a sequence of ellipsoids whose volume uniformly decreases at every ste ...
can be seen as a tractable approximation to the center-of-gravity method.
Instead of maintaining the feasible polytope ''G
t'', 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.
References
{{Reflist
Convex optimization