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)():