Home  

Random  

Nearby  



Log in  



Settings  



Donate  



About Wikipedia  

Disclaimers  



Wikipedia





Separation oracle





Article  

Talk  



Language  

Watch  

Edit  





Aseparation oracle (also called a cutting-plane oracle) is a concept in the mathematical theory of convex optimization. It is a method to describe a convex set that is given as an input to an optimization algorithm. Separation oracles are used as input to ellipsoid methods.[1]: 87, 96, 98 

Definition

edit

Let K be a convex and compact set in Rn. A strong separation oracle for K is an oracle (black box) that, given a vector y in Rn, returns one of the following:[1]: 48 

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. Given a small error tolerance d>0, we say that:

The weak version 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, given a vector y in Qn and a rational number d>0, returns one of the following::[1]: 51 

Implementation

edit

A special case of a convex set is a set represented by linear inequalities:  . Such a set is called a convex polytope. A strong separation oracle for a convex polytope can be implemented, but its run-time depends on the input format.

Representation by inequalities

edit

If the matrix A and the vector b are given as input, so that  , then a strong separation oracle can be implemented as follows.[2] Given a point y, compute  :

This oracle runs in polynomial time as long as the number of constraints is polynomial.

Representation by vertices

edit

Suppose the set of vertices of K is given as an input, so that   the convex hull of its vertices. Then, deciding whether y is in K requires to check whether y is a convex combination of the input vectors, that is, whether there exist coefficients z1,...,zk such that: [1]: 49 

This is a linear program with k variables and n equality constraints (one for each element of y). If y is not in K, then the above program has no solution, and the separation oracle needs to find a vector c such that

Note that the two above representations can be very different in size: it is possible that a polytope can be represented by a small number of inequalities, but has exponentially many vertices (for example, an n-dimensional cube). Conversely, it is possible that a polytope has a small number of vertices, but requires exponentially many inequalities (for example, the convex hull of the 2n vectors of the form (0,...,±1,...,0).

Problem-specific representation

edit

In some linear optimization problems, even though the number of constraints is exponential, one can still write a custom separation oracle that works in polynomial time. Some examples are:

Non-linear sets

edit

Let f be a convex function on Rn. The set   is a convex set in Rn+1. Given an evaluation oracle for f (a black box that returns the value of f for every given point), one can easily check whether a vector (y, t) is in K. In order to get a separation oracle, we need also an oracle to evaluate the subgradientoff.[1]: 49  Suppose some vector (y, s) is not in K, so f(y) > s. Let g be the subgradient of faty (g is a vector in Rn). Denote  .Then,  , and for all (x, t) in K:  . By definition of a subgradient:   for all x in Rn. Therefore,  , so   , and c represents a separating hyperplane.

Usage

edit

A strong separation oracle can be given as an input to the ellipsoid method for solving a linear program. Consider the linear program  . The ellipsoid method maintains an ellipsoid that initially contains the entire feasible domain  . At each iteration t, it takes the center   of the current ellipsoid, and sends it to the separation oracle:

After making a cut, we construct a new, smaller ellipsoid, that contains the remaining region. It can be shown that this process converges to an approximate solution, in time polynomial in the required accuracy.

Converting a weak oracle to a strong oracle

edit

Given a weak separation oracle for a polyhedron, it is possible to construct a strong separation oracle by a careful method of rounding, or by diophantine approximations.[1]: 159 

See also

edit

References

edit
  1. ^ a b c d e f Grötschel, Martin; Lovász, László; Schrijver, Alexander (1993), Geometric algorithms and combinatorial optimization, Algorithms and Combinatorics, vol. 2 (2nd ed.), Springer-Verlag, Berlin, doi:10.1007/978-3-642-78240-4, ISBN 978-3-642-78242-8, MR 1261419
  • ^ "MIT 6.854 Spring 2016 Lecture 12: From Separation to Optimization and Back; Ellipsoid Method - YouTube". www.youtube.com. Retrieved 2021-01-03.
  • ^ a b Vempala, Santosh (2016). "Separation oracle" (PDF).

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Separation_oracle&oldid=1200095261"
     



    Last edited on 28 January 2024, at 19:05  





    Languages

     



    This page is not available in other languages.
     

    Wikipedia


    This page was last edited on 28 January 2024, at 19:05 (UTC).

    Content is available under CC BY-SA 4.0 unless otherwise noted.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Terms of Use

    Desktop