Step 3: Prescriptive Risk engine
Inputs for Prescriptive Risk
The inputs to the Pescriptive engine are:
-
the user-input parameters Flow Percentage Change and Sensitivity, and the selected SCG model
-
the SCG model input files
- the output data from the Descriptive Risk engine
The data read in from the Descriptive Risk engine are:
-
Sites
-
Transportation Arcs
-
Top Site Products
-
Site Product Revenue at Risk
-
Site Classification
There are three stages corresponding to the generation of potential prescriptions that are as follows:
-
Constraint parameter generation (identification of critical Site-Product combinations with user constraints)
-
Generation of flow constraints
-
Generation of sequential objectives
Constraint parameter generation stage
Constraints are generally classified into two categories:
-
Site-Product constraints
-
Excluded Site-Product constraints
The user-input parameters considered for this stage of the workflow are:
-
Sensitivity and Flow Percentage Changereduction in flow required to create new scenarios
-
Sites to Exclude
Inputs:
-
Site-Product criticality
-
Top Site-Product combinations
Stages of the Prescriptive Risk algorithm:
- The Site-Product combinations are filtered to only include the top combinations. Only the Site, Product, and Product Flow Quantity values are used. Also, to distinguish the constraints, these Site-Product combinations are tagged as “Site-Product Constraints”
- To determine the excluded Site-Product constraints, the Site-Product Revenue data is filtered by the Sites to Exclude parameter. Only the excluded sites that flow the product along with the flow quantity are captured.
The excluded sites that do not have the product flowing are also appended to the above list. The product flow quantity is set to 0 for such excluded Site-Product combination. These combinations are tagged as “Excluded Site-Product Constraints”.
- Using the Minimum Flow Percentage and Sensitivity parameters, risk thresholds are created.
Risk Thresholds = (Flow Percentage Change – Sensitivity, Flow Percentage Change, Flow Percentage Change + Sensitivity)
The Site-Product Constraints from step 1 is grouped by products to identify the Maximum Constrained flow values and Median Critical Sites flow per product.
To identify the Maximum Constrained flow values and Median Critical Sites flow per product, following steps are taken:
If an Excluded Site-Product combination shares the same product as top Site-Product constraints, the Maximum Constrained flow values and Median Critical Sites flow per product is the same as Site -Product combinations identified earlier.
For the remaining Excluded Site-Product combinations, the Maximum Constrained flow values and Median Critical Sites flow per product is set to 0. Irrespective of constraint type, if the Median and Maximum flow values identified match, then the median flow values are set to net of (Median flow values * (1-risk threshold)). For critical Site-Product combinations:
Constrained flow values = Total Product Flow Quantity * (1 – risk threshold)
Maximum constrained flow values = Maximum Constrained flow values * (1 – risk threshold)
Flow constraint generation stage
Site-Product constraints
Flow constraint generation is the second and critical step around the Risk prescriptions generation process. In this phase, the constraint scenarios identified from the Constraint parameter generation stage are expanded to generate the entire set of system constraints that need to be imposed on the flow network to mitigate risk. The following steps are carried out during this phase:
-
For each identified constraint, we gather information about the site, the product, and flow quantity flowing through the site that is provided by the constraint identification phase.
-
We classify the list of all sites as critical or top sites, which were deemed critical for that product, and rest of the sites are deemed to be non-critical.
-
Among the non-critical sites, we further divide them into sites that have the same product flowing through them, and into sites that do not have the product flowing through them.
-
For the critical sites, we also calculate the median flow value for the product. This becomes a part of the upper bound flow on non-critical sites.
For each scenario within the constraint:
-
The critical site considered is allowed a flow limit up to the reduced flow quantity identified as part of the scenario. For example: if a critical site is flowing 10,000 units today and if the value of the Flow Percentage Change parameter is 10%, then a constraint is placed such that this site can flow up to 9,000 units of the given product only.
-
The non-critical site that does not have the product already flowing or the site that has the product flowing through it are allowed to have an upper bound on the flow quantity calculated as: Min(Max(Median flow quantity of Critical sites, Current flow quantity at the non-critical*1.1), Max flow quantity of Critical sites*(1 - risk threshold)).
-
Thus, for each critical product, we generate constraint rows in the flow constraints table that equal to the total number of sites in the system (critical + non-critical sites, excepting excluded sites). This is to avoid any other non-critical site from exceeding the flow on the site we have deemed to be critical.
-
Steps 1-3 are repeated for each Site-Product constraint identified.
A sample output of the flow constraints with the generated constraints is shown below. The sample has two scenarios, one corresponding to the 10% reduction in flow, and the other corresponding to a 15% reduction in flow scenario.
| Expression | Source | Product | Constraint Type | Constraint Value | Status | Notes |
| SiteProductioExp-01-10 | Source 1 | P1 | Max | 90 | Exclude | Revenue at Risk Mitigation Constraint - 10% |
| SiteProductExp-02-10 | Source 3 | P1 | Max | 90 | Exclude | Revenue at Risk Mitigation Constraint - 10% |
| SiteProductExp-01-15 | Source 1 | P1 | Max | 80 | Exclude | Revenue at Risk Mitigation Constraint - 15% |
Excluded Site-Product constraints
For excluded sites, the algorithm looks at all products. For products that already flow through the excluded site, we set the flow constraint to be max of what is currently flown. For all other products that currently do not flow through the site, we set it to be 0. These excluded Site-Product constraints are hard constraints and are not allowed to be relaxed by the model. Depending on the tolerance level set in the Network Optimization model, these constraint values might have to be accurate up to 5 or 6 digits to prevent infeasibility.
Sequential objectives generation
In order to avoid infeasibility while we solve the optimization problem with the flow constraints enabled, we enforce these constraints as “soft” constraints. These soft constraints are solved in a sequential optimization framework of Network Optimization, where the objective function corresponding to the total cost / profit is appended by a penalty term that arises from the violation of the imposed flow constraints. The penalty is usually set to be a very high number so the model does not counteract the increase in cost with the penalty term from violation of flow constraints.
A sample of the sequential objectives is provided below. The Network Risk algorithm takes the same expressions from constraints generated under the example in the flow constraints, and generates the sequential objectives.
| Objective | Priority | Weight | Expression | Type | Status |
| Total Profit | 1 | 1 | Max | Include | |
| Flow | 1 | 9999 | SiteProductExp-01-10 | Max | Exclude |
| Flow | 1 | 9999 | SiteProductExp-02-10 | Max | Exclude |
| Flow | 1 | 9999 | SiteProductExp-01-15 | Max | Exclude |
These objectives are written to the SC Prescriptions Data Asset from where the SCGM scenarios are automatically created.
Example network with products P1 and P2:
In this example, the sites Sup1, MFG1, and DC2 are identified as the top critical sites for products P1 and P2, assuming all these combinations exceeded the Optionality threshold.
Based on these critical Site-Product combinations, the Network Revenue at Risk for these top Site-Product combinations is $590K. As the goal is to reduce the revenue at risk across the entire network, three scenarios are constructed where flows are diverted from these three critical sites to non-critical sites based on the Minimum Risk Threshold and Sensitivity parameters provided by the user.
The following diagram refers to one such scenario where after diverting the flows from highlighted critical sites to non-critical sites, the Network Revenue at Risk is reduced from $590K to $386.7K. Instead of site Sup1 being a single-source supplier, adding an additional supplier (Sup2) reduces the risk of losing all revenue if Sup1 goes down.
As a result of additional supplier Sup 2, the sites MFG1 and MFG2 source from both Sup1 and Sup2 instead of depending on a single supplier:
Risk scenario creation in Modeler stage
The flow constraints and sequential objectives created in the Prescriptive Risk Engine are passed to the Network Optimization model. The following changes are made to the Network Optimization model:
-
Add to Flow Constraints
-
Add to Sequential Objectives
-
Set 'Select Problem Type' to "NO and CTS Analysis"
-
Set Options --> General --> Optimization Objectives to "Sequential Optimization"
As a part of the prescriptions runs, a number records are added to the Flow Constraints and Sequential Objectives tables in Modeler and they are used in the three new scenarios created for Network Risk.
Last modified: Tuesday August 22, 2023