Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
«Линейное генетическое программирование» не связано с « линейным программированием ».

Линейное генетическое программирование (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

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

См. Также [ править ]

  • Программирование с несколькими выражениями
  • Декартово генетическое программирование
  • Грамматическая эволюция
  • Генетическое программирование

Заметки [ править ]

  1. ^ Брамейер, М .: « О линейном генетическом программировании, Архивировано 29 июня 2007 г.на Wayback Machine », Дортмунд, 2003 г.
  2. ^ В. Банцаф, П. Нордин, Р. Келлер, Ф. Франсоне, "Генетическое программирование - введение. Об автоматической эволюции компьютерных программ и его применении", Морган Кауфманн, Гейдельберг / Сан-Франциско, 1998
  3. ^ Poli, R .; Лэнгдон, ВБ; Макфи, Н.Ф. (2008). Полевое руководство по генетическому программированию . Lulu.com, свободно доступный в Интернете. ISBN 978-1-4092-0073-4.
  4. ^ Основы генетического программирования .

Внешние ссылки [ править ]

  • Slash / A Язык программирования и библиотека C ++, специально разработанная для линейных GP.
  • DigitalBiology.NET Вертикальная поисковая система для ресурсов GA / GP
  • Discipulus Генетическая-Программирование Программное обеспечение
  • Программное обеспечение для генетического программирования MicroGP (с открытым исходным кодом)
  • [1]