Ein Genetic Algorithm – im Deutschen ge­ne­ti­scher Al­go­rith­mus – ist ein Op­ti­mie­rungs­ver­fah­ren, das die Me­cha­nis­men der na­tür­li­chen Selektion nachahmt und darauf abzielt, Po­pu­la­tio­nen po­ten­zi­el­ler Lösungen iterativ zu ver­bes­sern. Ge­ne­ti­sche Al­go­rith­men kommen in einer Vielzahl von An­wen­dungs­be­rei­chen zum Einsatz, die von der Op­ti­mie­rung tech­ni­scher Systeme bis zu ma­schi­nel­lem Lernen reichen.

Was ist unter ge­ne­ti­schen Al­go­rith­men zu verstehen?

Bei ge­ne­ti­schen Al­go­rith­men be­zie­hungs­wei­se Genetic Al­go­rith­ms (kurz GAs) handelt es sich um eine globale Heuristik zur Lösung von Ent­schei­dungs­pro­ble­men, die auf den Prin­zi­pi­en der na­tür­li­chen Selektion und Genetik basiert. Ge­ne­ti­sche Al­go­rith­men zählen zu den evo­lu­tio­nä­ren Al­go­rith­men und nutzen Me­cha­nis­men, die den Prozessen der na­tür­li­chen Auslese nach­emp­fun­den wurden, um Lösungen für komplexe Probleme schritt­wei­se zu ver­bes­sern. Das bedeutet, es wird ein „Überleben der Stärkeren” simuliert, welches auf folgenden Prämissen beruht:

  1. In­di­vi­du­en kon­kur­rie­ren um Res­sour­cen und darum, sich zu paaren.
  2. Die er­folg­reichs­ten bzw. stärksten In­di­vi­du­en zeugen mehr Nach­kom­men als andere.
  3. Die Gene der „fittesten” El­tern­tei­le werden über Ge­ne­ra­tio­nen hinweg vererbt. Dadurch erzeugen diese des Öfteren Nach­kom­men, die über vor­teil­haf­te­re Gen­se­quen­zen verfügen als sie selbst.
  4. Da lang­fris­tig die besten Gene wei­ter­ge­ge­ben werden, ist jede Ge­ne­ra­ti­on besser an ihre Umgebung angepasst als die vorherige.

Genetic Al­go­rith­ms erzeugen eine Po­pu­la­ti­on von In­di­vi­du­en, von denen jedes eine po­ten­zi­el­le Lösung für das gegebene Problem ist. Die­je­ni­gen Arten, denen es am besten gelingt, sich an ihre Umgebung an­zu­pas­sen, überleben und pflanzen sich fort. Die ver­schie­de­nen In­di­vi­du­en werden durch so­ge­nann­te Chro­mo­so­men re­prä­sen­tiert und in Form von Zei­chen­ket­ten (Zeichen, Bits, Float oder Integer) dar­ge­stellt. Die einzelnen Chro­mo­so­men lassen sich wiederum in Gene zerlegen, die ein be­stimm­tes Merkmal wie die Haarfarbe angeben. Die Aus­prä­gun­gen eines Gens – in diesem Fall bei­spiels­wei­se blond, braun oder schwarz – werden als Allele be­zeich­net.

KI-Lösungen
Mehr Digital-Power dank Künst­li­cher In­tel­li­genz
  • In Sekunden zur Online-Präsenz
  • Mehr Wachstum mit KI-Marketing
  • Zeit und Res­sour­cen sparen

Um der optimalen Lösung immer nä­her­zu­kom­men, starten ge­ne­ti­sche Al­go­rith­men einen mehr­stu­fi­gen Prozess aus Be­rech­nung und Re­pro­duk­ti­on. Die Chro­mo­so­men werden über mehrere Ge­ne­ra­tio­nen be­zie­hungs­wei­se Ite­ra­tio­nen durch ver­schie­de­ne ge­ne­ti­sche Ope­ra­to­ren – Selektion, Kreuzung (Re­kom­bi­na­ti­on) sowie Mutation – verändert und kom­bi­niert, um schritt­wei­se bessere Lösungen zu finden. Das bedeutet, ge­ne­ti­sche Al­go­rith­men nähern sich über die Kom­bi­na­ti­on guter Teil­lö­sun­gen einer guten globalen Lösung an.

Wie funk­tio­nie­ren Genetic Al­go­rith­ms?

