As you might be knowing SAP IBP Supply Planning optimization engine uses Gurobi solver in the backend. Have you wondered what entries goes in Additional Parameters of S&OP Operator Profile when using TS-Based Supply Optimizer as algorithm type.
SAP KBA 2912826 outlines how to maintain entry in Additional Parameter in S&OP Operator Profile. Normally SAP Support provides specific parameters to be assigned in Operator Profile to resolve Optimizer performance or solution generation issues. SAP IBP Help on Additional Parameter provides couple of examples. But these documentation does not provide much clue on the parameters and different types. After reviewing additional parameters (including default ones) advised by SAP Expert Support a pattern emerged.
The nomenclature of Additional Parameter is OPT/<I call this parameter type>/<parameter> with corresponding value maintained. Here are some examples
OPT/IBP/fPseudoHardCostFactor = 1.0 Pseudo Hard constraint Cost multiplication Factor as 1.0 instead of default x10
OPT/genios/sLpAlgorithm = PrimalSimplex or DualSimplex or Barrier LP Algorithm to be used by Gurobi Solver as defined in SAP GENIOS (GEneric Integer Optimizer System) framework. If Alogorithm is not specified then Gurobi Solver uses Primal Simplex, Dual Simplex and Barrier method in parallel (concurrently). Alternatively OPT/GUROBI/sGRB_INT_PAR_Method = -1 for automatic selection, 0 for primal simplex, 1 for dual simplex, 2 for barrier, 3 for concurrent
Barrier method has additional parameters like switching on / off crossover (OPT/GUROBI/sGRB_INT_PAR_Crossover) and tolerance for determining optimal solution (OPT/GUROBI/sGRB_DBL_PAR_BarConvTol = 1e-8 is default)
Note in case of GUROBI parameter type (OPT/GUROBI) parameters are prefixed by some kind of data type for parameter value. For example INT_PAR is integer value of parameter while DBL_PAR is double precision floating point data type of the parameter value.
Gurobi documentation provides details of different parameters and corresponding values.
It is possible to set how many threads of CPU to be used by Gurobi Solver OPT/nThreads = 2,3,4 which has direct impact on runtime.
Word of caution – use Additional Parameters as and when suggested by SAP Support. In case of large model which is not giving a solution within extended runtime, one can try out setting LP Algorithm to run Barrier method in order to generate solution as it is performance wise faster compared to simplex. Another problem typically faced is numerical issue which in simple terms occurs when model variables and constraints have increasingly high range of values causing solver to “stall” while finding optimal solution. For this Numeric Focus and Scaling parameters are useful. These are available in Expert Settings as explained in the blog. But before these settings were available, it was possible to pass as Additional Parameters directly to Gurobi solver.