Captain_Example

Claude Boivin1

2018-06-20. Revised 2020-02-09

Summary

The Captain’s Problem has been introduced by R. G. Almond 2 as an example to illustrate how to specify a graphical belief model and how to combine the belief functions with an algorithm called Fusion and Propagation. Lately, P. P. Shenoy has revisited this example in great detail in a presentation on Valuation-Based Systems 3.

The Captain’s Problem

The goal is to find the Arrival delay of the ship, a number of days varying from 0 to 6. This delay is the sum of two kinds of delay, the Departure delay and the Sailing delay. The Departure delay is the sum of three kind of delays, Loading, Maintenance and Forecast of bad weather. In this example, each delay is supposed to be of only one day for a maximum of three days. The Sailing delay can occur from bad Weather (one day) or Repairs at sea (one day each).

There are 8 variables involved: (Arrival delay, Departure delay, Sailing delay, Loading delay, Forecast of the weather, Maintenance delay, Weather at sea, Repairs at sea).

Six relations (R1 to R6) are defined between these variables.

Finally three inputs of evidence (L, F, M) are given.

Relations between the variables:

R1: ADS

A = D + S. \(Ω_A\) = {0,1,2,3,4,5,6}; \(Ω_D\) = {0,1,2,3}; \(Ω_S\) = {0,1,2,3}

# library(dst)
ads
##       nospec m 6 5 4 3 2 1 0 3 2 1 0 3 2 1 0
##  [1,]      0 0 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3
##  [2,]      1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0
##  [3,]      1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0
##  [4,]      1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0
##  [5,]      1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0
##  [6,]      1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0
##  [7,]      1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0
##  [8,]      1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1
##  [9,]      1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0
## [10,]      1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0
## [11,]      1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0
## [12,]      1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1
## [13,]      1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0
## [14,]      1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0
## [15,]      1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1
## [16,]      1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0
## [17,]      1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
## [18,]      2 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ads_tt<- ads[-1,-c(1,2)]
ads_tt  <- as.matrix(ads_tt)
ads_info = matrix(c(1,2,3,7,4,4), ncol = 2, dimnames = list(NULL, c("varnb", "size")) )      
ads_spec = matrix(c(rep(1,16), 2,rep(1,16),0), ncol = 2, dimnames = list(NULL, c("specnb", "mass")))
ads_rel <- bcaRel(tt = ads_tt, spec = ads_spec, infovar = ads_info, varnames = c("Arrival", "Departure", "Sail"), relnb = 1)
bcaPrint(ads_rel)
##                                                                                                                         ads_rel
## 1 6 3 3 + 5 3 2 + 5 2 3 + 4 3 1 + 4 2 2 + 4 1 3 + 3 3 0 + 3 2 1 + 3 1 2 + 3 0 3 + 2 2 0 + 2 1 1 + 2 0 2 + 1 1 0 + 1 0 1 + 0 0 0
##   specnb mass
## 1      1    1

R2: DLFM

D =sum of delays of 1 day for each delay of L (L = true), F (F = foul) or M (M = true). \(Ω_D\) = {0,1,2,3}; \(Ω_L\) = {true, false}; \(Ω_F\) = {foul, fair}; \(Ω_M\) = {true, false}.

dlfm
##    nospec m 3 2 1 0 true false foul fair true false
## 1       0 0 2 2 2 2    4     4    5    5    6     6
## 2       1 1 0 0 0 1    0     1    0    1    0     1
## 3       1 1 0 0 1 0    0     1    1    0    0     1
## 4       1 1 0 0 1 0    0     1    0    1    1     0
## 5       1 1 0 0 1 0    1     0    0    1    0     1
## 6       1 1 0 1 0 0    1     0    1    0    0     1
## 7       1 1 0 1 0 0    1     0    0    1    1     0
## 8       1 1 0 1 0 0    0     1    1    0    1     0
## 9       1 1 1 0 0 0    1     0    1    0    1     0
## 10      2 0 1 1 1 1    1     1    1    1    1     1
dlfm_tt<- dlfm[-1,-c(1,2)]
dlfm_tt  <- as.matrix(dlfm_tt)
colnames(dlfm_tt) <- colnames(dlfm)[-c(1,2)]
dlfm_info = matrix(c(2,4,5,6,4,2,2,2), ncol = 2, dimnames = list(NULL, c("varnb", "size")) )      
dlfm_spec = matrix(c(rep(1,8), 2,rep(1,8),0), ncol = 2, dimnames = list(NULL, c("specnb", "mass")))
dlfm_rel <- bcaRel(tt = dlfm_tt, spec = dlfm_spec, infovar = dlfm_info, varnames = c("Departure", "Loading", "Forecast", "Maintenance"), relnb = 2)
bcaPrint(dlfm_rel)
##                                                                                                                                                        dlfm_rel
## 1 3 true foul true + 2 true foul false + 2 true fair true + 2 false foul true + 1 true fair false + 1 false foul false + 1 false fair true + 0 false fair false
##   specnb mass
## 1      1    1

