Пример #1
0
        //1-point crossover, Twors Mutation
        public void RunGA1A(int iterations)
        {
            GenerateInitialPopulation();

            for (int i = 0; i < iterations; i++)
            {
                _childGenerationList.Clear();

                while (_childGenerationList.Count < 10)
                {
                    EvaluateParentFitness();

                    List <List <Vertex> > parentPair = RouletteWheelSelection();
                    List <List <Vertex> > childPair  = Crossover1Pt(parentPair);

                    childPair[0] = MutationTwors(childPair[0]);
                    childPair[1] = MutationTwors(childPair[1]);

                    _childGenerationList.Add(childPair[0]);
                    _childGenerationList.Add(childPair[1]);
                }

                ParentGenerationList.Clear();
                ParentGenerationList.AddRange(_childGenerationList);
            }
        }
Пример #2
0
 //populate parent generation with randomized paths
 private void GenerateInitialPopulation()
 {
     for (int i = 0; i < GenerationSize; i++)
     {
         //generate random path & add it to ParentGenerationList
         ParentGenerationList.Add(GenerateRandomPath());
     }
 }