HOME

TheInfoList



OR:

A separation oracle (also called a cutting-plane oracle) is a concept in the mathematical theory of
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 probl ...
. It is a method to describe a
convex set In geometry, a subset of a Euclidean space, or more generally an affine space over the reals, is convex if, given any two points in the subset, the subset contains the whole line segment that joins them. Equivalently, a convex set or a convex r ...
that is given as an input to an optimization algorithm. Separation oracles are used as input to ellipsoid methods.


Definition

Let ''K'' be a
convex Convex or convexity may refer to: Science and technology * Convex lens, in optics Mathematics * Convex set, containing the whole line segment that joins points ** Convex polygon, a polygon which encloses a convex set of points ** Convex polytope ...
and
compact Compact as used in politics may refer broadly to a pact or treaty; in more specific cases it may refer to: * Interstate compact * Blood compact, an ancient ritual of the Philippines * Compact government, a type of colonial rule utilized in British ...
set in R''n''. A strong separation oracle for ''K'' is an oracle (
black box In science, computing, and engineering, a black box is a system which can be viewed in terms of its inputs and outputs (or transfer characteristics), without any knowledge of its internal workings. Its implementation is "opaque" (black). The te ...
) that, given a vector ''y'' in R''n'', returns one of the following: M. Grötschel, L. Lovász, A. Schrijver: ''Geometric Algorithms and Combinatorial Optimization'', Springer, 1988. *Assert that ''y'' is in ''K''. * Find a hyperplane that separates ''y'' from ''K'': a vector a in R''n'', such that a\cdot y > a\cdot x 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. Given a small error tolerance ''d''>0, we say that: * A vector ''y'' is ''d-near K'' if its Euclidean distance from ''K'' is at most ''d''; * A vector ''y'' is ''d-deep in K'' if it is in ''K'', and its Euclidean distance from any point in outside K is at least ''d''. 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 Q''n'' and a rational number ''d''>0, returns one of the following:: *Assert that ''y'' is ''d''-near ''K''; * Find a vector a in Q''n'', normalized such that its maximum element is 1, such that a\cdot y +d\geq a\cdot x for all ''x'' that are ''d''-deep in ''K''.


Implementation

A special case of a convex set is a set represented by linear inequalities: ''K = \. ''Such a set is called a convex ''
polytope In elementary geometry, a polytope is a geometric object with flat sides (''faces''). Polytopes are the generalization of three-dimensional polyhedra to any number of dimensions. Polytopes may exist in any general number of dimensions as an -d ...
''. A strong separation oracle for a convex polytope can be implemented, but its run-time depends on the input format.


Representation by inequalities

If the matrix ''A'' and the vector ''b'' are given as input, so that ''K = \'', then a strong separation oracle can be implemented as follows. Given a point ''y'', compute ''Ay'': * If the outcome is at most ''b'', then ''y'' is in ''K'' by definition; * Otherwise, there is at least one row ''c'' of ''A'', such that c\cdot y is larger than the corresponding value in ''b''; this row c gives us the separating hyperplane, as c\cdot y > b \geq c\cdot x for all ''x'' in ''K''. This oracle runs in polynomial time as long as the number of constraints is polynomial.


Representation by vertices

Suppose the set of vertices of ''K'' is given as an input, so that ''K = \text(v_1,\ldots,v_k) ='' 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 ''z''1,...,''zk'' such that: * z_1\cdot v_1 + \cdots + z_k\cdot v_k = y; * 0 \leq z_i\leq 1 for all ''i'' in 1,...,''k''. This is a
linear program Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships. Linear programming is ...
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 * c\cdot y > c\cdot v_i for all ''i'' in 1,...,''k''. 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 2''n'' vectors of the form (0,...,±1,...,0).


