How can I set a kind of global random seed on SCIP in order to obtain potentially different behaviors when solving a MIP? I'm looking for something like the Seed
parameter in Gurobi or the CPXPARAM_RandomSeed
parameter in CPLEX.
Looking at the SCIP documentation, I see the following parameters but they make reference to particular plugins or aspects of the algorithm, and there does not seem to be a "global" random seed:
randomization/permutationseed
(for permuting problem)randomization/lpseed
(for simplex)branching/random/seed
(for the random branching rule)branching/relpscost/startrandseed
(for the relpscost branching rule)heuristics/alns/seed
(for bandit algorithms)separating/zerohalf/initseed
(for tie-breaking in cut selection)I do see the randomization/randomseedshift
parameter that is described as "global shift of all random seeds in the plugins and the LP random seed". Could this parameter be used to achieve a global effect?
Thanks!
The short answer is yes. The parameter randomization/randomseedshift
affects all solver plugins that use randomization, and the LP.
The longer answer is that randomization of the solving process in SCIP can be achieved in three different basic ways:
randomization/randomseedshift
parameter, which affects the seed initialization of all plugins and the LPrandomization/lpseed
parameter for changing simplex randomization onlyrandomization/permutationseed
for a permutation of the constraints and variables of the problems.The permutation of the problem is the classic way of randomizing the solution process, however, it may obfuscate problem structure of the original input model.
SCIP also provides access to the individual seeds such as heuristics/alns/seed
to modify only the behavior of a single plugin without affecting the rest.