Skip to main content

Wat is genetische programmering?

Genetische programmering is het proces van het gebruik van het ene computerprogramma om een ander computerprogramma te schrijven met behulp van evolutionaire algoritme-gebaseerde methodologie.Dit proces wordt vaak vergeleken met lineaire programmering, waarbij de programmeur specifieke instructies schrijft voor de computer om uit te voeren.LISP en Schema zijn de meest voorkomende programmeertalen voor dit soort werk vanwege hun functionaliteit en flexibiliteit op hoog niveau.Als gevolg van de conceptuele gelijkenis met biologische evolutie, wordt genetische programmering vaak genoemd als een voorbeeld van bio-geïnspireerd computergebruik.

Genetische programma's (GPS) werken door duizenden programma's te genereren en te runnen en kiest het meest effectief om te gebruiken.Een huisarts kan bijvoorbeeld worden gebruikt om een programma te maken om een schets van een foto te maken.Het eerste dat de huisarts zou doen, is een set programma's maken die verschillende computertekeningfuncties gebruiken in willekeurige combinaties.Vervolgens zou de huisarts elk van deze programma's op volgorde uitvoeren, waarbij de resultaten van elke afbeeldingsbestanden worden uitgevoerd.

De volgende stap voor de huisarts is het selecteren van de beste van die programma's uit de set.Dit proces is over het algemeen het moeilijkste deel van genetische programmering.In het geval van het tekenprogramma zou de huisarts beeldvergelijkingssoftware gebruiken om te bepalen welke van de willekeurige tekeningen het meest lijken op de afbeelding die de software probeerde te tekenen.Van de willekeurig gegenereerde programma's zou de huisarts de top meerdere selecteren en de rest weggooien.Het selectieproces staat bekend als fitnessevaluatie en wordt over het algemeen beschouwd als het moeilijkste deel van genetische programmering.

Zodra de top enkele programma's zijn geselecteerd, zal de huisarts ze gebruiken als basis voor een nieuwe partij programma's.Elke nieuwe batch wordt een generatie genoemd.De twee manieren om de nieuwe generatie te creëren zijn mutatie en crossover.Mutatie werkt door een van de bestaande programma's in te voeren en er willekeurige wijzigingen in aan te brengen, hopelijk ten goede.Crossover, ook wel fokken genoemd, werkt door twee van de topprogramma's te nemen en elementen ervan te combineren om nieuwe programma's te maken.

Na het maken van een nieuwe reeks programma's, herhaalt de huisarts het proces van het uitvoeren en evalueren ervan en herhaalt de selectie vervolgens, eliminatie en generatieprocessen.GPS zal vaak honderden generaties uitvoeren voordat een enkel programma met een bevredigend resultaat wordt gevonden.Ondanks deze beperking is genetische programmering een veel voorkomende manier om sommige soorten moeilijke computerproblemen op te lossen, waaronder robottechniek en kunstmatige intelligentieproblemen.