コード例 #1
0
 private static void CheckScore(Multiset ms)
 {
     if (ms.totalScore == 0)
     {
         Console.WriteLine("Perfect Solution Found: ");
         Node.print(ms.ToNodeList());
         Console.ReadKey(true);
     }
 }
コード例 #2
0
        static void Main(string[] args)
        {
            //init
            int population = Global.population();
            int b          = Global.b();

            // Set in Global

            int[]    X          = Global.Xvalue();
            int[]    Y          = Global.Yvalue();
            int[]    Z          = Global.Zvalue();
            Multiset initialSet = Global.Initial();

            //Random
            Multiset possibleRandom = Global.GenerateRandom(100);

            Console.Write("\n Here is a possible random solution that is solveable");

            possibleRandom.print();


            Boolean isSolveable = initialSet.CheckSolvability(b);

            if (isSolveable)
            {
                //Randomly create population parents
                List <Multiset> parentList = new List <Multiset>();
                for (int i = 0; i < population; i++)
                {
                    Multiset holder = new Multiset(Global.Xvalue(), Global.Yvalue(), Global.Zvalue());
                    holder = Multiset.Randomize();
                    parentList.Add(holder);
                }
                List <Multiset> NextGen = parentList;

                for (int i = 0; i < Global.Generations(); i++)
                {
                    Console.Write("Finding Generation {0}\n", i + 1);
                    NextGen = FindNextGen(NextGen);
                    Console.Write("Generation {0}'s best score is {1}\n", i + 1, NextGen[0].totalScore);
                    Console.Write("Gen {0}'s Solution: \n", i + 1);
                    NextGen[0].print();
                    Console.Write("\n");
                }
                List <Node> guess      = WoC(NextGen);
                Multiset    finalguess = Node.FindBest(guess);
                Console.Write("Best guess's score is {0}\n", finalguess.totalScore);
                Console.Write("Final Guess Solution: \n");
                Node.print(finalguess.ToNodeList());
                Console.WriteLine("Hello World!");
                Console.ReadKey(true);
            }
        }
コード例 #3
0
        public static Multiset CreateChild(Multiset parent1, Multiset parent2, int shuffle = 0)
        {
            List <Node> childNodeList = new List <Node>();

            childNodeList = Node.MergeNodeLists(parent1.ToNodeList(), parent2.ToNodeList());
            if (shuffle == 1)
            {
                Node.Shuffle(childNodeList);
            }
            Multiset final = Node.FindBest(childNodeList);

            return(final);
        }