Performance settings
The following optimization options can be used to improve solver performance in a number of cases. Specific types of issues are described in Model considerations for solver performance. Note that these options do not address performance issues that are the result of an overly large model. These options are also independent of System considerations for solver performance.
- Presolve (Solver Settings tab) – Presolve reduces the size of the MIP/LP before attempting to generate solutions. Coupa recommends that you use the default value of “Use all” as this option has provided good results in the majority of cases.
- Cut Strategy (Solver Settings tab) – Cuts are constraints that cut away areas of the feasible region of the relaxation that contain fractional solutions. See additional information in Use of integer and binary variables.
- Heuristic Strategy (Solver Settings tab) – This option enables the solver to use a heuristic strategy that tries to calculate an integer solution from information, such as the solution to the relaxation at the current node. Heuristics do not replace the branch and cut process, but may be able to find a feasible solution more quickly than by branching.
- Cutoff Value (Solver Settings tab) – The solver cuts off nodes when the value of the objective function associated with the sub-problem at that node is worse than the Cutoff Value. You can use this option to limit the solutions that the solver explores and this can improve solution times. When the objective is set to minimize costs, you can set the Cutoff Value to a number slightly higher than the solution bound number observed in the previous optimization. You will see the solution bound on the Solving Model node of the Launch Pad when running the model.
- Feasibility Tolerance (Solver Settings tab) – Use this option to control how much deviation is acceptable for a solution to still be considered "feasible". Keep in mind that small feasibility tolerance values can impact solver performance. If your model is poorly scaled, you may want to try increasing the Feasibility Tolerance to counter the effects of the poor scaling.
- MIP Tolerance (Solver Settings tab) – Use this option to control how much an integer variable can differ from an integer and still be considered feasible. This option instructs the solver to only look for a solution that is x% better than the last solution, thereby potentially ignoring very similar solutions. Typically, no change is required to this option.
- Relative Gap (%) (Termination Settings tab) – Use this option to determine the acceptable percentage gap between the current solution and the best bound. For some models, solving to complete optimality (0% gap) can take a significant amount of time. You can have the optimization stop when it reaches near optimality by setting a small Relative Gap. In the majority of cases, this is relaxed to 1 to 2%.
- Absolute Gap (Termination Settings tab) – Use this option to determine the acceptable absolute (cost/profit) gap between the current solution and the solution bound. For some models, solving to complete optimality (0 gap) can take a significant amount of time. You can have the optimization stop when it reaches near optimality by setting an Absolute Gap.
In the cases of large models, you are encouraged to investigate aggregation and simplification of the model and the elimination of any unnecessary records.
System considerations for solver performance
The following are system factors that, in general, affect solver performance. While Network Optimization can run on fairly basic computer hardware, it makes use of memory and CPU resources when solving. You may be able to solve bigger models and solve models faster with improved hardware resources.
- System memory – Models can be large and complex. When solving, Network Optimization will use a significant amount of available memory. If you plan to solve large models or those that have added complexity, such as large numbers of integer variables, you should consider a large amount of RAM. Note that once physical RAM is exhausted, the solver may need to use virtual memory and paging. This can significantly degrade solver performance.
- Hard drive space – Typically, this is not an issue. However, if you are running low on disk space and have larger models for optimization, you can run out of space when the problem is created or if the solver has to use virtual memory on disk if RAM is exhausted.
- CPU speed – Models benefit from CPU speed, since this affects the number of instructions per second that can be processed.
- Number of CPUs – By default, Network Optimization will utilize all the CPU's available once the solver is called.
Last modified: Wednesday May 15, 2024