Ejemplo n.º 1
0
        static void HashTest()
        {
            var nodeFactory = new DefaultNodeFactory();
            var parser      = new Parser(@"..\..\..\..\simple-inputs\output-1-3-1-1-1.in");

            var ninit   = nodeFactory.CreateNode(null, new InitAction(parser));
            var nloaded = nodeFactory.CreateNode(ninit, new LoadAction(ninit.State.Packages.First(), ninit.State.Vans.First()));

            var nmove1 = nodeFactory.CreateNode(nloaded, new DriveAction(nloaded.State.Vans.First(), nloaded.State.Places.ElementAt(0)));

            var nmove2 = nodeFactory.CreateNode(nloaded, new DriveAction(nloaded.State.Vans.First(), nloaded.State.Places.ElementAt(1)));

            var nmove2x = nodeFactory.CreateNode(nmove2,
                                                 new DriveAction(nmove2.State.Vans.First(), nmove2.State.Places.ElementAt(0)));

            var unload1 = nodeFactory.CreateNode(nmove1, new UnLoadAction(nmove1.State.Packages.ElementAt(0), nloaded.State.Vans.First()));


            var unload2 = nodeFactory.CreateNode(nmove2x, new UnLoadAction(nmove2x.State.Packages.ElementAt(0), nloaded.State.Vans.First()));

            int ninitHash   = ninit.State.GetHashCode();
            int nmove1Hash  = nmove1.State.GetHashCode();
            int nmove2Hash  = nmove2.State.GetHashCode();
            int nmove2xHash = nmove2x.State.GetHashCode();
            int unload1Hash = unload1.State.GetHashCode();
            int unload2Hash = unload2.State.GetHashCode();

            bool r0 = nmove1Hash == nmove2xHash;
            bool r1 = unload1Hash == unload2Hash;
            bool r2 = unload1.State == unload2.State;
        }
Ejemplo n.º 2
0
        static void BFS(string input, SearchMode mode)
        {
            var nodeFactory = new DefaultNodeFactory();
            var expander    = new DummyNodeExpander <Node <State> >(nodeFactory);
            var searcher    = new BreathFirstSearch(expander, mode);
            var parser      = new Parser(input);

            var results = searcher.Search(nodeFactory.CreateNode(null, new InitAction(parser)));
            var res     = results.First();

            Console.WriteLine($"Result:\r\n{res.Dump()}");
            Console.WriteLine($"MaxDepth: {searcher.MaxDepthStat}");
            Console.WriteLine($"ExpandedNodes: {searcher.ExpandedNodesStat}");
        }