Fitnessfunktion
Eine Fitnessfunktion ist die Zielfunktion eines evolutionären (Optimierungs-)Algorithmus (EA). Gelegentlich wird eine Fitnessfunktion auch als Teil einer Zielfunktion beschrieben[1] oder andersherum. Wie auch evolutionäre Algorithmen haben Fitnessfunktionen ein biologisches Vorbild, die biologische Fitness, die den Grad der Anpassung eines Organismus an seine Umgebung angibt. Bei evolutionären Algorithmen beschreibt die Fitness eines Lösungskandidaten, wie gut er das zugrunde liegende Optimierungsproblem löst. Die Fitnessfunktion berechnet aus den Eigenschaften eines Lösungsversuchs, wie gut sich dieses „Individuum“ bzgl. des gestellten Problems als Lösung eignet.
Eine Fitnessfunktion muss nicht zwangsläufig einen absoluten Wert berechnen können, da es oft reicht, Kandidaten zu vergleichen, um den besseren auszuwählen. Eine relative Angabe der Fitness (Kandidat a ist besser als b) genügt in manchen Fällen[2], wie z. B. bei der Turnierselektion.
Wird eine Lösung zu mehreren Problemen gleichzeitig gesucht (Mehrzieloptimierung) und können diese nicht zusammengefasst werden, dann gibt die Fitnessfunktion keinen einzelnen Wert zurück, sondern ein Tupel.
Beispiele
Es soll ein Passagiersitz für Flugzeuge optimiert werden, dafür gebe es verschiedene Zielsetzungen:
- er soll möglichst leicht sein;
- er soll möglichst rund und nicht kantig sein;
- er soll kostengünstig herstellbar sein;
- er soll möglichst wenig Material verwenden, das schwer zu recyceln ist.
Die Fitnessfunktion berechne aus den Geometrieparametern dann einen Tupel mit vier Zahlen („je kleiner die Zahl, desto besser“):
{ Gewicht ; Summe_der_Kantenlängen ; Herstellungskosten ; Masse_schlechtesMaterial }
Verschiedene Sitzgeometrien können dann anhand ihrer zugehörigen Tupel eingestuft werden: Welche Variante ist am leichtesten, welche kostet am wenigsten?
Einzelnachweise
- Thomas Jansen: Analyzing Evolutionary Algorithms: The Computer Science Perspective, Seite 7.
- Thomas Baeck, D.B. Fogel, Z. Michalewicz: Evolutionary Computation 2: Advanced Algorithms and Operators, Seite 2.