0

This is a follow up of my previous question on LP Relaxation of a MIP using SCIP.

Though I'm able to compute a LP Relaxation solution of my MIP by simply passing the MIP (in CPLEX format) to SoPlex, I observe that the computation time taken by SoPlex is higher than optimizing the MIP using SCIP itself (testing for smaller inputs). As SCIP uses SoPlex internally before solving the MIP, how is this possible? Moreover, my LP Relaxation result is actually giving integer solutions, and the same objective value as the MIP. Am I making a mistake in LP Relaxation? Or is it some property of my problem/formulation?

I'm referring to the total computation time printed by the solvers (not computed myself).

Community
  • 1
  • 1
Rohit Girdhar
  • 99
  • 1
  • 10
  • There are problems for which there are optimal relaxation solutions that satisfy the integrality restrictions. Is your problem an integer formulation of a combinatorial problem? May the matrix be totally unimodular? – Gregor Jun 20 '14 at 14:37

2 Answers2

0

This behavior can be explained by the different presolving steps. SCIP's presolving is usually faster and removes more rows and columns than that of SoPlex. Please have a look at the respective information in the statistics. You can display the SCIP statistics in the interactive shell by typing display statistics, whereas SoPlex prints more info with the command line parameter -q (if you're using SoPlex 2.0). Another thing you may try is parameter tuning. Have you tested different pricers (-p3 for devex, -p4 for steepest edge) or scalers (-g1 -g3 or -g4) in SoPlex? Run SoPlex without a problem to solve and it will show available parameters.

mattmilten
  • 6,242
  • 3
  • 35
  • 65
  • Dear @mattmilten, can you please mention the meaning of the suggested command line parameters `-p`, `-g`, or add a reference? – Gregor Jun 20 '14 at 15:48
0

This behaviour most likely comes from SCIPs presolving routines, which shrink and reformulate the input MIP. You can verify this by looking at the SCIP output after starting the optimization, where SCIP prints the number of removed variables, removed constraints etc.

Sometimes, Integer formulations allow for stronger problem reductions. If your problem contains, e.g., binary variables, a lot of them might get fixed when probing is performed: SCIP iteratively fixes the binary variables to 0 or 1, and if one fixation leads to an inconsistency, the variable gets fixed.

Gregor
  • 1,333
  • 9
  • 16