Hi,
I would like to have advice/tips on how I can use NOISYMAX nodes on a fault tree encoded in a BBN.
I have encoded a fault tree into a BBN, based on Bobbio et al's paper (http://people.unipmn.it/bobbio/BIBLIO/P ... ltext.pdf). I have done that in order to use BBN to alter a probability feeding in to fault tree, based on observations and that there can be a single event affecting multiple entries in a fault tree  or nodes as the fault tree has been encoded into a BBN.
It is based on this fault tree found on page 257 of the above link and is attached as Model 1.
I have used "___ Input" nodes as dummy nodes feeding into the fault tree nodes. By "dummy", I mean, I select the "State 1"  Failure for all of these input nodes in order to propagate the failure probabilities from e.g. P1 input = State 1, to P1, to S1. At P1 the CPTs of when P1 Input = State 0 has been written as "0" and "1", and the failure probabilities have been written into the column of P1 Input = State 1 (Failure). Then at the equivalent AND/OR gates of D1, S1, S2 and TEFault, the CPTS are encoded as "0" or "1" depending if it is an AND or OR gate.
At these equivalent gate nodes(binary)  D1, S1, S2 and TEFault, I tried to write it as as a NOISYOR or NOISYAND gate, by specifiying the LEAK = "0" and "1". I think I have encoded it correctly (Or maybe not, but when I click on the reveal CPT button on a NOISYAND/OR node, it shows the same CPT as that I have generated base on a general chance node). I have attached this as "Model 2".
Now I would like to do the same as on page 257 of the Bobbio paper, and include a PS (power supply node), and that this event interacts with the P1, P2 and TE=Fault. PS has three states (Correct, Defective, Failure).
My main question is how do I encode the PS node as a NOISYMAX in order to correctly represent the relationship I desire between PS and P1, P2 and PS and TEFault.
PS and TEFault
I have gone through the Jaundice tutorial ( where it guides how to set up the CPT for a multistate node like Jaundice, and to order the states from highest to lowest). and also read Mareks paper https://www.pitt.edu/~druzdzel/psfiles/dx05.pdf that NOISYMAX is a generalisation of the NOISYOR...and here is my problem.
I would like the Node PS to TeFault to be represented as how N and N input is feeding to TEFault, it seems feasible for the a binary state node like N, but I can't seem to get it right for PS ( 3 states) to TEFault.
If data tells me that P(PS= Correct)=0.85, P(PS=Defective)=0.05 and P(PS=Failure) = 0.1 (summing to 1) is NOISYMAX of PS the correct way to do it, such that I can represent it as I have done for N and N Input to TEFault?
Seeing that I could use NOISYOR for a 2 state node (in Model 2) and representing in that manner, I tried to use NOISYMAX for a 3state node like PS (Model 3).
What I have done in Model 3, I have written that in the NOISYMAX node of PS, given PS Input = Correct, is P(PS= Correct)=0.85, P(PS=Defective)=0.05 and P(PS=Failure) = 0.1 and for PS Input = Defective, it is P(PS= Correct)=0.05, P(PS=Defective)=0.85 and P(PS=Failure) = 0.1, and the PS Input = Failure had greyed out boxes of (0,0,1)
It doesn't look right, as when I select observation in PS, PS Input and Copy of PS as "failure", TEFault returns a probability of State 1 as 1, instead of calculating the failure as an ORgate and considering the failure probabilities of S12, N and PS.
PS and P1, P2
At the node P1 and P2, it is to alter the probability of P1 given the states of PS, the idea is that when PS = Defective, it should have a higher rate of failure than when PS = Correct. In order to represent the desired probability at P1, I have to select the observation at PS ("Correct") and at PS input ("Correct"), and it seems to reflect the correct probabilities, so I think I I have described the CPT at P1 and P2 correctly.
But how should PS be encoded then, if I want to avoid clicking the observation twice at PS and PS Input.
Currently at my wits end, and some tips will be useful for me , thank you so much for your time.
Applying canonical models in a fault tree encoded in a BBN
Applying canonical models in a fault tree encoded in a BBN
 Attachments

 Bobbio_replicate_v1_Noisymax_Noisyand_PS_input.xdsl
 Model 3
 (14.69 KiB) Downloaded 68 times

 Bobbio_replicate_v0.xdsl
 Model 1
 (12.01 KiB) Downloaded 71 times

 bobbio_multistate_FTA.xdsl
 Model 2
 (3.14 KiB) Downloaded 75 times

 Site Admin
 Posts: 270
 Joined: Tue Dec 11, 2007 4:24 pm
Re: Applying canonical models in a fault tree encoded in a BBN
I would love to help but after reading your long post, I feel that I am rather confused.
I'm afraid I have a hard time understanding your Model 2. You are saying that the child nodes are NoisyOR but they have just one parent. OR is not a unary operator, so I am not 100% sure what you want to accomplish. In order for a NoisyOR gate to represent the OR function, the leak has to be zero but also the influences have to be all 1. They you will receive exactly what you have in Model 1.
I am confused also by your Model 3. PS nodes have three state and they don't seem to be sorted from the strongest to the weakest. This is a precondition to the NoisyMAX node. Before you have all parents and the child fulfill this condition, you cannot start defining the gate. Otherwise, you will get very quickly confused about the meaning of the parameters.
A good paper to read in order to understand the intricacies of canonical models and how NoisyOR/MAX nodes work is the following:
http://www.ia.uned.es/~fjdiez/papers/canonical.html
There is a reference to this paper in the GeNIe manual.
On a side note, I definitely suggest using meaningful names for states in a Bayesian network. If you use SHIFT when dropping a node in the graph window, it will allow you to use some standard names, such as True/False, etc. State0 and State1 can get you easily confused. They are automatically assigned to states because a GeNIe is syntactically correct at all times.
I hope this helps,
Marek
I'm afraid I have a hard time understanding your Model 2. You are saying that the child nodes are NoisyOR but they have just one parent. OR is not a unary operator, so I am not 100% sure what you want to accomplish. In order for a NoisyOR gate to represent the OR function, the leak has to be zero but also the influences have to be all 1. They you will receive exactly what you have in Model 1.
I am confused also by your Model 3. PS nodes have three state and they don't seem to be sorted from the strongest to the weakest. This is a precondition to the NoisyMAX node. Before you have all parents and the child fulfill this condition, you cannot start defining the gate. Otherwise, you will get very quickly confused about the meaning of the parameters.
A good paper to read in order to understand the intricacies of canonical models and how NoisyOR/MAX nodes work is the following:
http://www.ia.uned.es/~fjdiez/papers/canonical.html
There is a reference to this paper in the GeNIe manual.
On a side note, I definitely suggest using meaningful names for states in a Bayesian network. If you use SHIFT when dropping a node in the graph window, it will allow you to use some standard names, such as True/False, etc. State0 and State1 can get you easily confused. They are automatically assigned to states because a GeNIe is syntactically correct at all times.
I hope this helps,
Marek