Answers for "Problem returning infeasible solution after changing binary variables to integer varables"
https://developer.ibm.com/answers/questions/503761/problem-returning-infeasible-solution-after-changi.html
The latest answers for the question "Problem returning infeasible solution after changing binary variables to integer varables"Answer by DanielJunglas
https://developer.ibm.com/answers/answers/503832/view.html
I think your issue is numerics. The statistics for your Integer.mps model are:
Problem name : Integer.mps
Objective sense : Minimize
Variables : 152699 [Nneg: 101815, Fix: 1, Box: 28138,
General Integer: 22745]
Objective nonzeros : 76334
Linear constraints : 130405 [Less: 1596, Greater: 22745, Equal: 106064]
Nonzeros : 378240
RHS nonzeros : 24168
Variables : Min LB: 0.000000 Max UB: 68800.00
Objective nonzeros : Min : 9.459000e-06 Max : 10052.01
Linear constraints :
Nonzeros : Min : 3.000000e-08 Max : 30000.00
RHS nonzeros : Min : 1.000000 Max : 1413687.
As you can see you have numbers as small as 1e-6 or 1e-8. Such small numbers are close or even below some of CPLEX's default tolerances. This may lead to CPLEX making decisions that are based purely on roundoff errors. Also the range of coefficients is very large: from 1e-8 through 1e4. That is 12 orders of magnitude. This again is asking for numerical trouble.
If you disable presolve then you get a feasible solution for Integer.mps but with these numbers I am not sure how good that is.
If possible you should increase the numbers and reduce the range of coefficients. You definitely want to enable CPX_PARAM_NUMERICALEMPHASIS and maybe also play with the parameters for numerical tolerances (CPX_PARAM_EPOPT, CPX_PARAM_EPRHS, CPX_PARAM_EPINT).Tue, 07 May 2019 20:25:40 GMTDanielJunglas