Separation oracle
A separation oracle is a concept in the matematical theory of convex optimization. It is a method to describe a convex set that is given as an input to an optimization algorithm.
Definition
Let K be a convex and compact set in Rn. A strong separation oracle for K is an oracle (black box) that solves the following problem:[1]: 48
Given a vector y in Rn, return one of the following:
- Assert that y is in K.
- Find a hyperplane that separates y from K: a vector c in Rn, such that for all x in K.
A strong separation oracle is completely accurate, and thus may be hard to construct. For practical reasons, a weaker version is considered, which allows for small errors in the boundary of K and the inequalities. It also considers rational numbers, which have a representation of finite length, rather than arbitrary real numbers. A weak separation oracle for K is an oracle that solves the following problem:[1]: 51
Given a vector y in Qn, and a rational number d>0, return one of the following:
- Assert that y is in a sphere of radius d around K (= the Euclidean distance between y and K is at most d);
- Find a vector c in Qn, normalized such that its maximum element is 1, such that for all x in a sphere of radius d inside K (= all x with Euclidean distance at least d from the boundary of K).
References
- ^ a b M. Grötschel, L. Lovász, A. Schrijver: Geometric Algorithms and Combinatorial Optimization, Springer, 1988.