0

I am aware that when we have a linear problem subject to OR constraints, the LP would be a non-convex optimisation problem. For example,

${x = 0}$ OR ${1<=x<=2}$.

My question is in such a situation, is it possible to check if an LP is feasible/infeasible, bounded/unbounded or if it has an optimal value or not

I could not find much explanation on the internet concerning a detailed explanation of this situation. I'd appreciate it if anyone could explain this in more detail.

Similar questions in other sites:

https://math.stackexchange.com/questions/4158912/infinite-number-of-or-constraints-in-linear-programming

https://stackoverflow.com/questions/50987517/expressing-an-or-constraint-in-linear-programming

1 Answers1

1

Yes, it's possible. Let $S$ be the original linear problem, i.e., a conjunction of inequalities. You can form two LPs. One LP has the form $S \land x=0$, which can be solved with a LP solver. The other LP has the form $S \land 1 \le x \le 2$. If either one has a feasible solution, your problem has a feasible solution. This procedure takes polynomial time.

This works if you have a single disjunction. If you have an unlimited number of disjunctions, it is still possible to find a solution, but such a naive strategy will take exponential time. You can convert the problem to an instance of integer linear programming (see Express boolean logic operations in zero-one integer linear programming (ILP)) and then use an ILP solver. ILP is of course NP-hard, so there is no method that will be efficient in general on all problem instances, so if you have many disjunctions, you might run into instances that are intractable to solve within your lifetime.

D.W.
  • 167,959
  • 22
  • 232
  • 500