В машинном обучении генетическое программирование (ГП) — автоматическое создание или изменение программ с помощью генетических алгоритмов. С помощью этой методологии «выращиваются» программы, всё лучше и лучше (в соответствии с определенной функцией приспособленности для хромосом) решающие поставленную вычислительную задачу.
Выбор способа кодирования программы в генетическом алгоритме — один из основных вопросов генетического программирования. Программа должна быть закодирована в таком виде, чтобы легко было автоматически вносить случайные изменения (оператор мутации) и объединять два алгоритма в один (оператор скрещивания).
Способы кодирования можно разделить на два класса:
В древовидном кодировании каждый узел дерева содержит функцию, а каждый лист — операнд. Выражение, представленное в виде дерева, может быть легко рекурсивно посчитано. Традиционное ГП легче использовать для выращивания программ, написанных на языках, естественным образом воплощающих древовидную структуру: Lisp, Haskell, F# и других функциональных языках программирования.
Недревовидные представления программ также были предложены и успешно реализованы, например, линейное генетическое программирование, подходящее для традиционных императивных языков.
Оператор скрещивания для древовидного представления программ
В древовидном представлении оператор скрещивания реализуется обменом между двумя деревьями какими-либо узлами вместе с их потомками (поддеревьями).
Пример:
individual.Children[randomChildIndex] = otherIndividual.Children[randomChildIndex];
В отличие от оператора скрещивания, оператор мутации затрагивает только одну хромосому. В древовидном представлении он может быть реализован изменением информации в узле или добавлением / удалением узла или целого поддерева. При этом надо следить за корректностью результатов оператора.
Пример:
individual.Information = randomInformation();
или
individual = generateNewIndividual();
Метагенетическое программирование — это ГП, в котором изменяется и, тем самым, «выращивается» не только заданная компьютерная программа, но и сами применяемые операторы скрещивания и мутации.
Читайте также
8 факторов, которые влияют на цену продажи волос
Продажа волос привлекает внимание не только тех, кто ищет стильные
Зимний лагерь для детей в Подмосковье — обзор детских лагерей на зиму 2024
На зимних каникулах детям сложно организовать интересный и полезный отдых.
Почему людям нравятся Electro House DJ Mixes
Музыка всегда была важной частью нашей жизни. Она способна вызывать
Пули для пневматических винтовок и пистолетов: особенности и разновидности
Кремация — это процесс, издревле сопровождающий человечество в его вечном
Аппаратная косметология: Современные технологии для красоты и здоровья
В современном мире все больше людей задумываются о своей внешности
Натуральная косметика для лица: секреты здорового и сияющего облика
SMAS-лифтинг в косметологии в Москве: эффективная борьба со старением
Выбор металлической мебели для гардеробной комнаты: важные моменты
Гардеробная комната – это место, где хранится одежда, обувь и
Надежное и безопасное покрытие для детских площадок
В создании детской площадки безопасность является одной из главных задач.
Привлекательные этикетки для детской одежды
К31 — Многопрофильные медицинские центры полного цикла: значение в здоровье граждан
Почему электровелосипеды набирают популярность?
Переезд военнослужащих на новое место службы — открытие новых горизонтов
Светлое крафтовое пиво: искусство и качество
Светлое крафтовое пиво – это настоящая арт-форма в мире пивоварения.