Problem-specific representation

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: * The minimum-cost arborescence problem: given a weighted directed graph and a vertex ''r'' in it, find a subgraph of minimum cost that contains a directed path from ''r'' to any other vertex. The problem can be presented as an LP with a constraint for each subset of vertices, which is an exponential number of constraints. However, a separation oracle can be implemented using ''n''-1 applications of the
minimum cut In graph theory, a minimum cut or min-cut of a graph is a cut (a partition of the vertices of a graph into two disjoint subsets) that is minimal in some metric. Variations of the minimum cut problem consider weighted graphs, directed graphs, term ...
procedure. * The
maximum independent set In graph theory, an independent set, stable set, coclique or anticlique is a set of vertices in a graph, no two of which are adjacent. That is, it is a set S of vertices such that for every two vertices in S, there is no edge connecting the two ...
problem. It can be approximated by an LP with a constraint for every odd-length cycle. While there are exponentially-many such cycles, a separation oracle that works in polynomial time can be implemented by just finding an odd cycle of minimum length, which can be done in polynomial time. *The dual of the
configuration linear program The configuration linear program (configuration-LP) is a particular linear programming used for solving combinatorial optimization problems. It was introduced in the context of the cutting stock problem.Gilmore P. C., R. E. Gomory (1961). A linear ...
for the
bin packing problem The bin packing problem is an optimization problem, in which items of different sizes must be packed into a finite number of bins or containers, each of a fixed given capacity, in a way that minimizes the number of bins used. The problem has ma ...
. It can be approximated by an LP with a constraint for each feasible configuration. While there are exponentially-many such cycles, a separation oracle that works in pseudopolynomial time can be implemented by solving a
knapsack problem The knapsack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit an ...
. This is used by the Karmarkar-Karp bin packing algorithms.


Non-linear sets

Let ''f'' be a
convex function In mathematics, a real-valued function is called convex if the line segment between any two points on the graph of a function, graph of the function lies above the graph between the two points. Equivalently, a function is convex if its epigra ...
on R''n''. The set ''K = \'' is a convex set in R''n''+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
subgradient In mathematics, the subderivative, subgradient, and subdifferential generalize the derivative to convex functions which are not necessarily differentiable. Subderivatives arise in convex analysis, the study of convex functions, often in connectio ...
of ''f''. Suppose some vector (''y'', ''s'') is not in ''K'', so ''f''(''y'') > ''s''. Let ''g'' be the subgradient of ''f'' at ''y'' (''g'' is a vector in R''n'')''.'' Denote ''c := (g, -1)''.Then, ''c\cdot (y,s) = g\cdot y - s > g\cdot y - f(y)'', and for all (''x'', ''t'') in ''K'': ''c\cdot (x,t) = g\cdot x - t \leq g\cdot x - f(x)''. By definition of a subgradient: ''f(x)\geq f(y) + g\cdot (x-y)'' for all ''x'' in R''n''. Therefore, ''g\cdot y - f(y) \geq g\cdot x-f(x)'', so ''c\cdot(y,s) > c\cdot(x,t) ,'' and ''c'' represents a separating hyperplane.


Usage

A strong separation oracle can be given as an input to the
ellipsoid method In mathematical optimization, the ellipsoid method is an iterative method for convex optimization, minimizing convex functions. When specialized to solving feasible linear optimization problems with rational data, the ellipsoid method is an algor ...
for solving a linear program. Consider the linear program ''\text~~ c\cdot x ~~\text~~ Ax \leq b, x\geq 0''. The ellipsoid method maintains an ellipsoid that initially contains the entire feasible domain A x \leq b. At each iteration ''t'', it takes the center x_t of the current ellipsoid, and sends it to the separation oracle: * If the oracle says that x_t is feasible (that is, contained in the set ''Ax \leq b''), then we do an "optimality cut" at x_t: we cut from the ellipsoid all points ''x'' for which c \cdot x < c \cdot x_t. These points are definitely not optimal. * If the oracle says that x_t is infeasible, then it typically returns a specific constraint that is violated by x_t, that is, a row a_j in the matrix A, such that a_j\cdot x_t > b_j . Since a_j \cdot x \leq b_j for all feasible ''x'', this implies that a_j\cdot x_t > a_j\cdot x for all feasible ''x''. Then, we do a "feasibility cut" at x_t: we cut from the ellipsoid all points y for which a_j\cdot y > a_j\cdot x_t. These points are definitely not feasible. 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

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 approximation In number theory, the study of Diophantine approximation deals with the approximation of real numbers by rational numbers. It is named after Diophantus of Alexandria. The first problem was to know how well a real number can be approximated by r ...
s.


