1:- module(bddem,[
2 init_em/1,init_ex/2,init/1,end_em/1,end_ex/1,end/1,
3 one/2,zero/2,and/4,or/4,bdd_not/3,
4 ret_prob/3,equality/4,add_var/4,
5 add_abd_var/4,ret_abd_prob/4,
6 add_query_var/4,ret_map_prob/4,
7 onec/2,zeroc/2,andc/4,andcnf/4,bdd_notc/3,
8 orc/3,
9 ret_probc/3,equalityc/4,
10 or_list/3,
11 or_listc/3,
12 make_query_var/3,create_dot/3,create_dot_string/3,
13 em/9,rand_seed/1,
14 gamma_sample/3,
15 gauss_sample/3,
16 uniform_sample/1,
17 dirichlet_sample/2,
18 symmetric_dirichlet_sample/3,
19 discrete_sample/2,
20 initial_values/2,
21 add_decision_var/3,
22 probability_dd/3,
23 add_prod/4,
24 add_sum/4,
25 ret_strategy/4,
26 % compute_best_strategy/5,
27 debug_cudd_var/2
28 ]).
40:-use_foreign_library(foreign(bddem),install).
Performs EM learning. Takes as input the Context, information on the rules, a list of BDDs each representing one example, the minimum absolute difference EA and relative difference ER between the log likelihood of examples in two different iterations and the maximum number of iterations Iterations. RuleInfo is a list of elements, one for each rule, with are either
253orc((Env,A),(_,B),(Env,C)):-
254 or(Env,A,B,C).
262onec(Env,(Env,One)):-
263 one(Env,One).
271zeroc(Env,(Env,Zero)):-
272 zero(Env,Zero).
282andc(Env,(_,A),(_,B),(Env,C)):-
283 (zero(Env,B)->
284 fail
285 ;
286 and(Env,A,B,C)
287 ).
296andcnf(Env,(_,A),(_,B),(Env,C)):-
297 and(Env,A,B,C).
307bdd_notc(Env,(_,A),(Env,NA)):-
308 bdd_not(Env,A,NA).
316equalityc(Env,V,N,(Env,B)):-
317 equality(Env,V,N,B).
326ret_probc(Env,(_,BDD),P):-
327 ret_prob(Env,BDD,P).
344or_list([H],_Env,H):-!. 345 346or_list([H|T],Env,B):- 347 or_list1(T,Env,H,B). 348 349 350or_list1([],_Env,B,B). 351 352or_list1([H|T],Env,B0,B1):- 353 or(Env,B0,H,B2), 354 or_list1(T,Env,B2,B1).
364or_listc([H],_Env,H):-!. 365 366or_listc([H|T],Env,B):- 367 or_listc1(T,Env,H,B). 368 369 370or_listc1([],_Env,B,B). 371 372or_listc1([H|T],Env,B0,B1):- 373 orc(B0,H,B2), 374 or_listc1(T,Env,B2,B1).
length(Theta)
-1)
/
bddem
Module for manipulating Binary Decision Diagrams.
It contains programs for building BDDs, for computing probabilities and for performing Expectation Maximization.