Hi,
Im testing with a model with Semi-continuous and binary variables and testing my possibilities.
I killed the execution with lpSolve 5.5.2.11 (default options) after 800 sec and wanted to test the model with different solvers:
https://neos-server.org/neos/solvers/index.htmlto see how bad my model is...
To do this i convert my model with lpSolve from .lp -> .mps
at first all 3 tested solver deliver no result:
1_bad_scaling_bin_SC_without_upper
cbc -> Result - Problem proven infeasible
Gurobi + CPLEX report a model error
It seems that Gurobi + CPLEX both require an upper bound on the semi cond variables:
https://www-eio.upc.edu/lceio/manuals/cplex-11/pdf/reffileformatscplex.pdf Page 22
Type Purpose Special Considerations
BV Binary variable Field 4 must be 1.0 or blank
LI Integer lower bound Field 4 is the lower bound value and must be an integer
SC Semi-continuous variable Field 4 is the upper bound and must be specified
UI Integer upper bound Field 4 is the upper bound value and must be an integer
CBC does not need this upper bound.
Shouldn't there be a hint/warning/error on conversion/save from .lp -> .mps?I don't know if this upper bound can be determined by lpSolve itself.
So i changed my model so that an upper limit is given for all semi cond
2_bad_scaling_bin_SC_with_upper.mps
cbc
Result - Problem proven infeasible
No feasible solution found
Gurobi
Optimal solution found (tolerance 1.00e-04)
Best objective 1.458200594112e+05, best bound 1.458162060864e+05, gap 0.0026%
CPLEX
MIP - Integer optimal, tolerance (0.0001/1e-06): Objective = 1.4581981462e+05
Current MIP best bound = 1.4581719846e+05 (gap = 2.61616, 0.00%)
Solution time = 0.29 sec. Iterations = 1257 Nodes = 77 (7)
Deterministic time = 235.10 ticks (806.08 ticks/sec)
I tried something more with my model and found the Big M value? for my bin variables a little high?!?
If i reduce it to a smaller but "big enough" value:
3_smaller_bin_SC_with_upper
cbc
runs long
Gurobi
Optimal solution found (tolerance 1.00e-04)
Best objective 1.458200594112e+05, best bound 1.458162060864e+05, gap 0.0026%
CPLEX
MIP - Integer optimal, tolerance (0.0001/1e-06): Objective = 1.4581981462e+05
Current MIP best bound = 1.4581719846e+05 (gap = 2.61616, 0.00%)
Solution time = 0.29 sec. Iterations = 1257 Nodes = 77 (7)
Deterministic time = 235.09 ticks (810.31 ticks/sec)
-> for Gurobi + CPLEX no difference
is my model bad scaled?
Or do I have to use other lpSolve settings?
i use semi cond variables for "0 or min x" and binary for "maximum number of non-zero"
Thank you