Part 1.
dryer = d
fan = f(d)
heater = h(d)
switch = s(d)
wiring harness = w(d)
causal:
forall(x) dryer(x) and (faulty(f(x)) or faulty(h(x)) or
faulty(w(x)) or faulty(s(x))) -> faulty(x)
forall(x) dryer(x) and faulty(f(x)) -> ~blows(f(x))
forall(x) dryer(x) and faulty(h(x)) -> ~hot(h(x))
forall(x) dryer(x) and faulty(w(x)) -> broken(w(x))
forall(x) dryer(x) and broken(w(x)) -> ~blows(f(x)) or ~hot(h(x))
forall(x) dryer(x) and faulty(s(x)) -> loose(s(x))
forall(x) dryer(x) and loose(s(x)) -> ~blows(f(x)) and ~hot(h(x))
diagnostic:
forall(x) dryer(x) and ~blows(f(x)) -> faulty(f(x)) or faulty(w(x)) or
faulty(s(x))
forall(x) dryer(x) and ~hot(h(x)) -> faulty(h(x)) or faulty(w(x)) or
faulty(s(x))
single fault hypothesis:
forall(x) dryer(x) and faulty(x) ->
faulty(f(x)) and ~faulty(h(x)) and ~faulty(w(x)) and ~faulty(s(x)) or
faulty(h(x)) and ~faulty(f(x)) and ~faulty(w(x)) and ~faulty(s(x)) or
faulty(w(x)) and ~faulty(h(x)) and ~faulty(f(x)) and ~faulty(s(x)) or
faulty(s(x)) and ~faulty(h(x)) and ~faulty(w(x)) and ~faulty(f(x))
Part 2.
proof:
assume the wiring harness is faulty
facts and symptoms: A. dryer(d), B. blows(f(d)), C. ~hot(h(d))
causal rules in conjunctive normal form:
1. ~dryer(x) or ~faulty(f(x)) or ~blows(f(x))
2. ~dryer(x) or ~faulty(h(x)) or ~hot(h(x))
3. ~dryer(x) or ~faulty(f(x)) or faulty(x)
4. ~dryer(x) or ~faulty(h(x)) or faulty(x)
5. ~dryer(x) or ~faulty(w(x)) or faulty(x)
6. ~dryer(x) or ~faulty(s(x)) or faulty(x)
7. ~dryer(x) or ~broken(w(x)) or ~blows(f(x)) or ~hot(h(x))
8. ~dryer(x) or ~loose(s(x)) or ~blows(f(x))
9. ~dryer(x) or ~loose(s(x) or ~hot(h(x))
10. ~dryer(x) or ~faulty(w(x)) or broken(w(x))
11. ~dryer(x) or ~faulty(s(x)) or loose(s(x))
diagnostic rules in conjunctive normal form
12. ~dryer(x) or blows(f(x)) or faulty(f(x)) or faulty(w(x))
or faulty(s(x))
13. ~dryer(x) or hot(h(x)) or faulty(h(x)) or faulty(w(x))
or faulty(s(x))
from A, C and 13: D. faulty(h(d)) or faulty(w(d)) or faulty(s(d))
from A, B and 8: E. ~loose(s(d))
from A, 11 and E: F. ~faulty(s(x))
` from D and F: G. faulty(h(d)) or faulty(w(d))
from F and single fault rule: faulty(h(d)) xor faulty(w(d))
The system cannot isolate the fault without further symptoms.
Part 3.
Belief network:
Nodes: Break ---> ~Blow and ~Hot
Loose ---> ~Blow and ~Hot
~Blow ---> Faulty
~Hot ---> Faulty
Priors: P(Break) = 0.01
P(Loose) = 0.02
CPTs : Break Loose P(~Blow|Break, Loose)
T T 1.0
T F 0.5
F T 1.0
F F 0.1
Break Loose P(~Hot|Break, Loose)
T T 1.0
T F 0.5
F T 1.0
F F 0.2
~Blow ~Hot P(Faulty|~Blow, ~Hot)
T T 1.0
T F 1.0
F T 1.0
F F 0.0
To calculate something like P(Break|Faulty), transform
multiply-connected graph into a polytree:
Break ---> ~Blow+~Hot
Loose ---> ~Blow+~Hot
~Blow+~Hot ---> Faulty
Calculate CPT for new merged node:
Break Loose P(~Blow+~Hot|Break, Loose)
TT TF FT FF
T T 1.0 0.0 0.0 0.0
T F 0.25 0.25 0.25 0.25
F T 1.0 0.0 0.0 0.0
F F 0.02 0.08 0.018 0.0.72
and for final node:
~Blow+~Hot P(Faulty|~Blow+~Hot)
TT 1.0
TF 1.0
FT 1.0
FF 0.0
Inference proceeds according to a recursive backward-changing algorithm using evidence calculations based on causal support (e.g. for the merged node,
Break ---> ~Blow+~Hot) and evidential support (e.g. for the merged node, ~Blow+~Hot ---> Faulty)
Last modified: July 19, 2000.
gradrep@cs.nmsu.edu