Presolve is successful in removing all binary variables
AnsweredHi Gurobi Community!
I have a problem with about 83832 binary variables.
What does it mean when gurobi uses the Presolve, and now the Presolve removes all binary variables? Does that mean the problem can be formulated without binary variables?
Best,
Hussein
See below:
Set parameter MIPGap to value 0.01
Gurobi Optimizer version 10.0.1 build v10.0.1rc0 (linux64)
CPU model: AMD EPYC 7502 32Core Processor, instruction set [SSE2AVXAVX2]
Thread count: 64 physical cores, 64 logical processors, using up to 32 threads
Optimize a model with 527335 rows, 488464 columns and 1587336 nonzeros
Model fingerprint: 0x095de179
Variable types: 404632 continuous, 83832 integer (83832 binary)
Coefficient statistics:
Matrix range [5e03, 4e+06]
Objective range [1e+00, 1e+00]
Bounds range [9e19, 7e+04]
RHS range [1e+00, 2e+02]
Presolve removed 523076 rows and 483375 columns
Presolve time: 1.92s
Presolved: 4259 rows, 5089 columns, 12289 nonzeros
Variable types: 5089 continuous, 0 integer (0 binary)
Root relaxation: objective 1.827089e+07, 2665 iterations, 0.19 seconds (0.29 work units)
Nodes  Current Node  Objective Bounds  Work
Expl Unexpl  Obj Depth IntInf  Incumbent BestBd Gap  It/Node Time
* 0 0 0 1.827089e+07 1.8271e+07 0.00%  2s
Explored 1 nodes (2665 simplex iterations) in 2.57 seconds (2.12 work units)
Thread count was 32 (of 64 available processors)
Solution count 1: 1.82709e+07
Optimal solution found (tolerance 1.00e02)
Best objective 1.827088744377e+07, best bound 1.827088744377e+07, gap 0.0000%
Time in mins 0.43382884344706935

Hi Hussein,
What does it mean when gurobi uses the Presolve, and now the Presolve removes all binary variables? Does that mean the problem can be formulated without binary variables?
Theoretically, yes, this means that your model could be formulated in an equivalent way without binaries. However, please note that Presolve does not consist of only simple aggregations or substitutions. There are presolve reductions which are more tedious and not at all trivial to execute by hand such as combining rows or probing. You can find more details in the Knowledge Base article How does presolve work?
You can write out the presolved model to a file via the presolve and the write methods. Maybe you can deduce something from the presolved model.
Best regards,
Jaromił1 
Dear Dr. Jaromił Najman
Thank you so much.
Hussein
0
Please sign in to leave a comment.
Comments
2 comments