Sequential optimization
Sequential optimization lets you extend the optimization objectives beyond the traditional cost minimization and profit maximization. It allows you select from a number of additional objectives and constraints to use in solving your model. These objectives include all costs within the model such as transportation cost, inventory holding cost and fixed operating cost. Additionally, deviation of all hard constraints used in the model from their specified values can be accessed in sequential optimization. To learn more, refer to:
- Sequential optimization and constraints
- Sequential optimization and infeasibility
- Objectives and hard constraints
Sequential optimization allows you to solve different objectives in a number of hierarchies. When prioritizing objectives, each priority value defines a group of one or more objectives that are then solved together. For example, you may want to investigate how sites should be located in the network. You can define sequential objectives as follows:
Objective | Priority | Weight |
Total Transportation Cost | 1 | 1 |
Total Cost | 2 | 1 |
When solving the model, the Current Solution value displayed in the Run Status is based on the last sequential objective that is used. As a result, this may not match the Total Cost in the Network Summary output table.
Another approach to this analysis is to minimize the number of open facilities, then maximize total profit:
Objective | Priority | Weight |
Facility Set | 1 | 1 |
Total Profit | 2 | 1 |
You can define more than one Objective per Priority value. The objectives with the same Priority are grouped together when solved. For example, if you create sequential objectives as follows:
Objective | Priority | Weight |
Site Throughput Capacity | 1 | 1 |
Total Fixed Operating Cost | 1 | 1 |
Maximum Inventory | 2 | 1 |
Sequential optimization solves the first objectives (deviation of site throughput capacity constraints and total fixed operating cost) together, then solves for deviation of maximum inventory constraints.
In addition to the priority for running the objectives, you can assign a Weight value to each. By default, the weight is 1, so that all objectives within a priority group are treated the same way. However, using the example above, if you assign a weight of 2 to Total Fixed Operating Cost, a Fixed Operating Cost of 10000 in your model is treated as a cost of 20000. You also have the ability to set a Tolerance, which acts as an absolute gap tolerance on the maximum difference of objective (or constraint deviation) value from its original value in the following priorities. The default for the tolerance is 1.0 e-6.
You can use sequential optimization to define soft constraints and analyze the effect these constraints have on the model.
Selecting and limiting sequential objectives
When deciding which objectives to use with sequential optimization, Coupa recommends selecting the most precise objective available, especially with regard to cost. For example, if you are using the objectives to break down specific costs, do not use "Total Cost" as the objective. Instead, select the objective that targets the costs you are evaluating, such as "Total Production Cost" or "Total Inventory Cost". Use of "Total Cost" as the objective may result in multiple counting of some costs which can adversely affect the results.
The sequential objectives table includes optional fields that let you limit the application of the objective to specific items. For example, when you define a sequential objective record using flow as the Objective, this objective applies to all flows by default. You can limit the flows affected by defining the Source and/or Destination values in the Sequential Objective record.
In order to determine which fields are used by the various objectives, review the Constraint Summary output table. The Objective indicates which objective was applied, and the various fields related to the objective are populated. For example, when the Objective is "Flow", you see values populated for Source, Destination, Product, Mode, Period Name, and Constraint Type. If you then wanted to limit which flow constraints were affected by sequential optimization, you could define any subset of these fields in the Sequential Objectives record, including the Type.
Sequential optimization example
In this example, we review the effect of sequential objectives relating to CO2 cost and total cost. The model is set up as follows:
The Modes table has two records, with these cost and CO2 values:
Mode | Variable Transportation Cost | Variable Cost Basis | CO2 | CO2 Basis |
---|---|---|---|---|
Mode1 | 1 | EA | 2 | LB |
Mode2 |
100 | EA | 1 | LB |
There is one Transportation Policies record that has the Mode value set to "(ALL_Modes)", allowing for mode selection.
Additional values are:
-
The CO2 Cost in the Greenhouse Gases table is 10.
-
The demand Quantity is 100.
-
The Optimization Objective is set to "Sequential Optimization" in the General Run Options for Network Optimization.
A set of scenarios shows the difference in behavior based on sequential objectives:
Baseline
No Sequential Objectives defined.
Total Cost = $2,100. (100 units of demand * $1) + (200 LB of CO2 * $100)
Customer Flows use Mode1 based on Total Cost.
Total Cost
Sequential Objectives:
Objective | Priority | Tolerance |
---|---|---|
Total Cost | 1 | 0 |
Total Cost = $2,100. (100 units of demand * $1) + (200 LB of CO2 * $100)
Customer Flows use Mode1 based on Total Cost.
Total CO2 Cost
Sequential Objectives:
Objective | Priority | Tolerance |
---|---|---|
Total CO2 Cost |
1 |
0 |
Total Cost = $11,000. (100 units of demand * $100) + (100 LB of CO2 * $10)
Customer Flows use Mode2 based on Total CO2 Cost.
Total CO2 Cost and Total Cost
Sequential Objectives:
Objective | Priority | Tolerance |
---|---|---|
Total Cost | 2 | 0 |
Total CO2 Cost | 1 | 0.9 |
Total Cost = $2,990. ((90 units of demand * $1) + (180 LB of CO2 * $10)) + ((10 units of demand * $100) + (10 LB of CO2 * $10))
In Customer Flows, 90 units use Mode1 and 10 units use Mode2.
Total CO2 Cost is solved first, then Total Cost. The Tolerance of is 0.9 applied to Total CO2 Cost, ensuring that the value of Total CO2 Cost cannot deviate more than 90% from the value in the first sequential hierarchy. When solved for Total CO2 Cost, the CO2 Cost was $1000. The CO2 Cost after running the second objective, Total Cost, is $1900 which does not exceed the Tolerance.
Last modified: Friday May 12, 2023