Geneettinen algoritmin ohjelmoija saa toimintoja

[Kory] on kirjoittanut geneettisiä algoritmeja muutaman kuukauden ajan. Tämä sinänsä ei ole mitään ainutlaatuista tai poikkeuksellista, paitsi mitä hän saa nämä geneettiset algoritmit. [Kory] on käyttänyt geneettisiä algoritmeja kirjoittamaan ohjelmia Brainfuckissa. Kyllä, se on tietokoneen tietokoneohjelmointi. Ole kiitollinen Skynet on 18 vuotta myöhässä.

Kun näimme ensimmäistä kertaa [Kory] työtä, hän oli ohjelmoitu tietokoneen kirjoittamaan ja suorittamaan omia ohjelmia Brainfuckissa. Vaikka kielen nimi [Kory] valitsi voi käyttää jotain työtä, se on itse asiassa ihanteellinen kieli tietokoneella tuotetuille ohjelmille. Vain kahdeksan komennosta, joista kukin koostuu yhdestä luonteesta, se vähentää suuresti sitä, mitä geneettistä algoritmia on tuotettava ja mitä kuntotoiminnon on arvioitava.

[Kory]: n alkupyrkimys oli yksi puute: toiminnot. On suhteellisen helppo saada ohjelma, jolla sanotaan hello maailma, mutta tehdä jotain monimutkaista, tarvitset jotain makroa tai toimintaa. Brainfuck, se on yksinkertaisin muoto, ei tue toimintoja. Tämä heittää [Kory] -suunnitelman avain, jolla on tietokoneen ohjelmointi tietokone kasvaa älykkäämmäksi ja päästä paikalliselta minimiin geneettisissä algoritmeissaan.

Ratkaisu tähän ongelmaan oli uuden brainfuck [Kory] -puhelujen uuden murnan luominen Brainplus. Tämä vie parhaat osat laajennetusta brainfuckista ja lisää komennon, joka periaatteessa toimii tauonlaskeluna.

Tällöin [Kory] itsekäsittely tietokone voi kehittää monimutkaisempia ohjelmia. Jo on jo luonut ohjelman, jolla luodaan fibonacci-sekvenssin ensimmäiset määrät. Se nousee vain 233: een, koska 255 on tavun maksimiarvo ja ohjelma itse vei seitsemän tuntia. Se kuitenkin toimii. Muita uusilla Brainplus-toimintoihin liittyvät ohjelmat sisältävät 99 pulloa seinälle ja ohjelma, joka kertoo kaksi arvoa.

Vaikka [Kory] -tietokone viettää kauan aikaa tuottaa nämä ohjelmat, riittävästi aikaa, ei todellakaan ole paljon tätä ohjelmaa. Brainfuck ja [Kory] Brainclus, ovat täydellisiä, joten infinittinen muisti ja aika voi laskea mitään. Uuden toiminnon lisääminen se voi laskea nopeammin.

Kaikki [Kyle] GA: n koodi on saatavilla GitHubilla.

Leave a Comment

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