Линейное генетическое программирование: принципы и отличия от традиционных методов.
Linear genetic programming
Линейное генетическое программирование (LGP): метод эволюции программ из последовательности инструкций. Отличается линейным выполнением и структурой от TGP.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
"Линейное генетическое программирование" не связано с "линейным программированием". Линейное генетическое программирование (ЛГП) – это специфический метод генетического программирования, в котором компьютерные программы в популяции представлены в виде последовательности инструкций из императивного языка программирования или машинного кода. Прилагательное "линейный" происходит от того факта, что последовательность инструкций обычно выполняется последовательно. Как и в других программах, поток данных в ЛГП может быть смоделирован в виде графа, который наглядно демонстрирует возможность многократного использования содержимого регистров и наличие структурно неэффективного кода (интронов) – двух основных отличий данного генетического представления от более распространенного генетического программирования на основе деревьев (TGP). Как и другие методы генетического программирования, линейное генетическое программирование требует ввода данных для выполнения популяции программ. Затем выход программы (ее поведение) оценивается по соответствию заданному целевому поведению с использованием функции пригодности. Однако, ЛГП обычно более эффективно, чем генетическое программирование на основе деревьев, благодаря двум основным отличиям, упомянутым выше: промежуточные результаты (хранящиеся в регистрах) могут быть повторно использованы, и существует простой алгоритм удаления интронов.
"Linear genetic programming" is unrelated to "linear programming". Linear genetic programming (LGP) is a particular method of genetic programming wherein computer programs in a population are represented as a sequence of instructions from an imperative programming language or machine language. The adjective "linear" stems from the fact that the sequence of instructions is normally executed in a linear fashion. Like in other programs, the data flow in LGP can be modeled as a graph that will visualize the potential multiple usage of register contents and the existence of structurally noneffective code (introns) which are two main differences of this genetic representation from the more common tree based genetic programming (TGP) variant. Like other Genetic Programming methods, Linear genetic programming requires the input of data to run the program population on. Then, the output of the program (its behaviour) is judged against some target behaviour, using a fitness function. However, LGP is generally more efficient than tree genetic programming due to its two main differences mentioned above: Intermediate results (stored in registers) can be reused and a simple intron removal algorithm exists
Линейное генетическое программирование не следует путать с линейными древовидными программами в генетическом программировании на основе деревьев, представляющими собой программы, состоящие из переменного числа унарных функций и одного терминала. Следует отметить, что линейные древовидные генетические алгоритмы отличаются от генетических алгоритмов битовых строк тем, что популяция может содержать программы различной длины, а также может быть более двух типов функций или более двух типов терминалов.
Linear genetic programming should not be confused with linear tree programs in tree genetic programming, program composed of a variable number of unary functions and a single terminal. Note that linear tree GP differs from bit string genetic algorithms since a population may contain programs of different lengths and there may be more than two types of functions or more than two types of terminals.