Введение

"Линейное генетическое программирование" не связано с "линейным программированием". Линейное генетическое программирование (ЛГП) – это специфический метод генетического программирования, в котором компьютерные программы в популяции представлены в виде последовательности инструкций из императивного языка программирования или машинного кода. Прилагательное "линейный" происходит от того факта, что последовательность инструкций обычно выполняется последовательно. Как и в других программах, поток данных в ЛГП может быть смоделирован в виде графа, который наглядно демонстрирует возможность многократного использования содержимого регистров и наличие структурно неэффективного кода (интронов) – двух основных отличий данного генетического представления от более распространенного генетического программирования на основе деревьев (TGP). Как и другие методы генетического программирования, линейное генетическое программирование требует ввода данных для выполнения популяции программ. Затем выход программы (ее поведение) оценивается по соответствию заданному целевому поведению с использованием функции пригодности. Однако, ЛГП обычно более эффективно, чем генетическое программирование на основе деревьев, благодаря двум основным отличиям, упомянутым выше: промежуточные результаты (хранящиеся в регистрах) могут быть повторно использованы, и существует простой алгоритм удаления интронов.

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