- «Линейное генетическое программирование» не связано с « линейным программированием ».
Линейное генетическое программирование (LGP) представляет собой определенное подмножество генетического программирования , в котором компьютерные программах в популяции представлены в виде последовательности инструкций от императивного языка программирования или на машинном языке . Поток данных на основе графов, который является результатом многократного использования содержимого регистров и наличия структурно неэффективного кода ( интронов ), являются двумя основными отличиями этого генетического представления от более распространенного варианта древовидного генетического программирования (TGP). [1] [2] [3]
В генетическом программировании (GP) линейное дерево - это программа, состоящая из переменного числа унарных функций и одного терминала . Обратите внимание, что линейное дерево GP отличается от генетических алгоритмов битовой строки , поскольку совокупность может содержать программы разной длины и может быть более двух типов функций или более двух типов терминалов. [4]
Примеры программ LGP [ править ]
Поскольку программы LGP в основном представлены линейной последовательностью инструкций, их проще читать и работать с ними, чем их древовидные аналоги. Например, простая программа, написанная на языке LGP Slash / A, выглядит как последовательность инструкций, разделенных косой чертой:
input / # получает ввод от пользователя и сохраняет его в регистр F 0 / # устанавливает регистр I = 0
save / # сохраняет содержимое F в вектор данных D [I] (т.е. D [0]: = F)
input / # получает другой вход, сохраняет в F
add / # добавляет к F текущие данные, на которые указывает I (т.е. F: = F + D [0])
output /. # выходов результат F
Представляя такой код в формате байт-кода , то есть в виде массива байтов, каждый из которых представляет отдельную инструкцию, можно выполнять операции мутации, просто изменяя элемент такого массива.
См. Также [ править ]
- Программирование с несколькими выражениями
- Декартово генетическое программирование
- Грамматическая эволюция
- Генетическое программирование
Заметки [ править ]
- ^ Брамейер, М .: « О линейном генетическом программировании, Архивировано 29 июня 2007 г.на Wayback Machine », Дортмунд, 2003 г.
- ^ В. Банцаф, П. Нордин, Р. Келлер, Ф. Франсоне, "Генетическое программирование - введение. Об автоматической эволюции компьютерных программ и его применении", Морган Кауфманн, Гейдельберг / Сан-Франциско, 1998
- ^ Poli, R .; Лэнгдон, ВБ; Макфи, Н.Ф. (2008). Полевое руководство по генетическому программированию . Lulu.com, свободно доступный в Интернете. ISBN 978-1-4092-0073-4.
- ^ Основы генетического программирования .
Внешние ссылки [ править ]
- Slash / A Язык программирования и библиотека C ++, специально разработанная для линейных GP.
- DigitalBiology.NET Вертикальная поисковая система для ресурсов GA / GP
- Discipulus Генетическая-Программирование Программное обеспечение
- Программное обеспечение для генетического программирования MicroGP (с открытым исходным кодом)
- [1]