遺伝的プログラミング
遺伝的プログラミングは1990年にジョン・コザ(John Koza)によって提案された。他の進化的アルゴリズムの主要な方法論が同時期に提案され独立して研究が進められていたのに対し、遺伝的プログラミングは最初から遺伝的アルゴリズムの拡張として提案されており、他の三つの方法とは大きく立場を異にする。具体的な内容としては、遺伝的アルゴリズムにおける遺伝子型の表現が主に配列であるのに対し、遺伝的プログラミングでは木構造を用いる。このため、遺伝的アルゴリズムでは表現できなかった数式やプログラムのコードなど、構造を持ったデータを表現することができる。大きな違いとしてはこれだけであるが、遺伝的アルゴリズムとは解の探索の傾向が異なり、また独自の現象や問題点が発生する。現在、それに対する改善案などが非常に活発に研究されており、遺伝的アルゴリズムからはほとんど独立して研究が進められている。遺伝的プログラミングのみを扱った書籍も増えている。なお、コザが発表したシステムは Lisp で書かれていたため、現在はあらゆるプログラミング言語で実装されているにもかかわらず解を Lisp のS式で表現することが一種の慣例になっている。