Finding a hyperplane that splits a convex polytope evenly - MathOverflow most recent 30 from http://mathoverflow.net 2013-05-23T08:37:19Z http://mathoverflow.net/feeds/question/74779 http://www.creativecommons.org/licenses/by-nc/2.5/rdf http://mathoverflow.net/questions/74779/finding-a-hyperplane-that-splits-a-convex-polytope-evenly Finding a hyperplane that splits a convex polytope evenly roseck 2011-09-07T18:18:06Z 2012-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#74781 Answer by Joseph O'Rourke for Finding a hyperplane that splits a convex polytope evenly Joseph O'Rourke 2011-09-07T18:57:47Z 2011-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 &amp; 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#74782 Answer by Kurt Luoto for Finding a hyperplane that splits a convex polytope evenly Kurt Luoto 2011-09-07T19:07:09Z 2011-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#91324 Answer by Carl Feynman for Finding a hyperplane that splits a convex polytope evenly Carl Feynman 2012-03-15T19:17:54Z 2012-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>