WS 2003/04 - C# - Projekt - Jörg Pührer - 0055983 - 880
GeneticTraveller 
    implementiert einen genetischen Algorithmus zur Lösung des Travelling 
    Salesman Problems (TSP). 
Das Programm wurde mit Microsoft Visual C#.Net Version 7.1.2088 erstellt. Net Framework Version 1.1.4322
Ein Handlungsreisender (= "salesman") muß eine Rundreise durch eine gewisse Anzahl vorgegebene Städte machen. Um Zeit und Geld zu sparen, sucht er dazu nach demjenigen Weg, der unter allen denkbaren Routen die kürzeste Gesamtlänge aufweist.
kurze Anleitung:
 
linker Bereich:
Im linken, weißen Bereich können Reiseziele (durch Klicken) erstellt 
  werden.
  Der Algorithmus soll eine möglichst kurze Route finden, die alle Reiseziele 
  erreicht und beim selben Ziel endet, an dem sie beginnt.
Die Reiseziele können (mit der Maus) verschoben werden, und (durch Rechtsklick 
  & Menüauswahl) wieder gelöscht werden.
  Zwischen je zwei Reisezielen können ihre Distanz und Verbindungslinien 
  angezeigt werden (durch Rechtsklick auf die freie Fläche & Menüauswahl).
Während der Algorithmus aktiv ist wird in jedem Schritt das beste Zwischenergebnis durch eine rote Linie visualisiert.
rechter Bereich:
Rechts oben: Statistik über die aktuelle Konfiguration.
Rechts, in der Mitte, können die Einstellungen für den genetischen 
  Algorithmus vorgenommen werden.
  Größe der Population (Anzahl der Chromosomen), Anzahl der Durchgänge, 
  Mutationsrate,...
  Elitegröße bezeichnet die Anzahl der besten Chromosomen der Vorgänger-Generation, 
  die automatisch in die nachfolgende Generation aufgenommen werden.
  Elitekinder bezeichnet die Anzahl der Chromosomen, die durch CrossOver aus Elite-Mitgliedern 
  erzeugt werden.
  Kinder pro Paar legt die Anzahl der Chromosomen fest, die durch Crossover aus 
  einem selektierten Elternpaar hervorgehen soll.
  lokale Mutationsrate: legt die Wahrscheinlichkeit einer alternativen Art der 
  Mutation fest, die jeweils die Reihenfolge zwei aufeinanderfolgender Ziele vertauscht.
  Turnier: hier kann man die Art des Turnieres bestimmen, die verwendet wird, 
  falls eine Turnier-Selektion gewählt wird: Nehme die (erste Zahl) besten 
  von (zweite Zahl) zufällig ausgewählten Chromosomen zur Fortpflanzung.
lineare Selektion: nimm die bessere Hälfte der ursprünglichen Population 
  für die Fortpflanzung.
  Roulette Selektion: die Wahrscheinlichkeit für ein Individuum zur Fortpflanzung 
  ist proportional zu seiner Fitness.
  Turnier Selektion: Teile die Bevölkerung zufällig in Grüppchen 
  und ziehe die fitteren Gruppenmitglieder zur Fortpflanzung heran.
CrossOver-Distanz-Heuristik: verbinde eher näher gelegene Ziele beim Crossover.
  Mutation-Distanz-Heuristik: verbinde eher näher gelegene Ziele bei der 
  Mutation.
Rechts unten:
Hier kann man Ziele benennen und die Distanz zwischen je zwei Zielen manuell festlegen.