Finding a hyperplane that splits a convex polytope evenly - MathOverflow most recent 30 from http://mathoverflow.net2013-05-23T08:37:19Zhttp://mathoverflow.net/feeds/question/74779http://www.creativecommons.org/licenses/by-nc/2.5/rdfhttp://mathoverflow.net/questions/74779/finding-a-hyperplane-that-splits-a-convex-polytope-evenlyFinding a hyperplane that splits a convex polytope evenlyroseck2011-09-07T18:18:06Z2012-03-15T19:17:54Z
<p>Say we have a convex polytope in standard form:</p>
<p>\begin{equation*}
\begin{array}{rl}
\mathbf{A}\mathbf{x} = \mathbf{b} \\
\mathbf{x} \ge 0
\end{array}
\end{equation*}</p>
<p>Are there any known methods for finding a hyperplane $\mathbf{d} \mathbf{x} +d_0= 0$ that splits the polyhedron in a way that the number of vertices on each side of the hyperplane is approximately the same? (i.e. a hyperplane that minimizes the absolute difference of vertex cardinalities on the two sides of the split).</p>
<p>Also, are there any known results regarding the computational complexity of this problem?</p>
<h3>Addendum: Restricting the types of cuts:</h3>
<p>Here is a variation of the original problem with the hope that it is easier to solve than the original one: </p>
<p>Is there a way to efficiently compute or estimate for which coordinate $i$ a hyperplane of the form $d_ix_i + d_0 = 0$ would yield the lowest absolute difference of vertex cardinalities on both sides of the split? By efficient I mean anything more efficient than the exhaustive enumeration of vertex cardinalities for all such possible splits.</p>
<h3>Note:</h3>
<p>I first asked this question in <a href="http://cstheory.stackexchange.com/questions/8065/finding-a-cutting-plane-that-splits-a-polyhedron-evenly" rel="nofollow">CSTheory.stackexchange.com</a> last week. Since the question has not seen any significant progress since then, I thought I could try here. </p>
http://mathoverflow.net/questions/74779/finding-a-hyperplane-that-splits-a-convex-polytope-evenly/74781#74781Answer by Joseph O'Rourke for Finding a hyperplane that splits a convex polytope evenlyJoseph O'Rourke2011-09-07T18:57:47Z2011-09-07T20:11:06Z<p>If you have a generic direction $\mathbf{u}$ in your hands, then you can sweep a hyperplane
orthogonal to $\mathbf{u}$ until it has $\lfloor n/2 \rfloor$ vertices of the $n$-vertex polytope
to one side. The sweeping can be efficient: project the polytope vertices onto $\mathbf{u}$ and
find the median.
So the question reduces to finding a generic direction.</p>
<p>A random direction will be generic with high probability, so one approach is to generate random
direction vectors, sweep, repeat until you are not unlucky.</p>
<p><b>Edit.</b> As Kurt Luoto pointed out, I (inadvertently) assumed the vertices were available,
neglecting that the polytope is given in "standard form."
One could use the Avis and Fukuda pivoting algorithm, which could list
the $n$ vertices in time $O(n d f)$,
where $f$ the number of facets, and $d$ the dimension:
"A pivoting algorithm for convex hulls and vertex enumeration of arrangements and polyhedra,"
<a href="http://www.springerlink.com/content/m7440v7p3440757u/" rel="nofollow"><em>Discrete & Computational Geometry</em>,
Volume 8, Number 1, 295-313, 1992</a>.</p>
<p>Offhand I do not see how to bisect the vertices without computing the vertices, but I would not
rule it out...</p>
http://mathoverflow.net/questions/74779/finding-a-hyperplane-that-splits-a-convex-polytope-evenly/74782#74782Answer by Kurt Luoto for Finding a hyperplane that splits a convex polytope evenlyKurt Luoto2011-09-07T19:07:09Z2011-09-07T19:07:09Z<p>It seems that Joseph's approach would require computing the set of vertices from the standard form. I don't recall what the complexity of this is in the worst case, but I dimly remember it being pretty bad in the extreme case. In any case, I wonder whether that is in the spirit of the original question.</p>
<p>Sad to say, I don't have an idea to propose.</p>
http://mathoverflow.net/questions/74779/finding-a-hyperplane-that-splits-a-convex-polytope-evenly/91324#91324Answer by Carl Feynman for Finding a hyperplane that splits a convex polytope evenlyCarl Feynman2012-03-15T19:17:54Z2012-03-15T19:17:54Z<p>This is not an answer, it's a warning of a dead end.</p>
<p>I considered using a Markov Chain to randomly sample the vertices. Just start at an arbitrary vertex, and at each time step, pick an edge-connected neighbor of the current vertex and step to that vertex. The distribution of points hit by this chain converges to the uniform distribution on the vertices. So we could use it to take a random sample of vertices and pick a splitting plane for that sample. This would be an approximation to the real splitting plane. Unfortunately I was able to construct a polytope where the convergence takes time exponential in the number of constraints. So as long as you're taking exponential time, you might as well just enumerate all the vertices.</p>