遺伝的プログラミングとは

遺伝的プログラミングは、生物学的進化に触発されたアルゴリズムを使用してコンピュータープログラムを強化するプロセスです。 遺伝的プログラミングに自然に役立つプログラミング言語は、自分自身のコードをネイティブに評価できるものです。 典型的な例はLISPです。その特性データ構造はリストです。 すべてのLISPプログラムはリストとして書かれているので、LISPプログラムはLISPプログラムの操作と生成に非常に優れています。

それはどのように機能しますか?

遺伝的プログラムは、「染色体」として機能する一連の指示と、どの結果が理想的であるかを決定する「適応度関数」から始まります。 命令はランダムに組み合わされてプログラムの最初の「世代」が生成され、次にそれらの個々のプログラムの適合性がテストされます。

適性プログラム - フィットネス機能によって定義された行動を達成することに最も近いもの - は、「繁殖」のために選択されます。 遺伝暗号が生物学的育種で組み合わされているように、最も適したプログラムの染色体も組み合わされています。 いくつかの染色体は他のプログラムのものと「交差する」(交換される)、そしてあるものは「突然変異」されている - 事前定義された方法でランダムに変更されている 各世代がより望ましい結果を達成するためにますます近づいている状態で、数千または数百万ものプログラムが制作される可能性があります。

命令、プログラミング用語