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). | ||
|  | 	 |