/* Learn distribution for a sprinkler database. */
:- ['../sprinkler.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).
data(t,t,t,t).
data(_,t,_,t).
data(t,t,f,f).
data(t,t,f,t).
data(t,_,_,t).
data(t,f,t,t).
data(t,_,f,f).
data(f,f,t,t).
data(t,t,_,f).
data(t,f,f,t).
main :-
findall(X, scan_data(X), L),
em(L, 0.01, 10, CPTs, Lik),
writeln(Lik:CPTs).
scan_data([cloudy(C),sprinkler(S),rain(R),wet_grass(W)]) :-
data(C, S, R, W).