45 lines
986 B
Prolog
45 lines
986 B
Prolog
|
|
:- [pos:sample32].
|
|
|
|
:- ['~/Yap/work/CLPBN/clpbn/examples/School/school_32'].
|
|
|
|
% These libraries provide same functionality.
|
|
:- [library('clpbn/learning/mle')].
|
|
%:- [library('clpbn/learning/bnt_parms')].
|
|
|
|
:- [library(matrix)].
|
|
|
|
main :-
|
|
findall(X,goal(X),L),
|
|
learn_parameters(L,CPTs),
|
|
write_cpts(CPTs).
|
|
|
|
goal(professor_ability(P,V)) :-
|
|
pos:professor_ability(P,V),
|
|
p(pa, M), random < M.
|
|
goal(professor_popularity(P,V)) :-
|
|
pos:professor_popularity(P,V),
|
|
p(pp, M), random < M.
|
|
goal(registration_grade(P,V)) :-
|
|
pos:registration_grade(P,V),
|
|
p(rg, M), random < M.
|
|
goal(student_intelligence(P,V)) :-
|
|
pos:student_intelligence(P,V),
|
|
p(si, M), random < M.
|
|
goal(course_difficulty(P,V)) :-
|
|
pos:course_difficulty(P,V),
|
|
p(cd, M), random < M.
|
|
goal(registration_satisfaction(P,V)) :-
|
|
pos:registration_satisfaction(P,V),
|
|
p(rs, M), random < M.
|
|
|
|
% sampling parameter
|
|
p(_, 1.0).
|
|
|
|
write_cpts([]).
|
|
write_cpts([CPT|CPTs]) :-
|
|
matrix_to_list(CPT,L),
|
|
format('CPT=~w~n',[L]),
|
|
write_cpts(CPTs).
|
|
|