ArticleslgStudy

mathematics

Separation oracle

Separation oracle is a mathematics topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Separation oracle rather than just read about it. In short: A separation 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.

Key takeaways

  • Separation oracle belongs to mathematics; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Separation oracle to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Separation oracle from memory before moving on to harder problems.

Reference excerpt

A separation 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.

Definition 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:

Assert that y is in K. Find a hyperplane that separates y from K: a vector a in Rn, such that a ⋅ y > a ⋅ x {\displaystyle 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 Qn and a rational number d>0, returns one of the following:

Assert that y is d-near K; Find a vector a in Qn, normalized such that its maximum element is 1, such that a ⋅ y + d ≥ a ⋅ x {\displaystyle 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 = { x | A x ≤ b } {\displaystyle K=\{x|Ax\leq b\}} . 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 If the matrix A and the vector b are given as input, so that K = { x | A x ≤ b } {\displaystyle K=\{x|Ax\leq b\}} , then a strong separation oracle can be implemented as follows. Given a point y, compute A y {\displaystyle Ay} :

If the outcome is at most b {\displaystyle b} , then y is in K by definition; Otherwise, there is at least one row c {\displaystyle c} of A, such that c ⋅ y {\displaystyle c\cdot y} is larger than the corresponding value in b {\displaystyle b} ; this row c {\displaystyle c} gives us the separating hyperplane, as c ⋅ y > b ≥ c ⋅ x {\displaystyle 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 = conv ( v 1 , … , v k ) = {\displaystyle K={\text{conv}}(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 z1,...,zk such that:

z 1 ⋅ v 1 + ⋯ + z k ⋅ v k = y {\displaystyle z_{1}\cdot v_{1}+\cdots +z_{k}\cdot v_{k}=y} ;

0 ≤ z i ≤ 1 {\displaystyle 0\leq z_{i}\leq 1} for all i in 1,...,k. 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

c ⋅ y > c ⋅ v i {\displaystyle 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 2n 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:

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Separation oracle

Start with the simplest possible case. Write down what Separation oracle claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In mathematics, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Separation oracle before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Separation oracle ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Separation oracle

In research
Separation oracle appears in mathematics research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Separation oracle in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Separation oracle is common in secondary-school and first-year university syllabi. It links to neighbouring topics Computation oracles, Convex optimization, Mathematical optimization, so understanding it makes those chapters shorter.
In everyday life
Look for Separation oracle outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Separation oracle in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Separation oracle means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Separation oracle out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Separation oracle in simple terms?

A separation 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.

Why does Separation oracle matter?

Because it connects several mathematics ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Separation oracle?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Separation oracle.

Tags

  • Computation oracles
  • Convex optimization
  • Mathematical optimization

Keep exploring