make sure that we always consider evidence.
fix interface.
This commit is contained in:
parent
d1db0d68ea
commit
fa0d580faa
@ -7,7 +7,8 @@
|
|||||||
[
|
[
|
||||||
store_evidence/1,
|
store_evidence/1,
|
||||||
incorporate_evidence/2,
|
incorporate_evidence/2,
|
||||||
get_evidence_position/3
|
check_stored_evidence/2,
|
||||||
|
add_evidence/2
|
||||||
]).
|
]).
|
||||||
|
|
||||||
:- use_module(library(clpbn), [
|
:- use_module(library(clpbn), [
|
||||||
@ -36,15 +37,15 @@
|
|||||||
%
|
%
|
||||||
%
|
%
|
||||||
store_evidence(G) :-
|
store_evidence(G) :-
|
||||||
clpbn_flag(solver,Solver, graphs),
|
clpbn_flag(solver,PreviousSolver, graphs),
|
||||||
compute_evidence(G, Solver).
|
compute_evidence(G, PreviousSolver).
|
||||||
|
|
||||||
compute_evidence(G, PreviousSolver) :-
|
compute_evidence(G, PreviousSolver) :-
|
||||||
catch(call_residue(G, Vars), Ball, evidence_error(Ball,PreviousSolver)), !,
|
catch(call_residue(G, Vars), Ball, evidence_error(Ball,PreviousSolver)), !,
|
||||||
store_graph(Vars),
|
store_graph(Vars),
|
||||||
set_clpbn_flag(solver,PreviousSolver).
|
set_clpbn_flag(solver, PreviousSolver).
|
||||||
compute_evidence(_, PreviousSolver) :-
|
compute_evidence(_,PreviousSolver) :-
|
||||||
set_clpbn_flag(solver,PreviousSolver).
|
set_clpbn_flag(solver, PreviousSolver).
|
||||||
|
|
||||||
|
|
||||||
evidence_error(Ball,PreviousSolver) :-
|
evidence_error(Ball,PreviousSolver) :-
|
||||||
@ -106,12 +107,14 @@ extract_vars([], []).
|
|||||||
extract_vars([_-V|Cache], [V|AllVs]) :-
|
extract_vars([_-V|Cache], [V|AllVs]) :-
|
||||||
extract_vars(Cache, AllVs).
|
extract_vars(Cache, AllVs).
|
||||||
|
|
||||||
|
%make sure that we are
|
||||||
|
check_stored_evidence(K, Ev) :-
|
||||||
|
evidence(K, Ev0), !, Ev0 = Ev.
|
||||||
|
check_stored_evidence(_, _).
|
||||||
|
|
||||||
add_evidence(K, V) :-
|
add_evidence(K, V) :-
|
||||||
evidence(K, Ev), !,
|
evidence(K, Ev), !,
|
||||||
clpbn:get_atts(V, [dist(Id,_)]),
|
clpbn:put_atts(V, [evidence(Ev)]).
|
||||||
get_evidence_position(Ev, Id, EvPos),
|
|
||||||
clpbn:put_atts(V, [evidence(EvPos)]).
|
|
||||||
add_evidence(_, _).
|
add_evidence(_, _).
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user