Guest
Public paste!

hr0nix

By: a guest | Nov 27th, 2009 | Syntax: C# | Size: 1.42 KB | Hits: 113 | Expires: Never
Copy text to clipboard
  1. using System;
  2. using MicrosoftResearch.Infer.Models;
  3. using MicrosoftResearch.Infer;
  4.  
  5. namespace Lorenzo
  6. {
  7.         class Program
  8.         {
  9.                 static void Main()
  10.                 {
  11.                         Variable<bool> internetOnPhone = Variable.Bernoulli(0.8).Named("I");
  12.                         Variable<bool> hasInternetCoverage = Variable.Bernoulli(0.9).Named("C");
  13.                         Variable<bool> googled = Variable.New<bool>().Named("G");
  14.                         using (Variable.If(hasInternetCoverage))
  15.                         {
  16.                                 using (Variable.If(internetOnPhone)) googled.SetTo(Variable.Bernoulli(0.95));
  17.                                 using (Variable.IfNot(internetOnPhone)) googled.SetTo(Variable.Bernoulli(0.3));
  18.                         }
  19.                         using (Variable.IfNot(hasInternetCoverage))
  20.                         {
  21.                                 googled.SetTo(Variable.Bernoulli(0));
  22.                         }
  23.  
  24.                         Variable<bool> handsome = Variable.Bernoulli(0.2).Named("H");
  25.                         Variable<bool> success = Variable.New<bool>().Named("S");
  26.                         using (Variable.If(googled))
  27.                         {
  28.                                 using (Variable.If(handsome)) success.SetTo(Variable.Bernoulli(0.99));
  29.                                 using (Variable.IfNot(handsome)) success.SetTo(Variable.Bernoulli(0.9));
  30.                         }
  31.                         using (Variable.IfNot(googled))
  32.                         {
  33.                                 using (Variable.If(handsome)) success.SetTo(Variable.Bernoulli(0.5));
  34.                                 using (Variable.IfNot(handsome)) success.SetTo(Variable.Bernoulli(1e-5));
  35.                         }
  36.  
  37.                         InferenceEngine engine = new InferenceEngine();
  38.                         success.ObservedValue = true;
  39.                         Console.WriteLine(engine.Infer(handsome));
  40.                         success.ObservedValue = false;
  41.                         Console.WriteLine(engine.Infer(googled));
  42.                 }
  43.         }
  44. }