Uncategorized

Genetische algoritm-programmeur krijgt functies

[Kory] heeft nu een paar maanden genetische algoritmen geschreven. Dit is op zichzelf niets unieks of uitzonderlijk, behalve wat hij deze genetische algoritmen krijgt om te doen. [Kory] heeft genetische algoritmen gebruikt om programma’s in Brainfuck te schrijven. Ja, het is een computer die een computer programmeert. Wees dankbaar Skynet is 18 jaar te laat.

Toen we het werk van [Kory] voor het eerst zagen, had hij een computer geprogrammeerd om zijn eigen programma’s in Brainfuck te schrijven en te voeren. Hoewel de naam van de taal [Kory] heeft gekozen, zou het wat werk kunnen gebruiken, is het eigenlijk de ideale taal voor computer-gegenereerde programma’s. Met slechts acht bevelen, elk bestaande uit een enkel karakter, vermindert het de overhead van wat elk genetisch algoritme moet produceren en wat een fitnessfunctie moet evalueren.

Er was een tekort aan de oorspronkelijke inspanningen van [Kory]: functies. Het is relatief eenvoudig om een ​​programma te krijgen om hallo-wereld te zeggen, maar om iets complex te doen, je zult iets als een macro of een functie nodig hebben. Brainfuck, het is de meest eenvoudige vorm, ondersteunt geen functies. Dit gooit een sleutel in het plan van [Kory] om zijn computer-programmeercomputer slimmer te laten groeien en de lokale minima in zijn genetische algoritmen te krijgen.

De oplossing voor dit probleem was het creëren van een nieuw dialect van Brainfuck [Kory] belt BrainPlus. Dit neemt de beste delen van uitgebreide brainfuck en voegt een opdracht toe die in principe als een pauze verklaring dient.

Hiermee kan de zelfprogrammeringspcomputer van [Kory] meer complexe programma’s ontwikkelen. Het heeft al een programma gemaakt om de eerste paar nummers van de Fibonacci-sequentie te genereren. Het gaat pas op tot 233 omdat 255 de maximale waarde is voor een byte, en het programma zelf duurde zeven uur om te genereren. Het werkt echter. Andere programma’s die zijn gegenereerd met de nieuwe BrainPlus-functies omvatten het reciteren van 99 flessen op de muur en een programma dat twee waarden vermenigt.

Hoewel de computer van [Kory] lang tijd doorbrengt om deze programma’s te genereren, is er genoeg tijd gegeven, is er echt niet veel dat dit programma niet kan doen. BrainFuck, en [Kory] ‘s BrainPlus, turing compleet, dus dat gezien oneindig geheugen en tijd kan het iets berekenen. Met de nieuwe toevoeging van functies kan het iets sneller berekenen.

Alle Code voor [Kyle]’s GA is beschikbaar op Github.

Leave a Reply

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