Lineare genetische Programmierung - Linear genetic programming

"Lineare genetische Programmierung" hat nichts mit " linearer Programmierung " zu tun .

Die lineare genetische Programmierung (LGP) ist eine bestimmte Teilmenge der genetischen Programmierung, bei der Computerprogramme in einer Population als eine Folge von Anweisungen aus der imperativen Programmiersprache oder Maschinensprache dargestellt werden . Der graphbasierte Datenfluss, der sich aus einer mehrfachen Verwendung von Registerinhalten und dem Vorhandensein von strukturell nicht effektivem Code ( Introns ) ergibt, sind zwei Hauptunterschiede dieser genetischen Repräsentation gegenüber der häufigeren Variante der baumbasierten genetischen Programmierung (TGP).

In der genetischen Programmierung (GP) ist ein linearer Baum ein Programm, das aus einer variablen Anzahl unärer Funktionen und einem einzelnen Terminal besteht . Es ist zu beachten, dass sich der lineare Baum GP von genetischen Algorithmen für Bitfolgen unterscheidet, da eine Population Programme unterschiedlicher Länge enthalten kann und es mehr als zwei Arten von Funktionen oder mehr als zwei Arten von Terminals geben kann.

Beispiele für LGP-Programme

Da LGP-Programme im Wesentlichen durch eine lineare Folge von Anweisungen dargestellt werden, sind sie einfacher zu lesen und zu bearbeiten als ihre baumbasierten Gegenstücke. Ein einfaches Programm, das in der LGP-Sprache Slash / A geschrieben ist, sieht beispielsweise aus wie eine Reihe von Anweisungen, die durch einen Schrägstrich getrennt sind:

input/   # gets an input from user and saves it to register F
0/       # sets register I = 0
save/    # saves content of F into data vector D[I] (i.e. D[0] := F)
input/   # gets another input, saves to F
add/     # adds to F current data pointed to by I (i.e. F := F + D[0])
output/. # outputs result from F

Indem ein solcher Code im Bytecode- Format dargestellt wird, dh als ein Array von Bytes, die jeweils einen anderen Befehl darstellen, kann man Mutationsoperationen einfach durch Ändern eines Elements eines solchen Arrays durchführen.

Siehe auch

Anmerkungen

  1. ^ Brameier, M.: " Zur linearen genetischen Programmierung Archiviert am 29.06.2007 an der Wayback Machine ", Dortmund, 2003
  2. ^ W. Banzhaf, P. Nordin, R. Keller, F. Francone, "Genetische Programmierung - Eine Einführung. Über die automatische Entwicklung von Computerprogrammen und ihre Anwendung", Morgan Kaufmann, Heidelberg / San Francisco, 1998
  3. ^ Poli, R.; Langdon, WB; McPhee, NF (2008). Ein Leitfaden zur genetischen Programmierung . Lulu.com, frei verfügbar im Internet. ISBN   978-1-4092-0073-4 .
  4. ^ Grundlagen der genetischen Programmierung .

Externe Links