CPLEX return integer infeasibility for a feasible MIQP problem

Solver related questions
Post Reply
feifan
User
User
Posts: 18
Joined: 5 years ago

CPLEX return integer infeasibility for a feasible MIQP problem

Post by feifan »

Dear all,

I have built a MIQP model. However, when I use solvers CPELX/CPLEXD to solve it, they return integer infeasibility.

I am pretty sure that this model is feasible because if I fix some continuous variables as zero, in my model, I fixed Pr.fx(time) = 0, it returns a feasible solution. Without fixing, it returns integer infeasibility.

So, what's wrong with my model? Hope someone can help me figure out. I attached the model and data for your reference.

Thanks in advance.
Untitled_349.gms
this is main code
(19.86 KiB) Downloaded 282 times
data_gms.gms
this is data file, since inc. file cannot be uploaded, I copy data to gms. file
(18.41 KiB) Downloaded 303 times
User avatar
bussieck
Moderator
Moderator
Posts: 1038
Joined: 7 years ago

Re: CPLEX return integer infeasibility for a feasible MIQP problem

Post by bussieck »

Hi,

Looking at the quality of your solution (use GAMS/Cplex option quality=1) I get

Code: Select all

Solution Quality Statistics:
                                   unscaled                scaled
                               max         sum         max         sum
primal infeasibility        3.099e-10   1.659e-07   3.099e-10   1.659e-07
dual infeasibility          7.221e-09   1.623e-07   7.221e-09   1.623e-07
primal residual             5.821e-11   2.277e-08   5.821e-11   2.277e-08
dual residual               4.657e-10   5.599e-08   4.657e-10   5.599e-08
primal solution vector      5.519e+03   1.547e+06   5.519e+03   1.547e+06
dual solution vector        2.000e+01   9.609e+05   2.000e+01   9.609e+05
slacks                      1.704e+03   1.346e+08   1.704e+03   1.346e+08
reduced costs               8.000e+06   9.604e+08   8.000e+06   9.604e+08
comp. slackness viol.       1.054e-10   8.656e-07                        
The reduced costs are very high and indeed if I disable dual presolve reductions in Cplex (reduce=1) Cplex does not declare the model as infeasible (dual reductions seem important though for successfully solving the problem). Perhaps the logic of penalties in your model can be reworked.

Good luck!
-Michael
feifan
User
User
Posts: 18
Joined: 5 years ago

Re: CPLEX return integer infeasibility for a feasible MIQP problem

Post by feifan »

Hi, Michael,

Thanks for your answers. I do not get the point regarding the logic of penalties. What does logic of penalties mean?

Also, even if I set reduce=1 using the following codes, CPELX still returns integer infeasibility. I hope to get your answers soon. Thanks!

$onecho > CPLEX.opt
reduce 1
$offecho
main.OptFile = 1;



bussieck wrote: 3 years ago Hi,

Looking at the quality of your solution (use GAMS/Cplex option quality=1) I get

Code: Select all

Solution Quality Statistics:
                                   unscaled                scaled
                               max         sum         max         sum
primal infeasibility        3.099e-10   1.659e-07   3.099e-10   1.659e-07
dual infeasibility          7.221e-09   1.623e-07   7.221e-09   1.623e-07
primal residual             5.821e-11   2.277e-08   5.821e-11   2.277e-08
dual residual               4.657e-10   5.599e-08   4.657e-10   5.599e-08
primal solution vector      5.519e+03   1.547e+06   5.519e+03   1.547e+06
dual solution vector        2.000e+01   9.609e+05   2.000e+01   9.609e+05
slacks                      1.704e+03   1.346e+08   1.704e+03   1.346e+08
reduced costs               8.000e+06   9.604e+08   8.000e+06   9.604e+08
comp. slackness viol.       1.054e-10   8.656e-07                        
The reduced costs are very high and indeed if I disable dual presolve reductions in Cplex (reduce=1) Cplex does not declare the model as infeasible (dual reductions seem important though for successfully solving the problem). Perhaps the logic of penalties in your model can be reworked.

Good luck!
-Michael
User avatar
bussieck
Moderator
Moderator
Posts: 1038
Joined: 7 years ago

Re: CPLEX return integer infeasibility for a feasible MIQP problem

Post by bussieck »

I though that the high reduced cost might come from some penalized slack variables. Anyway, I reduced your M from 1000 to 100 and Cplex provides now a feasible solution (with CplexD). The reduced cost go down. It's unfortunate that Cplex is sensitive about this but I guess the numerics of the model are far from being ideal. Perhaps, you can work with more data specific and much small values of M. You can also contact GAMS support and see if they can get better advice from the Cplex folks.

-Michael
Post Reply