public GeneticAlgorithm(RobotManager robotManager) { this.robotManager = robotManager; for (int i = 0; i < THREAD_POOL_SIZE; i++) { doneEvents[i] = new ManualResetEvent(false); } }
internal static Individual GenerateRandom(RobotManager robotManager) { Individual outIndividiual = new Individual(robotManager); int sequenceSize = Action.getRandomRange(minSequence, maxSequence); for (int n = 0; n < sequenceSize; ++n) { outIndividiual.sequence.Add(Action.getRandomAction()); } return(outIndividiual); }
static void Main(string[] args) { RobotManager robotManager = new RobotManager(); GeneticAlgorithm geneticAlgorithm = new GeneticAlgorithm(robotManager); geneticAlgorithm.Load(); if (robotManager.GetRobots() > 0) { geneticAlgorithm.Execute(); } Console.ReadKey(); }
internal static List <Individual> Load(RobotManager robotManager) { List <Individual> output = new List <Individual>(); using (StreamReader file = new StreamReader(FILE_NAME)) { string line; while ((line = file.ReadLine()) != null) { output.Add(Individual.Deserialize(robotManager, line)); } } return(output); }
internal static Individual Deserialize(RobotManager robotManager, string line) { Individual output = new Individual(robotManager); string[] stringActionArray = line.Split(' '); foreach (string stringAction in stringActionArray) { Action a = Action.Deserialize(stringAction); if (a != null) { output.sequence.Add(a); } //else //Console.WriteLine("Load action error."); } return(output); }
private Individual(RobotManager robotManager) { IndividualID = currentIndividualID++; this.robotManager = robotManager; }