Что такое генетическое программирование?

Генетическое программирование - это процесс совершенствования компьютерных программ с использованием алгоритмов, основанных на биологической эволюции. Языки программирования, которые естественным образом поддаются генетическому программированию, - это те, которые способны самостоятельно оценивать собственный код. Классическим примером является LISP, характерной структурой данных которого является список. Каждая программа LISP написана в виде списка, поэтому программы LISP очень хороши в манипулировании и генерации программ LISP.

Как это работает?

Генетическая программа начинается с набора инструкций, служащих «хромосомами» и «фитнес-функцией», которая определяет, какие результаты являются идеальными. Инструкции объединяются случайным образом для создания программ первого поколения, а затем эти отдельные программы проверяются на предмет их пригодности.

Наиболее подходящие программы - те, которые наиболее близки к достижению поведения, определенного функцией фитнеса - выбираются для «разведения». Хромосомы наиболее приспособленных программ сочетаются, как генетический код в биологическом разведении. Некоторые хромосомы «пересекаются» (обмениваются) с хромосомами в других программах, а некоторые «видоизменяются» - изменяются случайным образом предопределенным образом. Могут быть созданы тысячи или даже миллионы программ, с каждым поколением все ближе и ближе к достижению желаемого результата.

Инструкции, Условия программирования