new version of belief propagation solver.
This commit is contained in:
34
packages/CLPBN/clpbn/bp/examples/1parentNchilds.yap
Executable file
34
packages/CLPBN/clpbn/bp/examples/1parentNchilds.yap
Executable file
@@ -0,0 +1,34 @@
|
||||
|
||||
:- use_module(library(clpbn)).
|
||||
|
||||
:- set_clpbn_flag(solver, bp).
|
||||
|
||||
%
|
||||
% R
|
||||
% / | \
|
||||
% / | \
|
||||
% A B C
|
||||
%
|
||||
|
||||
|
||||
r(R) :-
|
||||
{ R = r with p([t, f], [0.35, 0.65]) }.
|
||||
|
||||
a(A) :-
|
||||
r(R),
|
||||
child_dist(R,Dist),
|
||||
{ A = a with Dist }.
|
||||
|
||||
b(B) :-
|
||||
r(R),
|
||||
child_dist(R,Dist),
|
||||
{ B = b with Dist }.
|
||||
|
||||
c(C) :-
|
||||
r(R),
|
||||
child_dist(R,Dist),
|
||||
{ C = c with Dist }.
|
||||
|
||||
|
||||
child_dist(R, p([t, f], [0.3, 0.4, 0.25, 0.05], [R])).
|
||||
|
||||
53
packages/CLPBN/clpbn/bp/examples/bp-example.xml
Executable file
53
packages/CLPBN/clpbn/bp/examples/bp-example.xml
Executable file
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="US-ASCII"?>
|
||||
|
||||
<!--
|
||||
|
||||
A B
|
||||
\ /
|
||||
\ /
|
||||
C
|
||||
|
||||
-->
|
||||
|
||||
<BIF VERSION="0.3">
|
||||
<NETWORK>
|
||||
<NAME>Neapolitan</NAME>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>A</NAME>
|
||||
<OUTCOME>a1</OUTCOME>
|
||||
<OUTCOME>a2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>B</NAME>
|
||||
<OUTCOME>b1</OUTCOME>
|
||||
<OUTCOME>b2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>C</NAME>
|
||||
<OUTCOME>c1</OUTCOME>
|
||||
<OUTCOME>c2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>A</FOR>
|
||||
<TABLE> .695 .305 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>B</FOR>
|
||||
<TABLE> .25 .75 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>C</FOR>
|
||||
<GIVEN>A</GIVEN>
|
||||
<GIVEN>B</GIVEN>
|
||||
<TABLE> .2 .8 .45 .55 .32 .68 .7 .3 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
</NETWORK>
|
||||
</BIF>
|
||||
|
||||
@@ -9,10 +9,10 @@ MARKOV
|
||||
2 4 2
|
||||
|
||||
2
|
||||
.001 .009
|
||||
.001 .999
|
||||
|
||||
2
|
||||
.002 .008
|
||||
.002 .998
|
||||
|
||||
8
|
||||
.95 .94 .29 .001
|
||||
|
||||
@@ -49,12 +49,12 @@
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>B</FOR>
|
||||
<TABLE> .001 .009 </TABLE>
|
||||
<TABLE> .001 .999 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>E</FOR>
|
||||
<TABLE> .002 .008 </TABLE>
|
||||
<TABLE> .002 .998 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
|
||||
@@ -1,54 +1,29 @@
|
||||
|
||||
:- use_module(library(clpbn)).
|
||||
|
||||
:- set_clpbn_flag(solver, vel).
|
||||
:- set_clpbn_flag(solver, bp).
|
||||
|
||||
%
|
||||
% B E
|
||||
% \ /
|
||||
% \ /
|
||||
% A
|
||||
% / \
|
||||
% / \
|
||||
% J M
|
||||
%
|
||||
r(R) :- r_cpt(RCpt),
|
||||
{ R = r with p([r1, r2], RCpt) }.
|
||||
|
||||
t(T) :- t_cpt(TCpt),
|
||||
{ T = t with p([t1, t2], TCpt) }.
|
||||
|
||||
b(B) :-
|
||||
b_table(BDist),
|
||||
{ B = b with p([b1, b2], BDist) }.
|
||||
a(A) :- r(R), t(T), a_cpt(ACpt),
|
||||
{ A = a with p([a1, a2], ACpt, [R, T]) }.
|
||||
|
||||
e(E) :-
|
||||
e_table(EDist),
|
||||
{ E = e with p([e1, e2], EDist) }.
|
||||
j(J) :- a(A), j_cpt(JCpt),
|
||||
{ J = j with p([j1, j2], JCpt, [A]) }.
|
||||
|
||||
a(A) :-
|
||||
b(B),
|
||||
e(E),
|
||||
a_table(ADist),
|
||||
{ A = a with p([a1, a2], ADist, [B, E]) }.
|
||||
|
||||
j(J):-
|
||||
a(A),
|
||||
j_table(JDist),
|
||||
{ J = j with p([j1, j2], JDist, [A]) }.
|
||||
|
||||
m(M):-
|
||||
a(A),
|
||||
m_table(MDist),
|
||||
{ M = m with p([m1, m2], MDist, [A]) }.
|
||||
m(M) :- a(A), m_cpt(MCpt),
|
||||
{ M = m with p([m1, m2], MCpt, [A]) }.
|
||||
|
||||
|
||||
b_table([0.001, 0.009]).
|
||||
|
||||
e_table([0.002, 0.008]).
|
||||
|
||||
a_table([0.95, 0.94, 0.29, 0.001,
|
||||
0.05, 0.06, 0.71, 0.999]).
|
||||
|
||||
j_table([0.9, 0.05,
|
||||
0.1, 0.95]).
|
||||
|
||||
m_table([0.7, 0.01,
|
||||
0.3, 0.99]).
|
||||
r_cpt([0.001, 0.999]).
|
||||
t_cpt([0.002, 0.998]).
|
||||
a_cpt([0.95, 0.94, 0.29, 0.001,
|
||||
0.05, 0.06, 0.71, 0.999]).
|
||||
j_cpt([0.9, 0.05,
|
||||
0.1, 0.95]).
|
||||
m_cpt([0.7, 0.01,
|
||||
0.3, 0.99]).
|
||||
|
||||
|
||||
@@ -16,34 +16,37 @@
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>A</NAME>
|
||||
<OUTCOME></OUTCOME>
|
||||
<OUTCOME>a1</OUTCOME>
|
||||
<OUTCOME>a2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>B</NAME>
|
||||
<OUTCOME></OUTCOME>
|
||||
<OUTCOME>b1</OUTCOME>
|
||||
<OUTCOME>b2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>C</NAME>
|
||||
<OUTCOME></OUTCOME>
|
||||
<OUTCOME>c1</OUTCOME>
|
||||
<OUTCOME>c2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>A</FOR>
|
||||
<TABLE>1</TABLE>
|
||||
<TABLE>.695 .305</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>B</FOR>
|
||||
<TABLE>1</TABLE>
|
||||
<TABLE>0.25 0.75</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>C</FOR>
|
||||
<GIVEN>A</GIVEN>
|
||||
<GIVEN>B</GIVEN>
|
||||
<TABLE>1</TABLE>
|
||||
<TABLE>0.2 0.8 0.45 0.55 0.32 0.68 0.7 0.3</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
</NETWORK>
|
||||
|
||||
67
packages/CLPBN/clpbn/bp/examples/lambda fail.xml
Executable file
67
packages/CLPBN/clpbn/bp/examples/lambda fail.xml
Executable file
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="US-ASCII"?>
|
||||
|
||||
<!--
|
||||
|
||||
P1 P2 P3
|
||||
\ | /
|
||||
\ | /
|
||||
-
|
||||
C
|
||||
|
||||
-->
|
||||
|
||||
<BIF VERSION="0.3">
|
||||
<NETWORK>
|
||||
|
||||
<NAME>Simple Convergence</NAME>
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>P1</NAME>
|
||||
<OUTCOME>p1</OUTCOME>
|
||||
<OUTCOME>p2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>P2</NAME>
|
||||
<OUTCOME>p1</OUTCOME>
|
||||
<OUTCOME>p2</OUTCOME>
|
||||
<OUTCOME>p3</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>P3</NAME>
|
||||
<OUTCOME>p1</OUTCOME>
|
||||
<OUTCOME>p2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>C</NAME>
|
||||
<OUTCOME>c1</OUTCOME>
|
||||
<OUTCOME>c2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>P1</FOR>
|
||||
<TABLE>.695 .305</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>P2</FOR>
|
||||
<TABLE>0.2 0.3 0.5</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>P3</FOR>
|
||||
<TABLE>0.25 0.75</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>C</FOR>
|
||||
<GIVEN>P1</GIVEN>
|
||||
<GIVEN>P2</GIVEN>
|
||||
<GIVEN>P3</GIVEN>
|
||||
<TABLE>0.2 0.8 0.45 0.55 0.32 0.68 0.7 0.3 0.3 0.7 0.55 0.45 0.22 0.78 0.25 0.75 0.11 0.89 0.34 0.66 0.1 0.9 0.6 0.4</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
</NETWORK>
|
||||
</BIF>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
:- use_module(library(clpbn)).
|
||||
|
||||
:- set_clpbn_flag(solver, bp).
|
||||
%:- set_clpbn_flag(solver, jt).
|
||||
|
||||
%
|
||||
% B F
|
||||
|
||||
17
packages/CLPBN/clpbn/bp/examples/sp-example.uai
Executable file
17
packages/CLPBN/clpbn/bp/examples/sp-example.uai
Executable file
@@ -0,0 +1,17 @@
|
||||
MARKOV
|
||||
3
|
||||
2 2 2
|
||||
3
|
||||
1 0
|
||||
1 1
|
||||
3 2 0 1
|
||||
|
||||
2
|
||||
.695 .305
|
||||
|
||||
2
|
||||
.25 .75
|
||||
|
||||
8
|
||||
0.2 0.45 0.32 0.7
|
||||
0.8 0.55 0.68 0.3
|
||||
128
packages/CLPBN/clpbn/bp/examples/test_bn.xml
Executable file
128
packages/CLPBN/clpbn/bp/examples/test_bn.xml
Executable file
@@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="US-ASCII"?>
|
||||
|
||||
<!--
|
||||
|
||||
A B C
|
||||
\ | /
|
||||
\ | /
|
||||
D
|
||||
/ | \
|
||||
/ | \
|
||||
E F G
|
||||
|
||||
-->
|
||||
|
||||
<BIF VERSION="0.3">
|
||||
<NETWORK>
|
||||
<NAME>Node with several parents and childs</NAME>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>A</NAME>
|
||||
<OUTCOME>a1</OUTCOME>
|
||||
<OUTCOME>a2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>B</NAME>
|
||||
<OUTCOME>b1</OUTCOME>
|
||||
<OUTCOME>b2</OUTCOME>
|
||||
<OUTCOME>b3</OUTCOME>
|
||||
<OUTCOME>b4</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>C</NAME>
|
||||
<OUTCOME>c1</OUTCOME>
|
||||
<OUTCOME>c2</OUTCOME>
|
||||
<OUTCOME>c3</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>D</NAME>
|
||||
<OUTCOME>d1</OUTCOME>
|
||||
<OUTCOME>d2</OUTCOME>
|
||||
<OUTCOME>d3</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>E</NAME>
|
||||
<OUTCOME>e1</OUTCOME>
|
||||
<OUTCOME>e2</OUTCOME>
|
||||
<OUTCOME>e3</OUTCOME>
|
||||
<OUTCOME>e4</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>F</NAME>
|
||||
<OUTCOME>f1</OUTCOME>
|
||||
<OUTCOME>f2</OUTCOME>
|
||||
<OUTCOME>f3</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>G</NAME>
|
||||
<OUTCOME>g1</OUTCOME>
|
||||
<OUTCOME>g2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>A</FOR>
|
||||
<TABLE> .1 .2 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>B</FOR>
|
||||
<TABLE> .01 .02 .03 .04 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>C</FOR>
|
||||
<TABLE> .11 .22 .33 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>D</FOR>
|
||||
<GIVEN>A</GIVEN>
|
||||
<GIVEN>B</GIVEN>
|
||||
<GIVEN>C</GIVEN>
|
||||
<TABLE>
|
||||
.522 .008 .99 .01 .2 .8 .003 .457 .423 .007 .92 .04 .5 .232 .033 .227 .112 .048 .91 .21 .24 .18 .005 .227
|
||||
.212 .04 .59 .21 .6 .1 .023 .215 .913 .017 .96 .01 .55 .422 .013 .417 .272 .068 .61 .11 .26 .28 .205 .322
|
||||
.142 .028 .19 .11 .5 .67 .013 .437 .163 .067 .12 .06 .1 .262 .063 .167 .512 .028 .11 .41 .14 .68 .015 .92
|
||||
</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>E</FOR>
|
||||
<GIVEN>D</GIVEN>
|
||||
<TABLE>
|
||||
.111 .11 .1
|
||||
.222 .22 .2
|
||||
.333 .33 .3
|
||||
.444 .44 .4
|
||||
</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>F</FOR>
|
||||
<GIVEN>D</GIVEN>
|
||||
<TABLE>
|
||||
.112 .111 .110
|
||||
.223 .222 .221
|
||||
.334 .333 .332
|
||||
</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>G</FOR>
|
||||
<GIVEN>D</GIVEN>
|
||||
<TABLE>
|
||||
.101 .102 .103
|
||||
.201 .202 .203
|
||||
</TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
</NETWORK>
|
||||
</BIF>
|
||||
|
||||
36
packages/CLPBN/clpbn/bp/examples/test_mk.uai
Executable file
36
packages/CLPBN/clpbn/bp/examples/test_mk.uai
Executable file
@@ -0,0 +1,36 @@
|
||||
MARKOV
|
||||
5
|
||||
4 2 3 2 3
|
||||
7
|
||||
1 0
|
||||
1 1
|
||||
1 2
|
||||
1 3
|
||||
1 4
|
||||
2 0 1
|
||||
4 1 2 3 4
|
||||
|
||||
4
|
||||
0.1 0.7 0.43 0.22
|
||||
|
||||
2
|
||||
0.2 0.6
|
||||
|
||||
3
|
||||
0.3 0.5 0.2
|
||||
|
||||
2
|
||||
0.15 0.75
|
||||
|
||||
3
|
||||
0.25 0.45 0.15
|
||||
|
||||
8
|
||||
0.210 0.333 0.457 0.4
|
||||
0.811 0.000 0.189 0.89
|
||||
|
||||
36
|
||||
0.1 0.15 0.2 0.25 0.3 0.45 0.5 0.55 0.65 0.7 0.75 0.9
|
||||
0.11 0.22 0.33 0.44 0.55 0.66 0.77 0.88 0.91 0.93 0.95 0.97
|
||||
0.42 0.22 0.33 0.44 0.15 0.36 0.27 0.28 0.21 0.13 0.25 0.17
|
||||
|
||||
69
packages/CLPBN/clpbn/bp/examples/ve_example.xml
Executable file
69
packages/CLPBN/clpbn/bp/examples/ve_example.xml
Executable file
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="US-ASCII"?>
|
||||
|
||||
<!--
|
||||
|
||||
A B
|
||||
\ /
|
||||
\ /
|
||||
C
|
||||
|
|
||||
|
|
||||
D
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<BIF VERSION="0.3">
|
||||
<NETWORK>
|
||||
<NAME>Simple Loop</NAME>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>A</NAME>
|
||||
<OUTCOME>a1</OUTCOME>
|
||||
<OUTCOME>a2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>B</NAME>
|
||||
<OUTCOME>b1</OUTCOME>
|
||||
<OUTCOME>b2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>C</NAME>
|
||||
<OUTCOME>c1</OUTCOME>
|
||||
<OUTCOME>c2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<VARIABLE TYPE="nature">
|
||||
<NAME>D</NAME>
|
||||
<OUTCOME>d1</OUTCOME>
|
||||
<OUTCOME>d2</OUTCOME>
|
||||
</VARIABLE>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>A</FOR>
|
||||
<TABLE> .001 .009 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>B</FOR>
|
||||
<TABLE> .002 .008 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>C</FOR>
|
||||
<GIVEN>A</GIVEN>
|
||||
<GIVEN>B</GIVEN>
|
||||
<TABLE> .95 .05 .94 .06 .29 .71 .001 .999 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
<DEFINITION>
|
||||
<FOR>D</FOR>
|
||||
<GIVEN>C</GIVEN>
|
||||
<TABLE> .9 .1 .05 .95 </TABLE>
|
||||
</DEFINITION>
|
||||
|
||||
</NETWORK>
|
||||
</BIF>
|
||||
|
||||
Reference in New Issue
Block a user