hr0nix
By: a guest | Nov 27th, 2009 | Syntax:
C# | Size: 1.42 KB | Hits: 113 | Expires: Never
using System;
using MicrosoftResearch.Infer.Models;
using MicrosoftResearch.Infer;
namespace Lorenzo
{
class Program
{
static void Main()
{
Variable<bool> internetOnPhone = Variable.Bernoulli(0.8).Named("I");
Variable<bool> hasInternetCoverage = Variable.Bernoulli(0.9).Named("C");
Variable
<bool> googled
= Variable.
New<bool>().
Named("G");
using (Variable.If(hasInternetCoverage))
{
using (Variable.If(internetOnPhone)) googled.SetTo(Variable.Bernoulli(0.95));
using (Variable.IfNot(internetOnPhone)) googled.SetTo(Variable.Bernoulli(0.3));
}
using (Variable.IfNot(hasInternetCoverage))
{
googled.SetTo(Variable.Bernoulli(0));
}
Variable<bool> handsome = Variable.Bernoulli(0.2).Named("H");
Variable
<bool> success
= Variable.
New<bool>().
Named("S");
using (Variable.If(googled))
{
using (Variable.If(handsome)) success.SetTo(Variable.Bernoulli(0.99));
using (Variable.IfNot(handsome)) success.SetTo(Variable.Bernoulli(0.9));
}
using (Variable.IfNot(googled))
{
using (Variable.If(handsome)) success.SetTo(Variable.Bernoulli(0.5));
using (Variable.IfNot(handsome)) success.SetTo(Variable.Bernoulli(1e-5));
}
InferenceEngine engine
= new InferenceEngine
();
success.ObservedValue = true;
Console.WriteLine(engine.Infer(handsome));
success.ObservedValue = false;
Console.WriteLine(engine.Infer(googled));
}
}
}