fix CPT handling in aggregates.

This commit is contained in:
Vítor Santos Costa 2011-12-27 22:08:21 +00:00
parent 8f3eabef1d
commit bf12f320fe

View File

@ -52,10 +52,11 @@ cpt_average(AllVars, Key, Els0, Tab, Vs, NewVs) :-
cpt_average(AllVars, Key, Els0, 1.0, Tab, Vs, NewVs). cpt_average(AllVars, Key, Els0, 1.0, Tab, Vs, NewVs).
% support variables with evidence from domain. This should make everyone's life easier. % support variables with evidence from domain. This should make everyone's life easier.
cpt_average([Ev|Vars], Key, Els0, Softness, pf(Els0, MAT, NewParents), Vs, NewVs) :- cpt_average([Ev|Vars], Key, Els0, Softness, p(Els0, TAB, NewParents), Vs, NewVs) :-
find_evidence(Vars, 0, TotEvidence, RVars), find_evidence(Vars, 0, TotEvidence, RVars),
build_avg_table(RVars, Vars, Els0, Key, TotEvidence, Softness, MAT0, NewParents0, Vs, IVs), build_avg_table(RVars, Vars, Els0, Key, TotEvidence, Softness, MAT0, NewParents0, Vs, IVs),
include_qevidence(Ev, MAT0, MAT, NewParents0, NewParents, Vs, IVs, NewVs). include_qevidence(Ev, MAT0, MAT, NewParents0, NewParents, Vs, IVs, NewVs),
matrix_to_list(MAT, TAB).
% find all fixed kids, this simplifies significantly the function. % find all fixed kids, this simplifies significantly the function.
find_evidence([], TotEvidence, TotEvidence, []). find_evidence([], TotEvidence, TotEvidence, []).