From 114a6732f014de8e989fa88b21ea00f785496016 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Thu, 15 Nov 2012 17:28:57 +0000 Subject: [PATCH] add_factor should succeed if Constraints are satisfied --- packages/CLPBN/clpbn/ground_factors.yap | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/CLPBN/clpbn/ground_factors.yap b/packages/CLPBN/clpbn/ground_factors.yap index 584068019..4454b64b2 100644 --- a/packages/CLPBN/clpbn/ground_factors.yap +++ b/packages/CLPBN/clpbn/ground_factors.yap @@ -142,6 +142,7 @@ add_factor(factor(Type, Id, Ks, _, _Phi, Constraints), NKs) :- %writeln(+Ks), ( Ks = [K,Els], var(Els) -> + % aggregate factor once(run(Constraints)), avg_factors(K, Els, 0.0, NewKeys, NewId), NKs = [K|NewKeys] @@ -150,8 +151,13 @@ add_factor(factor(Type, Id, Ks, _, _Phi, Constraints), NKs) :- NKs = Ks, Id = NewId ), - \+ f(Type, NewId, NKs), - assert(f(Type, NewId, NKs)). + ( + f(Type, NewId, NKs) + -> + true + ; + assert(f(Type, NewId, NKs)) + ). run([Goal|Goals]) :- call(user:Goal),