The GA Procedure

SetElite Call

call SetElite ( elite ) ;

The SetElite call sets the number of best solutions to pass to the next generation. The input to the SetElite subroutine is as follows:


is the number of best solutions to be passed unmodified from the current solution generation to the next.

The SetElite subroutine is used to ensure that the best solutions encountered in the optimization are not lost by the random selection process. In pure tournament selection, although better solutions are more likely to be selected, it is also possible that any given solution will not be chosen to participate in a tournament, and even if it is selected, it might be modified by crossover or mutation. The SetElite call modifies the optimization process such that the best elite solutions in the current population are exactly preserved and passed on to the next generation. This behavior is observed regardless of the crossover or mutation settings. When a SetElite call is made, the first elite solutions in the population retrieved by a GetSolutions call or output to a data set are the fittest, and these elite solutions are sorted so that the most fit is first. In general, using the SetElite call speeds the convergence of the optimization process. However, it can also lead to premature convergence before a true global optimum is reached. If no SetElite call is made, a default elite value of 1 is used by the GA procedure to make sure that the best solution encountered in the optimization process is never lost.