Bewertung

Projektnavigation: Einleitung Pool cross over Mutation Bewertung Selektion Ausgabe Steuerung

Bewertung

von Christian Krahn

Beschreibung

Dieses Bewertungsmodul dient dazu, Graphen, die in dem Programmablauf berechnet werden, zu bewerten. Dabei wird als Bewertungsindex die Summe der Abstände zwischen den einzelnen Knoten verwendet.

Benötigt

eine Liste mit Koordinaten in Form von Paaren

Funktionsweise

Dem Modul wird eine Liste von Wegpunkten ((x1 . y1) (x2 . y2)) übergeben.

Der erste Teil, die Funktion "abstand", berechnet den Abstand zwischen zwei Knoten und gibt diesen als Zahl zurück.

Der zweite Teil, die Funktion "bewerte", benutzt die abstands-Funktion um einen kompletten Graphen zu bewerten. Dabei werden die Abstände der Knoten addiert und als letztendlichen Bewertungsindex ausgegeben.

Der dritte Teil, die Funktion "fuegePunkte", wird benötigt, um den Start- und Endpunkt einem Graphen zuzufügen, damit die Länge des Graphen korrekt berechnet werden kann. Der Startpunkt ist (0 . 0) und der Endpunkt (100 . 100).

Quellcode
(define
  (abstand knoten1 knoten2)
  (sqrt(+ (* (- (car knoten1) (car knoten2)) (- (car knoten1) (car knoten2)))
          (* (- (cdr knoten1)(cdr knoten2))(- (cdr knoten1) (cdr knoten2))))))
(define
  (bewerte graph)
  (cond
    ((null? (cdr graph)) 0)
    (else
        (+ (abstand (car graph) (cadr graph)) (bewerte (cdr graph))))))
(define
  (fuegePunkte weg)
  (if (not (null? weg))
(reverse (cons '(100 . 100) (reverse (cons '(0 . 0) weg))))))