From b7ef6576a6e5989a21db017fc812916347735a41 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Wed, 9 Jan 2013 18:34:19 +0000 Subject: [PATCH] add keys within learning --- packages/CLPBN/examples/learning/sprinkler_params.yap | 11 ++--------- packages/CLPBN/learning/em.yap | 7 +++++-- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/CLPBN/examples/learning/sprinkler_params.yap b/packages/CLPBN/examples/learning/sprinkler_params.yap index 730f7fd5c..b01102576 100644 --- a/packages/CLPBN/examples/learning/sprinkler_params.yap +++ b/packages/CLPBN/examples/learning/sprinkler_params.yap @@ -36,14 +36,7 @@ main(Lik) :- findall(X,scan_data(X),L), em(L,0.01,10,_,Lik). -scan_data(I:[wet_grass(W),sprinkler(S),rain(R),cloudy(C)]) :- - data(W, S, R, C), - new_id(I). +scan_data([wet_grass(W),sprinkler(S),rain(R),cloudy(C)]) :- + data(W, S, R, C). -new_id(I) :- - retract(id(I)), - I1 is I+1, - assert(id(I1)). - -id(0). diff --git a/packages/CLPBN/learning/em.yap b/packages/CLPBN/learning/em.yap index 7ace0b9b3..a9c7c405b 100644 --- a/packages/CLPBN/learning/em.yap +++ b/packages/CLPBN/learning/em.yap @@ -134,11 +134,14 @@ setup_em_network(Items, state(AllDists, AllDistInstances, MargVars, SolverState) clpbn_init_solver(MargVars, AllVars, _, SolverState). run_examples(user:Exs, Keys, Factors, EList) :- - Exs = [_:_|_], !, + Exs = [[_]|_], !, + foldl(add_key, Exs, ,KExs, 1, _), findall(ex(EKs, EFs, EEs), run_example(Exs, EKs, EFs, EEs), VExs), foldl4(join_example, VExs, [], Keys, [], Factors, [], EList, 0, _). run_examples(Items, Keys, Factors, EList) :- run_ex(Items, Keys, Factors, EList). + +add_key(Ex, I:Ex, I, I1) :- I1 is I+1. join_example( ex(EKs, EFs, EEs), Keys0, Keys, Factors0, Factors, EList0, EList, I0, I) :- I is I0+1, @@ -188,7 +191,7 @@ em_loop(Its, Likelihood0, State, MaxError, MaxIts, LikelihoodF, FTables) :- ; Its1 is Its+1, em_loop(Its1, Likelihood, State, MaxError, MaxIts, LikelihoodF, FTables) - ). + ). ltables([], []). ltables([Id-T|Tables], [Key-LTable|FTables]) :-