Le programmeur d’algorithme génétique reçoit des fonctions
[Kory] a écrit des algorithmes génétiques pendant quelques mois maintenant. Cela n’est pas quelque chose d’unique ni d’exceptionnel, à l’exception de ce qu’il obtient ces algorithmes génétiques à faire. [Kory] utilise des algorithmes génétiques pour écrire des programmes dans Brainfuck. Oui, c’est une programmation d’ordinateur d’ordinateur. Soyez reconnaissant Skynet a 18 ans de retard.
Lorsque nous avons vu le travail de [Kory] pour la première fois, il avait programmé un ordinateur pour écrire et gérer ses propres programmes dans Brainfuck. Bien que le nom de la langue [Kory] a choisi de pouvoir utiliser certains travaux, c’est en fait la langue idéale pour les programmes générés par ordinateur. Avec seulement huit commandes, chacune composée d’un seul caractère, il réduit considérablement les frais généraux de ce que tout algorithme génétique doit produire et quelle fonction de fitness doit évaluer.
Il y avait une lacune pour les efforts initiaux de [Kory]: fonctions. Il est relativement facile d’obtenir un programme pour dire Bonjour World, mais pour faire quelque chose de complexe, vous aurez besoin de quelque chose comme une macro ou une fonction. Brainfuck, c’est sa forme la plus simple, ne prend pas en charge les fonctions. Cela jette une clé dans le plan de [Kory] pour que son ordinateur de programmation informatique augmente plus intelligemment et surmonter les minima locaux dans ses algorithmes génétiques.
La solution à ce problème a été la création d’un nouveau dialecte de Brainfuck [Kory] appelle Brainplus. Cela prend les meilleures parties de Grainfuck étendu et ajoute une commande qui sert essentiellement de déclaration de pause.
Avec cela, l’ordinateur auto-programmation de [Kory] peut développer des programmes plus complexes. Il a déjà créé un programme pour générer les premiers numéros de la séquence Fibonacci. Cela ne dépasse que 233 car 255 est la valeur maximale pour un octet et le programme lui-même a pris sept heures à générer. Cela fonctionne cependant. D’autres programmes générés avec les nouvelles fonctions de BrainPlus comprennent la récitation de 99 bouteilles sur le mur et un programme qui multiplie deux valeurs.
Même si l’ordinateur de [Kory] dépend beaucoup de temps pour générer ces programmes, compte tenu de suffisamment de temps, il n’y a vraiment pas beaucoup ce programme ne peut pas faire. Brainfuck, et [Kory] S BrainPlus, Turing Turing complète, de sorte que la mémoire infinie et le temps peut tout calculer. Avec la nouvelle ajout de fonctions, il peut calculer plus rapidement.
Tout le code de [Kyle] est disponible sur GitHub.