# Genetische Repräsentation

Als genetische Repräsentation (auch Problemrepräsentation) wird die Art und Weise bezeichnet, wie ein Optimierungsproblem codiert wird, sodass es mit einem evolutionären Algorithmus (EA) gelöst werden kann. EA 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 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.

## 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 basales 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 eine 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 EA 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.

## Hybridisierung und 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. 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 $N$ Ressourcen und $T$ Zeiteinheiten, wobei $T$ 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 können aus den Belegungsmatrizen 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.
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 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.
Zur Verwaltung der zu verplanenden Ressourcen mögen zwei Belegungsmatrizen dienen, eine für Rechnerhardware und zusätzliches Equipment und eine für die Software. Die Unterscheidung reflektiert den Umstand, dass im ersten Fall eine Ressource nur einmal belegt werden kann und es für die Auswertung wichtig ist, zu vermerken, durch welchen Teiljob. Bei der Software ist hingegen lediglich von Bedeutung, dass das Limit gleichzeitiger Verwendung nicht überschritten wird. Ausschnitte beider Matrizen sind im rechten Bild mit einer teilweisen Belegung durch bereits abgearbeitete Gene (grau) dargestellt. Dabei wird die SW 0 durch die Teiljobs 8 und 35 verwendet, was zu den unterschiedlichen Einträgen führt. Zuerst wird der Teiljob 32 verplant. Ihm hat der Genparameter die Ressource 7 zugeteilt, die er ab Zeiteinheit (ZE) 14 für drei ZE belegt. Danach wird das Gen für den Teiljob 47 abgearbeitet, der wegen der Belegung der Equipmentressource 4 erst ab ZE 18 starten kann. Daher entsteht für die ebenfalls belegte Hardwareressource 7 eine Lücke von einer ZE. Schließlich belegt Teiljob 15 die Hardwareressource 8 und die SW 2. Nach Abarbeitung des Chromosoms enthalten die Belegungsmatrizen den zugehörigen Phänotyp. Es sei angemerkt, dass die jeweilige Bearbeitungsdauer den Stammdaten der Teiljobs entnommen wird. Außerdem wird davon ausgegangen, dass alle HW-Ressourcen gleich schnell sind, also keine Anpassungen der Belegungszeiten erforderlich sind.
Das Beispiel zeigt deutlich, dass die Genotyp-Phänotyp-Abbildung recht aufwändig sein kann und phänotypische Eigenschaften nicht unbedingt direkt aus den Allelwerten des Genoms ablesbar sind. So steht beispielsweise das Gen von Teiljob 15 zwar hinter dem von Teiljob 47, aber der zugehörige Job wird im Beispiel trotzdem früher ausgeführt. Als weiteres Beispiel für komplexe Genotyp-Phänotyp-Abbildungen können die meisten simulationsbasierten Aufgabenstellungen angesehen werden, bei denen das Genom ein mehr oder weniger komplexes Simulationsmodell konfiguriert.
Bei der hier vorgestellten beispielhaften Interpretation dreier Gene eines Chromosoms wurde nicht berücksichtigt, dass die Teiljobs als Workflows organisiert sind und es demzufolge Reihenfolgerestriktionen gibt. Deren Beachtung kann durch eine entsprechende Erweiterung der Bewertung oder besser durch geeignete Reparaturmaßnahmen umgesetzt werden.