Der Ite­ra­ti­ons­pro­zess un­ter­teilt sich ty­pi­scher­wei­se in folgende Sub­rou­ti­nen:

  1. Das Op­ti­mie­rungs­pro­blem wird kodiert be­zie­hungs­wei­se auf ein bi­när­ko­dier­tes Chromosom ab­ge­bil­det.
  2. Der ge­ne­ti­sche Al­go­rith­mus erzeugt eine Po­pu­la­ti­on von In­di­vi­du­en und in­itia­li­siert diese zufällig. Die Aus­gangs­po­pu­la­ti­on wird auch als Ge­ne­ra­ti­on 0 be­zeich­net.
  3. Jedem In­di­vi­du­um wird ein Fit­ness­score in Form einer reellen Zahl zu­ge­ord­net.
  4. Mithilfe einer vor­de­fi­nier­ten Se­lek­ti­ons­va­ri­an­te wählt der Genetic Algorithm Eltern aus der Be­völ­ke­rung aus.
  5. Auf Grundlage der ge­ne­ti­schen In­for­ma­tio­nen beider El­tern­tei­le werden Nach­kom­men erzeugt.
  6. Die ge­ne­ti­schen Merkmale der Nach­kom­men (Allele) mutieren mög­li­cher­wei­se, was dazu führt, dass ihre Werte in­ver­tiert werden.
  7. Die Po­pu­la­ti­on wächst um die neu erzeugten Nach­kom­men. Über­steigt die Po­pu­la­ti­ons­grö­ße das fest­ge­setz­te Limit, legt ein Er­set­zungs­sche­ma fest, welche In­di­vi­du­en fortan nicht mehr Be­stand­teil der Lö­sungs­men­ge sind.
  8. Solange kein Ab­bruch­kri­te­ri­um erfüllt wird, wie­der­holt der ge­ne­ti­sche Al­go­rith­mus die Schritte 3 bis 7, um sich der optimalen Lösung des Problems immer weiter an­zu­nä­hern. Das Stopp­kri­te­ri­um lässt sich jedoch sehr un­ter­schied­lich aus­ge­stal­ten. Manche Al­go­rith­men durch­lau­fen eine gewisse Anzahl an Ge­ne­ra­tio­nen, während andere aktiv sind, bis es keine Ver­bes­se­rung gegenüber der vor­he­ri­gen Ge­ne­ra­ti­on mehr gibt.

Fit­ness­score

Die Fitness ist ein Synonym für die An­pas­sungs­fä­hig­keit der einzelnen In­di­vi­du­en. Der Fit­ness­score eines In­di­vi­du­ums gibt demnach dessen Kon­kur­renz­fä­hig­keit an. Das Ziel des ge­ne­ti­schen Al­go­rith­mus besteht darin, die Person mit der idealen (oder fast idealen) Fitness ausfindig zu machen. Die In­di­vi­du­en mit besseren Scores werden mit höherer Wahr­schein­lich­keit aus­ge­wählt, um Nachwuchs zu zeugen. Dies führt dazu, dass neue Ge­ne­ra­tio­nen im Durch­schnitt bessere Teil­lö­sun­gen haben als frühere.

Welche Ope­ra­to­ren nutzen Genetic Al­go­rith­ms?

Ge­ne­ti­sche Al­go­rith­men greifen auf ver­schie­de­ne Ope­ra­to­ren zurück, um die Aus­gangs­po­pu­la­ti­on wei­ter­zu­ent­wi­ckeln. Zu den grund­le­gen­den Me­cha­nis­men, welche die Evolution überhaupt erst er­mög­li­chen, zählen Selektion, Re­kom­bi­na­ti­on und Mutation. Nach­fol­gend werden die einzelnen GA-Ope­ra­to­ren genauer vor­ge­stellt.

Selektion (Selection-Operator)

Selektion bestimmt, welchen In­di­vi­du­en es erlaubt wird, Nachwuchs zu zeugen und wie viele Nach­kom­men ihnen gestattet werden. Die Auswahl der El­tern­tei­le basiert auf dem Fit­ness­score, wobei der Genetic Algorithm Personen mit guten Werten bevorzugt.

Re­kom­bi­na­ti­on (Crossover-Operator)

Neue In­di­vi­du­en werden durch Re­kom­bi­na­ti­on erzeugt. Die Kreu­zungs­stel­len wählt der ge­ne­ti­sche Al­go­rith­mus per Zufall aus. An den ent­spre­chen­den Stellen werden daraufhin die Gene aus­ge­tauscht, wodurch Nach­kom­men mit neuen Ei­gen­schaf­ten entstehen. Die nach­fol­gen­de Übersicht zeigt ein Beispiel für Re­kom­bi­na­tio­nen auf:

  • Gene von El­tern­teil 1: A|B|C|D|E|F
  • Gene von El­tern­teil 2: G|H|I|J|K|L
  • Gene des Nach­wuch­ses: A|B|I|J|K|F

Mutation (Mutation-Operator)

