[Kory] píše genetické algoritmy po dobu několika měsíců. To samo o sobě není nic jedinečného nebo výjimečného, s výjimkou toho, co dostává tyto genetické algoritmy. [Kory] používá genetické algoritmy psát programy v Brainfuck. Ano, je to počítač programování počítače. Buďte vděčný Skynet 18 let pozdě.
Když jsme poprvé viděli práci [Kory], naprogramoval počítač napsat a provozovat své vlastní programy v Brainfuck. Ačkoli název jazyka [Kory] zvolil, by mohl použít nějakou práci, je to vlastně ideální jazyk pro počítačové programy. Pouze s osmi příkazy, z nichž každý se skládá z jediného znaku, to výrazně snižuje režii, jaký každý genetický algoritmus musí vyrábět a to, co musí fitness funkce vyhodnotit.
Tam byl jeden nedostatek na počáteční úsilí [Kory]: funkce. Je poměrně snadné získat program, aby řekl Hello World, ale udělat něco složitého, budete potřebovat něco jako makro nebo funkce. Brainfuck, to jeho nejjednodušší forma, nepodporuje funkce. To hodí klíč v plánu [Kory], aby jeho počítačový programovací počítač roste chytřejší a dostat se přes místní minim ve svých genetických algoritmech.
Řešením tohoto problému bylo vytvoření nového dialektu BrainFuck [Kory] volá Brainplus. To trvá nejlepší části rozšířeného brainfuck a přidává příkaz, který v podstatě slouží jako prohlášení přerušení.
S tím, [Kory], s vlastní programovací počítač může rozvíjet složitější programy. Už vytvořil program pro generování prvních několik čísel fibonacci sekvence. To jen jde až 233, protože 255 je maximální hodnota pro bajt a program sám trval sedm hodin pro generování. To však funguje. Jiné programy generované s novými funkcemi Brainplus zahrnují recitaci 99 lahví na zdi a program, který násobí dva hodnoty.
I když [Kory] je počítač tráví dlouhou dobu, aby generoval tyto programy, daný dostatek času, tam opravdu není moc tento program nemůže udělat. Brainfuck, a [Kory], S Brainplus, jsou naturální kompletní, takže daná nekonečná paměť a čas může něco vypočítat. S novým přidáním funkcí může něco rychleji vypočítat.
Veškerý kód pro [Kyle] je k dispozici na GitHub.