Was ist genetische Programmierung?
Genetische Programmierung ist der Prozess der Verwendung eines Computerprogramms zum Schreiben eines anderen Computerprogramms unter Verwendung einer evolutionären algorithmischen Methodik. Dieser Prozess wird häufig mit der linearen Programmierung verglichen, bei der der Programmierer spezifische Anweisungen für den Computer schreibt. LISP und Scheme sind aufgrund ihrer hohen Funktionalität und Flexibilität die gebräuchlichsten Programmiersprachen für diese Art von Arbeit. Aufgrund der konzeptionellen Ähnlichkeit mit der biologischen Evolution wird die genetische Programmierung häufig als Beispiel für bioinspiriertes Computing angeführt.
Genetische Programme (GPs) generieren und führen Tausende von Programmen aus und wählen die effektivste aus. Zum Beispiel kann ein Hausarzt verwendet werden, um ein Programm zum Zeichnen einer Skizze eines Fotos zu erstellen. Das erste, was der Allgemeinmediziner tun würde, ist eine Reihe von Programmen zu erstellen, die verschiedene Computerzeichenfunktionen in zufälligen Kombinationen verwenden. Dann würde der GP jedes dieser Programme der Reihe nach ausführen und die Ergebnisse von jedem in Bilddateien ausgeben.
Der nächste Schritt für den Hausarzt ist die Auswahl der besten dieser Programme aus dem Set. Dieser Prozess ist im Allgemeinen der schwierigste Teil der genetischen Programmierung. Im Falle des Zeichenprogramms würde der GP eine Bildvergleichssoftware verwenden, um zu bestimmen, welche der zufälligen Zeichnungen dem Bild, das die Software zu zeichnen versuchte, am ähnlichsten war. Von den zufällig erzeugten Programmen würde der Allgemeinmediziner die obersten mehrere auswählen und den Rest verwerfen. Der Auswahlprozess wird als Fitnessbewertung bezeichnet und gilt allgemein als der schwierigste Teil der genetischen Programmierung.
Sobald die Top-Programme ausgewählt wurden, verwendet der GP sie als Grundlage für einen neuen Stapel von Programmen. Jede neue Charge wird als Generation bezeichnet. Die beiden Wege zur Schaffung der neuen Generation sind Mutation und Crossover. Mutation funktioniert, indem eines der vorhandenen Programme verwendet und zufällige Änderungen vorgenommen werden, hoffentlich zum Besseren. Crossover, auch Zucht genannt, verwendet zwei der Top-Programme und kombiniert Elemente daraus, um neue Programme zu erstellen.
Nach dem Erstellen eines neuen Stapels von Programmen wiederholt der GP die Ausführung und Auswertung dieser Programme und wiederholt dann die Auswahl-, Eliminierungs- und Generierungsprozesse. Allgemeinmediziner führen häufig Hunderte von Generationen durch, bevor sie ein einziges Programm mit einem zufriedenstellenden Ergebnis finden. Trotz dieser Einschränkung ist die genetische Programmierung ein gängiger Weg, um einige Arten schwieriger Computerprobleme zu lösen, darunter Probleme mit Robotertechnik und künstlicher Intelligenz.