Center-of-gravity method: Difference between revisions

Content deleted Content added
Created page with '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.<ref name=":0">{{Cite web |last=Nemirovsky and Ben-Tal |date=2023 |title=Optimization III: Convex Optimization |url=http://www2.isye.gatech.edu/~nemirovs/OPTIIILN2023Spring.pdf}}</ref>{{Rp|___location=Sec.8.2.2}} It is theoretically important as it a...'
 
Tags: nowiki added Visual edit
Line 1:
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.<ref name=":0">{{Cite web |last=Nemirovsky and Ben-Tal |date=2023 |title=Optimization III: Convex Optimization |url=http://www2.isye.gatech.edu/~nemirovs/OPTIIILN2023Spring.pdf}}</ref>{{Rp|___location=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.
 
== DescriptionInput ==
WeOur aregoal givenis to solve a [[convex optimization]] problem of the form:<blockquote>'''minimize ''f''(''x'') s.t. ''x'' in ''G'','''</blockquote>where ''f'' is a [[convex function]], and ''G'' is a [[Convex set|convex subset]] of a Euclidean space ''R<sup>d</sup>''.
 
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]] <math>\nabla f</math>; but we do not assume that ''f'' is differentiable).
subject to: ''x'' in ''G'',</blockquote>where f is a [[convex function]] and G is a [[Convex set|convex subset]] of a Euclidean space ''Rd''.
 
== Method ==
The method is [[Iterative method|iterative]]. At each iteration ''t'', we keep a convex region ''G<sub>t</sub>'', which surely contains the desired minimum. Initially we have ''G''<sub>0</sub> = ''G''. Then, each iteration ''t'' proceeds as follows.
 
* Let ''x<sub>t</sub>'' be the [[List of Beyond Live shows|center of gravity]] of ''G''<sub>t</sub>.
* Compute a subgradient at ''x<sub>t</sub>'', denoted ''f''<nowiki/>'(''x<sub>t</sub>'').
** By definition of a subgradient, the graph of ''f'' is above the subgradient, so for all ''x'' in ''G''<sub>t</sub>: ''f''(''x'')−''f''(''x<sub>t</sub>'') ≥ (''x''−''x<sub>t</sub>'')<sup>T</sup>f'(''x<sub>t</sub>'').
* If ''f''<nowiki/>'(''x<sub>t</sub>'')=0, then the above implies that ''x<sub>t</sub>'' is an exact minimum point, so we terminate and return ''x<sub>t.</sub>''
* Otherwise, let ''G<sub>t</sub>''<sub>+1</sub> := {x in G<sub>t</sub>: (''x''−''x<sub>t</sub>'')<sup>T</sup>f'(''x<sub>t</sub>'') ≤ 0}.
 
Note that, by the above inequality, every minimum point of ''f'' must be in ''G<sub>t</sub>''<sub>+1.</sub><ref name=":0" />{{Rp|___location=Sec.8.2.2}}
 
== Convergence ==
It can be proved that <blockquote><math>Volume(G_{t+1})\leq \left[1-\left(\frac{n}{n+1}\right)^n\right]\cdot Volume(G_t)</math> .</blockquote>Therefore, <ref name=":0" />{{Rp|___location=Sec.8.2.2}}
 
== References ==