Ноябрь 27, 2021 / Комментарии 0 |
В машинном обучении генетическое программирование (ГП) — автоматическое создание или изменение программ с помощью генетических алгоритмов. С помощью этой методологии «выращиваются» программы, всё лучше и лучше (в соответствии с определенной функцией приспособленности для хромосом) решающие поставленную вычислительную задачу.
Выбор способа кодирования программы в генетическом алгоритме — один из основных вопросов генетического программирования. Программа должна быть закодирована в таком виде, чтобы легко было автоматически вносить случайные изменения (оператор мутации) и объединять два алгоритма в один (оператор скрещивания).
Способы кодирования можно разделить на два класса:
В древовидном кодировании каждый узел дерева содержит функцию, а каждый лист — операнд. Выражение, представленное в виде дерева, может быть легко рекурсивно посчитано. Традиционное ГП легче использовать для выращивания программ, написанных на языках, естественным образом воплощающих древовидную структуру: Lisp, Haskell, F# и других функциональных языках программирования.
Недревовидные представления программ также были предложены и успешно реализованы, например, линейное генетическое программирование, подходящее для традиционных императивных языков.
Оператор скрещивания для древовидного представления программ
В древовидном представлении оператор скрещивания реализуется обменом между двумя деревьями какими-либо узлами вместе с их потомками (поддеревьями).
Пример:
individual.Children[randomChildIndex] = otherIndividual.Children[randomChildIndex];
В отличие от оператора скрещивания, оператор мутации затрагивает только одну хромосому. В древовидном представлении он может быть реализован изменением информации в узле или добавлением / удалением узла или целого поддерева. При этом надо следить за корректностью результатов оператора.
Пример:
individual.Information = randomInformation();
или
individual = generateNewIndividual();
Метагенетическое программирование — это ГП, в котором изменяется и, тем самым, «выращивается» не только заданная компьютерная программа, но и сами применяемые операторы скрещивания и мутации.
Читайте также
Оливковое масло: полезные свойства и применение
Оливковое масло является одним из самых полезных и популярных растительных
Осетинские пироги — традиционное блюдо кавказской кухни
Осетинские пироги — это блюдо, которое на протяжении многих лет
Конгрев (тиснение) на ткани фольгой: когда красиво и практично
Когда нужно вести ребенка к стоматологу?
Родители маленьких детей обычно задумываются о посещении стоматолога только тогда,
Как сохранить здоровье суставов?
Суставы — особые соединения, отвечающие за подвижность и гибкость нашего
Вид дефибрилляции не используемый в педиатрической практике
При резком ухудшении жизненных показателей у пациента часто требуется проводить
Уход за волосами — это важный вклад в своё здоровье,
Выбираем букет цветов правильно
Вкусная выпечка: готовим вафли дома или на заказ
Правильное ведение беременности как залог успешных родов
Беременность не ограничивается только радостным ожиданием. Процесс нужно контролировать, чтобы
Об особенностях выбора микрозаймов
Все более актуальными с каждым годом становятся у населения выдаваемые
Контейнерные поезда — быстро и доступно
Получить больше прибыли и выполнять все процессы бизнеса существенно быстрее
Проведение бизнес-мероприятий как искусство
Достижение поставленных целей при проведении делового мероприятия во многом зависит
Качественное эксклюзивное тату как отражение вашей индивидуальности
История тату насчитывает более шести тысяч лет, при этом еще