R3: SWR

R3 : S = sum of delays of 1 day for each condition in W (W = foul) or R (R = true) or both, true 90 % of the time. \(Ω_S\) = {0,1,2,3}; \(Ω_W\)= {foul, fair}; \(Ω_R\) = {true, false}.

m({0 fair false}, {1 foul false}, {1 fair true}, {2 foul true}) = 0.9; m(\(Ω_S\) x \(Ω_W\) x \(Ω_R\)) = 0.1.

swr
##      nospec   m 3 2 1 0 foul fair true false
## [1,]      0 0.0 3 3 3 3    7    7    8     8
## [2,]      1 0.9 0 0 0 1    0    1    0     1
## [3,]      1 0.9 0 0 1 0    1    0    0     1
## [4,]      1 0.9 0 0 1 0    0    1    1     0
## [5,]      1 0.9 0 1 0 0    1    0    1     0
## [6,]      2 0.1 1 1 1 1    1    1    1     1
swr_tt<- swr[-1,-c(1,2)]
swr_tt  <- as.matrix(swr_tt)
swr_info = matrix(c(3,7,8,4,2,2), ncol = 2, dimnames = list(NULL, c("varnb", "size")) )      
swr_spec = matrix(c(rep(1,4), 2,rep(0.9,4), 0.1), ncol = 2, dimnames = list(NULL, c("specnb", "mass")))
swr_rel <- bcaRel(tt = swr_tt, spec = swr_spec, infovar = swr_info, varnames = c("Sail", "Weather", "Repairs"), relnb = 3)
bcaPrint(swr_rel)
##                                                   swr_rel specnb mass
## 1 2 foul true + 1 foul false + 1 fair true + 0 fair false      1  0.9
## 2                                                   frame      2  0.1

R4: FW

\(Ω_F\) = {foul, fair}; \(Ω_W\)= {foul, fair}. W \(\leftrightarrow\) F in (W x F): m({foul, foul), (fair, fair)} = 0.8 ; m(\(Ω_W\) x \(Ω_F\)) = 0.2

fw
##      nospec   m foul fair foul fair
## [1,]      0 0.0    5    5    7    7
## [2,]      1 0.8    1    0    1    0
## [3,]      1 0.8    0    1    0    1
## [4,]      2 0.2    1    1    1    1
fw_tt<- fw[-1,-c(1,2)]
fw_tt  <- as.matrix(fw_tt)
fw_info = matrix(c(5,7,2,2), ncol = 2, dimnames = list(NULL, c("varnb", "size")) )      
fw_spec = matrix(c(rep(1,2), 2,rep(0.8,2), 0.2), ncol = 2, dimnames = list(NULL, c("specnb", "mass")))
fw_rel <- bcaRel(tt = fw_tt, spec = fw_spec, infovar = fw_info, varnames = c("Forecast", "Weather"), relnb = 4)
bcaPrint(fw_rel)
##                  fw_rel specnb mass
## 1 foul foul + fair fair      1  0.8
## 2                 frame      2  0.2

R5: MR

\(Ω_M\) = {true, false}; \(Ω_R\) = {true, false}. We specify R if M = true in (M x R). This is done in two parts. Specification 1. (M = true) \(\rightarrow\) (R = true) with mass = 0.1 m({(true, true), (false, true), (false, false)}) = 0.1.

Specification 2. (M = true) \(\rightarrow\) (R = false) with mass = 0.7 m({(false, true), (true, false), (false, false)}) = 0.7 m(\(Ω_M\) x \(Ω_R\)) = 0.2

