Advanced Settings options
Advanced Settings
Produce LP File: When this option is selected, Network Optimization generates the LP file from which the model is optimized and saves it to disk. When you select this option, a file called Guru.LP is generated in the scenario run folder. To set this value in a scenario, select “Produce LP File” as the field from the Network Optimization Options table and select "Yes" as the value.
Skip Objective Function: When this option is selected LP file creation will not include the objective function in its entirety. You can use this function if you want to obtain a feasible, but not necessarily optimal, solution. For example, you may want to use this function when analyzing infeasibility. In that case, you are trying to determine only feasibility, so you do not need Network Optimization to spend time trying to build the objective function. To set this value in a scenario, select “Skip Objective Function” as the field from the Network Optimization Options table and select "Yes" as the value.
Generate Solution History: This option enables you to gain more insight into the solutions found before the optimal solution was found. Information such as which sites were open or closed in certain solutions and the associated objective are generated. You can set this option to output this information. When you next run Network Optimization, the Site Status Decision History output table is populated. To set this value in a scenario, select “Generate Solution History” as the field from the Network Optimization Options table and select "Yes" as the value.
Calibrate Data Before Optimization: You can select this option in the case of poorly scaled models. A poorly scaled model typically has both extremely large and extremely small numeric values. As a result, there may be issues in the accuracy of the solution or Network Optimization may erroneously report that a model is infeasible. When the Calibrate Data Before Optimization option is selected, Network Optimization checks to see if the model is poorly scaled prior to starting the LP solve. If it detects a poorly scaled model, it applies a quantity scaling factor to correct the scaling. To set this value in a scenario, select “Calibrate Data before Optimization” as the field from the Network Optimization Options table and select "Yes" as the value.
Bypass Cost To Serve Dynamic View: The View Costs button on the Cost To Serve Details output table provides access to a dynamic view of the costs produced by Cost To Serve Analysis. In some large models, the output file that populates the dynamic view is too large to import successfully. If you encounter this issue, you can select the Bypass Cost To Serve Dynamic View option. When this option is selected, the output table for the dynamic view is not generated.
Constraint Summary Output Detail: This option enables you to determine the level of detail reported in the Constraint Summary output table:
- Major – Only "Min" and "Max" type constraints are written to the Constraint Summary table. When Infeasibility Diagnosis or Sequential Optimization is run, any violated hard constraints are displayed as well. This is the default.
- All – All constraints are written to the Constraint Summary table.
- None – No constraints are written to the Constraint Summary table.
To set this value in a scenario, select “Constraint Summary Output Detail” as the field from the Network Optimization Options table and select "Major", "All" or "None" as the value.
Product Flow Bounds
This option, also called BigM, is used to set an upper bound on product flow. It is used in site open/close decisions, work center open/close decisions, flow count constraints and other decisions requiring binary constructs.
For example, when determining DC selection:
fi <= Myi
where fi = outflow of DCi and M is the product flow bound.
yi = 1 if fi > 0 (there is flow out of DCi, DCi is open)
yi = 0 if fi = 0 (there is no flow out of DCi, DCi is closed).
The values for this option are:
- Automatic Calculation: This is the default selection. The main goal of this option is to generate smaller upper bounds for models. Smaller bounds can result is faster solution time and less numerical issues. There are 4 levels for the Automatic Calculation option:
- Simple: The default BigM calculation. All bounds are calculated using a generic method. When setting this value in a scenario, select "Simple".
- Basic: This option first checks the network structure, and calculates BigM values specific to each constraint. When setting this value in a scenario, select "Basic".
- Enhanced: This option calculates the BigM values using the basic method, and then checks for constraints to reduce the BigM values further. When setting this value in a scenario, select "Enhanced".
- Extensive: This option calculates the BigM using the basic method, and then checks for combinations of different constraints to reduce the BigM values further. When setting this value in a scenario, select "Extensive".
When you change the selection for Automatic Calculation from "Simple" to "Basic" to "Enhanced" to "Extensive", you will typically see:
- Increased model building time
- Decreased model solution time
- Decreased numerical issues.
Network Optimization uses logic constraints to construct BigM type constraints. This helps to avoid the expensive calculation of the actual Big M parameter especially when using the "Enhanced" and "Extensive" options. It can also help to avoid numerical issues in the model. However, this increases the branching decisions that the solver needs to make and is therefore likely to increase the solve time.
For example, consider a simple Big M type constraint:
Production <= BigM * X
where:
Production is a continuous decision variable representing the amount of production, and
X is a binary decision variable that takes 1 if the site is open and 0 if the site is closed.
These constraints restrict production to 0 when the site is closed and relax the production variable when the site is open. We use these types of constraint in many places in the formulation where we want to establish a relationship between a binary variable and a continuous variables.
When you select Automatic Calculation, the solver constructs constraints in this form and as accurate a Big M value as possible is calculated. The more accurate the Big M value is, the less likely we will end up having numerical issues. This is done using the options we have "Simple", "Basic", "Enhanced" and "Extensive".
When we use logic constraint, we do not construct this constraint this way but rather we tell the solver explicitly that when X is 0, then production must be 0 too. This is done via a special way (using indicator constraints). This way of forcing the constraints eliminates the Big M calculation and hence, the possibility of numerical issues.
To set this value in a scenario, select the "Product Flow Bounds" Network Optimization Options field to "Automatic Calculation". You can then select “Automatic Calculations” as the field and select "Simple", "Basic", "Enhanced" or "Extensive" as the value.
- User-defined Value: If you select this option, you must provide a value for the maximum flow in the model. The same user value is used for all products. Typically, this value is the highest demand for a product in the model, increased by a small factor. To set this value in a scenario, select “Common Max Flow” as the field from the Network Optimization Options table and enter the numeric value for the maximum flow. You should also set the "Product Flow Bounds" field to "User Defined Value".
- Handle Using Logic Constraints: If you select this option, the maximum flow is calculated in a way that may take longer to solve, but does not lead to any erroneous reports of infeasibility. Select this option if your model is not well scaled (that is, contains both extremely large and extremely small values), or if there are decisions dependent on sums of binary variables (on/off decisions). For example, this option can be useful when your model contains piecewise costs that lead to binary variables and Big M constraints. To set this value in a scenario, select the "Product Flow Bounds" Network Optimization Options field as "Handled Using Logic Constraints".
Partitioning
Partitioning provides a way to break the model into smaller subproblems based on periods, products, sites, demand, customers or lanes. This can result in better performance for models with characteristics such as long solve time or a large number of integer or binary variables. See Partitioning.
Partitioning Type: Select the entity by which you want to partition the model. This is one of None, Periods, Products, Sites, Demands, Customers, Lanes. If the Partitioning Type is set to "None", no partitioning occurs. The default value is "None".
Number Of Partitions: This is the number of groups into which the member of the Partitioning Type is divided. For example, assume a Partitioning Type of "Periods", 100 periods in the model and the Number Of Partitions set to 8. When the model is run, it will have 7 partitions of 13 periods each and 1 partition with the remaining 9 periods. The default value is 10.
Max Run Time Per Subproblem (Secs): Use this option to limit the amount of time (in seconds) that each subproblem is processed. The best solution found at the time limit is used in the next partition (fixing the newly optimized variables in the current partition). If there is no feasible solution found at the time limit, it exits the partitioning procedure altogether and goes back to trying to solve the full model. The default value is 1800.
Optimality Gap Per Subproblem (%): Use this option to limit the gap between the solution bound and the current solution. The solver stops processing the subproblem once the gap reaches this value. The default value is 0.05
Decomposition
Decomposition provides a way to break a large model into smaller sub-model based on products. The sub-models are solved individually, then merged into a common solution. See Decomposition.
Number Of Decompositions: This is the number of sub-models that are generated and run. For example, assume the Number Of Decompositions set to 4. When the model is run, it will generate 4 sub-models. The default value is 5.
Max Run Time Per Subproblem (Secs): Use this option to limit the amount of time (in seconds) that each sub-model is processed. The best solution found at the time limit is use and the solver moves to the next sub-model or the merge step as required. If there is no feasible solution found at the time limit, it terminates the decomposition procedure. The default value is 3600.
Optimality Gap Per Subproblem (%): Use this option to limit the gap between the solution bound and the current solution. The solver stops processing the sub-model once the gap reaches this value. The default value is 0.05
Last modified: Friday May 12, 2023