In my previous post, I cited a question on Operations Research Stack Exchange about an allegedly unbounded feasible region defined by a randomly generated quadratic constraint. In that post, I presented what I believe is a valid proof that, at least in theory, the feasible region should be bounded with probability 1.
Unfortunately, in our digital world, theory and computation sometimes diverge. To test whether I was correct, I coded several mixed integer quadratic programming (MIQCP) models to assess the boundedness of , and applied them to a small sample of test problems (using Java and CPLEX 22.1.1). I set the dimension of the test problems to (for no particular reason).
All three models contained the variable and the constraint Two of the models attempted to answer the question directly by maximizing either the or norm of over .
For the model, I added continuous variable and binary variables and together with the constraints and The combined effect of these is to force for some where The objective was to maximize
For the model, I added continuous variables and constraints (Internally, CPLEX adds binary variables does big-M magic to linearize the use of absolute values.) The objective was to maximize
My third approach was iterative. The model was almost the same as the model, except that rather than maximizing I set the objective to minimize 0 (meaning the first feasible solution wins) and set the lower bound of to some value If the model found a feasible solution (an such that ), I doubled and tried again, until either exceeded some upper limit or the solver said the problem was infeasible (meaning is bounded in norm by the last value of ).
You can find my Java code (self-contained other than needing CPLEX) in my repository. Here are the results from a handful of test runs.
Random Seed | Max L_infinity |
Max L_1 |
Iterative |
---|---|---|---|
123 |
unbounded |
unbounded |
bounded (100) |
456 | unbounded |
unbounded |
bounded (100) |
789 | unbounded | unbounded | bounded (1600) |
12345 | unbounded | bounded (22.1) | bounded (100) |
61623 | bounded (12.4) | unbounded | bounded (100) |
20230616 | bounded (120.9) | unbounded | bounded (200) |
The numbers in parentheses are upper bounds on the norm in the third column and the norm in the second and fourth columns. The bound found by the iterative method is never tight, so a bound of 100 means As you can see, the iterative method always found the ellipsoids to be bounded, consistent with the mathematical argument in the previous post. The other two models frequently found the problem to be "unbounded", though they did not always agree on that. This is a bit confusing (OK, very confusing). In particular, the "Max L_infinity" and "Iterative" models differ only in whether you are maximizing or looking for any solution with so saying (when the seed is 123) that the supremum of is but cannot exceed 100 is grounds for another beer (or three).
Something is apparently going on under the hood in CPLEX that is beyond me. Meanwhile, I'm sticking to my belief that is always bounded.