Decomposition
The decomposition method allows you to break a large model into smaller pieces and solve them more efficiently. For large models, this method can help reduce both solving time and memory usage significantly. Model decomposition extracts solvable sub-models from the original model by analyzing the complex relationship across all supply chain elements: products, sites, lanes, demand, bills of material, work centers, processes and constraints. At this time, the main focus is on the constraints related to products, so each sub-model will have a different subset of the products. Each sub-model contains only its own data which makes the problem size much smaller. After solving all the sub-models, the solution of the original model is obtained by merging the output of all the sub-models.
Not all models benefit from decomposition. For example:
-
Decomposition should not be used for models with short run times (less than 30 minutes). On small models, the overall run time can increase when using decomposition.
-
Decomposition cannot guarantee optimality. See Decomposition limitations.
Another approach for solving large Network Optimization models is partitioning. For information about when to use each approach, see Decomposition vs. Partioning.
Using model decomposition
You can use decomposition on your Network Optimization model by selecting "NO Decomposition" as the Problem Type for the Network Optimization technology.
On the Advanced Settings tab in Network Optimization Options, you set options to control the generation and processing of the sub-models:
-
Number of Decompositions - Use this option to specify the maximum number of sub-models that will be generated.
-
Max Run Time Per Subproblem (secs) - Use this option to limit the amount of time (in seconds) that each sub-model is processed.
-
Optimality Gap Per Subproblem (%) - Use this option to limit the gap between the solution bound and the current solution at which the solver stops processing the sub-model.
Sub-model composition
Your model is decomposed into a set of sub-models based on products. For example, assume a model with 10 products and the Number of Decompositions set to 5. Network Optimization breaks the model into up to 5 sub-models, each of which will have one or more products.
Decomposition guidelines
The following modeling guidelines help ensure the best results with decomposition:
-
Avoid adding constraints to very large product groups, such as constraints that use (ALL_Products) and (ALL_Sites).
-
Avoid special characters in product and site names.
-
Use minimal logic constraints, complex constraints, and expressions.
Decomposition limitations
When using decomposition, models with the following constraints may be infeasible:
-
Single sourcing and fractional sourcing. "Multiple Sources(Most Inventory)" as the sourcing policy does not lead to infeasibility.
-
Site minimum/maximum throughput
-
Work Center minimum/maximum throughput
-
Including INF (infinity) as a cost in step costs for Sites or Work Centers
-
Safety stock
-
Production substitution
-
Demand Minimum Quantity = 0
-
Bills Of Material including products that are defined as "By Product"
-
Trash in the output (such as a "By Product" in a BOM having a Shelf Life defined)
-
Demand bundling
Decomposition vs. Partitioning
While both the decomposition and partitioning methods can help shorten run times for large and slow running models, they use approaches that benefit different types of model structures.
-
Decomposition - In general, decomposition works better for models with many products. This method breaks the whole model into smaller parts (called sub-models) and solves each sub-model independently.
-
Partitioning - Partitioning typically works well with models that have 9 types of binary variables, such as flow and production count constraints, piecewise costs and site open/close decisions. This method solves the whole model n times. Each time it runs, it relaxes some binary variables' values. It then improves the overall solution quality using neighborhood search. Partitioning is considered a rolling horizon solution method, while decomposition is not.
The table below summarizes some high-level distinctions:
Decomposition | Partitioning | |
---|---|---|
Dimension | Product | Product, Period, Customer, Site, Lane, Demand |
Affected model areas | All model areas | Relaxation of some binary variables |
Effect of cross-product constraints | May lead to infeasibility | More likely to be feasible |
Last modified: Friday May 12, 2023