Supply chain delays
In this tutorial you will learn:
How to use inference to query the model and reason about probabilities
How to perform inference in the model editor or the Python SDK
Supply chains are commonly disrupted by natural disasters or other unforseen events. It is therefore useful to be able to predict the probability of such disruptions based on local data. In this example we use a discrete Bayesian network that can be used to estimate the maritime transport delays due to earthquakes and subsequent tsunamis (Goerlandt and Islam 2021). The structure of this dataset and the general principles we discuss in this tutorial could be adapted to other scenarios including general supply chain delay prediction that does not involve natural disasters.
Problem statement: What delays around maritime transport are expected at specific routes of interest while transporting in a region that has just had an earthquake?
Network variables and categories
For this network we will use the following variables:
AD
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Arrival-related delays on specific shipping routes
BSA
[Yes, No]
Is a bridge safety assessment required?
BSD
[Yes, No]
Is a bathymetric survey required at destination?
BSO
[Yes, No]
Is a bathymetric survey required at origin?
BVOR
[Yes, No]
Is there a bridge over navigation route?
CIDD
[Low, Medium, High]
Level of communication infrastructure damage at destination
CIDO
[Low, Medium, High]
Level of communication infrastructure damage at origin
CN
[Low, Medium, High]
Level of community needs
CSR
[Yes, No]
Communication system restoration required
DAC
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Delay due to arranging crew members at specific routes
DD
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Departure-related delays at specific routes
DDG
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Delay in dangerous goods reporting at specific routes
DGR
[Yes, No]
Is dangerous good reporting required?
DL
[V_Isl_W, V_Isl_E, V_Isl_S]
Destination location name abbreviations
DTWD
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Delay due to tsunami warning at destination
DTWO
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Delay due to tsunami warning at origin
EEL
[V_Isl_W_offshore, V_Isl_E_offshore, V_Isl_Inland, BC_ML]
Earthquake epicenter location name abbreviations
ESD
[VI_or_less, VII, VIII, IX, X_or_more]
Earthquake severity at destination (Richter scale)
ESO
[VI_or_less, VII, VIII, IX, X_or_more]
Earthquake severity at origin (Richter scale)
ESR
[VI_or_less, VII, VIII, IX, X_or_more]
Regional earthquake severity (Richter scale)
MMSC
[Yes, No]
Mandatory minimum ship crew required for transport?
OL
[V_Isl_W, V_Isl_E, V_Isl_S]
Origin location name abbreviation
PAD
[Low, Medium, High]
Personnel availability at destination
PAO
[Low, Medium, High]
Personnel availability at origin
RD
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Route delay at specific routes
TBS
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Time required for bridge safety assessment at specific routes
TBSD
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Time required for bathymetric survey at destination at specific routes
TBSO
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Time required for bathymetric survey at origin at specific routes
TCSD
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Time required for communication system restoration at destination at specific routes
TCSO
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Time required for communication system restoration at origin at specific routes
TIDD
[Low, Medium, High]
Terminal infrastructure damage at destination
TIDO
[Low, Medium, High]
Terminal infrastructure damage at origin
TTRD
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Time required for terminal recovery ops at destination at specific routes
TTRO
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Time required for terminal recovery ops at origin at specific routes
TWD
[Yes, No]
Tsunami warning at destination?
TWO
[Yes, No]
Tsunami warning at origin?
VD
[L0, B0_6, B6_12, B12_24, B24_48, M48]
Voyage-related delays at specific routes
VT
[BC_Ferries, Seaspan, Barge]
Vessel type used in transportation
WIDD
[Low, Medium, High]
Waterway infrastructure damage at origin
WIDO
[Low, Medium, High]
Waterway infrastructure damage at destination
Examining the network
Although the model is stored internally in Genius as a factor graph, it is often more intuitive to examine the Bayesian network. This network has the following structure:

Here are some things we can conclude from this network:
Route delays (RD) are dependent on arrival-related delays (AD), voyage-related delays (VD), and departure-related delays (DD).
Arrival-related delays (AD) are dependent on time required for terminal recovery ops at destination (TTRD), time required for bathymetric survey at destination (TBSD), and time required for communication system restoration at destination (TCSD).
Voyage-related delays (VD) is dependent on delay due to tsunami warning at destination (DTWD), delay in dangerous goods reporting (DDG), and delay due to tsunami warning at origin (DTWO).
Departure-related delays (DD) is dependent on time required for bathymetric survey at origin (TBSO), time required for communication system restoration at origin (TCSO), delay due to arranging crew members (DAC), time required for terminal recovery ops at origin (TTRO), and time required for bridge safety assessment (TBS).
Inference
Next, we use the network to answer our problem statement. Let's use the following fictitious scenario:
Suppose that a barge (VT) needs to use a maritime route in an area that just experienced an earthquake. There is high personnel available at the destination (PAD) but low personnel available at the origin (PAO). There is low communication damage at the destination (CIDD) but high communication damage at the origin (CIDO). Finally, there is earthquake damage at the origin (ESO) of level VII and earthquake damage at the destination (ESD) of level VIII as measured on the Richter scale. Our goal is to determine, given this information, the probability of route delays (RD) on the specific maritime routes used in transport.
In the following demonstration with the model editor and Python SDK we assume that the model is stored in the earthquake.json file.
First, click on the inference tab in the information panel and select RD.Then under "what do you want to observe?" set the following variables:
PAD- "High"PAO- "Low"CIDD- "Low"CIDO- "High"ESO- "VII"ESD- "VIII"
Then click "Run".
First we build the evidence for the different scenarios listed above:
Now we run inference over the RD variable:
Last updated