private static void CheckScore(Multiset ms) { if (ms.totalScore == 0) { Console.WriteLine("Perfect Solution Found: "); Node.print(ms.ToNodeList()); Console.ReadKey(true); } }
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); } }
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); }