Skip to main content

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

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

Генетические программы (GP) работают путем генерации и запуска тысяч программ и выбирают наиболее эффективные для использования. Например, GP может быть использован для создания программы для рисования эскиза фотографии. Первое, что сделает GP, - это создаст набор программ, которые используют различные функции компьютерного рисования в случайных комбинациях. Затем ГП будет запускать каждую из этих программ по порядку, выводя результаты каждой из них в файлы изображений.

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

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

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