15:- use_module(library(phil)). 16:- if(current_predicate(use_rendering/1)). 17:- use_rendering(c3). 18:- use_rendering(lpad). 19:- endif. 20
21:- phil. 22
23:- set_hplp(verbosity, 1). 25:- set_hplp(megaex_bottom, 10). 26:- set_hplp(initial_clauses_per_megaex, 1). 27:- set_hplp(rate, 1.0). 28:- set_hplp(max_layer, -1). 29:- set_hplp(min_probability, 1.0e-5). 30
32:- set_hplp(algorithmType, dphil). 34:- set_hplp(maxIter_phil, 1000).
35:- set_hplp(epsilon_deep, 0.0001).
36:- set_hplp(epsilon_deep_fraction, 1.0e-5). 37:- set_hplp(useInitParams, yes). 38
40:- set_hplp(regularized, no). 41:- set_hplp(regularizationType, 2). 42:- set_hplp(gamma, 10). 43:- set_hplp(gammaCount, 0).
44
46:- set_hplp(adam_params, [0.1, 0.9, 0.999, 1.0e-8]). 48:- set_hplp(batch_strategy, minibatch(50)). 51
52
53
54start:-
55 inference_hplp(advisedby(harry, ben),ai,Prob),
56 writeln(Prob).
57 58
59bg([]).
60
61:- begin_in. 62advisedby(A,B):0.3:-
63 student(A),
64 professor(B),
65 project(A,C),
66 project(A,C),
67 hidden_1(A,B,C).
68advisedby(A,B):0.6 :-
69 student(A),
70 professor(B),
71 ta(C,A),
72 taughtby(C, B).
73hidden_1(A,B,C):0.2 :-
74 publication(P, A, C),
75 publication(P, B, C).
76:- end_in. 77
78
79fold(all, [ai]).
80
81output(advisedby/2).
82
83
84input(student/1).
85input(professor/1).
86input(project/2).
87input(publication/3).
88input(taughtby/2).
89input(ta/2).
90
91
92determination(advisedby/2, professor/1).
93determination(advisedby/2, student/1).
94determination(advisedby/2, publication/3).
95determination(advisedby/2, taughtby/2).
96determination(advisedby/2, ta/2).
97determination(advisedby/2, project/2).
98
99modeh(*, advisedby(+person, +person)).
100
101
102modeb(*, publication(-title, +person, +project)).
104modeb(*, project(+person,-project)).
106modeb(*, professor(+person)).
107modeb(*, student(+person)).
108modeb(*, taughtby(-course, +person)).
110modeb(*, ta(-course, +person)).
112
113
115begin(model(ai)).
116student(harry).
117professor(ben).
118
119taughtby(c1, ben).
120taughtby(c2, ben).
121ta(c1, harry).
122ta(c2, harry).
123
124project(harry, pr1).
125project(harry, pr2).
126project(ben, pr1).
127project(ben, pr2).
128publication(p1, harry, pr1).
129publication(p2, harry, pr1).
130publication(p3, harry, pr2).
131publication(p4, harry, pr2).
132publication(p1, ben, pr1).
133publication(p2, ben, pr1).
134publication(p3, ben, pr2).
135publication(p4, ben, pr2).
136end(model(ai))
?-
inference_hplp(advisedby(harry, ben),ai,Prob)
. ?-inference_hplp(advisedby(harry, ben),ai,Prob,Circuit)
. */