mrt
##      nospec   m true false true false
## [1,]      0 0.0    6     6    8     8
## [2,]      1 0.1    1     0    1     0
## [3,]      1 0.1    0     1    1     0
## [4,]      1 0.1    0     1    0     1
## [5,]      2 0.7    1     0    0     1
## [6,]      2 0.7    0     1    1     0
## [7,]      2 0.7    0     1    0     1
## [8,]      3 0.2    1     1    1     1
mrt_tt<- mrt[-1,-c(1,2)]
mrt_tt  <- as.matrix(mrt_tt)
colnames(mrt_tt) <- c("true", "false", "true", "false")
mrt_info = matrix(c(6,8,2,2), ncol = 2, dimnames = list(NULL, c("varnb", "size")) )      
mrt_spec = matrix(c(rep(1,3), rep(2,3), 3, rep(0.1,3), rep(0.7,3), 0.2), ncol = 2, dimnames = list(NULL, c("specnb", "mass")))
mrt_rel <- bcaRel(tt = mrt_tt, spec = mrt_spec, infovar = mrt_info, varnames = c("Maintenance", "Repairs"), relnb = 5) 
bcaPrint(mrt_rel)
##                                 mrt_rel specnb mass
## 1  true true + false true + false false      1  0.1
## 2 true false + false true + false false      2  0.7
## 3                                 frame      3  0.2

R6: MR

\(Ω_M\) = {true, false}; \(Ω_R\) = {true, false}. We specify R if M = false in (M x R). This is done in two parts. Specification 1. (M = false) \(\rightarrow\) (R = true) with mass = 0.2 m({(true, false), (true, true), (false, true)}) = 0.2, Specification 2. (M = false) \(\rightarrow\) (R = false) with mass = 0.2 m({(false, false), (true, true), (true, false)}) = 0.2 m(\(Ω_M\) x \(Ω_R\)) = 0.6

mrf
##      nospec   m true false true false
## [1,]      0 0.0    6     6    8     8
## [2,]      1 0.2    0     1    1     0
## [3,]      1 0.2    1     0    1     0
## [4,]      1 0.2    1     0    0     1
## [5,]      2 0.2    0     1    0     1
## [6,]      2 0.2    1     0    1     0
## [7,]      2 0.2    1     0    0     1
## [8,]      3 0.6    1     1    1     1
mrf_tt<- mrf[-1,-c(1,2)]
mrf_tt  <- as.matrix(mrf_tt)
mrf_info = matrix(c(6,8,2,2), ncol = 2, dimnames = list(NULL, c("varnb", "size")) )      
mrf_spec = matrix(c(rep(1,3), rep(2,3), 3, rep(0.2,3), rep(0.2,3), 0.6), ncol = 2, dimnames = list(NULL, c("specnb", "mass")))
mrf_rel <- bcaRel(tt = mrf_tt, spec = mrf_spec, infovar = mrf_info, varnames = c("Maintenance", "Repairs"), relnb = 6) 
bcaPrint(mrf_rel)
##                                mrf_rel specnb mass
## 1  true true + true false + false true      1  0.2
## 2 true true + true false + false false      2  0.2
## 3                                frame      3  0.6

Combination of R5 and R6: new R5

Since R5 and R6 are defined on the same space MxR, we can immediately combine them in a single relation, using Dempster Rule of combination.

mr_rel <- nzdsr(dsrwon(mrt_rel, mrf_rel)) 
bcaPrint(mr_rel)
##                                  mr_rel specnb mass
## 1                true true + false true      1 0.02
## 2               true true + false false      2 0.02
## 3               true false + false true      3 0.14
## 4              true false + false false      4 0.14
## 5  true true + false true + false false      5 0.06
## 6 true false + false true + false false      6 0.42
## 7   true true + true false + false true      7 0.04
## 8  true true + true false + false false      8 0.04
## 9                                 frame      9 0.12

Input of evidence

1: Loading delay

\(Ω_L\) = {true, false}. m({true}) = 0.5 ; m({false})= 0.3 ; m({true}, {false}) = 0.2

l_rel <- bca(tt = matrix(c(1,0,0,1,1,1), ncol = 2, byrow = TRUE), m = c(0.3, 0.5, 0.2), cnames = c("true", "false"), idvar = 4, varnames = "Loading")
bcaPrint(l_rel)
##   l_rel specnb mass
## 1  true      1  0.3
## 2 false      2  0.5
## 3 frame      3  0.2

