Das es beim Menschen zwei Geschlechter gibt, und diese sich durch Kopulation vermehren, ist so natürlich und wird uns von der Natur in allen Spezies der Tier und Pfalzenwelt vorgelebt, sodass wir gar nicht auf die Idee kommen zu fragen "warum?". Warum gibt es eigentlich zwei Geschlechter? Man stelle sich einmal eine Welt vor, in der es nur ein Geschlecht von Menschen gäbe, und man könnte sich selbst einfach so vermehren (z.B. schwanger werden). Wieviel einfacher wäre die Welt! Man müsste keinen Partner mehr suchen, weder für das Leben noch den Lebensabschnitt. Gleichberechtigung der Geschlechter wäre kein Thema mehr. Es gäbe keine Pornoindustrie, Prostitution oder Sextourismus. Wenn also sexuelle Reproduktion einen solches mehr an Aufwand und Risiko bedeutet, und die Natur aber nichts umsonst tut, ... warum gibt es dann sexuelle Reproduktion? Was ist der offensichtlich immense Vorteil, der dadurch entsteht?

Jedes höher entwickelte Lebewesen, ob Mensch, Tier, Pflanze oder Pilz nutzt (zumindest Zeitweise) geschlechtliche Fortpflanzung oder sexuelle Reproduktion. Dabei ist ungeschlechtliche Fortpflanzung soviel einfacher und resourcenschonender. Die aufwändige Suche und Auswahl eines Sexualpartners bei Tieren bzw. die mitunter komplexe Übertragung der Samenzellen bei Pflanzen (welche sich ja nicht selbst fortbewegen können) entfällt. Damit sexuelle Reproduktion bei Tieren funktioniert müssen komplexe Triebe und Instinkte entwickelt und erhalten werden. Die Intensität dieser Triebe und die weitreichenden Auswirkungen können sehr gut am Menschen beobachtet werden. Der Fortpflanzungsprozess selbst ist enorm komplex und schon allein dadurch mit vielen Risiken verbunden. Pflanzen gehen komplexe Symbiosen mit Tieren ein (Bsp. Biene) oder blasen kiloweise Pollen in die Luft, zur Bestäubung durch den Wind. All diese Risiken und Resourcen könnten bei einer ungeschlechtlichen Fortpflanzung eingespart werden. Was also ist der enorme Vorteil der geschlechtlichen Fortpflanzung, der all dies rechtfertigt?

Im vorherigen Artikel wurde der Bergsteigeralgorithmus als einfacher Such- und Optimierungsalgorithmus immer weiter verbessert, bis hin zu einem genetischen Algorithmus. Einer der Verbesserungsschritte bestand hierbei von der Balkensuche, welche auch als genetischer Algorithmus mit assexueller Reproduktion verstanden werden kann, zu einem "echten" Genetischen Algorithmus mit sexueller Reproduktion. Dies ist eine wichtige Verbesserung, da sexuelle Reproduktion ein ganz entscheidendes und effizienzsteigerndes Merkmal eines Genetischen Algorithmus ist. Denn der Suchoperator der Balkensuche ist die Mutation, d.h. die Veränderung einzelner Schritte (beim Türme-von-Hanoi-Beispiel). Aber auch wenn X-Men uns etwas anderes weiß machen will: je komplexer das Lebewesen, desto geringer ist die Wahrscheinlichkeit, das eine rein zufällige Änderung eine Verbesserung ist. Viel wahrscheinlicher ist eine solche Änderung eine Regression, ein Rückschritt.

Der Suchoperator eines Genetischen Algorithmus hingegen ist die sexuelle Reproduktion. D.h. Eigenschaften von Individuen, die sich unabhängig voneineander entwickelt haben, werden nun miteinander kombiniert. Damit erhöht sich die Granularität der Suche. Der Algorithmus sucht nun nicht mehr auf der Ebene einzelner Schritte, sondern auf der Eben bereits funktionierender Schrittfolgen. Beispielsweise wird eine Schrittfolge, die etwas sinnvolles (und regelkonformes) tut - wie etwa 3 Schreiben zu versetzen - mit einer anderen Schrittfolge kombiniert, die ebenfalls bereits etwas regelkonformes und sinnvolles tut. Damit ist ein Genetisches Algorithmus um ein vielfaches effizienter als z.B. eine assexuelle Balkensuche. Deshalb ist das Aufkommen der geschlechtlichen Fortpflanzung einer der Faktoren, die höher entwickeltes Leben auf der Erde erst möglich gemacht haben.

Bild: Käfer (eng. bugs) bei der sexuellen Reproduktion (Quelle: CK-12, Nutzung unter der Creative Commons Attribution-NonCommercial 3.0-Lizenz).

Tagged in : Programmierung, Genetische Algorithmen,

Dr. Jeremias Rößler
Dr. Jeremias Rößler

ist Software Ingenieur – spezialisiert auf das Erstellen und die Pflege von großen, komplexen Softwaresystemen, die unter akzeptablen Kosten stabil und zuverlässig funktionieren. Er besitzt über sechs Jahre Berufserfahrung in der Entwicklung von Individualsoftware. 2013 hat er am Lehrstuhl für Softwaretechnik an der Universität des Saarlandes promoviert. Seine Forschung beschäftigt sich mit dem Auffinden und der Analyse von Fehlern, indem Software-Systeme mittels generierter Tests systematisch ausgeführt und dabei Fehler aufgedeckt und analysiert werden. Er ist Gründer von ReTest, einem IT-Dienstleistungsunternehmen, das Software programmunterstützt testet.