Genetisk algoritmeprogrammer får funktioner

June 30, 2022 0 Comments

[Kory] har skrevet genetiske algoritmer i et par måneder nu. Dette i sig selv er ikke noget unikt eller ekstraordinært, bortset fra hvad han får disse genetiske algoritmer til at gøre. [Kory] har brugt genetiske algoritmer til at skrive programmer i Brainfuck. Ja, det er en computerprogrammering af en computer. Vær taknemmelig Skynet er 18 år for sent.

Da vi først så [Kory] ‘s arbejde, havde han programmeret en computer til at skrive og køre sine egne programmer i Brainfuck. Selvom navnet på sproget [Kory] valgte kunne bruge noget arbejde, er det faktisk det ideelle sprog til computergenererede programmer. Med kun otte kommandoer, der hver især består af en enkelt karakter, reducerer det betydeligt overhead af, hvad enhver genetisk algoritme skal producere, og hvad en fitness-funktion skal evaluere.

Der var en mangel på [Kory] ‘s første indsats: funktioner. Det er relativt nemt at få et program til at sige hej verden, men for at gøre noget komplekst, skal du bruge noget som en makro eller en funktion. Brainfuck, det er den mest simple form, understøtter ikke funktioner. Dette kaster en skruenøgle i [Kory] ‘s plan for at få sin computerprogrammering computer vokse smartere og komme over lokale minima i sine genetiske algoritmer.

Løsningen på dette problem var oprettelsen af ​​en ny dialekt af Brainfuck [Kory] kalder BrainPlus. Dette kræver de bedste dele af udvidet Brainfuck og tilføjer en kommando, der grundlæggende tjener som en pause-erklæring.

Med dette kan [Kory] ‘s selvprogrammering computer udvikle mere komplekse programmer. Allerede har det skabt et program til at generere de første få tal af fibonacci-sekvensen. Det går kun op til 233, fordi 255 er den maksimale værdi for en byte, og programmet selv tog syv timer at generere. Det virker dog. Andre programmer, der genereres med de nye BrainPlus-funktioner, omfatter recitering 99 flasker på væggen og et program, der multipler to værdier.

Selvom [Kory] computer bruger lang tid til at generere disse programmer, givet nok tid, er der virkelig ikke meget, at dette program ikke kan gøre. Brainfuck, og [Kory] s BrainPlus, er Turing komplet, så det får uendelig hukommelse og tid, det kan beregne noget. Med den nye tilføjelse af funktioner kan det beregne noget hurtigere.

Al koden for [Kyle] s GA er tilgængelig på GitHub.

Leave a Reply

Your email address will not be published. Required fields are marked *