User Parameters
This document contains short descriptions of the GATSS user parameters.
A more complete overview is available in the information document.

Population Size
This parameter specifies the number of chromosomes that will be created at each generational step. Usual values are in the range between 50 and 500.

This value represents the number of generations that will be created before the system stops and displays the result. In other words, this is the time limit of the evolution. Usual values are in the range between 25 and 300.
It's recommended to start with a low value and increase it until the resulting graph shows that the population fitness has time enough to converge.


Crossover is applied when a new offspring chromosome, based on two parent chromosomes, is created. The algorithm selects one part from the first parent chromosome and another part from the other parent and the combines them, resulting in the new offspring chromosome.

The chromosome part selection and recombination differs between crossover algorithms. In this system, two kinds of crossover algorithms are provided.

The "Crossover Probabilaty" factor determines how often crossover will occur.

The purpose of mutation is to reintroduce divergence into a converging population. This is a tool in avoiding local maxima, which is a common problem in stochastic algorithms.

The kind of mutation used in this program is called "scramble sublist mutation". It randomly selects a section of the chromosome and mixes up the genes within the selected section.

The "Mutation Probabilaty" factor determines how often mutation will occur.

Population Deletion
This GA part defines how new chromosomes will be put into the existing population.

In this system, two different kinds are implemented.

Fitness Evaluation
Every chromosome fitness in a GA is evaluated using some kind of evaluation technique.

When solving the Traveling Salesman problem, it is wise to let the initial evaluation of a chromosome be the sum of the distances between the genes in the chromosome. Since the goal is to find the shortest path, low evaluation value is equal to good fitness. For technical reasons (the system uses "Roulette Wheel Selection"), the initial chromosome evaluation is "inverted" in such a way that the best chromosome gets the worst chromosome's evaluation and v.v. This process is discussed in more detail in the information document.

After the initial evaluation, the actual chromosome fitness of each chromosome (based on the evaluation mentioned above) is calculated using one out of three algorithms.

Genetic Algorithms are highly stochastic. At several stages during evolution, random values are generated to encourage new, possibly better solutions to the problem at hand.

In this implementation it is possible to "freeze" the random generator (by assigning "Seed" other integer values than zero) which makes it possible to repeat one specific GA run. If "Seed" is assigned the value 0, the program sets the internal seed to a random value, which in turn results in a different outcome at every execution.

GNU plot delay
For technical reasons, the generation of the GATSS Results document has to wait until GNU-plot has finished drawing. The number of seconds that GNU-plot needs depends on this WWW-server load and on the number of generations to be plotted. I've found 3s to be reliable. If corrupt images occur in the result document, please increase this value until they reappear.

Node Data
The entries in this form defines the nodes in the graph which is to be optimized by the GA. The first entry is the node that the resulting path will start and end in.

Initially, the nodes are cities in Europe (including my home village Nykvarn and the place where I at the time do my CS studies - Umeň), but you are free to edit. Any real life problem (or virtual, for that matter) involving a graph is suitable. -It doesn't have to involve cities or geographical locations.
The name you give each node (city name initially) will show up in the "Best solution" section in the GATSS results document, allowing you to trace the best solution through your node names.

The number of nodes are crucial to the success of the Genetic Algorithm. This matter is discussed in the information document.

For the time beeing, the form syntax check is poor (this actually complies the entire collection of parameters), and thus, leaves no room for mistyping. Please use exactly the same syntax shown in the form initially:

[Node name]:[x coordinate],[y coordinate]
No empty spaces or lines before or after the node definitions are allowed etc. Otherwise the program will act unpredictable.

1 May 1995, Thomas Pederson.