Use of integer and binary variables
Many models include a combination of integer and non-integer variables. Integer variables are used for values that do not have a fractional component. For example, the number of available transportation assets may be 50 trucks, since you may not want to represent fractions of trucks. Non-integer variables (called continuous variables) allow fractional values. With few exceptions, solving a model with only non-integer variables is generally easier than solving a model that includes integer variables. When using integer variables, the solver must use the branch and bound process described in Integer constraints.
A subset of integer variables is binary variables. Binary variables typically represent on/off and open/close decisions in the model and their values can be either 0 or 1. These add a level of complexity for the solver that can degrade model performance. The solver must branch on each of these variables.
The following add integer variables to enforce constraints:
- Count constraints – These integer variables can be created as the result of the use of count constraints. Count constraints cause Network Optimization to select x out of n candidates. The performance of these problems can be improved by setting both the Cut Strategy and Heuristic Strategy to most Aggressive. The smaller the x value is, the more effective these settings are.
- Single Source as your Sourcing Policy
- Fixed Operating Cost constraints on sites and work centers
To reduce the number of integer variables, you can explore modeling using the following additional features:
- The site Optimized Status should not change over multiple periods; that is, it should not open and close. Set the Capacity/Fixed Cost Period field in the Sites table to help control this behavior.
- If a site is selected, its throughput must be more than x. One way to address this is the use of the conditional minimum in constraints. Use this approach if you want to open the site only if there is a minimum throughput. The Fixed Operating Cost is used to apply a cost when opening the site. However, this approach is inefficient and may not work. Instead, use <x,0> as Fixed Operating Cost for the site.
- Use single site sourcing, rather than site-product single sourcing.
- Replace step costs with combinations of fixed and volume based variable costs.
The general idea is to formulate the model with the least number of binary variables necessary. Keep in mind that there are numerous ways to do this, so the approach will vary based on your model.
The optimization options that you may also consider using for models with many integer/binary variables are:
- Product Flow Bounds - Handle Using Logic Constraints option (Advanced Settings tab) – Enable this option if your model is not well scaled (that is, contains both extremely large and extremely small models), or if there are decisions dependent on sums of binary variables (on/off decisions).
- Cut Strategy (Solver Settings tab) – Cuts are constraints that cut away areas of the feasible region of the relaxation that contain fractional solutions. The default setting ("Automatic") is to let the solver determine the cut strategy. However, you can set this option to "Aggressive". This value is useful when you have defined count constraints that restrict the solution to a small number of selected values.
- Heuristic Strategy (Solver Settings tab) – This option enables the solver to use a heuristic strategy that tries to calculate an integer solution. The default setting ("Automatic") is to let the solver determine the heuristic strategy; that is, how often heuristics should be run during the optimization. However, you can set this option to "Aggressive". This value is useful when you have defined count constraints that restrict the solution to a small number of selected values.
Last modified: Friday May 12, 2023