Bei evolutionären Algorithmen (EA) versteht man unter genetischer Repräsentation (auch Problemrepräsentation) die Art und Weise, wie ein Optimierungsproblem codiert wird, sodass es mit einem EA gelöst werden kann. EAs suchen Lösungen für Optimierungsprobleme mit Methoden der natürlichen Evolution. Der Begriff der genetischen Repräsentation umfasst dabei sowohl die konkreten Datenstrukturen und Datentypen, mit denen das genetische Material der Lösungskandidaten in Form eines Genoms realisiert wird, als auch die Beziehungen zwischen Suchraum und Problemraum. Im einfachsten Fall entspricht der Suchraum dem Problemraum (direkte Repräsentation). Die Wahl der Problemrepräsentation ist gebunden an die Wahl der genetischen Operatoren, beide wirken sich entscheidend auf die Effizienz der Optimierung aus. Die Unterschiede in den genetischen Repräsentationen sind eines der Hauptkriterien für die Klassifizierung der unterschiedlichen EAs. Das Genom eines Lösungskandidaten hat oft die Form eines Bitstrings, einer Liste ganzer und/oder reeller Zahlen, einer Reihenfolge (bei kombinatorischen Problemen wie Travelling Salesman) oder eines Baumes.
Die Terminologie entspricht oft dem biologischen Vorbild. So werden die Daten, die einen Lösungskandidaten kennzeichnen, als Individuum bezeichnet. Die zugehörige Datenstruktur nennt man ein Chromosom. Jedes Chromosom besteht aus Genen und die möglichen Werte eines bestimmten Gens heißen Allele.
Häufig verwendete genetische Repräsentationen Mit Ausnahme der genetischen Programmierung werden meist lineare Strukturen für die genetische Repräsentation verwendet, deren Länge durch die Anwendung vorgegeben wird. Üblicherweise werden hierzu Felder fester Größe benutzt. Wenn es die Anwendung jedoch erfordert, wurde auch mit Chromosomen dynamischer Länge erfolgreich experimentiert.
Die genetischen Algorithmen basieren in ihrer ursprünglichen Form auf Bitstrings. Diese wurden später durch Felder reeller Zahlen oder anderer Datenstrukturen erweitert.
Die Evolutionsstrategie verwendet lineare reellwertige Darstellungen, z. B. ein Feld aus reellen Zahlen. Darin werden nicht nur die Entscheidungsvariablen, sondern auch ein oder mehrere Strategieparameter der Mutation codiert.
Die genetische Programmierung (GP) war Vorreiter bei der Einführung baumartiger Darstellungen dynamischer Größe und entwickelte dafür geeignete genetische Operatoren. Baumartige Repräsentationen werden in der GP verwendet, um funktionsfähige Programme mit gewünschten Eigenschaften zu generieren.
Unterscheidung Such- und Problemraum In der Natur ist die Information über sämtliche grundlegenden Eigenschaften (Phänotyp) eines Organismus (z. B. äußere Erscheinung, Stoffwechsel oder grundlegendes Verhalten) innerhalb jedes Organismus gespeichert, wie schon Gregor Mendel um 1860 entdeckte. Heute ist bekannt, dass diese Speicherung mit dem genetischen Code realisiert wird. Auf molekularer Ebene sind die definierenden Eigenschaften als DNA codiert. Die gesamte genetische Ausstattung eines Organismus wird als Genotyp bezeichnet. Der Genotyp bestimmt den Phänotyp, allerdings über einen komplizierten Prozess, die Genexpression.
Analog zur Biologie wird bei evolutionären Algorithmen zwischen Problemraum (entspricht Phänotyp) und Suchraum (entspricht Genotyp) unterschieden. Der Problemraum enthält also konkrete Lösungen für das behandelte Problem, während der Suchraum die codierten Lösungen enthält. Die Abbildung (engl. mapping) von Suchraum auf Problemraum wird als Genotype-Phenotype-Mapping bezeichnet. Die genetischen Operatoren werden auf Elemente des Suchraums angewandt, zur Auswertung werden Elemente des Suchraums per Genotype-Phenotype-Mapping auf Elemente des Problemraums abgebildet.
Beziehungen zwischen Such- und Problemraum Die Bedeutung einer geeigneten Wahl des Suchraums für den Erfolg einer EA-Anwendung wurde schon früh erkannt. An einen geeigneten Suchraum und damit an ein geeignetes Genotype-Phenotype-Mapping können folgende Anforderungen gestellt werden:
Vollständigkeit Alle möglichen zulässigen Lösungen müssen im Suchraum enthalten sein.
Redundanz Wenn mehr mögliche Genotypen als Phänotypen existieren, nennt man die genetische Repräsentation des EA redundant. In der Natur spricht man vom degenerierten genetischen Code. Bei einer redundanten Repräsentation sind neutrale Mutationen möglich, dabei handelt es sich um Mutationen, die den Genotyp verändern, die sich dabei aber nicht auf den Phänotyp auswirken. So kann es je nach Anwendung der genetischen Operatoren phänotypisch unveränderte Nachkommen geben, was u. a. zu unnötigen Fitnessbestimmungen führt. Da die Bewertung in realen Anwendungen in der Regel den größten Teil der Rechenzeit ausmacht, kann dies den Optimierungsprozess verlangsamen. Darüber hinaus kann es dazu führen, dass die Population eine höhere genotypische als phänotypische Diversität aufweist, was ebenfalls den evolutionären Fortschritt behindern kann.
In der Biologie besagt die Neutrale Theorie der molekularen Evolution, dass dieser Effekt eine dominierende Rolle in der natürlichen Evolution spielt. Forschungsergebnisse im Bereich der evolutionären Algorithmen legen wiederum nahe, dass neutrale Mutationen die Funktionsfähigkeit von EAs insofern verbessern können, als Populationen, die zu einem lokalen Optimum konvergiert sind, durch genetische Drift eine Möglichkeit besitzen, diesem lokalen Optimum zu entkommen. Das Thema wird jedoch kontrovers diskutiert, und es gibt keine eindeutigen Ergebnisse zur Neutralität in EAs. Andererseits existieren bewährte Vorgehensweisen zur Behandlung von vorzeitiger Konvergenz von EAs.
Lokalität Die Lokalität einer genetischen Repräsentation entspricht dem Maß, zu dem Abstände im Suchraum nach dem Genotype-Phenotype-Mapping im Problemraum erhalten bleiben. Das heißt, eine hohe Lokalität hat eine Repräsentation genau dann, wenn Nachbarn im Suchraum auch Nachbarn im Problemraum sind. Damit erfolgreiche Schemata durch das Genotype-Phenotype-Mapping nach einer geringfügigen Mutation nicht zerstört werden, muss die Lokalität einer Repräsentation hoch sein.
Skalierung Beim Genotype-Phenotype-Mapping können die Elemente des Genotyps verschieden skaliert (gewichtet) werden. Der einfachste Fall ist die uniforme Skalierung: Alle Elemente des Genotyps sind im Phänotyp gleich gewichtet. Eine häufige Skalierung ist die exponentielle. Werden ganze Zahlen binär codiert, haben die einzelnen Stellen der entstandenen binären Zahl exponentiell verschiedene Gewichtungen bei der Repräsentation des Phänotyps. Beispiel: Die Zahl 90 wird binär (also zur Basis zwei) als 1011010 geschrieben. Verändert man nun eine der vorderen Stellen in der binären Schreibweise, hat dies deutlich größere Auswirkungen auf die codierte Zahl als etwaige Veränderungen an den hinteren Stellen (der Selektionsdruck wirkt an den vorderen Stellen exponentiell stärker). Aus diesem Grund tritt bei exponentieller Skalierung der Effekt auf, dass die „hinteren“ Stellen im Genotyp zufällig fixiert werden, bevor die Population nahe genug am Optimum angelangt ist, um diese Feinheiten anzupassen.
Reparatur beim Genotyp-Phänotyp-Mapping Bei der Abbildung des Genotyps auf den zu bewertenden Phänotyp kann aufgabenspezifisches Wissen verwendet werden, um den Phänotyp zu verbessern und/oder sicherzustellen, dass Einschränkungen eingehalten werden (genotypische oder phänotypische Reparatur). Dies dient auch zur Verbesserung der EA-Leistung in Bezug auf Laufzeit und Lösungsqualität.
Beispiele eines Genotyp-Phänotyp-Mappings
Beispiel einer direkten Repräsentation Eine naheliegende und häufig verwendete Kodierung für das Travelling-Salesman-Problem und verwandte Aufgaben besteht darin, die zu besuchenden Städte fortlaufend zu nummerieren und als ganze Zahlen im Chromosom zu speichern. Ein Chromosom stellt dann eine Tour als Permutation der Städtenummern dar. Die genetischen Operatoren müssen so angepasst werden, dass sie nur die Reihenfolge der Gene (Städte) ändern und keine Löschungen oder Verdoppelungen verursachen. Somit entspricht die Reihenfolge der Gene der der Städte, und es liegt eine einfache Eins-zu-Eins-Abbildung vor.
Beispiel eines komplexen Genotyp-Phänotyp-Mappings Bei kombinatorischen Aufgaben ist in der Regel eine umfangreiche Abbildung des Genoms auf den Phänotyp als Element des Problemraums erforderlich. Zum Beispiel enthält das Genom einer Schedulingaufgabe alle erforderlichen Informationen für die einzelnen Schedulingoperationen, insbesondere deren Reihenfolge und eventuell weitere Daten z. B. über die Ressourcenauswahl. Ein Phänotyp besteht je nach Aufgabenstellung aus einer oder mehreren Belegungsmatrizen, die die zeitliche Belegung einer Ressourcenart darstellen. Eine Belegungsmatrix besteht aus Ressourcen und Zeiteinheiten, wobei eine obere Abschätzung der benötigten Zeit darstellt. Der Inhalt eines Matrixelements ist die Kennung (meist ein Index in einer Tabelle) derjenigen Schedulingoperation, die die Ressourcenbelegung veranlasst hat. In der Liste der Schedulingoperationen sind meist weitere Daten hinterlegt, wie beispielsweise die erforderliche Dauer der Belegung. Was unter einer Schedulingoperation genau zu verstehen ist, hängt von der Aufgabenstellung ab. Dazu zwei Beispiele: Bei der Produktionsplanung (Job-Shop-Scheduling) sind es einzelne Arbeitsschritte, bei der Schulstundenplanung sind es Unterrichtsstunden einer Klasse, wobei hier mindestens 2 Ressourcen zu belegen sind: ein geeigneter Raum und eine geeignete Lehrkraft, der dann aber auch alle Unterrichtsstunden des betreffenden Faches zuzuordnen sind (zusätzliche Restriktion). Nach Abarbeitung aller Gene des Chromosoms enthalten die Belegungsmatrizen die erzeugte Lösung und es können eine Reihe von Kennziffern für die Bewertung des Schedules und damit zur Fitnessermittlung abgelesen werden: Beispielsweise die Fertigstellungszeit eines Auftrags, die gesamte Bearbeitungszeit aller Aufträge, die Auslastung der Ressourcen oder die Freistunden von Schulklassen oder Lehrkräften. Außerdem ermöglicht die Aufstellung der Matrizen die Erkennung und Beseitigung von Belegungskonflikten. links|mini|Gene für drei Scheduling- operationen basierend dem Gentyp-Beispiel mini|Ausschnitte aus zwei Belegungsmatrizen zur Illustration der Wirkung der durch die drei Beispielgene beschriebenen Schedulingoperationen. Die Erstellung einer Belegungsmatrix soll anhand des Schedulingbeispiels erläutert werden, das bereits bei der Beschreibung eines Genoms für komplexe Gene Verwendung gefunden hat. Das linke Bild zeigt noch einmal den dort gezeigten Chromosomausschnitt, der auf den im Beispiel definierten Gentypen beruht. Zur leichteren Beschreibung sind die Gene hier unterschiedlich eingefärbt und die braun gekennzeichneten Indizes entsprechen den Indizes der zu verplanenden Ressourcen, die durch die Genparameter aus der Menge der für den jeweiligen Teiljob geeigneten Ressourcen ausgewählt wurden. Der erste Genparameter gibt dabei die dem Teiljob zugeordnete Hardware an und der zweite die zu verwendende Software, sofern diese lizenzrechtlichen Mengenbegrenzungen unterliegt. Mit Hilfe des dritten Parameters kann dem Teiljob bei Bedarf zusätzliches Equipment zugeordnet werden. Jedes Gen beschreibt eine Schedulingoperation, wobei der Gentypcode dem zu verplanenden Teiljob der Workflows entspricht.