Evidence 2: Forecast of Weather

\(Ω_W\)= {foul, fair}. m({foul}) = 0.2 ; m({fair})= 0.6 ; m({foul}, {fair}) = 0.2

f_rel <- bca(tt = matrix(c(1,0,0,1,1,1), ncol = 2, byrow = TRUE), m = c(0.2, 0.6, 0.2), cnames = c("foul", "fair"), idvar = 5, varnames = "Forecast")
bcaPrint(f_rel)
##   f_rel specnb mass
## 1  foul      1  0.2
## 2  fair      2  0.6
## 3 frame      3  0.2

Evidence 3: Maintenance before sailing

\(Ω_M\) = {true, false}, m({true}) = 0 ; m({false})= 1 .

m_rel <- bca(tt = matrix(c(1,0,0,1), ncol = 2, byrow = TRUE), m = c(0, 1), cnames = c("true", "false"), idvar = 6, varnames = "Maintenance")
bcaPrint(m_rel)
##   m_rel specnb mass
## 1 false      2    1

The hypergraph of the Captain’s Problem

We now look at the Captain’s Problem as a belief network. The eight variables involved are the nodes of the graph: Arrival, Departure, Sailing, Loading, Forecast, Maintenance, Weather, Repairs. The edges (hyperedges) are given by the five relations R1 to R5 and the three inputs of evidence (L, F, M).

We use the package igraph 4 to produce a bipartite graph corresponding to the desired hypergraph.

# The network
if (requireNamespace("igraph", quietly = TRUE) ) {
library(igraph)
# Encode pieces of evidence and relations with an incidence matrix
R1 <- 1*1:8 %in% ads_rel$infovar[,1]
R2 <- 1*1:8 %in% dlfm_rel$infovar[,1]
R3 <- 1*1:8 %in% swr_rel$infovar[,1]
R4 <- 1*1:8 %in% fw_rel$infovar[,1]
R5 <- 1*1:8 %in% mr_rel$infovar[,1]
E1 <- 1*1:8 %in% l_rel$infovar[,1]
E2 <- 1*1:8 %in% f_rel$infovar[,1]
E3 <- 1*1:8 %in% m_rel$infovar[,1]

# information on variables
captain_vars1 <- c( ads_rel$valuenames,  dlfm_rel$valuenames[2:4],  swr_rel$valuenames[2:3])
captain_vars <- rbind( ads_rel$infovar,  dlfm_rel$infovar[2:4,],  swr_rel$infovar[2:3,])
captain_var_names <-names(captain_vars1)
rownames(captain_vars) <- captain_var_names
# infos on relations
captain_rel_names <- c("ads_rel", "dlfm_rel", "swr_rel", "fw_rel", "mr_rel", "l_rel", "f_rel", "m_rel")
# the incidence matrix
captain_hgm <- matrix(c(R1,R2,R3,R4,R5,E1,E2,E3), ncol=8, dimnames = list(c("Arrival", "Departure", "Sailing", "Loading", "Forecast", "Maintenance", "Weather", "Repairs"), c("R1", "R2", "R3", "R4","R5","E1","E2","E3")))
captain <- list(captain_hgm, captain_var_names, captain_rel_names)
#
## The graph structure of the problem
#
captain_hg <- graph_from_biadjacency_matrix(incidence = captain_hgm, directed = FALSE, multiple = FALSE, weighted = NULL,add.names = NULL)
V(captain_hg)
# Show variables as circles, relations and evidence as rectangles
V(captain_hg)$shape <- c("circle", "crectangle")[V(captain_hg)$type+1]
V(captain_hg)$label.cex <- 0.6
V(captain_hg)$label.font <- 2
# render graph
plot(captain_hg, vertex.label = V(captain_hg)$name, vertex.size=(3+6*V(captain_hg)$type)*6)
}
## Warning: package 'igraph' was built under R version 4.3.2
## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union

Calculations to obtain the belief function of the Arrival delay using the peeling algorithm

Our goal is the calculation of the belief function of the variable of interest “Arrival”. We apply an algorithm called “Peeling” to the belief network. This is a process of successive elimination of variables (peeling) until only the variable of interest (Arrival here) remains. The elimination of a variable has the effect of integrating its contribution to the reduced graph, which is also called “message passing”.

