8

I have a simple linear programming problem min $c^{T}x$ subject to $Ax\leq b$. That gives me the solution I am looking for when solving in maple. My only problem is that I do not know how to check, with maple, whether or not this solution is unique. I have read MANY threads about this topic and no one seems to be able to provide a simple way to check with a computational program such as maple whether or not the solution is unique.

Any sort of for all $q\in \mathbb{R}^{n}$ check that there exists an $\epsilon$ such that the solution maximizes the perturbed problem is useless for me as I need a definite answer and obviously can't check for all $q\in \mathbb{R}^{n}$.

I have read this paper www.jstor.org/stable/822972.

But, I cannot understand how to implement this algorithm based on the way it is presented, if anyone could simply phrase this algorithm I think it would be beneficial for future reference to others.

It is simple enough to provide my exact problem here:

$$ \min_{x\in \mathbb{R}^{8}} 36x_{1}+30x_{2}+50x_{3}+51x_{4}+36x_{5}+55x_{6}+33x_{7}+30x_{8} $$ s.t \begin{cases} x_{1}+x_{5}\leq 2x_{6}\\ 2x_{8}\leq x_{3}+x_{7}\\ 2x_{1}+x_{7}\leq3x_{5}\\ 3x_{6}+3x_{7}\leq 2x_{2}+4x_{8}\\ 2x_{2}\leq x_{1}+x_{3}\\ x_{5}+x_{7}\leq 2x_{6}\\ 40x_{1}+80x_{2}+60x_{5}+60x_{7}+80x_{8}\leq 40\\ \sum_{i=1}^{8}x_{i}=1,\;\;\;\; x_{i}\geq 0\;\; i=1,...,8\\ \end{cases}

The solution is $x^{*}=(0,\frac{1}{4},\frac{1}{2},0,0,0,0,\frac{1}{4})$ which is exactly what my counter example requires, but I need uniqueness.

h4nusGT
  • 275
  • 1
    The paper I reference in the question claims to provide a "simple" way to check for uniqueness or find another solution to the LP in question, I just cannot understand exactly what the algorithm requires and, given that it is constructed with out proof, whether or not I can trust it. – h4nusGT Jan 31 '14 at 13:44

1 Answers1

3

There is a very simple (while not that efficient) way to check this.

Note that your solution yields the function value $c^T x^*=\frac{30}{4}+\frac{50}{2}+\frac{30}{4}=40$.

Now consider the linear program

$$\max_{x\in \mathbb{R}^{8}} 1x_{1}$$

s.t.

$$\begin{cases} 36x_{1}+30x_{2}+50x_{3}+51x_{4}+36x_{5}+55x_{6}+33x_{7}+30x_{8}=40\\ x_{1}+x_{5}\leq 2x_{6}\\ 2x_{8}\leq x_{3}+x_{7}\\ 2x_{1}+x_{7}\leq3x_{5}\\ 3x_{6}+3x_{7}\leq 2x_{2}+4x_{8}\\ 2x_{2}\leq x_{1}+x_{3}\\ x_{5}+x_{7}\leq 2x_{6}\\ 40x_{1}+80x_{2}+60x_{5}+60x_{7}+80x_{8}\leq 40\\ \sum_{i=1}^{8}x_{i}=1,\;\;\;\; x_{i}\geq 0\;\; i=1,...,8\\ \end{cases}$$

The first constraint will say that you are searching a different optimal solution (same function value). But the new function you maximize, namely $x_1$ means that you are looking for an optimal solution with maximal $x_1$ value.

You can do that twice for each coordinate to see if your solution is unique. In your case your solution is not optimal, in fact there is a solution with $x_1\approx0.1363636 $.

Listing
  • 13,937
  • 1
    Ok, that makes sense. But, still I am constructing a counter example so I can play with the numbers a bit. So suppose I find an example where for each $x_{i}$(i=1,4,5,6,7), I get the $max x_{i}$ solution to be my original solution $x^{*}$. Does this imply uniqueness and if so why? – h4nusGT Jan 31 '14 at 14:10
  • When you say twice for each coordinate, do you mean once for $\min x_i$ and once for $\max x_i$? – AnonSubmitter85 Jan 31 '14 at 14:56
  • @AnonSubmitter85 yes. – Listing Jan 31 '14 at 15:06
  • @ThomasJRivera The solution is unique if and only if both $\min x_i$ and $\max x_i$ return the same solution for all $i$. – Listing Jan 31 '14 at 15:06
  • 1
    @Listing Is there a more efficient test? – a06e May 14 '16 at 19:36
  • @Listing Can you look at this little problem here? I will vote your answer as the best. https://math.stackexchange.com/questions/4558186/linear-program-problem-optimal-solution-p-l-1-bigg-dfrac21-alpha – user253963 Oct 21 '22 at 12:51