prolog::bdd_to_probability_sum_product/2¶
bdd_to_probability_sum_product(+ BDDHandle, - Prob)*
Each node in a BDD is given a probability Pi. The total probability of a corresponding sum-product network is Prob, and tvxhe probabilities of the inner nodes are Probs.
In Prolog, this predicate would correspond to computing the value of a BDD. The input variables will be bound to probabilities, eg [ _X_, _Y_, _Z_] = [0.3.0.7,0.1]
, and the previous eval_bdd
would operate over real numbers:
Tree = bdd(1, T, P, _Vs),
maplist(eval_prob, RT).
eval_prob(pp(P,X,L,R)) :-
P is X * L + (1-X) * R.
eval_prob(pn(P,X,L,R)) :-
P is X * L + (1-X) * (1-R).
Private-func:¶
1. prolog::bdd_to_probability_sum_product_2::bdd_to_probability_sum_product/2(int ARG1, int ARG2)():