static void Main(string[] args)
        {
            Console.WriteLine("Monte Carlo  Algorithm Tests");

            while (true)
            {
                var watch = Stopwatch.StartNew();
                Console.WriteLine();

                var s1 = new Node("nod1");
                s1.AddAction(new NodeAction(1, true));
                var s2 = new Node("nod2");
                s2.AddAction(new NodeAction(1, true));
                s2.AddAction(new NodeAction(10, false));
                var s3 = new Node("nod3");
                s3.AddAction(new NodeAction(10, true));
                s3.AddAction(new NodeAction(20, false));
                var s4 = new Node("nod4");
                s4.AddAction(new NodeAction(10, true));
                s4.AddAction(new NodeAction(2, false));
                var s5 = new Node("nod5");
                s5.AddAction(new NodeAction(1, true));
                s5.AddAction(new NodeAction(2, false));
                var s6 = new Node("nod6");
                s6.AddAction(new NodeAction(10, true));

                var s7 = new Node("nod7");
                s7.AddAction(new NodeAction(30, true));   // Win

                var s8 = new Node("Node8");
                s8.AddAction(new NodeAction(1, true));
                var s9 = new Node("Node9");
                s9.AddAction(new NodeAction(1, true));

                s8.AddChild(s9);
                s7.AddChild(s8);
                s2.AddChild(s4);
                s2.AddChild(s5);
                s3.AddChild(s6);
                s3.AddChild(s7);
                s1.AddChild(s2);
                s1.AddChild(s3);

                var s10 = new Node("Node10");
                s10.AddAction(new NodeAction(1, true));
                s9.AddChild(s10);

                var simulation = new Simulation((int visit, long time) => time < 2000);
                simulation.Simulate(s1, new Player());


                PrintTree(s1, "", false);
                Console.WriteLine($"Time : {watch.ElapsedMilliseconds}");
                Console.ReadLine();
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            SearchAlgorithm algorithm = new UniformSearch();

            Node antwerpNode   = new Node(new State("Antwerp"));
            Node hasseltNode   = new Node(new State("Hasselt"));
            Node brusselNode   = new Node(new State("Brussel"));
            Node charleroiNode = new Node(new State("Charleroi"));
            Node parijsNode    = new Node(new State("Parijs"));
            Node kortijkNode   = new Node(new State("Kortrijk"));
            Node gentNode      = new Node(new State("Gent"));
            Node dePanneNode   = new Node(new State("DePanne"));
            Node rotterdamNode = new Node(new State("Rotterdam"));

            antwerpNode.AddAction(new Edge(antwerpNode, gentNode, 9));
            antwerpNode.AddAction(new Edge(antwerpNode, rotterdamNode, 8));
            antwerpNode.AddAction(new Edge(antwerpNode, hasseltNode, 10));
            antwerpNode.AddAction(new Edge(antwerpNode, brusselNode, 7));

            gentNode.AddAction(new Edge(gentNode, antwerpNode, 9));
            gentNode.AddAction(new Edge(gentNode, dePanneNode, 12));
            gentNode.AddAction(new Edge(gentNode, kortijkNode, 5));
            gentNode.AddAction(new Edge(gentNode, brusselNode, 10));

            hasseltNode.AddAction(new Edge(hasseltNode, antwerpNode, 10));

            rotterdamNode.AddAction(new Edge(rotterdamNode, antwerpNode, 8));

            charleroiNode.AddAction(new Edge(charleroiNode, brusselNode, 6));

            brusselNode.AddAction(new Edge(brusselNode, antwerpNode, 7));
            brusselNode.AddAction(new Edge(brusselNode, gentNode, 10));
            brusselNode.AddAction(new Edge(brusselNode, charleroiNode, 6));

            kortijkNode.AddAction(new Edge(kortijkNode, gentNode, 5));
            kortijkNode.AddAction(new Edge(kortijkNode, parijsNode, 10));

            parijsNode.AddAction(new Edge(parijsNode, kortijkNode, 10));

            dePanneNode.AddAction(new Edge(dePanneNode, gentNode, 12));

            Problem problem = new Problem();

            problem.InitialState = antwerpNode;
            problem.GoalState    = parijsNode;

            Path solution = algorithm.Search(problem);

            Console.WriteLine("Solution");
            solution.DebugLog();
        }