Was ist Genetische Programmierung?

Genetische Programmierung ist der Prozess der Verbesserung von Computerprogrammen mit Algorithmen, die von der biologischen Evolution inspiriert sind. Programmiersprachen, die sich auf natürliche Weise für die genetische Programmierung eignen, sind diejenigen, die ihren eigenen Code nativ auswerten können. Ein klassisches Beispiel ist LISP, dessen charakteristische Datenstruktur eine Liste ist. Jedes LISP-Programm wird als Liste geschrieben. Daher können LISP-Programme LISP-Programme sehr gut bearbeiten und generieren.

Wie funktioniert es?

Ein genetisches Programm beginnt mit einer Reihe von Anweisungen, die als "Chromosomen" dienen, und einer "Fitnessfunktion", die bestimmt, welche Ergebnisse ideal sind. Die Anweisungen werden zufällig kombiniert, um eine erste "Generation" von Programmen zu erzeugen, und dann werden diese einzelnen Programme auf ihre Fitness getestet.

Die geeignetsten Programme - diejenigen, die dem durch die Fitnessfunktion definierten Verhalten am nächsten kommen - werden für "Zucht" ausgewählt. Die Chromosomen der besten Programme werden kombiniert, ähnlich wie genetischer Code in der biologischen Züchtung kombiniert wird. Einige Chromosomen werden mit denen anderer Programme "gekreuzt" (ausgetauscht), andere werden "mutiert" - in einer vordefinierten Weise zufällig verändert. Es können Tausende oder sogar Millionen von Programmen produziert werden, wobei jede Generation immer näher an ein gewünschtes Ergebnis herankommt.

Anweisungen, Programmierbegriffe