Die Grundidee von Mu­ta­tio­nen besteht darin, zufällige Gene in die Nach­kom­men ein­zu­fü­gen – also die po­ten­zi­el­le Lösung eines Ent­schei­dungs­pro­blems ab­zu­än­dern. Das hält die Vielfalt innerhalb der Po­pu­la­ti­on aufrecht und ver­hin­dert ein vor­zei­ti­ges Kon­ver­gie­ren. Hier ein Beispiel für eine Mutation:

  • Gene vor Mutation: A|B|C|D|E|F
  • Gene nach Mutation: A|B|L|D|T|F

In welchen Bereichen werden Genetic Al­go­rith­ms ein­ge­setzt?

Ge­ne­ti­sche Al­go­rith­men finden vor allem in An­wen­dungs­be­rei­chen Ver­wen­dung, wo tra­di­tio­nel­le ana­ly­ti­sche Methoden an ihre Grenzen stoßen. Dies gilt haupt­säch­lich für Probleme mit einem großen und komplexen Lö­sungs­raum. Ein zentrales Ein­satz­ge­biet stellt Deep Learning dar, wo Genetic Al­go­rith­ms zur Op­ti­mie­rung der Gewichte von Neural Networks ein­ge­setzt werden.

Hinweis

Im Guide „Deep Learning vs. Machine Learning” erläutern wir die Un­ter­schie­de zwischen den beiden Lern­ver­fah­ren.

Darüber hinaus werden ge­ne­ti­sche Al­go­rith­men oftmals in der Pro­duk­ti­ons­pla­nung verwendet. Dort helfen sie, optimale Zeitpläne und Res­sour­cen­zu­wei­sun­gen zu finden. In der Wirt­schaft und im Fi­nanz­we­sen kommen die Al­go­rith­men sowohl im Zuge der Port­fo­lio­op­ti­mie­rung als auch bei der Ent­wick­lung komplexer Han­dels­stra­te­gien zum Einsatz. Ein weiteres An­wen­dungs­ge­biet ist das Hy­per­pa­ra­me­ter­tu­ning von Modellen aus dem Bereich Machine Learning. Obwohl sie nicht immer die ef­fi­zi­en­tes­te Methode sind, gelten GAs aufgrund ihrer Fle­xi­bi­li­tät als sehr viel­sei­ti­ge Op­ti­mie­rungs­tech­nik.

Prak­ti­sches An­wen­dungs­bei­spiel für ge­ne­ti­sche Al­go­rith­men

An­ge­nom­men, die Aufgabe eines ge­ne­ti­schen Al­go­rith­mus besteht darin, eine Ziel­zei­chen­ket­te – bei­spiels­wei­se „The fittest survive” – zu erzeugen, die ausgehend von einer zu­fäl­li­gen Zei­chen­ket­te gleicher Länge gebildet wird. Die einzelnen Zeichen (A bis Z, a bis z, 0 bis 9 und Son­der­zei­chen) stellen in diesem Beispiel die Gene dar. Die Zei­chen­ket­te lässt sich hingegen als Chromosom be­zie­hungs­wei­se Lösung be­trach­ten. Der Fit­ness­score bildet die Anzahl der Zeichen ab, die von der Ziel­zei­chen­ket­te abweichen. Dem­zu­fol­ge werden In­di­vi­du­en mit einem niedrigen Score bevorzugt. Die nach­fol­gen­de Tabelle zeigt auf, wie der Output in diesem Fall aussehen könnte:

Ge­ne­ra­ti­on Zei­chen­ket­te Fitness
1 #tZ4?=Lk4$)ge@Bk5_p 19
2 #tZ4?=Lk4$)ge@Bk5_p 19
3 .-2b3Kp{rM9-pLmv8rQ 18
4 .-2 3Kp{rM9-pLmv8rQ 17
5 *hr+D7(,%sPi83r]o38 16
31 Th# fijtest s4rvive 3
32 The fiwtest s4rvive 2
33 The fittest s4rvive 1
34 The fittest s4rvive 1
35 The fittest survive 0

Al­ler­dings sei an dieser Stelle angemerkt, dass der Output mög­li­cher­wei­se variiert. Dieser Umstand lässt sich darauf zu­rück­füh­ren, dass der Genetic Algorithm mit zu­fäl­li­gen Zei­chen­fol­gen startet.

IONOS AI Model Hub
Erste deutsche, mul­ti­mo­da­le KI-Plattform
  • 100 % DSGVO-konform und sicher in Deutsch­land gehostet
  • Die leis­tungs­stärks­ten KI-Modelle auf einer Plattform
  • Kein Vendor Lock-in durch Open Source
Zum Hauptmenü