45 lines
		
	
	
		
			986 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			986 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:- [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).
							 | 
						||
| 
								 | 
							
									
							 |