License changes
The license of PaPILO has changed to the Apache License 2.0.
Features
The MPS Parser can now handle maximization problem (OBJSENSE MAX).
Interface changes
New API functions
ProblemBuilder:setColImplIntAll()to set all implied integrality flags at once.PresolveOptions:early_exit_callbackif a calling program wants to forcefully stop PaPILO.
New parameters with default values
cliquemerging.maxedgesparallel = 1000000: maximal number of edges in the graph constructed for parallel clique mergingcliquemerging.maxedgessequential = 100000: maximal number of edges in the graph constructed for sequential clique mergingcliquemerging.maxcliquesize = 100: maximal size of cliques considered for clique mergingcliquemerging.maxgreedycalls = 10000: maximal number of function calls for greedy clique in a single thread in clique mergingcliquemerging.enabled = 0: is clique merging enabled?dualinfer.minboundred = 0.001: minimum relative reduction to accept a bound change in dualinferpresolve.max_reduction_seq = 1000000000: abort the sequential executed presolver after a specified number of reductionscliquemerging.maxcalls = 1: maximum number of calls to the clique merging presolver
Data Structure:
Postsolve: The eventFixedColInfcontains now also the information whether the opposing bound is infinite.
Note that Postsolving is no longer backwards compatible. The PostsolveStack for this entry is changed from (ind = [col,...],val=[bound,...]) to (ind = [col,is_inf, ...],val=[0,bound,...]).
Build system
- for cmake >= 3.30, CMP0167 is enforced and
BOOST_ROOTno longer supported; useBoost_DIRinstead with these cmake versions - disabled default solvers and require linking when enabled
- recognize also Gurobi 10 to 13 libs automatically
Miscellaneous
- the time limit is now checked while applying the presolve reductions
For a detailed description of the new features, see the SCIP Optimization Suite release report.
For downloads of prebuild libraries and executables, check https://scipopt.org/index.php#download.