How to convert non-PSD matrix to PSD matrix?

295 Views Asked by At

I have a mixed-integer optimization problem with the following constraint matrix $Q_1$:

\begin{array}{cccccc} 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & -1 & 0 & 0 \\ 0 & 0 & -1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 & 0 \\ \end{array}

I have the constraint $x^T Q_1 x=0$ where the upper bounds of $x$ are $[10,7,8,1,1,1]$ and the lower bounds are $[1,1,1,0,0,0]$, and $x$ is the vector to be optimized.

In order to run the optimization, the matrix has to be positive semi-definite. Is there a matrix that will produce the same result, but is positive semi-definite?

For some context:

The entire optimization problem is to minimize $d^T x + \frac{1}{2}x^T Q x$ where $Q$ is the following:

\begin{array}{cccccc} 0 & 0 & 0 & 0 & 0 & -2 \\ 0 & 0 & 0 & 0 & -2 & 0 \\ 0 & 0 & 0 & -2 & 0 & 0 \\ -2 & 0 & 0 & 0 & 0 & 0 \\ 0 & -2 & 0 & 0 & 0 & 0 \\ 0 & 0 & -2 & 0 & 0 & 0 \\ \end{array}

And $d^T$ is [$\begin{array}{cccccc} 0 & 0 & 0 & 10 & 7 & 8 \end{array}$].

So the function equates to: $-((10-x_1)x_4+(7-x_2)x_5+(8-x_3)x_6)+x_1x_4+x_2x_5+x_3x_6$ with the constraint that $x_1x_4=x_2x_5+x_3x_6$.

I.e., I'm trying to minimize a "residual" and maximize a sum. This is an allocation problem where $x_1$ is the amount allocated to a buyer, and $x_2$ and $x_3$ are amounts allocated to a seller. $x4,x5,x6$ are variables where I decided if I should allocate at all.

I'm looking for a solution that produces $x=[10,7,3,1,1,1]$ or something Pareto-equivalent.

1

There are 1 best solutions below

2
On

Your problem is not convex. In particular, you're likely to have many local minima rather than just a single one. Therefore it's unlikely that you could "convert" the problem into a convex one in any simple way. You might look at global optimization software.

By the way, I think the optimal solution is $x_1=10,x_2=7,x_3=8,x_4=1,x_5=1,x_6=3/8$