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

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

Алгоритм генетического программирования опирается на популяционную генетику (включая наследственность и частоты генов) и эволюцию на уровне популяции, а также на менделевское понимание структуры (например, хромосом, генов, аллелей) и механизмов (таких как рекомбинация и мутация). Это так называемый новый или современный синтез эволюционной биологии.

Отдельные особи в популяции вносят свой генетический материал (называемый генотипом) пропорционально релевантности их выраженного генома (называемого их фенотипом) окружающей среде. Следующее поколение создается в процессе спаривания, в котором участвуют генетические операторы, такие как рекомбинация геномов двух особей в популяцию и внесение случайных ошибок копирования (называемых мутациями). Этот итеративный процесс может привести к улучшению соответствия между фенотипами особей в популяции и окружающей средой.

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

Целью алгоритма генетического программирования является использование индукции для разработки компьютерной программы. Это достигается за счет использования масштабируемых операторов в программах-кандидатах с древовидной структурой для улучшения соответствия между совокупностью программ-кандидатов и целевой функцией. Оценка решения-кандидата предполагает его выполнение.

Генетическая программа использует символические LISP-подобные выражения, называемые S-выражениями, которые представляют граф программы с функциональными узлами и конечными узлами. Пока алгоритм работает, программы обрабатываются как данные, и когда они оцениваются, они выполняются. Пересечение график программа всегда идет в глубину, а функции всегда должны возвращать значение.

Алгоритм генетического программирования был разработан для индуктивного автоматического программирования и хорошо подходит для регрессия символические задачи, проектирование контроллеров и задачи машинного обучения под более широким названием аппроксимации функций.

Оценка (назначение пригодности) решения-кандидата обычно принимает во внимание структуру программы, поощряя экономию.

Процесс отбора должен быть сбалансирован между случайным отбором и жадным отбором, чтобы смещать поиск в сторону более тонких возможных решений (эксплуатация), одновременно способствуя полезному разнообразию в популяции (исследование).

Программа может реагировать на ноль или более входных значений и может выдавать один или несколько выходных данных.

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

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

Делиться
ru_RURU