Методы генетического программирования были разработаны в начале 1990-х гг. Дж. Козой. Генетическое программирование — это способ создания компьютерных программ для задач с неизвестным алгоритмом решения.
Технология генетического программирования включает cледующие этапы.
Этап 1. Формирование множества терминалов, множества примитивных функций, синтаксических правил и критериев оценки создаваемых программ.
Этап 2. На основе закона случайности создается начальная популяция компьютерных программ, ориентированных на решение поставленной задачи.
Этап 3. Каждая программа выполняется, а результаты ее работы оцениваются с помощью fitness function (целевой функции).
Этап 4. Формируется новая популяция программ, в которую сгенерированные программы могут попасть с вероятностью, пропорциональной значению целевой функции.
Этап 5. Реализуются генетические операторы репродукции, скрещивания и мутации. В результате репродукции осуществляется копирование уже созданных программ с хорошими значениями целевой функции. Оператор скрещивания создает новые программы путем комбинирования фрагментов существующих программ.
Этап 6. Производится тестирование программ-членов новой популяции и принимается решение о продолжении процесса эволюции. Продолжать генерацию новых популяций имеет смысл тогда, когда максимальные и средние значения целевой функции улучшаются.
Рассмотрим пример модификации программы на языке LISP, где в качестве терминалов используются переменные логического типа
Эти выражения можно представить в виде деревьев (рис. 6.9). В процессе эволюции на уровне поддеревьев осуществляется рекомбинация и получаются потомки (рис. 6.10).
Первый из этих потомков представляет собой реализацию операции исключающего ИЛИ:
Результатом применения оператора мутации является замена части дерева другим выражением, сгенерированным случайным образом. Точка мутации также выбирается случайно.
Идеи генетического программирования положены в основу программ, которые называются симуляторами «искусственной жизни». В работе Дж. Козы приводится следующий пример подобной программы. На тороидальной сетке размером 32×32, в 89 ячейках помещается «пища». Существуют некие препятствия, мешающие «насекомым» добраться до «пищи». «Насекомые» попадают на сетку из одной точки, и каждое движется согласно командам своей программы. В начальной популяции эти программы формируются случайным образом из операторов, которые проверяют наличие препятствий и предписывают движение прямо, влево или вправо.
Рис. 6.10. Потомки от скрещивания родителей на уровне поддеревьев
Задается время жизни популяции (400 шагов). Цена каждой программы определяется числом шагов, которые необходимо совершить, чтобы обойти все ячейки с «пищей». Каждая следующая популяция формируется из предыдущей с помощью генетических операторов репродукции, скрещивания и мутации с учетом ценности программ предыдущей популяции. Решение для популяции из 4000 «насекомых» было найдено за 20 итераций.
Последователи Дж. Козы исследовали в своих работах возможность использования ГП для синтеза сложных автоматов, а также для структурной идентификации динамических систем.
В примере построения экономической балансовой модели поставлена цель уточнения эконометрического уравнения обмена, связывающего уровень цен, валовой национальный продукт (ВНП), запас денег и скорость оборота денег в экономике.
В качестве терминалов здесь используются следующие переменные: ВНП82 — уровень ВНП за 1982 г.; GD — дефлятор ВНП (выходная переменная модели), нормализованный к единице для 1982 г.; FM- ежемесячная величина запаса денег. Приведенные переменные являются функциями времени. Их значения определяются на основе статистических данных в виде временных рядов. Кроме того, используется множество обобщенных констант действительного типа R.
Для обработки переменных предусмотрены следующие операции: сложение (+); вычитание (-); умножение (*); защищенное деление (%), результатом которого является единица при попытке разделить на 0; защищенное логарифмирование (RLOG), дающее 1 при нулевом значении аргумента; вычисление экспоненты (ЕХР).
Грубая оценка пригодности сгенерированных уравнений вычисляется как сумма квадратов отклонений расчетных значений от фактических в заданных экспериментальных точках:
Значение
Критерием окончания процесса эволюции является достижение заданного числа генераций (50) или достижение наилучшего значения целевой функции. Численность популяции была принята равной 500. В процессе генерации новых поколений скрещивание проводилось на 9Q% численности популяции, т.е. из каждого поколения выбиралось 225 пар родителей с вероятностью, равной относительной оценке их пригодности. Кроме того, для каждой новой популяции осуществлялась репродукция 10% лучших представителей поколения.
Генерируемые модели (программы) удобно представить в виде древовидных структур (рис. 6.11).
Рис. 6.11. Древовидное представление компьютерных моделей, отобранных для скрещивания: а — родитель 1; б — родитель 2
Представленные на рис. 6.11 модели соответствуют выражениям
Рис. 6.12. Модели-потомки, полученные в результате скрещивания
Используя статистические данные за 30 лет (заметим, что в примере исследовалась экономика США в период с 1959 по 1988 г.), генетический алгоритм за 50 последовательных генераций выдал наилучшее решение
Если основа оригинала (карты пли плана) прозрачна, то копию можно снять при помощи стола со…
Определение координат точки. Пусть точка А (рис. 32) находится в квадрате, абсциссы и ординаты вершин…
Рельефом местности называется совокупность неровностей физической поверхности земли. В зависимости от характера рельефа местность делят…
Для обозначения на планах и картах различных предметов местности, применяются специально разработанные условные знаки. Для обличения…
В инженерной геодезии чаще всего пользуются топографическими картами. Их составляют в масштабах 1:10000, 1:25000, 1:50000…