Given an active set, testing feasibility of an LP and a QP

289 Views Asked by At

Consider an Programming problem of the following form

$$\min f(x)$$ $$\text{s.t.:} Ax\leq b$$

Were $f(x) = c^Tx$ or $f(x) = \frac{1}{2}x^tQx^t+c^tx$ is it possible to test to feasibility of a specified active set combination eg {1,2} or {1,3,5}? It can be assumed that the active set {} is feasible.

I am running to a problem where I do not necessarily care about the value of the optimization problem but if the active set is feasible. Is there a way to solve this without invoking another LP?

1

There are 1 best solutions below

2
On BEST ANSWER

Unfortunately, in general, this requires solving the feasibility problem more or less from scratch: knowing that there is a feasible solution (or even having one) doesn't tell you anything about what happens when you ask for some specific constraints to be active.

Consider a problem of the following form: for any $m \times n$ matrix $A$ and $m\times 1$ vector $\mathbf b$, \begin{align*} A \mathbf x + \mathbf 1 x_{n+1} &\le \mathbf b \\ x_{n+1} &\le 0 \end{align*} This definitely has a feasible solution: no matter what values you pick for $x_1, \dots, x_n$, I can just make $x_{n+1}$ a very large negative number, and then the constraints will be satisfied. We have not needed to look at $A$ or $\mathbf b$ for this at all.

Now, suppose I want to make the last constraint active. This tells us that $x_{n+1}=0$, and the first $m$ constraints simplify to $A\mathbf x \le \mathbf b$. We are now stuck solving a fully general LP to decide if there is a feasible solution here. Note that it only took one "flip of a switch" to force us to solve a hard problem: we only asked for one more constraint to be active than we had previously.

It is true that you can often use an existing solution as a starting point for finding a feasible solution where some specific set of constraints are active. Say you have found a feasible solution to $A\mathbf x \le \mathbf b$ using the simplex method: you've rewritten this as $A\mathbf x^+ - A\mathbf x^- + I\mathbf s = \mathbf b$ with $\mathbf x^+, \mathbf x^-, \mathbf s \ge \mathbf 0$, and found a basic feasible solution. Now, if you pick a set $J$ of constraints that you want to be active, simply minimize the objective function $\sum_{j \in J} s_j$ and see if you can get it to $0$. Having a starting basic feasible solution helps the simplex method along, especially if some of the $s_j$ for $j \in J$ are already $0$.