Genetic algorithm solution of Vigenere alphabetic codes

This paper presents a set of experiments using a genetic algorithm to develop solutions to a Vigenere alphabetic code. A Vigenere code replaces each character in the plain text with a new character generated by adding the value of a character in the corresponding place in a "keyword". The genetic algorithm uses the number of characters in valid English words as the measure of a solution's fitness; breeding is accomplished by simple crossover and mutation consists of random variations of a single keyword position. To accelerate the convergence of the solution, we introduce a new concept: anti-elitism, or including a small portion of the worst solutions as well as the best. This has the effect of retaining mutations that may not initially benefit the best solution, but will later breed with other individuals in the population to increase the maximum fitness.