Relation to other oracles


Membership oracle

A membership oracle is a weaker variant of the separation oracle, which does not require the separating hyperplane. Formally, a strong membership oracle for ''K'' is an oracle that, given a vector ''y'' in R''n'', returns one of the following: *Assert that ''y'' is in ''K''. * Assert that ''y'' is in not in ''K''. Obviously, a strong separation oracle implies a strong membership oracle. A weak membership oracle for ''K'' is an oracle that, given a vector ''y'' in Q''n'' and a rational number ''d''>0, returns one of the following: *Assert that ''y'' is ''d''-near ''K''; * Assert that ''y'' is not ''d''-deep in ''K''. Using a weak separation oracle (WSO), one can construct a weak membership oracle as follows. * Run WSO(''K'',''y'',''d''). If it returns "yes", then return "yes". * Otherwise, run WSO(''K'',''y,d''/3). If it returns "yes", then return "yes". * Otherwise, return "no"; see for proof of correctness.


Optimization oracle

An optimization oracle is an oracle which finds an optimal point in a given convex set. Formally, a strong optimization oracle for ''K'' is an oracle that, given a vector ''c'' in R''n'', returns one of the following: * Assert that ''K'' is empty. * Find a vector ''y'' in ''K'' that maximizes c\cdot y (that is, c\cdot y\geq c\cdot x. for all ''x'' in ''K''). A weak optimization oracle for ''K'' is an oracle that, given a vector ''c'' in Q''n'' and a rational number ''d''>0, returns one of the following: * Assert that no point is ''d''-deep in ''K''; * Find a vector ''y'' that is ''d''-near ''K'', such that c\cdot y + d\geq c\cdot x for all ''x'' that are ''d''-deep in ''K''.


Violation oracle

A strong violation oracle for ''K'' is an oracle that, given a vector ''c'' in R''n'' and a real number ''r'', returns one of the following: * Assert that c\cdot x\leq r for all ''x'' in ''K''; * Find a vector ''y'' in ''K'' with c\cdot y> r. A weak violation oracle for ''K'' is an oracle that, given a vector ''c'' in Q''n'', a rational number ''r'', and a rational number ''d''>0, returns one of the following: * Assert that c\cdot x\leq r+d for all x that are ''d''-deep in ''K''; *Find a vector ''y'' that is ''d''-near ''K'', such that c\cdot y + d\geq r. A major result in convex optimization is that, for any "well-described"
polyhedron In geometry, a polyhedron (plural polyhedra or polyhedrons; ) is a three-dimensional shape with flat polygonal faces, straight edges and sharp corners or vertices. A convex polyhedron is the convex hull of finitely many points, not all on th ...
, the strong-separation problem, the strong-optimization problem and the strong-violation problem are equivalent A major result in convex optimization is that, for any "well-described"
polyhedron In geometry, a polyhedron (plural polyhedra or polyhedrons; ) is a three-dimensional shape with flat polygonal faces, straight edges and sharp corners or vertices. A convex polyhedron is the convex hull of finitely many points, not all on th ...
, the ''strong-separation'' problem, the ''strong-optimization'' problem and the ''strong-violation'' problem are polynomial-time-equivalent. That is, given an oracle for any one of these three problems, the other two problems can be solved in polynomial time. A polyhedron is called "well-described" if the input contains ''n'' (the number of dimensions of the space it lies in), and contains a number ''p'' such ''K'' can be defined by linear inequalities with encoding-length at most ''p''. The result is proved using the
ellipsoid method In mathematical optimization, the ellipsoid method is an iterative method for convex optimization, minimizing convex functions. When specialized to solving feasible linear optimization problems with rational data, the ellipsoid method is an algor ...
.


References

{{reflist Computation oracles Mathematical optimization