36 lines
584 B
Prolog
36 lines
584 B
Prolog
|
|
%
|
|
% adapted from Hendrik Blockeel's ILP04 paper.
|
|
%
|
|
|
|
:- use_module(library(clpbn)).
|
|
|
|
cg(X,1,C):-
|
|
father(Y,X),
|
|
cg(Y,1,C1),cg(Y,2,C2),
|
|
parent_cpt(cg(X,1), C1, C2, C).
|
|
|
|
cg(X,2,C):-
|
|
mother(Y,X),
|
|
cg(Y,1,C1),cg(Y,2,C2),
|
|
parent_cpt(cg(X,2), C1, C2, C).
|
|
|
|
|
|
|
|
cg(f,X,C) :-
|
|
prior_cpt(cg(f,X),C).
|
|
|
|
cg(m,X,C) :-
|
|
prior_cpt(cg(m,X),C).
|
|
|
|
|
|
prior_cpt(CKEY, C) :-
|
|
{ C = CKEY with p([p,w], [0.5,0.5])}.
|
|
|
|
parent_cpt(CKEY, C1, C2, C) :-
|
|
{ C = CKEY with p([p,w], [ 1,0.5,0.5,0.0,
|
|
0.0,0.5,0.5, 1],[C1,C2])}.
|
|
|
|
father(f,s).
|
|
mother(m,s).
|