public GeneticAlgorithm(RobotManager robotManager)
 {
     this.robotManager = robotManager;
     for (int i = 0; i < THREAD_POOL_SIZE; i++)
     {
         doneEvents[i] = new ManualResetEvent(false);
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
        static void Main(string[] args)
        {
            RobotManager     robotManager     = new RobotManager();
            GeneticAlgorithm geneticAlgorithm = new GeneticAlgorithm(robotManager);

            geneticAlgorithm.Load();
            if (robotManager.GetRobots() > 0)
            {
                geneticAlgorithm.Execute();
            }
            Console.ReadKey();
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
 private Individual(RobotManager robotManager)
 {
     IndividualID      = currentIndividualID++;
     this.robotManager = robotManager;
 }