I’m using SCIP and JuMP to solve a MILP and I’m interested in using PaPILO to see if it can help to strengthen my formulation. I’ve never used PaPILO before.
SCIP’s solve output shows a presolve step, but I’m unsure what it is using to carry out the presolve – is it using an another set of presolve routines specific to SCIP or is it internally passing the problem to PaPILO? I’m aware that PaPILO is integrated within the SCIP optimization suite, but if I’m using SCIP from JuMP, does it still get used?
@odow’s answer is complete on the version of SCIP with/without PaPILO. I would just add that if you compile SCIP yourself, you can also override the SCIP library used either with the package artifacts or with an environment variable.
is it using an another set of presolve routines specific to SCIP or is it internally passing the problem to PaPILO
Both happen. PaPILO is one of the presolving plugins integrated in SCIP under the name presolving_milp. Other presolving techniques occur, even if your problem is just a MIP.
What can work to deactivate papilo presolving only is setting the parameter presolving/milp/maxrounds to 0, while leaving the rest of the presolving untouched.