/* Learn distribution for professor database. */ :- use_module(library(pfl)). :- use_module(library(clpbn/learning/em)). %:- set_em_solver(ve). %:- set_em_solver(hve). %:- set_em_solver(bdd). %:- set_em_solver(bp). %:- set_em_solver(cbp). professor(p0). professor(p1). professor(p2). professor(p3). professor(p4). professor(p5). professor(p6). professor(p7). professor(p8). bayes abi(K)::[h,m,l] ; abi_table ; [professor(K)]. bayes pop(K)::[h,m,l], abi(K) ; pop_table ; [professor(K)]. abi_table([0.3, 0.3, 0.4]). pop_table([0.3, 0.3, 0.4, 0.3, 0.3, 0.4, 0.3, 0.3, 0.4]). goal_list([ abi(p0,h), abi(p1,m), abi(p2,m), abi(p3,m), abi(p4,l), pop(p5,h), abi(p5,_), abi(p6,_), pop(p7,_) ]). main :- goal_list(L), em(L, 0.01, 10, CPTs, Lik), writeln(Lik:CPTs).