Example #1
0
        public void DoDisplacementMutation(double mutationRate)
        {
            if (Randomizer.GetDoubleFromZeroToOne() < mutationRate)
            {
                int which     = Randomizer.IntLessThan(NumCities - 1);
                int cityIndex = path[which];
                path.RemoveAt(which);

                int newPosition = Randomizer.IntLessThan(NumCities - 1);
                path.InsertAt(newPosition, cityIndex);

                CheckValidity();
            }
        }