Consider the following Bayesian network:
I want to impose constraints that state that a node can only be true (1) if at least one of its parents are true (1). So, for node $C$, the constraint takes the form $P(C=1|A=0,B=0) = 0$.
Now I want to take into account time. So it seems like the logical thing to do is to construct a dynamic Bayesian network from the above structure, as follows:
So, the update for a given node, say $C$ to updated value $C'$ obeys the following probability $P(C'=1|A,B,C)$. The leaf nodes, say $A$, obeys the update $P(A'=1|A)$.
Issue: I'm a little bit confused on how to ensure that the constraints I wish to impose are held after the variables are updated. For example, let $P(A'=1|A=1) = 1-\alpha$ and $P(B'=1|B=1) = 1-\beta$, where $\alpha,\beta>0$. This allows for the possibility of the realized values of both $A'$ and $B'$ becoming false (0), where $C'$ could be true, violating the constraint stated earlier.
Question: How do I ensure that the constraints are maintained after the variables are updated? Under the current set up, it does not seem like the dynamic Bayesian network shown above is capable of doing this.
Idea: Does the update need to be performed starting from the leaf nodes? That is, update $A'$ and $B'$ first, then once their values have been realized, update $C'$, and so on, down the DAG? Is this the standard way of doing this?
Update: Would the following representation allow for the constraints to be represented?
Update #2: Does anyone have any ideas? I'm really stumped on this.