[kory]が今数ヶ月間遺伝的アルゴリズムを書いています。これ自体では、これらの遺伝的アルゴリズムを実行するものを除いて、独自または例外的なものは何もありません。 [kory]は、Brainfuckでプログラムを書くために遺伝的アルゴリズムを使用しています。はい、それはコンピュータのプログラミングコンピュータです。ありがたいなSkynetは18年遅れです。
最初に[kory]の仕事を見たとき、彼はBrainfuckで独自のプログラムを書いて実行するためのコンピュータをプログラムしました。言語の名前[kory]がいくつかの仕事を使うことができるが、それは実際にはコンピュータ生成プログラムのための理想的な言語です。それぞれが単一の文字で構成されている8つのコマンドだけが、その遺伝的アルゴリズムが生産されなければならないもののオーバーヘッドを大幅に削減し、フィットネス機能を評価しなければならない。
[Kory]の初期努力への欠点が1つありました:機能。こんにちは世界を言うようにプログラムを手に入れるのは比較的簡単ですが、何か複雑なことをするために、マクロや関数のようなものが必要です。 BrainFuck、IT最も簡単なフォームでは、機能をサポートしていません。これは彼のコンピュータプログラミングコンピュータがよりスマートに成長し、その遺伝的アルゴリズムで地元の最小値を乗り越えるための[Kory]計画のレンチをスローします。
この問題に対する解決策は、Brainfuck [Kory]呼び出しの新たな方言の作成でした。これは拡張Brainfuckの最良の部分を取り、基本的にBreakステートメントとして機能するコマンドを追加します。
これにより、[Kory]の自己プログラミングコンピュータはより複雑なプログラムを開発することができます。すでにそれはFIBONACCIシーケンスの最初の数回数を生成するためのプログラムを作成しました。 255はバイトの最大値であり、プログラム自体が生成するのに7時間かかったため、233までだけ上がります。しかし、それは仕事です。新しいブレーブラス関数で生成された他のプログラムは、壁に99個のボトルと2つの値を倍増するプログラムを記録することを含む。
kory]コンピュータがこれらのプログラムを生成するのに長い時間を過ごしていても、十分な時間が与えられているのは、本当にこのプログラムができないことはありません。 Brainfuck、およびKory]のBrainplusは完全に完了しているので、無限メモリと時間を計算することができます。機能を新たに追加すると、それはより速く計算することができます。
[カイル]のGAのすべてのコードはGitHubで入手できます。