static void Main(string[] args) { var program = "(a.*)(a.*)(c)"; var example = "aaAaac"; var re = new Parser("(a.*)(A.*)(c)").Parse(); var codes = new Compiler().Compile(re).ToList(); var matches = new Interpreter().Run(codes, example); var example1 = Tuple.Create(example, matches); var examples = new[] { Tuple.Create(example, matches) }; //foreach (var item in RegexpSpeaker(program, true).Support().OrderByDescending(k => k.Probability).Take(5)) // Console.WriteLine(item); //Console.WriteLine(); //foreach (var item in RegexpSpeaker(program, false).Support().OrderByDescending(k => k.Probability).Take(5)) // Console.WriteLine(item); //Console.WriteLine(); //foreach (var item in CompilerListener(program).Support().OrderByDescending(k => k.Probability).Take(5)) // Console.WriteLine(item); //Console.WriteLine(); //foreach (var item in CompilerListenerWithExample(program, examples).Support().OrderByDescending(k => k.Probability)) //;/.Take(5)) // Console.WriteLine(item); //var tmp = new Multinomial<Tuple<string, IEnumerable<Tuple<int, int, int>>>>(examples); var p = from stmt in PossibleInterpretations2("(.*)(.*)(c)") let re1 = new Parser(stmt).Parse() let codes1 = new Compiler().Compile(re1) let matches1 = new Interpreter().Run(codes1.ToList(), example1.Item1) where Cmp(matches1, example1.Item2) select stmt; var sampler = new MarkovChainMonteCarloSampler <string>(p); var output = sampler.Take(1).ToList(); //var output = PossibleInterpretations2(program).SampledInference(100000).Support().OrderByDescending(k => k.Probability).Take(5).ToList(); //Console.WriteLine(); //var output = PossibleInterpretations2(program).SampledInference(100000).Support().OrderByDescending(k => k.Probability).Take(5); //foreach (var item in output) // Console.WriteLine(item); int x = 10; }
public void TestMethod4() { var program = from a in new Flip(0.9) from b in new Flip(0.9) from c in new Flip(0.9) let d = Convert.ToInt32(a) + Convert.ToInt32(b) + Convert.ToInt32(c) select new Weighted <int>(d, a ? 0.0 : 1); var sampler = new MarkovChainMonteCarloSampler <int>(program); var tmp = Microsoft.Research.Uncertain.Inference.Extensions.RunInference(sampler.Take(100000).ToList()).Support().ToList(); var correct = program.Inference().Support().ToList(); int x = 10; }
public void TestMethod2() { var program = from i in Geometric(0.9) where i <= 5 select i; var sampler = new MarkovChainMonteCarloSampler <int>(program); var tmp = Microsoft.Research.Uncertain.Inference.Extensions.RunInference(sampler.Take(100000).ToList()).Support().ToList(); int x = 10; }