1+ package examples ;
2+
3+ import ch .idsia .crema .factor .bayesian .BayesianDefaultFactor ;
14import ch .idsia .crema .factor .bayesian .BayesianFactor ;
25import ch .idsia .crema .model .graphical .BayesianNetwork ;
36
47
58public class BNdefinition {
6- public static void main (String [] args ) {
7-
8- BayesianNetwork model = new BayesianNetwork ();
9- BayesianFactor [] f = new BayesianFactor [5 ];
10-
11- // Winter?
12- int A = model .addVariable (2 );
13- f [A ] = new BayesianFactor (model .getDomain (A ), new double []{.6 , .4 }, false );
14-
15- // Sprinkler?
16- int B = model .addVariable (2 );
17- model .addParent (B , A );
18- f [B ] = new BayesianFactor (model .getDomain (A , B ), false );
19- f [B ].setData (new int []{B , A }, new double []{.2 , .8 , .75 , .25 });
20-
21- // Rain?
22- int C = model .addVariable (2 );
23- model .addParent (C , A );
24- f [C ] = new BayesianFactor (model .getDomain (A , C ), false );
25- f [C ].setData (new int []{C , A }, new double []{.8 , .2 , .1 , .9 });
26-
27- // Wet Grass?
28- int D = model .addVariable (2 );
29- model .addParent (D , B );
30- model .addParent (D , C );
31- f [D ] = new BayesianFactor (model .getDomain (B , C , D ), false );
32- f [D ].setData (new int []{D , B , C }, new double []{.95 , .05 , .9 , .1 , .8 , .2 , 0 , 1 });
33-
34- // Slippery Road?
35- int E = model .addVariable (2 );
36- model .addParent (E , C );
37- f [E ] = new BayesianFactor (model .getDomain (C , E ), false );
38- f [E ].setData (new int []{E , C }, new double []{.7 , .3 , 0 , 1 });
39-
40- model .setFactors (f );
41-
42- System .out .println (model );
43-
44- for (int x : model .getVariables ()){
45- for (int y : model .getChildren (x )){
46- System .out .print ("(" +x +"-->" +y +")" );
47- }
48- }
49-
50- }
9+ public static void main (String [] args ) {
10+
11+ BayesianNetwork model = new BayesianNetwork ();
12+ BayesianFactor [] f = new BayesianFactor [5 ];
13+
14+ // Winter?
15+ int A = model .addVariable (2 );
16+ f [A ] = new BayesianDefaultFactor (model .getDomain (A ), new double []{.6 , .4 });
17+
18+ // Sprinkler?
19+ int B = model .addVariable (2 );
20+ model .addParent (B , A );
21+ f [B ] = new BayesianDefaultFactor (model .getDomain (A , B ), new int []{B , A }, new double []{.2 , .8 , .75 , .25 });
22+
23+ // Rain?
24+ int C = model .addVariable (2 );
25+ model .addParent (C , A );
26+ f [C ] = new BayesianDefaultFactor (model .getDomain (A , C ), new int []{C , A }, new double []{.8 , .2 , .1 , .9 });
27+
28+ // Wet Grass?
29+ int D = model .addVariable (2 );
30+ model .addParent (D , B );
31+ model .addParent (D , C );
32+ f [D ] = new BayesianDefaultFactor (model .getDomain (B , C , D ), new int []{D , B , C }, new double []{.95 , .05 , .9 , .1 , .8 , .2 , 0 , 1 });
33+
34+ // Slippery Road?
35+ int E = model .addVariable (2 );
36+ model .addParent (E , C );
37+ f [E ] = new BayesianDefaultFactor (model .getDomain (C , E ), new int []{E , C }, new double []{.7 , .3 , 0 , 1 });
38+
39+ model .setFactors (f );
40+
41+ System .out .println (model );
42+
43+ for (int x : model .getVariables ()) {
44+ for (int y : model .getChildren (x )) {
45+ System .out .print ("(" + x + "-->" + y + ")" );
46+ }
47+ }
48+
49+ }
5150}
5251//54
0 commit comments