Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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;
        }