Is there any efficient algorithm to compute the intersection of two polytopes?

689 Views Asked by At

Let $P_1$ and $P_2$ being two polytopes defined by their vertices.

I there any efficient way to compute $P_3 = P_1 \cap P_2$?

It seems the intersection of the polytopes can be represented as the union of the two inequalities system. How to implement it?

1

There are 1 best solutions below

0
On

Considering that one defines a convex polytope as the convex hull of a finite number of vertices the so called $H$-representation in the comment section can also be a representation of the polytope by means of the following theorem:

Theorem: A non-empty set P of Rn is a (convex) polytope if, and only if, it is a bounded polyhedral set.

Since a bounded polyhedral is already defined as the intersection of halfspaces and the intersection of bounded sets is again bounded you might do just as it was stated in the comments:

$$P_1 \cap P_2 = \{x\in\mathbb R^n: Ax\leqslant b, A'x\leqslant b'\},$$

This problem does not characterizes itself as an LP but there are different problems that use the new polytope $P$ that can be stated in the form of an LP. An example can be finding the smallest distance between a given point outside the polytope and the polytope.

If I may suggest, this program PORTA is easy to download and run. It will be suitable for you to change between H and V representations. If, after you characterize the polytope you would like to ask LP questions I suggest linprog in MatLab.