[SCIP] Strategies for Tuning Parameters in MILP problems & Pyomo compatibility

Marc Pfetsch pfetsch at mathematik.tu-darmstadt.de
Fri Jun 10 10:55:25 CEST 2022



Hi Aiman,

in addition to the suggestions by James, I will try to give some hints 
below.

> Using Pyomo framework, SCIP 6.0.0 does not seem to report back the final 
> “dualbound” and “primalbound”. Is this expected?

I have never looked into the Pyomo framework, so I do not know. You 
might consider switching to PySCIPopt 
(https://github.com/scipopt/PySCIPOpt) the "native" Python interface to 
SCIP.

> I'm also looking to improve the current performance (time to gap) of the 
> model.
> I’ve tried the preset changes suggested by SCIP (set emphasis 
> feasibility gives the best current time to gap), but would like to make 
> more granular changes.
> For this we have a few questions:
> 
>  1. Are there any suggested strategies to employ in changing individual
>     params?

In general, it depends on whether the dual or the primal bound seems to 
be the problem. In the former, you want to strengthen the formulation, 
in the latter you want to find better primal solutions.

In general, it is also a good idea to check whether you can improve the 
model.

>  2. Should I tackle granular settings in a specific order? (Try presolve
>     first, then heuristics, and later nodeselection etc.)

This depends on the answers in 1. If the primal solution is the problem, 
you want to put emphasis (i.e., use the corresponding settings of SCIP) 
on finding primal solutions. If the dual bound is the problem, you want 
to put emphasis on it.

>  3. Are automated parameter tuning methods available? (similar to
>     Bayesian parameter tuning in ML)

See James' answer. In general, such methods require significant 
computing times.

>  4. Are there other low hanging fruits I should try to improve
>     performance before making granular changes?

You can change to SCIP 8.

> Additionally, I've experienced that different hardware led to different 
> performance outcomes (the hardware had ample headroom in each test).
> Is this behavior expected?

Yes. For example, there can be little differences in the LP solution, 
which can change the solution path because different branching variables 
might be chosen. Such differences should average out over many 
instances. However, differnt hardware might be better suited for SCIP, 
e.g., difference cache sizes might significantly impact the performance.


I hope that this a least gives some indications.

Best

Marc


More information about the Scip mailing list