Genetic algorithm assignment extension for the
Traveling Salesman Problem.
                                               Name __________________
Do at least parts 1 and 2 in which your program is able to analyze
statistically the effects of varying the number of generations, mutations,
and crossovers.
Another nice way to achieve this is to write a program that runs the
"test" main driver function many times and accumulates statistical results
across numerous runs.


1. Write the code for a statistical analysis of a given population.
   
   -  Calculate the average, maximum strength, minimum strength, and
      standard deviation for the population.
   -  One method to return multiple values is to return the values
      within a list

2. Analyze the effects of

    - number of generations
    - mutation 1, mutation 2
    - crossover

    For example, find the statistical analysis for:
      A. 5 generations using only mutation 1, and for both mutations
      B. 5 or 10 generations using only crossover
      C. 5 generations using both mutations and crossover
      D. 10 generations using only mutation 1, and for both mutations
      E. 10 generations using both mutations and crossover

  What can you say about the influence of various values on the search
  for an optimum path?

3. More ideas for further work
   A. Add a mechanism to the program to ensure that no two elements
      of the population are identical.  Test its effect on the
      search process.
   B. Add a mechanism to generate a new kind of mutation: it should
      randomly select a position WHERE and then rotate the cities in
      the left part (the part to the left of WHERE) of the path.
      Test its effect on the search process.
   C. Write a program to explore the subject of "genetic art" where
      each member of the population is a Lisp expression that
      generates an image and the user interactively performs
      the selection process.