Professional Documents
Culture Documents
Johannes F. Gesell
Universit
at Ulm
Institut f
ur theoretische Informatik
89069 Ulm, Germany
johannes.gesell@uni-ulm.de
Genetische Algorithmen
Der Name Genetischer Algorithmus bezeichnet eine Gruppe von stochastischen heuristischen Optimierungsverfahren, die mit der lokalen Suche verwandt
sind. Um 1960 versuchten mehrere Gruppen von Forschern, Algorithmen nach
dem Vorbild der biologischen Evolution zu kreieren. Das Ergebnis war eine
ganze Reihe von verwandten Verfahren, die unter dem Sammelbegriff: Evolution
arer Algorithmus zusammengefasst wurden. John H. Holland lieferte dazu
mit seinem Standard Genetic Algorithm(SGA)[1,3] und seinen Werken u
ber
die Schematheorie[5] einen entscheidenden Beitrag. Hollands Genetischer Algorithmus ist ein Spezialfall der sehr allgemeinen und variantenreichen EvolutionStrategy Algorithmen und einer der popularsten Vertreter der Evolutionaren Algorithmen. Weitere verbreitete Varianten sind die Evolutionare Programmierung,
eine einfachere Variante die der Lokalen Suche ahnelt, und die exotische Genetische Programmierung, die nicht auf das Losen eines Problems sondern auf das
Kreieren eines neuen effektiveren Algorithmus abzielt.
Allen Evolution
aren Algorithmen gemein ist jedoch, dass sie bei der Losung
einfacher Optimierungsprobleme den klassischen Suchalgorithmen wie A*, UCS
oder der Gradientensuche unterliegen. Bei Problemen jedoch die aufgrund von
Nichtlinearit
at, Diskontinuitat oder Multimodalitat nicht effektiv bearbeitet werden k
onnen oder wegen zu hoher Komplexitat oder mangelndem Problemwissens
nicht analytisch berechnet werden konnen, bieten Genetische Algorithmen eine
hervorragende Alternative, denn sie benotigen nur sehr wenig spezifisches Problemwissen (auch wenn sie durch Anpassung an das Problem verbessert werden
k
onnen). Sie sind einfach und schnell zu implementieren, leicht zu portieren und
k
onnen, da sie hochgradig parallelisierbar sind, in verteilten Systemen u
beraus
erfolgreich eingesetzt werden. Als Nachteil kann erwahnt werden das sie wie alle
lokalen Suchalgorithmen (auch wenn sich Genetische Algorithmen in der Praxis
sich nur selten in lokalen Maxima fangen) nicht mit garantierter Sicherheit das
Globale Maximum finden und ihre Laufzeit im Regelfall der eines auf das Problem spezialisierten Algorithmus, sofern es einen gibt, unterliegt.
Mit ihren Vor- und Nachteilen werden sie heute in erster Linie im Bereich der
K
unstlichen Intelligenz oder des Maschinenlernens erfolgreich eingesetzt.
Als Vorbild f
ur Genetische Algorithmen diente die Synthetische Evolutionstheorie, die auf die Werke von Darwin und Mendel zur
uckgeht. Die zentralen Mechanismen der Evolution, Mutation, Selektion und Vererbung, werden in Genetischen Algorithmen nachgeahmt.
Das Modell der Evolution umfasst mehrere Punkte:
Genpool und Genotyp:
Innerhalb einer Population einer Spezies reprasentiert jedes Individuum seine
pers
onlichen Eigenschaften in seinem Erbgut. Die Gesamtheit der Population
findet ihre Entsprechung im Genpool, der die Gesamtheit aller genetischen
Information der Spezies darstellt. Jedem Merkmal (Phanotyp) innerhalb der
Spezies steht sein Genotyp, also das genetische Merkmal, das f
ur die Entstehung des Ph
antoyps verantwortlich ist, gegen
uber, das von mindestens einem
Angeh
origen der Spezies getragen wird. Eine einzelne Position innerhalb des
Gencodes an eine bestimmten Stelle wird als Allel bezeichnet.
Die Mendelschen Regeln:
Eine Menge von Mechanismen, denen die Vererbung von Merkmalen unterliegt. Da sie nur teilweise im Konzept der Genetischen Algorithmen umgesetzt wurden sind sie f
ur uns nicht alle von Interesse. Der wichtige Kernpunkt ist, dass bei der Zeugung von Nachkommen jedes Elternteil mit einer
gewissen Wahrscheinlichkeit seine Merkmale an die Vertreter der nachsten
Generation vererbt.
Mutation:
Bei der Zeugung eines Nachkommens hangt dessen Gencode nicht ausschlielich vom Gencode der Eltern ab. Mutation bezeichnet eine spontane Veranderung des Erbguts die von sehr unterschiedlichem Ausma sein kann. Mutationen erweitern den Genpool einer Population mit Erbinformation die zuvor
eventuell noch nicht existierten und erhohen somit die genetische Vielfalt der
Spezies.
Selektion:
Unter dem Begriff der Selektion versteht man in der Biologie eine Vielzahl
von Faktoren die zu einer Auslese unter den Vertretern einer Spezies f
uhren.
Generell ist darunter zu verstehen, dass einige Vertreter einer Spezies eine
bessere Anpassung an den vorherrschenden Lebensraum aufweisen, die ihnen
erm
oglicht, erfolgreicher im Uberlebenskampf,
in der Partnerwerbung oder
bei der Versorgung ihrer Nachkommen zu sein.
Evolution:
Evolution bezeichnet das Zusammenspiel der oben beschriebenen Mechanismen. Der Genpool einer Spezies wird stetig durch Mutation erweitert. Die
Uberlebensf
ahigkeit optimiert.
nicht m
oglich ist ein solches zweifelsfrei zu erkennen. Ublicherweise
wird es
als eine Schranke f
ur die Anzahl der Iterationen realisiert oder es wird sobald
sich die Fitness nicht weiter verbessert abgebrochen.
Mit diesen Bestandteilen lauft ein genetischer Algorithmus nach diesen Vorgaben ab:
1.
2.
3.
4.
5.
6.
7.
Repr
asentation von Individuen
Beim Entwurf eines Genetischen Algorithmus ist es nicht immer einfach eine geeignete Form f
ur die Individuen zu finden. Aufgrund der Wirkungsweise Genetischer Algorithmen ist es nur moglich, Strings aus Variablen zu verwenden. Mittels
K.O.-Kriterien, wie sie beispielsweise bei der Tabu-Suche oder bei Backtracking
verwendet werden, k
onnen hier keine Losungskandidaten aussortiert werden. Des
weiteren muss jedes Individuum zum einen der Struktur der Losung entsprechen,
umgekehrt auch eine im Problem sinnvolle Form besitzen und nat
urlich von der
Fitness-Funktion bearbeitet werden konnen. Eine weitere wichtige Eigenschaft
ist, dass alle Elemente des Strings den gleichen Einfluss auf die Losung besitzen. So ist es beispielsweise verlockend, einen String aus binaren Variablen
als Integerzahl zu interpretieren. Dies ist aber nicht ratsam, da einzelne Bits
den Betrag der Zahl unterschiedlich stark verandern. Auch w
urden viele Operatoren, die auf den String im spateren Verlauf des Algorithmus angewendet
werden verf
alscht: 810 = 10002 . Der Abstand in Bitflips zu 910 = 10012 betragt
nur 1, zur 710 = 01112 allerdings 4, obwohl die Zahlen 7 und 9 zu 8 benachbart sind. Im Allgemeinen ist die Optimierung einer einzigen Integervariable
mit einem Genetischen Algorithmus nur mit Hilfe fortgeschrittener Techniken
wie Graycoding effizient. G
angiger und angemessener sind:
Bitstrings: Sehr geeignet f
ur die Darstellung von Belegungen, wie beispielsweise beim Rucksackproblem. Geschichtlich gesehen arbeitete Hollands SGA
ausschlielich auf Bitstrings.
Integer Strings: Es ist moglich, sowohl kardinale als auch ordinale Attribute zu verwenden. Diese Darstellung gehort zu den am haufigsten verwendeten.
Strings aus Gleitkommazahlen: Gleitkommazahlen darzustellen ist moglich und wird, da Genetische Algorithmen inzwischen ofters f
ur KI-Systeme
verwendet werden h
aufiger eingesetzt.
Permutationen: F
ur viele NP-vollstandige Probleme (beispielsweise Travelling Salesman Problem) ist eine Darstellung als Permutation sehr sinnvoll.
Mutation
Der Mutationsoperator, der auf ein einzelnes Individuum angewendet wird, ist
nat
urlich in erster Linie von der gewahlten Reprasentation abhangig.
5.1
F
ur ganzzahlige Werte werden hauptsachlich zwei Mutationsverfahren eingesetzt. Beide setzten wieder eine Mutationsrate pm voraus. Random Resetting
ahnelt dem Bitflipping. Mit der Wahrscheinlichkeit pm mutiert ein Wert des
Strings und w
ahlt zuf
allig einen neuen, zulassigen Wert. Da dieses Verfahren
jedem Wert die gleiche Chance ermoglicht, eignet es sich besonders f
ur kardinale
Werte. Creep Mutation wurde f
ur eine bessere Kompatibilitat mit ordinalen
Werten entworfen. Zu einem Wert wird, wenn er mutiert, ein kleiner, positiver
oder negativer, Betrag addiert. Sehr verbreitet ist die Variante bei der jede Position mit der Wahrscheinlichkeit p2m inkrementiert und mit p2m dekrementiert
wird.
5.3
5.4
W
ahrend es bisher m
oglich war, einzelne Allele zu modifizieren, ohne auf die
Gesamtheit des Genotyps zu achten, stellt sich bei der Darstellung eines Individuums als Permutation das Problem, dass diese Vorgehensweise die grundlegenden Eigenschaften von Permutationen zerstoren w
urde. Die Tatsache, dass
werden. Ahnlich
wie beim Scramble Verfahren werden bei der Inversion Mutation mehrere Allele ausgewahlt, doch unter der Bedingung, dass diese unterbrechungslos benachbart sind. Der ausgewahlte Teil der Permutation wird
umgekehrt und zur
uckgeschrieben. Da innerhalb der drei Segmente die Ordnung
weitestgehend erhalten bleibt und sich trotzdem ein guter Teil verandert, stellt
dieses Verfahren einen Kompromiss zwischen Swap und Scramble dar und zeigt
sich wirkungsvoller als diese beiden Verfahren.
Rekombination
6.2
Bei Gleitkommazahlen k
onnen stets die selben Verfahren wie bei binaren und
ganzzahligen Werten eingesetzt werden. In diesem Fall spricht man von diskreter
Rekombination. Zus
atzlich dazu wird bei Gleitkommazahlen aber auch die
arithmetische Rekombination eingesetzt. Hierbei werden Erbinformationen
unter Umst
anden nicht direkt von Eltern zu Nachkommen weitergegeben, sondern neu gebildet. Bei jeder arithmetischen Rekombination spielt der Faktor
a eine Rolle. Er bezeichnet das Verhaltnis; in welchem die Werte der Eltern
zur Berechnung der Werte der Nachkommen ber
ucksichtigt werden. In manchen
F
allen wird a zuf
allig aus [0,1] gewahlt. Verbreiteter ist allerdings die Variante, in der a mit einer Konstante belegt wird. Ist a konstant 0,5 spricht man
von Uniformer arithmetischer Rekombination. Bei der Single Arithmetic
Recombination wird ein einzelnes Allel zweier Elternstrings ausgewahlt, bei
Simple Arithmetic Recombination alle Allele ab einem gewissem Punkt.
Nun wird f
ur jedes Elternteil ein Nachkomme erzeugt, dessen Allele bis auf
die ausgew
ahlten mit denen des entsprechenden Elternteils identisch sind. F
ur
die restlichen Allele wird der gewichtete Durchschnitt verwendet. So ware zi
als markierte Stelle des Nachkommens und den Stellen xi und yi der Eltern:
zi = a xi + (1 a) yi , wahrend die restlichen Stellen mit den Werten von
Elternteil X identisch w
aren.
6.3
Wenn die Individuen als Permutationen dargestellt werden, sind besondere Anforderungen an den Rekombinationsoperator gestellt. Zusatzlich zu den Schwierigkeiten die bereits bei der Mutation erwahnt wurden, kommt nun hinzu, dass die
Position einer Variable innerhalb des Strings nun eine zusatzliche Bedeutung
inne hat und diese Information auch vererbt werden sollte. Im Laufe der Zeit
wurde eine Vielzahl von Rekombinationsstrategien f
ur diesen Fall entwickelt. Die
am meisten verbreitete, Partially Mapped Crossover, wird hier genauer erlautert.
Weitere bekannte M
oglichkeiten sind: Edge Crossover, welche den Vorteil bietet,
dass gemeinsame Kanten der Eltern garantiert vererbt werden sowie Order und
Cycle Crossover, welche die Absicht verfolgen, die relative (Order Crossover)
beziehungsweise die absolute (Cycle Crossover) Ordnung innerhalb der Permutation zu wahren. Partially Mapped Crossover wurde urspr
unglich zum Behandeln des TSPs entworfen, kann aber problemlos f
ur alle Arten permutationsbasierter Probleme eingesetzt werden. In seiner urspr
unglichen Version erzeugt
sie aus zwei Eltern nur einen Nachfahren, es ist aber moglich, aus den zwei
gleichen Eltern durch Vertauschen der Rollen einen zweiten, unterschiedlichen
Nachkommen zu produzieren. Um aus zwei Eltern, im Nachfolgenden X und Y
genannt, einen Nachkommen zu erzeugen wird folgendermaen vorgegangen:
1. Es werden zwei Crossoverpunkte zufallig ausgewahlt. Der Inhalt von X wird
zwischen den Crossoverpunkten direkt an den Nachkommen weitergegeben.
2. F
ur jedes zwischen den Crossoverpunkten liegende Element aus Y wird u
berpr
uft, ob es bereits im Nachkommen vorkommt. Ist dies nicht der Fall wird, es
markiert.
3. Die zuvor markierten Elemente werden dem Nachkommen hinzugef
ugt: F
ur
das markierte Element aus Y wird das Element aus X gewahlt, welches dort
an der selben Position liegt. F
ur dieses Element aus X wird die Position in Y
ermittelt. Sollte diese Position im Nachfolger noch unbelegt sein, wird an dieser
Stelle das markierte Element dem Nachfolger hinzugef
ugt. Ist diese Position
bereits vergeben, wird das dort platzierte Element wiederum in Y gesucht und
das markierte Element an dieser, garantiert unbelegten Position an den Nachfolger vererbt.
4. Die restlichen, noch nicht vererbten Elemente von Y konnen nun an die
gleiche Position im Nachkommen kopiert werden.
5. (optional) Die Rollen von X und Y werden vertauscht um einen weiteren
Nachkommen zu produzieren.
Beispiel:
X= 1 2 3 4 5 6 7 8 9
Y= 9 3 7 8 2 6 5 1 4
Die Beiden Eltern X und Y. Die Umbruchstellen nach der dritten und siebten
Stelle wurden zuf
allig bestimmt. Die Elemente innerhalb der Umbruchstellen
von X werden direkt in den Nachkommen geschrieben.
N=
4 5 6 7
4 5 6 7
Die 2 aus Y wurde in N von der 5 verdrangt. Die 5 liegt auch in Y innerhalb des
markierten Bereichs und wurde von der 7 verdrangt. Die 7 liegt in Y auerhalb
des markierten Bereichs. Die 2 kann also an der Stelle der 7 eingef
ugt werden.
N=
2 4 5 6 7
Es gibt im wesentlichen zwei verschiedene Modelle, um die Population zu organisieren. Das recht einfache Generational Model und das verallgemeinerte,
verbreitetere Steady-State Model. Bei beiden Modellen verf
ugt die Population
u
ber eine feste Gr
oe g. Beim Generational Model werden bei jeder Generation
g Nachkommen gebildet, die die komplette vorhergehende Population ersetzen.
Beim Steady-State Model hingegen werden n (n < g) Individuen ausgewahlt,
um ersetzt zu werden und n weitere, um als Eltern zu dienen (was wiederum n
neue Individuen hervorbringt). Diese Auswahl wird auch Parent- und SurvivorSelection genannt.
Parent Selection
siehe: Baker, James E. (1987). Reducing Bias and Inefficiency in the Selection
Algorithm
8.2
2s
g
2i(s1)
g(g1)
Survivor Selection
10
Obwohl Genetische Algorithmen sehr erfolgreich eingesetzt wurden, ist ihr theoretischer Hintergrund noch wenig erforscht. Welche Parameter erfolgversprechend
sind und welche nicht, wird hauptsachlich empirisch untersucht und ist nur bedingt erkl
arbar. Hollands Building-Block und Schematheorie bieten die einzige
Erkl
arung der Mechanismen eines Genetischen Algorithmus.
Schemas
In Bezug auf Strings bezeichnet ein Schema eine Teilmenge der Menge aller
m
oglichen Strings einer gewissen Lange, die sich in einer Anzahl von Positionen
nicht unterscheiden. Ein Element dieser Teilmenge wird Instanz dieses Schemas
genannt. Die Anzahl gemeinsamer Stellen aller Mitglieder des Schemas wird als
Ordnung bezeichnet, die maximale Distanz zwischen zwei definierenden Stellen,
die definierende L
ange. Beispielsweise hatte das Schema *1010* die Instanzen
010100, 010101, 110100 und 110101, die Lange 6, die definierende Lange 3 und
die Ordnung 4. Einem Schema kann in einem GA eine durchschnittliche Fitness
zugeordnet werden.
Schema Wettstreit
F
ur jedes Schema der Ordnung k existieren 2k 1 andere Schemas, die die gleichen Positionen festlegen und die gemeinsam eine Partitionierung der Menge
aller m
oglichen Strings sind. Jedes Element der Population kann mehreren Schemas (mit unterschiedlichen definierenden Stellen) zugeordnet werden. Insgesamt
gibt es f
ur Strings der L
ange l genau 2l verschiedene Schemas. Man kann einen
GA als einen Wettstreit dieser Schemas betrachten, wobei jedes Schema danach
strebt, m
oglichst viele Instanzen in der Population zu besitzen. Je hoher die Fitness eines Schemas, um so mehr Instanzen werden von ihr erzeugt. Letztendlich
versucht ein GA aus dieser Menge optimaler Substrings einen optimalen String
als L
osung zu erstellen.
Building Block
Ein Building Block bezeichnet einen Substring, der, wenn er in eine andere
L
osung eingesetzt werden w
urde, diese mit erhohter Wahrscheinlichkeit verbessern w
urde. Die verschiedenen Operationen dienen alle diesem Zweck. Rekombination versucht, bew
ahrte Schemas zu bewahren und Mutation versucht, neue
Schemas mit einzubeziehen. Betrachtet man die Allele als einzelnes (Bauklotzchen), so versucht ein GA die guten von den nutzlosen zu trennen. Dabei wird
angenommen, dass benachbarte gute Blocke gute Strings hervorbringen. Dies ist
nicht immer der Fall und hangt von dem zugrundeliegenden Problem und der
gew
ahlten Repr
asentation ab. Ist dies der Fall, spricht man von GA-deceptivefunctions.
Schematheorem
Mit dem Wissen, wie die Operatoren eines GAs wirken kommen, wir nun zu zwei
Schl
ussen:
1. Je h
oher die durchschnittliche Fitness eines Schemas, umso wahrscheinlicher
wird es sich verbreiten.
2. Eine h
ohere definierende Lange erhoht die Wahrscheinlichkeit, dass ein Schema bei der Rekombination zertrennt und nur unvollstandig weittergegeben
wird.
Zusammengenommen ist dies der Kern des Schematheorems nach Holland: Schemas mit hoher Fitness und kleiner definierenden Lange verbreiten sich exponentiell schnell innerhalb der Population. Mit den Wahrscheinlichkeiten pc (h)
l1 , dass
eine Instanz durch Crossover und pm o(h) durch Mutation zerstort wird, erhalten
wir den formale Schluss des Schematheorems:
h
i
N (h, t + 1) N (h, t) ff(h,t)
1 pc (h)
l1 pm o(h)
(t)
mit:
f (h, t): durchschnittliche Fitness von Schema h in Generation t
f (t): durchschnittliche Fitness der gesamten Population in Generation t
pc : Rekombinationwahrscheinlichkeit
pm : Mutationswahrscheinlichkeit
(h): definierende L
ange von h
o(h): Ordnung von h
l: L
ange der Strings
N (h, t): erwartete Anzahl von Instanzen von h in Generation t
11
Quellen