Model considerations for solver performance

In general, solver performance is impacted by a combination of the size and complexity of the model. For example, a model may not be overly large, but may be complex to solve due to the number of integer variables that are included in the problem or the types of constraints used. Models can become complex when inefficient model structures are included, such as deeply nested processes.

Additionally, the magnitude of values within the model can not only impact solver performance, but may lead to numerical difficulties, including the possibility of false infeasibilities.

When discussing “solve time”, keep in mind that this is not the time required to build the model, but starts once the solver has the problem and starts trying to optimize it. When running Network Optimization, the solver identifies an approximate range of time required to complete the solve based on the complexity of the model. For example, a model solve may be predicted to complete in a range of 0 to 5 minutes or a longer range. This information is available in the solve log.

Most longer run times stem from three major areas:

  • Too much detail in the model for the question being answered. Refer to Model size for additional information.
  • Numerical instability, usually resulting from a large difference between the largest and smallest demand or from dummy lanes/sites with very high costs. Refer to Scaling issues for additional information.
  • Many binary/integer variables in the model that result in an enumeration of solutions. Refer to Use of integer and binary variables for additional information.

When reviewing your model, the following is a list of considerations that you should keep in mind regarding solve time. This list is not in a prioritized order:

Last modified: Wednesday May 15, 2024

Is this useful?