index 84c62e4..0d1e570 100644 (file)
@@ -1,3 +1,13 @@
+/*  This file is part of libDAI - http://www.libdai.org/
+ *
+ *  libDAI is licensed under the terms of the GNU General Public License version
+ *  2, or (at your option) any later version. libDAI is distributed without any
+ *  warranty. See the file COPYING for more details.
+ *
+ *  Copyright (C) 2008-2009  Joris Mooij  [joris dot mooij at libdai dot org]
+ */
+
+
#include <dai/factorgraph.h>
#include <iostream>

@@ -13,7 +23,7 @@ int main() {
Var S(1, 2);  // Define binary variable Sprinkler (with label 1)
Var R(2, 2);  // Define binary variable Rain (with label 2)
Var W(3, 2);  // Define binary variable Wetgrass (with label 3)
+
// Define probability distribution for C
Factor P_C( C );
P_C = 0.5;   // C = 0
@@ -64,16 +74,15 @@ int main() {

// Calculate joint probability of all four variables
Factor P;
-    for( size_t I = 0; I < SprinklerNetwork.nrFactors(); I++ ) {
+    for( size_t I = 0; I < SprinklerNetwork.nrFactors(); I++ )
P *= SprinklerNetwork.factor( I );
-    }
// P.normalize();  // Not necessary: a Bayesian network is already normalized by definition

// Calculate some probabilities
-    double denom = P.marginal( W );
+    Real denom = P.marginal( W );
cout << "P(W=1) = " << denom << endl;
cout << "P(S=1 | W=1) = " << P.marginal( VarSet( S, W ) ) / denom << endl;
cout << "P(R=1 | W=1) = " << P.marginal( VarSet( R, W ) ) / denom << endl;

-       return 0;
+    return 0;
}