 
Summary: Chapter 7
Ordered Structures
The data structures we have evolved thus far have all been arrays or vectors of similar
elements, be they characters, real numbers, the ships's systems from Sunburn, or states of
a finite state automaton. The value at one state in a gene has no effect on what values
may be present at another location, except for nonexplicit constraints implied by the fitness
function.
In this chapter, we will work with lists of items called permutations in which the list
contains a specified collection of items once each. We will store the permutations as lists
of integers 1, 2, ..., n varying only the order in which the integers appear. Just as we used
the simple string evolver in Chapter 2 to learn how evolutionary algorithms worked, we
will start with easy problems to learn how systems for evolving ordered genes work. The
first section of this chapter is devoted to implementing two different representations for
permutations, a direct representation storing permutations in an array and the random key
representation which stores a permutation as an array of real numbers. These representation
will be tested on minimizing the number of reversals in a permutation, in effect sorting it,
and on maximizing the order of the permutation as a member of a group of permutations.
The second section of the chapter will introduce the Traveling Salesman problem. This
problem takes an existing set of cities and attempts to find the order of the cities that form
a minimum length circular tour of those cities. The third section combines permutations