Four parameters are necessary to trigger the algorithm. The first three are already defined when constructing the hypergraph. These are: captain_vars1: Variable numbers and size captain_rel_names: names of relations and evidences captain_hgm: Incidence matrix of the hypergraph

The fourth parameter is an order of elimination of the variables that we have to set. here we set the elimination order to: 8 Repairs 4 Loading 7 Weather 2 Departure 6 Maintenance 5 Forecast 3 Sailing
1 Arrival

## Elimination order :  8 4 7 2 6 5 3 
##             R1 R2 R3 R4 R5 E1 E2 E3
## Arrival      1  0  0  0  0  0  0  0
## Departure    1  1  0  0  0  0  0  0
## Sailing      1  0  1  0  0  0  0  0
## Loading      0  1  0  0  0  1  0  0
## Forecast     0  1  0  1  0  0  1  0
## Maintenance  0  1  0  0  1  0  0  1
## Weather      0  0  1  1  0  0  0  0
## Repairs      0  0  1  0  1  0  0  0
## Hg matrix 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 
## i = : 1 . Eliminating variable no  8 : Repairs 
## rels numbers to elim 3 5 
## Relations to combine:  swr_rel mr_rel
##  combining extended relation number : 1 
## 
##  combining extended relation number : 2 
## eliminating variable 8 
## graph updated 
##             R1 R2 R3 R4 R5 E1 E2 E3 R9
## Arrival      1  0  0  0  0  0  0  0  0
## Departure    1  1  0  0  0  0  0  0  0
## Sailing      1  0  0  0  0  0  0  0  1
## Loading      0  1  0  0  0  1  0  0  0
## Forecast     0  1  0  1  0  0  1  0  0
## Maintenance  0  1  0  0  0  0  0  1  1
## Weather      0  0  0  1  0  0  0  0  1
## Repairs      0  0  0  0  0  0  0  0  0
## relations updated ads_rel dlfm_rel swr_rel fw_rel mr_rel l_rel f_rel m_rel rel9 
## i = : 2 . Eliminating variable no  4 : Loading 
## rels numbers to elim 2 6 
## Relations to combine:  dlfm_rel l_rel
##  combining extended relation number : 1 
## 
##  combining extended relation number : 2 
## eliminating variable 4 
## graph updated 
##             R1 R2 R3 R4 R5 E1 E2 E3 R9 R10
## Arrival      1  0  0  0  0  0  0  0  0   0
## Departure    1  0  0  0  0  0  0  0  0   1
## Sailing      1  0  0  0  0  0  0  0  1   0
## Loading      0  0  0  0  0  0  0  0  0   0
## Forecast     0  0  0  1  0  0  1  0  0   1
## Maintenance  0  0  0  0  0  0  0  1  1   1
## Weather      0  0  0  1  0  0  0  0  1   0
## Repairs      0  0  0  0  0  0  0  0  0   0
## relations updated ads_rel dlfm_rel swr_rel fw_rel mr_rel l_rel f_rel m_rel rel9 rel10 
## i = : 3 . Eliminating variable no  7 : Weather 
## rels numbers to elim 4 9 
## Relations to combine:  fw_rel rel9
##  combining extended relation number : 1 
## 
##  combining extended relation number : 2 
## eliminating variable 7 
## graph updated 
##             R1 R2 R3 R4 R5 E1 E2 E3 R9 R10 R11
## Arrival      1  0  0  0  0  0  0  0  0   0   0
## Departure    1  0  0  0  0  0  0  0  0   1   0
## Sailing      1  0  0  0  0  0  0  0  0   0   1
## Loading      0  0  0  0  0  0  0  0  0   0   0
## Forecast     0  0  0  0  0  0  1  0  0   1   1
## Maintenance  0  0  0  0  0  0  0  1  0   1   1
## Weather      0  0  0  0  0  0  0  0  0   0   0
## Repairs      0  0  0  0  0  0  0  0  0   0   0
## relations updated ads_rel dlfm_rel swr_rel fw_rel mr_rel l_rel f_rel m_rel rel9 rel10 rel11 
## i = : 4 . Eliminating variable no  2 : Departure 
## rels numbers to elim 1 10 
## Relations to combine:  ads_rel rel10
##  combining extended relation number : 1 
## 
##  combining extended relation number : 2 
## eliminating variable 2 
## graph updated 
##             R1 R2 R3 R4 R5 E1 E2 E3 R9 R10 R11 R12
## Arrival      0  0  0  0  0  0  0  0  0   0   0   1
## Departure    0  0  0  0  0  0  0  0  0   0   0   0
## Sailing      0  0  0  0  0  0  0  0  0   0   1   1
## Loading      0  0  0  0  0  0  0  0  0   0   0   0
## Forecast     0  0  0  0  0  0  1  0  0   0   1   1
## Maintenance  0  0  0  0  0  0  0  1  0   0   1   1
## Weather      0  0  0  0  0  0  0  0  0   0   0   0
## Repairs      0  0  0  0  0  0  0  0  0   0   0   0
## relations updated ads_rel dlfm_rel swr_rel fw_rel mr_rel l_rel f_rel m_rel rel9 rel10 rel11 rel12 
## i = : 5 . Eliminating variable no  6 : Maintenance 
## rels numbers to elim 8 11 12 
## Relations to combine:  m_rel rel11 rel12Relations to combine:  m_rel rel11 rel12
##  combining extended relation number : 1 
## 
##  combining extended relation number : 2 
## 
##  combining extended relation number : 3 
## eliminating variable 6 
## graph updated 
##             R1 R2 R3 R4 R5 E1 E2 E3 R9 R10 R11 R12 R13
## Arrival      0  0  0  0  0  0  0  0  0   0   0   0   1
## Departure    0  0  0  0  0  0  0  0  0   0   0   0   0
## Sailing      0  0  0  0  0  0  0  0  0   0   0   0   1
## Loading      0  0  0  0  0  0  0  0  0   0   0   0   0
## Forecast     0  0  0  0  0  0  1  0  0   0   0   0   1
## Maintenance  0  0  0  0  0  0  0  0  0   0   0   0   0
## Weather      0  0  0  0  0  0  0  0  0   0   0   0   0
## Repairs      0  0  0  0  0  0  0  0  0   0   0   0   0
## relations updated ads_rel dlfm_rel swr_rel fw_rel mr_rel l_rel f_rel m_rel rel9 rel10 rel11 rel12 rel13 
## i = : 6 . Eliminating variable no  5 : Forecast 
## rels numbers to elim 7 13 
## Relations to combine:  f_rel rel13
##  combining extended relation number : 1 
## 
##  combining extended relation number : 2 
## eliminating variable 5 
## graph updated 
##             R1 R2 R3 R4 R5 E1 E2 E3 R9 R10 R11 R12 R13 R14
## Arrival      0  0  0  0  0  0  0  0  0   0   0   0   0   1
## Departure    0  0  0  0  0  0  0  0  0   0   0   0   0   0
## Sailing      0  0  0  0  0  0  0  0  0   0   0   0   0   1
## Loading      0  0  0  0  0  0  0  0  0   0   0   0   0   0
## Forecast     0  0  0  0  0  0  0  0  0   0   0   0   0   0
## Maintenance  0  0  0  0  0  0  0  0  0   0   0   0   0   0
## Weather      0  0  0  0  0  0  0  0  0   0   0   0   0   0
## Repairs      0  0  0  0  0  0  0  0  0   0   0   0   0   0
## relations updated ads_rel dlfm_rel swr_rel fw_rel mr_rel l_rel f_rel m_rel rel9 rel10 rel11 rel12 rel13 rel14 
## i = : 7 . Eliminating variable no  3 : Sailing 
## rels numbers to elim 14 
## 
##  combining extended relation number : 1 
## eliminating variable 3 
## graph updated 
##             R1 R2 R3 R4 R5 E1 E2 E3 R9 R10 R11 R12 R13 R14 R15
## Arrival      0  0  0  0  0  0  0  0  0   0   0   0   0   0   1
## Departure    0  0  0  0  0  0  0  0  0   0   0   0   0   0   0
## Sailing      0  0  0  0  0  0  0  0  0   0   0   0   0   0   0
## Loading      0  0  0  0  0  0  0  0  0   0   0   0   0   0   0
## Forecast     0  0  0  0  0  0  0  0  0   0   0   0   0   0   0
## Maintenance  0  0  0  0  0  0  0  0  0   0   0   0   0   0   0
## Weather      0  0  0  0  0  0  0  0  0   0   0   0   0   0   0
## Repairs      0  0  0  0  0  0  0  0  0   0   0   0   0   0   0
## relations updated ads_rel dlfm_rel swr_rel fw_rel mr_rel l_rel f_rel m_rel rel9 rel10 rel11 rel12 rel13 rel14 rel15 
## rels numbers to combine 15 
## Peeling ended
##                        A specnb    mass
## 1                      4      2 0.00864
## 2                      3      3 0.02304
## 3                      2      4 0.04032
## 4                      1      5 0.06912
## 5                      0      6  0.0432
## 6                  4 + 3      8 0.03384
## 7                  3 + 2      9  0.0612
## 8                  2 + 1     10 0.11592
## 9                  1 + 0     11 0.15768
## 10                 4 + 2     13 0.00864
## 11                 3 + 1     14 0.02304
## 12                 2 + 0     15  0.0144
## 13             4 + 3 + 2     17 0.02736
## 14             3 + 2 + 1     18 0.04176
## 15             2 + 1 + 0     19 0.09216
## 16         5 + 4 + 3 + 2     21   0.006
## 17         4 + 3 + 2 + 1     22 0.07192
## 18         3 + 2 + 1 + 0     23 0.10416
## 19     5 + 4 + 3 + 2 + 1     25    0.01
## 20     4 + 3 + 2 + 1 + 0     26  0.0436
## 21 5 + 4 + 3 + 2 + 1 + 0     28   0.004
##                        bel disbel  unc plau rplau
## 5                     0.00   0.98 0.02 0.02  0.02
## 4                     0.01   0.79 0.21 0.21  0.22
## 3                     0.02   0.55 0.43 0.45  0.46
## 2                     0.04   0.36 0.60 0.64  0.67
## 1                     0.07   0.27 0.66 0.73  0.79
## 0                     0.04   0.54 0.42 0.46  0.48
## 5 + 4                 0.01   0.79 0.21 0.21  0.22
## 4 + 3                 0.07   0.53 0.40 0.47  0.50
## 3 + 2                 0.12   0.28 0.60 0.72  0.82
## 2 + 1                 0.23   0.11 0.67 0.89  1.15
## 1 + 0                 0.27   0.21 0.52 0.79  1.08
## 5 + 3                 0.02   0.55 0.43 0.45  0.46
## 4 + 2                 0.06   0.32 0.63 0.68  0.73
## 3 + 1                 0.12   0.12 0.77 0.88  1.00
## 2 + 0                 0.10   0.16 0.74 0.84  0.93
## 5 + 4 + 3             0.07   0.53 0.40 0.47  0.50
## 4 + 3 + 2             0.20   0.27 0.53 0.73  0.92
## 3 + 2 + 1             0.37   0.05 0.57 0.95  1.52
## 2 + 1 + 0             0.53   0.07 0.40 0.93  2.00
## 6 + 5 + 4 + 3         0.07   0.53 0.40 0.47  0.50
## 5 + 4 + 3 + 2         0.21   0.27 0.52 0.73  0.92
## 4 + 3 + 2 + 1         0.52   0.04 0.43 0.96  2.01
## 3 + 2 + 1 + 0         0.79   0.01 0.21 0.99  4.63
## frame                 1.00   0.00 0.00 1.00   Inf
## 5 + 4 + 3 + 2 + 1     0.54   0.04 0.42 0.96  2.08
## 4 + 3 + 2 + 1 + 0     0.98   0.00 0.02 1.00 50.00
## 6 + 5 + 4 + 3 + 2     0.21   0.27 0.52 0.73  0.92
## 5 + 4 + 3 + 2 + 1 + 0 1.00   0.00 0.00 1.00   Inf
## 6 + 5 + 4 + 3 + 2 + 1 0.54   0.04 0.42 0.96  2.08

  1. Retired Statistician, Stat.ASSQ↩︎

  2. Almond, R. G. (1989). Fusion and Propagation in Graphical Belief Models: An Implementation and an Example. Ph.D. dissertation and Harvard University, Department of Statistics Technical Report S-130, pp 210-214.↩︎

  3. P. P. Shenoy. Valuation-Based Systems. Third School on Belief Functions and Their Applications, Stella Plage, France. September 30, 2015.↩︎

  4. Csardi G, Nepusz T: The igraph software package for complex network research, InterJournal, Complex Systems 1695. 2006. https://igraph.org↩︎