Pool

Projektnavigation: Einleitung Pool cross over Mutation Bewertung Selektion Ausgabe Steuerung

Poolerzeugung

von Kay Welschinger und Jakob Thom

Beschreibung

Erzeugt einen zufallsgenerierten Pool mit einer vorher definierten Anzahl von Wegen, welche aus einer vorher definierten Anzahl von Knoten mit x -und y-Koordinaten bestehen.

Datenstruktur

Der Pool ist eine Liste von Wegen,
Wege sind Listen von Knoten
und Knoten sind Paare die aus einer x und einer y Koordinate von 0 bis 100 bestehen.
Beispiel:
'(((x . y) (x . y) ...) ((x . y) (x . y) ...) ...)

Parameter

Es muss die Anzahl der zu generierenden Knoten und Wege übergeben werden.

Funktionsweise

gibZufallsWeg

Erzeugt die gewünschte Anzahl von Knoten als Paare aus Zufallszahlen von 0 bis 100 und fügt diese einer Liste hinzu.

erzeugePool

Fügt endrekursiv die gewünschte Anzahl von gibZufallsWeg erzeugten Wege in eine Liste ein.

Quellcode
(define
  (gibPool AnzahlKnoten AnzahlWege)

  (define
  (gibZufallsWeg AnzahlKnoten liste)
  (cond
    ((= 0 AnzahlKnoten) liste)
    (else
     (gibZufallsWeg (- AnzahlKnoten 1) (cons (cons (round (* 100 (random))) (round (* 100 (random)))) liste)))))

  (define
  (erzeugePool AnzahlWege akku)
  (cond
    ((= 0 AnzahlWege ) akku)
    (else
     (erzeugePool (- AnzahlWege 1) (cons (gibZufallsWeg AnzahlKnoten '()) akku)))))

  (erzeugePool AnzahlWege '()))