Лекция: Генетическое программирование.
Подвиды.
· Прямое кодирование — генетический алгоритм работает с программой в явном виде.
· Косвенное кодирование — генетический алгоритм работает не с самим кодом программы, а с правилами его построения. То есть генетический алгоритм работает с программой, которая генерирует нужную нам программу.
· При использовании ленивых языков эти различия можно несколько размыть.
В древовидном кодировании каждый узел дерева содержит функцию, а каждый лист — операнд. Выражения, представленное в виде дерева может быть легко рекурсивно посчитано. Традиционное ГП легче использовать для выращивания программ, написанных на языках, естественным образом воплощающих древовидную структуру. Имеются в виду Lisp, Haskell, F# и другие функциональные языки программирования.
Недревовидные представления программ также были предложены и успешно реализованы, например линейное генетическое программирование, подходящее для традиционных императивных языков.
Метагенетическое программирование.
Метагенетическое программирование — это ГП, в котором изменяется и, тем самым, «выращивается» не только заданная компьютерная программа, но и сами применяемые операторы скрещивания и мутации.