Genetisk algoritm programmerare får funktioner

[Kory] har skrivit genetiska algoritmer i några månader nu. Detta i sig är inte något unikt eller exceptionellt, förutom vad han får dessa genetiska algoritmer att göra. [Kory] har använt genetiska algoritmer för att skriva program i Brainfuck. Ja, det är en datorprogrammering en dator. Var tacksam Skynet är 18 år sent.

När vi först såg [Kory] s arbete, hade han programmerat en dator att skriva och driva sina egna program i Brainfuck. Även om namnet på språket [Kory] valde kan använda något arbete, är det faktiskt det perfekta språket för datorgenererade program. Med endast åtta kommandon, var och en bestående av ett enda tecken, minskar det kraftigt överhuvudet av vad någon genetisk algoritm måste producera och vad en fitnessfunktion måste utvärdera.

Det fanns en brist till [Kory]: s första ansträngningar: funktioner. Det är relativt enkelt att få ett program för att säga Hello World, men att göra något komplext, kommer du att behöva något som ett makro eller en funktion. Brainfuck, det är den enklaste formen, stöder inte funktioner. Detta kastar en skiftnyckel i [Kory ]s plan för att få sin datorprogrammeringsdator att växa smartare och komma över lokala minima i sina genetiska algoritmer.

Lösningen på detta problem var skapandet av en ny dialekt av Brainfuck [Kory] kallar BrainPlus. Detta tar de bästa delarna av Extended Brainfuck och lägger till ett kommando som i princip tjänar som ett brott uttalande.

Med detta kan [Kory] s självprogrammeringsdator utveckla mer komplexa program. Redan har det skapat ett program för att generera de första numren av Fibonacci-sekvensen. Det går bara upp till 233 eftersom 255 är det maximala värdet för en byte, och programmet i sig tog sju timmar att generera. Det fungerar dock. Andra program som genereras med de nya BrainPlus-funktionerna inkluderar att recitera 99 flaskor på väggen och ett program som multipliker två värden.

Även om [Kory] s dator spenderar länge för att generera dessa program, ges tillräckligt med tid, det är verkligen inte mycket det här programmet kan inte göra. Brainfuck, och [Kory] s hjärnplus, är Turing Complete, så det med tanke på oändligt minne och tid kan det beräkna någonting. Med det nya tillägget av funktioner kan det beräkna något snabbare.

All kod för [Kyle] s GA är tillgänglig på GitHub.

Leave a Reply

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

Related Post

Planerar anpassade aluminiumskåp med OpenScad

Vi har sett ett antal jobb under de år som låter dig producera anpassade höljen som utnyttjar OpenScad, liksom av stor anledning. Parametriska CAD-verktyget är perfekt för att generera 3D-mönster

Ta bort lagerappar från Android-telefonen utan att rota den

Bloatware som kommer förinstallerade på många av våra enheter kan vara en stor smärta. Även om sådana appar lätt kan avinstalleras på många datorer, kan det ta bort dem på

Floppy Interfacing Hack Chat med Adafruit

Anslut oss onsdagen den 2 februari Vid middagsplatsen för floppy gränssnittet Hack Chat med Adafruit’s Limor “Ladyada” Fried liksom Phillip Torrone! När en liten fläck av plastbelagt kisel kan erbjuda