3

We know that a Closed Convex Polytope may be regarded as the set of solutions to the system of linear inequalities:

$$\begin{array}{ccc}{a_{11} x_{1} +a_{12} x_{2}+\cdots+a_{1 n} x_{n}}\leq b_{1} \\ {a_{21} x_{1}+a_{22} x_{2}+\cdots+}{a_{2 n} x_{n} \leq b_{2}} \\ {\vdots} \\ {a_{m 1} x_{1}+a_{m 2} x_{2}+\cdots+a_{m n} x_{n}}\leq b_{m}\end{array}$$

This can be concisely written as the matrix inequality $Ax≤b$, where $A$ is an $m×n$ matrix, $x$ is an $n×1$ column vector of variables, and $b$ is an $m×1$ column vector of constants.

My question is, for a given system of inequalities, how do I know the solution region is a Bounded Convex Polytope?

  • For some people, if it's bounded then it is a polyhedron, if it's unbounded then it is a polytope. For other people, it is the other way round. – Rodrigo de Azevedo Dec 18 '19 at 01:38
  • Related: https://math.stackexchange.com/q/240504/339790 – Rodrigo de Azevedo Dec 18 '19 at 01:39
  • One obvious approach would be to maximize $|x|_2^2$ over $A x \leq b$. Unfortunately, that is a non-convex quadratic program. In other words, it is not easy. It also gives one more information than that which is required. – Rodrigo de Azevedo Dec 18 '19 at 01:47
  • @Rodrigo de Azevedo, thank you! For a system of 50~60 6-variables inequalities, mathematica gives me the result in less than 10s! This really helps me! – EDM HormPhys Dec 19 '19 at 02:26
  • @EDMHormPhys Do you know what exactly mathematica is doing? Because just running gradient ascent will not work, it will find local maxima. (Think about the case when the polytope is the line from $(1,0) $ to $(0,2)$. Starting at $(1,0)$ is already at a local max, but it is not the global max.) – Elle Najt Dec 19 '19 at 02:36
  • @LorenzoNajt, I was using the command: Maximize[{b1^2 + b2^2+... +b6^2, My Constraints},{b1,b2, ..., b6},Reals], will this give me the local maxima? – EDM HormPhys Dec 19 '19 at 10:42
  • @EDMHormPhys I don't know, you'll have to look into the documentation. It shouldn't be able to in general (these kind of problems are NP-hard, see 3.2 here https://link.springer.com/content/pdf/10.1007%2Fs10100-007-0052-9.pdf), but maybe mathematica knows something about this particular objective function that lets it do it. Maybe search or ask here: https://mathematica.stackexchange.com/ – Elle Najt Dec 19 '19 at 13:26

1 Answers1

4

You can consider maximizing and minimizing each $x_i$ over your feasible set. These are $2n$ linear programs, each of which can run in polynomial time. If one of these is unbounded, then the polyhedron is unbounded. If all of them are bounded, then the polyhedron lives inside of the product of intervals given by the bounds you found, so it is bounded.

Note that linear program solvers can figure out if the max is $\infty$, they don't just run forever; for instance, being unbounded is equivalent to dual being infeasible but the primal being feasible. Both of these can be checked again by a linear program solver, using the reduction in the answer here: how to check whether feasible solutions exist for linear programming.

Also, polytope is the standard terminology for a bounded polyhedron, at least in the CS and combinatorics literature.

Elle Najt
  • 21,422