[SCIP] Primal bound setting / Different presolved problems for the same instance (Using different ways to write the model, Read .lp file VS Build the model)
Ambros Gleixner
gleixner at zib.de
Sun May 31 19:37:30 CEST 2020
Dear Jungeun Shin,
For 1: Yes, I guess SCIPsetObjlimit() is your friend:
https://scipopt.org/doc/html/group__GlobalProblemMethods.php#ga7d1acc7a89eb3fa6c066aa0031356298
However, note that explicitly adding a solution with variable
assignments can be even better, because SCIP's improvement heuristics
can exploit that knowledge. Whether this makes a difference depends on
your problem, of course.
For 2: Your PySCIPOpt seems to lack the PaPILO library. I am suspecting
that because the "MILP presolver" line is missing in the output, which
finds reductions during the solve of the .lp in the shell.
Best,
Ambros
Am 29.05.20 um 08:20 schrieb Shin, Jungeun:
> Hi ,
>
> I have two questions, which are irrelevant to each other.
>
> 1) Can I set the Primal bound before solving Branch and Price algorithm?
>
> I have an initial set of columns obtained from heuristics which are
> added to the root node and know a good IP solution using the existing
> columns.
>
> I would like to use that IP solution as the primal bound before it
> starts so that some nodes with RMP LP obj exceeding the primal bound
> (known IP solution) can be pruned earlier.
>
> To do this, should I create a solution using SCIPcreatesol or is there a
> simpler way to apply this ? ( For example, there is a lower bound
> pointer to store a valid lower bound. Can I do similar setting for the
> upper bound?)
>
> 2) I have built a MILP problem using Python-SCIP interface and wrote
> it out to a .lp file.
>
> Then, I found that the prosolved problems are different for the same
> instance when I solve it with the model code (written in python) VS
> solve it in a SCIP interactive shell by reading the .lp file.
>
> This different presolved problem results in performance difference. A
> model written and solved within the code has taken twice longer time to
> optimality than the one solved within at SCIP interactive shell.
>
> They are equivalent instances and I have check that all the parameters
> equally set to default values in both cases.
>
> What could make this difference in the presolving part? Is this a
> problem of using Python interface ?
>
> Is it possible that a model written in the code has more information
> that is not included in .lp file so that the presolved problem is
> different?
>
> (I don’t think this is the case since reading .lp file and solving it in
> a SCIP interactive shell was faster)
>
> I have attached the result log of the initial presolving part below, if
> it helps to understand my question.
>
> ====Build a model and solve
> ======================================================================================================
>
> presolving:
>
> (round 1, fast) 9157 del vars, 9157 del conss, 0 add conss, 9157
> chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 27 clqs
>
> (round 2, fast) 9157 del vars, 17473 del conss, 0 add conss, 9157
> chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 27 clqs
>
> (round 3, exhaustive) 9157 del vars, 17473 del conss, 0 add conss, 9157
> chg bounds, 0 chg sides, 0 chg coeffs, 6112 upgd conss, 0 impls, 27 clqs
>
> (1.0s) probing: 69/14877 (0.5%) - 0 fixings, 0 aggregations, 943
> implications, 0 bound changes
>
> (1.0s) probing aborted: 50/50 successive totally useless probings
>
> Deactivated symmetry handling methods, since SCIP was built without
> symmetry detector (SYM=none).
>
> presolving (4 rounds: 4 fast, 2 medium, 2 exhaustive):
>
> 9157 deleted vars, 17473 deleted constraints, 0 added constraints, 9157
> tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients
>
> 7009 implications, 45 cliques
>
> presolved problem has 21045 variables (14877 bin, 0 int, 0 impl, 6168
> cont) and 35953 constraints
>
> 6084 constraints of type <varbound>
>
> 1 constraints of type <knapsack>
>
> 27 constraints of type <setppc>
>
> 29841 constraints of type <linear>
>
> Presolving Time: 1.00
>
> ====Read a model file (.lp) and solve
> ================================================================================================
>
> SCIP> read "SCIP_MIP.lp"
>
> original problem has 15802 variables (502 bin, 0 int, 0 impl, 15300
> cont) and 39010 constraints
>
> SCIP> optimize
>
> presolving:
>
> (round 1, fast) 9141 del vars, 9141 del conss, 0 add conss, 9141
> chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 43 clqs
>
> (round 2, fast) 9141 del vars, 25773 del conss, 0 add conss, 9141
> chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 43 clqs
>
> (0.0s) running MILP presolver
>
> (0.0s) MILP presolver (2 rounds): 0 aggregations, 636 fixings, 0
> bound changes
>
> (round 3, medium) 9777 del vars, 25773 del conss, 0 add conss, 9141
> chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 43 clqs
>
> (round 4, fast) 9777 del vars, 26861 del conss, 0 add conss, 9141
> chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 43 clqs
>
> (round 5, exhaustive) 9777 del vars, 26861 del conss, 0 add conss, 9141
> chg bounds, 0 chg sides, 0 chg coeffs, 7110 upgd conss, 0 impls, 43 clqs
>
> (1.0s) probing cycle finished: starting next cycle
>
> Deactivated symmetry handling methods, since SCIP was built without
> symmetry detector (SYM=none).
>
> presolving (6 rounds: 6 fast, 3 medium, 2 exhaustive):
>
> 9777 deleted vars, 26861 deleted constraints, 0 added constraints, 9141
> tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients
>
> 110984 implications, 70 cliques
>
> presolved problem has 6025 variables (401 bin, 0 int, 0 impl, 5624 cont)
> and 12149 constraints
>
> 7066 constraints of type <varbound>
>
> 1 constraints of type <knapsack>
>
> 43 constraints of type <setppc>
>
> 5039 constraints of type <linear>
>
> transformed objective value is always integral (scale: 1)
>
> Presolving Time: 1.0
>
> ===============================================================================================================================
>
> *Jungeun Shin, PhD candidate*
>
> Department of Industrial and Enterprise Systems Engineering
>
> College of Engineering | University of Illinois, Urbana-Champaign
>
> Jungeun4 at illinois.edu <mailto:Jungeun4 at illinois.edu> | 1-217-200-6772
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
>
--
Ambros Gleixner, Research Group Mathematical Optimization Methods at
Zuse Institute Berlin, http://www.zib.de/gleixner
More information about the Scip
mailing list