2012 Вычислительные методы в дискретной математике №3(17)
ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ В ДИСКРЕТНОЙ МАТЕМАТИКЕ
УДК 681.324, 519.17
ИССЛЕДОВАНИЕ ВЛИЯНИЯ СТЕПЕНИ СПЕЦИАЛИЗАЦИИ ШАБЛОНА НА ПРОСТРАНСТВО ПОИСКА ПРИ ЭВОЛЮЦИОННОМ СИНТЕЗЕ МОДЕЛЕЙ1
О. Г. Монахов
Институт вычислительной математики и математической геофизики СО РАН,
г. Новосибирск, Россия
E-mail: [email protected]
Описан алгоритм эволюционного синтеза, объединяющий преимущества генетических алгоритмов и генетического программирования, основанный на эволюционных вычислениях, шаблонах (темплейтах, скелетонах) алгоритмов и заданном множестве пар входных — выходных данных. Исследовано влияние степени специализации шаблона на пространство поиска при эволюционном синтезе, получены оценки величины сокращения пространства поиска при введении в шаблон дополнительной информации в виде формул, уточняющих модель и имеющих представление в виде бинарного дерева. Теоретически и экспериментально показано для данного случая экспоненциальное и сверхэкспоненциальное сокращение времени работы алгоритма синтеза при увеличении степени специализации шаблона.
Ключевые слова: генетический алгоритм, генетическое программирование, эволюционный синтез, шаблон, темплейт, скелетон.
Введение
В работе рассматривается проблема синтеза алгоритма (модели) A как задача поиска параметров и функций данного шаблона T (темплейта) алгоритма с целью оптимизации заданной функции F, характеризующей качество алгоритма A. Шаблон (template, skeleton [1-3], design pattern [4]) представляет собой управляющую параметризованную структуру алгоритма, которая описывает порядок сканирования структур данных алгоритма и определяет динамику вычислительного процесса в пространственно-временных координатах.
Пусть шаблон T алгоритма A содержит параметры P = {pk : k ^ 0}, описывающие значения целочисленных и действительных коэффициентов и переменных, значения индексов, параметры структур данных, константы и некоторые примитивные операции алгоритма (величины инкрементов и декрементов, знаки переменных, логические операции и отношения, типы округления переменных). Пусть шаблон T содержит также множество функций (формул) FM = {fn : n ^ 0} алгоритма A. При задании значений параметров P и определении функций FM в данном шаблоне T получаем (синтезируем) алгоритм A(T,P,FM).
хРабота поддержана грантом РФФИ №08-01-00857.
Если заданы наборы значений входных параметров алгоритма Хг, 1 ^ г ^ N, и выходных параметров У;, которые необходимо получить в результате исполнения алгоритма, то качество работы алгоритма характеризует целевая функция Г, оценивающая величину рассогласования между требуемыми У и полученными выходными значениями алгоритма при данных входных значениях Уг = А(Т, Р, ГМ, Хг). Кроме того, функция Г может оценивать не только точность, но и сложность получаемого алгоритма (например, время выполнения, число итераций, сложность (длину) формул [5]).
Таким образом, проблема синтеза алгоритма состоит в следующем: для данного шаблона Т и заданных наборов значений входных — выходных параметров {Хг,Уг : 1 ^ г ^ N} необходимо найти такие значения параметров Р * и функций ГМ * шаблона Т, определяющие алгоритм А*(Т, Р*, ГМ*), что
Г(А*(Т, Р*,ГМ*,Хг)) ^ Г(А(Т, Р, ГМ, Хг))
для всех 1 ^ г ^ N при любых других значениях параметров Р Е Вош(Р) и функций ГМ Е Бош(ГМ).
Для решения проблемы автоматизированного синтеза (открытия) алгоритмов используется эволюционный алгоритм, основанный на шаблонах [5-8], оптимизирующий заданный критерий качества Г. Этот гибридный алгоритм синтеза использует структуры данных и операторы генетических алгоритмов (ГА) [9] и генетического программирования (ГП) [10] и позволяет получить новые свойства (меньшее время исполнения и синтез алгоритмов с большей циклической сложностью и наличием рекурсивных функций, по сравнению с ГП, и синтез новых функций и предикатов, что достаточно трудно при традиционном ГА).
Эти свойства подхода с использованием шаблонов основаны на предварительном знании прикладной области и выборе обобщённой вычислительной схемы алгоритма, задаваемой в виде шаблона. Традиционное генетическое программирование страдает от слабо ограниченного слепого поиска в огромных пространствах параметров для реальных прикладных проблем и имеет большие временные затраты. В данной работе исследуется использование шаблонов алгоритмов для ограничения и сокращения пространства поиска к допустимым моделям и структурам решений. Этот подход представляет гибкий и прямой путь включения знаний эксперта относительно параметров, функций и структуры решаемой проблемы в разрабатываемую вычислительную модель алгоритма. В предельных случаях, с одной стороны, если мы не знаем шаблон искомого алгоритма, данный подход даёт традиционное генетическое программирование. С другой стороны, если мы знаем полную структуру алгоритма и не знаем только некоторые его параметры, данный подход даёт традиционный генетический алгоритм для поиска оптимальных параметров. Примером такой параметрической оптимизации на основе заданного шаблона с помощью генетического алгоритма служит алгоритм, предназначенный для открытия аналитических описаний новых плотных семейств оптимальных регулярных сетей [6, 7].
В п. 1 представлено краткое описание алгоритма эволюционного синтеза, в п. 2 получены оценки влияния степени специализации шаблона на пространство поиска при эволюционном синтезе.
1. Алгоритм эволюционного синтеза
Алгоритм эволюционного синтеза основан на эволюционных вычислениях и моделировании процесса естественного отбора популяции особей, каждая из которых
представлена точкой в пространстве решений задачи оптимизации. Особи представлены структурами данных Gen — хромосомами, включающими недоопредёленные параметры pk и функции (формулы) fn шаблона T: Gen = {P,FM} = [pi,p2,...,pk; fi, f2,... , fn}, k,n ^ 0. Эти параметры и функции определяют необходимый алгоритм A(T, Gen) на основе заданного шаблона T и хромосомы Gen. Каждая популяция является множеством структур данных Gen и определяет множество алгоритмов A(T, Gen), образующихся из данного шаблона T.
Для представления и реализации хромосомы предложен подход, основанный на комбинации линейной структуры хромосомы для параметров pk (как в ГА [9]) и древовидной структуры хромосомы для каждой из функций (формул) fn (как в ГП [10]). Линейная структура хромосомы Gen используется для представления таких параметров pk шаблона T, как значения целочисленных и действительных коэффициентов и переменных, значения индексов, величины инкрементов и декрементов, а также знаков переменных, логических операций и отношений, типов округления переменных.
Древовидные структуры в хромосоме Gen используются для представления каждой из функций (формул) fn. Переменные и константы формулы fn образуют листья (терминальные вершины) дерева — TS, а операции и примитивные функции, используемые в формуле fn, соответствуют остальным (нетерминальным) вершинам дерева — NS. Каждая операция (примитивная функция) и её операнды (аргументы примитивной функции) представлены соответственно вершиной и её сыновьями в дереве.
Пусть дана формула fn = (5x + a)(x — 2)2, тогда имеем следующие множества терминальных TS = [x, a, 2, 5} и нетерминальных NS = {+, —, •? , } вершин. Пример соответствующего дерева представлен на рис. 1.
.V 5 X 2
Рис. 1. Представление формулы в виде дерева
Для заданного шаблона T при создании хромосом Gen порождаются аналитические выражения для функций fn и задаются значения параметров pk, по которым можно производить оценивание и модификации алгоритма A(T, Gen).
Примем, что целевая функция (fitness function, функция качества, функция пригодности) F вычисляет сумму квадратов отклонений выходных данных алгоритма Yi = A(T, Gen, Xi) от заданных эталонных значений Yi для определённых наборов множества входных данных Xi, 1 ^ i ^ N:
N
F =E(A(T,Gen,Xi) — Yi)2. i=i
Целью алгоритма является поиск минимума F. На практике если получается несколько решений с одинаковым значением целевой функции, то выбирается решение с меньшей оценкой структурной сложности, т. е. с меньшей общей длиной формул решения.
Таким образом, для фиксированных значений функций fn и параметров pk можно вычислять выходные значения Y( алгоритмов A(T,Gen,Xi), порождённых на основе
заданных шаблонов T и полученных в ходе эволюции хромосом Gen, для требуемых наборов множества входных данных Xi, 1 ^ i ^ N. После выполнения алгоритмов A получаем значения целевой функции F и выбираем лучшие алгоритмы в популяции.
Основная идея алгоритма синтеза состоит в эволюционном преобразовании множества хромосом (параметров и формул шаблона) с помощью генетических операций селекции (отбора), мутации, кроссовера и добавления новых элементов в процессе естественного отбора с целью выживания «сильнейшего», т. е. имеющего наименьшее значение целевой функции, алгоритма.
Оператор мутации применяется к особям, случайно выбранным из текущей популяции с вероятностью pm Е [0,1]. Мутация линейной части хромосомы Gen состоит в изменении значения случайно выбранного параметра pk на другую случайно выбранную величину из множества допустимых значений. Мутация древовидной части хромосомы Gen состоит в изменении значения случайно выбранной вершины в представлении функции fn на другую случайно выбранную величину из множества допустимых значений.
Оператор кроссовера (скрещивания) применяется к двум особям (родителям), случайно выбранным из текущей популяции с вероятностью pc Е [0,1]. Кроссовер состоит в порождении двух новых особей путём обмена частями хромосом родителей (подча-стями линейных структур и поддеревьями для древовидных структур хромосомы).
Оператор создания нового элемента (особи) состоит в генерации случайных значений параметров pk и функций fn, описывающих алгоритмы. Это позволяет увеличить степень разнообразия особей при создании популяции.
Оператор селекции (отбора) реализует принцип выживания наиболее приспособленных особей. Он выбирает наилучших особей с минимальными значениями целевой функции.
Для поиска оптимума заданной целевой функции F итерационный процесс вычислений в алгоритме эволюционного синтеза организован следующим образом.
П е р в а я и т е р а ц и я (инициализация): порождение начальной популяции. Все особи популяции создаются с помощью оператора новый элемент с проверкой и отсеиванием всех непригодных особей. После заполнения массива популяции лучшие особи отбираются и запоминаются в массиве best.
П р о м е ж у т о ч н а я и т е р а ц и я (генерация новой популяции): шаг от текущей к следующей популяции. Основной шаг алгоритма состоит в создании нового поколения особей на основе массива best и текущей популяции с использованием операций селекции, мутации, кроссовера и добавления новых элементов.
После оценки целевой функции для каждой особи в поколении проводится сравнение значений этих функций со значениями целевых функций тех особей, которые сохранены в массиве best. В том случае, если элемент из нового поколения лучше, чем элемент best[i], для некоторого i, помещаем новый элемент на место i в массив best и сдвигаем в нём все остальные элементы на единицу вниз. Таким образом, лучшие элементы локализуются в массиве best на местах с меньшими значениями индекса.
П оследняя итерация (критерий остановки): итерации заканчиваются либо после исполнения заданного числа шагов, либо после нахождения оптимального алгоритма A(T, Gen) (с заданным значением целевой функции F). После выполнения данного количества шагов алгоритма синтеза получаем множество (популяцию) алгоритмов A(T, Gen), содержащее в элементе best[0] алгоритм A*(T,Gen), имеющий минимальное значение целевой функции F.
2. Оценки влияния степени специализации шаблона на пространство поиска
Алгоритм эволюционного синтеза на основе шаблонов был успешно применён для автоматизированного получения следующих алгоритмов: вычисления степени и факториала натурального числа, определения минимального (максимального) элемента массива, определения суммы квадратов элементов массива, вычисления скалярного произведения векторов, определения формул последовательностей Фибоначчи и Три-боначчи, вычисления суммы двух матриц, сортировки методами пузырька, слияния и Шелла, вычисления корней уравнений, определения минимального покрывающего дерева и кратчайших путей в графе, параллельных алгоритмов балансировки нагрузки в многопроцессорных системах. Данный подход был также применён для открытия аналитических описаний новых плотных семейств оптимальных регулярных сетей [6, 7, 11] и синтеза нового алгоритма определения функции расстояния для цир-кулянтных графов степени 4.
Эволюционный синтез алгоритмов на основе шаблонов реализован в системе TES (Template-based Evolutionary Synthesis) [8] на языке программирования C, шаблоны также задаются на этом языке.
При реализации алгоритма эволюционного синтеза на основе шаблонов основную трудность представляет поиск неопределённых функций с помощью генетического программирования. Пространство поиска в этом случае представлено множеством деревьев, в котором переменные и константы образуют листья дерева, а операции и примитивные функции — внутренние (нетерминальные) вершины дерева. Обозначим через S число терминальных символов, M — число примитивных функций.
Для оценки влияния степени специализации шаблона на сокращение пространства поиска при эволюционном синтезе с введением в шаблон дополнительной информации в виде формул, уточняющих модель, рассмотрим два простых, но достаточно общих случая: 1) когда в шаблоне известно полное поддерево высотой h и 2) когда в шаблоне известно поддерево с t вершинами. Примем, что множество примитивных функций составляют функции с двумя переменными (операндами), в этом случае достаточно рассматривать бинарные деревья. При поиске полного бинарного дерева высотой h в эволюционном алгоритме перебираются деревья высотой не более h. Обозначим TN(h) число различных бинарных деревьев высотой не более h. Деревья, состоящие из одной терминальной вершины (корня), имеют высоту 0, число таких деревьев TN(0) = S. Число различных деревьев высотой не более h > 0 получается из комбинации M корневых вершин (по числу примитивных функций), двух различных поддеревьев высотой не более h — 1 и дополнительно S деревьев высотой 0. Отсюда число деревьев высотой не более h > 0 равно TN(h) = M • TN2(h — 1) + S. При M =1 и S =1 получаем известную формулу для числа различных бинарных деревьев высотой не более h: TN(h) = TN2(h — 1) + 1 (см. [12, 13], последовательность A003095 (M1544)).
Пример числа деревьев высотой не более h для двух различных наборов значений M и S приведён в табл. 1. Как видно из таблицы, с ростом высоты деревьев h пространство поиска увеличивается значительно (сверхэкспоненциально, с порядком роста O(C2 ), где C — константа, зависящая от M и S, см. рис. 2), поэтому уменьшение путём использования более специализированного шаблона даже на 1 высоты деревьев, представляющих неизвестные функции, приводит к сверхэкспоненциальному сокращению пространства поиска при эволюционном синтезе от нескольких раз до нескольких порядков.
Таблица 1 ТN (Н) — число деревьев высотой не более Н
Н 0 1 2 3 4 5
М = 1, 5 =1 1 2 5 26 677 458330
М = 4, 5 = 2 2 18 1298 6,74 • 106 О 1 2 00 1 1,32 • 1029
Шф)
1Е+016 -»
1Е+015 -3 1Е+014 -|
1Е+013 -3 1Е+012 -3
100000000000 -3
10000000000 -3 1000000000 -3 100000000 -3 10000000 -3 1000000 -3 100000 -3 10000 -3 1000 -3 100 -3
10 -О'"'
1 ----1-----1------1-----1------1-----1-----1------1 ь
1 2 3 4 5
Рис. 2. Графики функций TN(Н) (при М = 4, 5 = 2) и /п(Н) = 32^
Для примера рассмотрим влияние степени специализации шаблона с различной высотой поддеревьев при поиске полиномиальной функции Г(х) = х8 + х4 + ж2 — (ж + 2), представленной на рис. 3.
Число итераций и размер популяции выбраны экспериментально на основе параметров из [9, 10]. Значения основных параметров в экспериментах приведены в табл. 2.
Т а б л и ц а 2 Значения параметров алгоритма
Параметр Значение
Размер популяции, особей 100
Число итераций, шт. 30000
Вероятность кроссовера, % 70
Вероятность мутации, % 15
Пусть заданы 8 пар вход — выход для х = 0,1,..., 7 и шаблон Т (х) = Т (Ьг, х4 + х2 — (х + 2)), где известный терм х4 + х2 — (х + 2) и известное поддерево шаблона Е {Ь1 = х2 ,Ь2 = х4 ,Ь3 = х8} будут последовательно снижать высоту к = 3, 2,1 неизвестного поддерева функции Г(х). Множество терминальных символов в этом случае ТБ = {х,Сг}, Б = 2, где С г — элемент множества случайных натуральных чисел. Набор операций, используемый для синтеза формул, в шаблонах следующий:
... /I 1\ 1\ \\ 1\ 1\ Л К
_____ XX XX XX XX XX XX XX X 2
Рис. 3. Представление функции ^(х) = х8 + х4 + х2 — (х + 2) в виде дерева
N8 = {+, —, ■,/}, М = 4. В табл. 3 приведены результаты сравнения характеристик алгоритма эволюционного синтеза — времени поиска решения и числа поколений О — до получения решения (функции Г (ж)) при различных шаблонах (для каждого шаблона приведены средние значения, полученные по результатам 100 экспериментов).
Таблица 3 Характеристики алгоритма
Шаблон їі Н Время, с О
= х2 3 43,03 19010,39
2 2 0,076 38,53
І3 = х8 1 0,0036 1,5
Из табл. 3 видно, что с уменьшением высоты Н неизвестных поддеревьев шаблона пространство поиска значительно сокращается и характеристики алгоритма эволюционного синтеза уменьшаются от нескольких раз до нескольких порядков (сверхэкспоненциально, с оценкой порядка О (С2 ); так, О(Н) 3,42 при М = 4, 8 = 2).
Рассмотрим влияние степени специализации шаблона на сокращение пространства поиска при эволюционном синтезе во втором случае — когда в шаблоне известно поддерево с £ внутренними вершинами. Обозначим TN(£) число различных бинарных деревьев с £ внутренними вершинами. Число таких деревьев, состоящих из одной терминальной вершины (корня), TN(0) = 8. Число различных деревьев с £ > 0 внутренними вершинами получается из комбинации М корневых вершин (по числу примитивных функций) и всех комбинаций двух различных поддеревьев, имеющих в сумме £ — 1
внутренних вершин. Отсюда число различных бинарных деревьев с £ внутренними
г-1
вершинами TN(£) = ^ М ■ TN(£ — 1 — ])TN(]). При М = 1 и 8 =1 получаем известно
г-1
ную формулу для чисел Каталана: С(£) = ^ С(£ — 1 — ])С), С(0) = 1, £ > 0. Числа
.7=0
Каталана имеют множество комбинаторных интерпретаций (см. [12, 13], последовательность А000108 (М1459)), одна из которых — число различных бинарных деревьев с £ внутренними вершинами [14].
Пример числа деревьев с £ внутренними вершинами для двух различных наборов значений М и 8 приведён в табл. 4. Как видно из таблицы, с ростом числа внутренних
вершин деревьев пространство поиска увеличивается экспоненциально (с порядком роста О(С *), где С — константа, зависящая от М и Б, см. рис. 4 для функций ТЫ (£) при М = 4, Б = 2, f 1(£) = 0,7е1,7* и f2(£) = 6*), поэтому уменьшение путём использования более специализированного шаблона числа вершин деревьев, представляющих неизвестные функции, приводит к экспоненциальному сокращению пространства поиска при эволюционном синтезе.
Таблица 4
ТЖ(Ь) —число деревьев с Ь внутренними вершинами
Ь 0 1 2 3 4 5 6 7 8 9 10
М = 1, 8 = 1 1 1 2 5 14 42 132 429 1430 4862 16796
М = 4, 8 = 2 2 4 16 80 448 2688 16896 109824 732160 4978688 34398208
100000000
О 2 4 6 6 10
Рис. 4. Графики функций ТЖ(Ь) при М = 4, 8 = 2, / 1(Ь) = 0,7в1,7* и /2(Ь) = 6*
Для примера рассмотрим влияние степени специализации шаблона с различным числом вершин поддеревьев при поиске функции ^(х)=2(х+2(х+2(х+2(х+2(х+2))))), £ =10, представленной на рис. 5.
2 Л- 2X2 *2X2*
Рис. 5. Представление функции ^(ж) = 2(ж + 2(ж + 2(ж + 2(ж + 2(ж + 2))))) в виде дерева
Пусть заданы 8 пар вход — выход для х = 0,1,... , 7 и шаблон Т(ж) = Т(Т^, ^), г = 1,... , 5, где Г,1 — известная часть функции, Т — поддерево, которое представляет
неизвестную часть функции и последовательно имеет і = 1, 2, 3, 4, 5 внутренних вершин (см. табл. 5). Множество терминальных символов в этом случае ТБ = {х,Сг}, Б =2, где Сг — элемент множества случайных натуральных чисел. Набор операций, используемый для синтеза формул, следующий: ЫБ = {+, —, ■,/}, М = 4. В табл. 5 приведены результаты сравнения характеристик алгоритма эволюционного синтеза — времени поиска решения и числа поколений О до получения решения — при различных шаблонах (для каждого шаблона приведены средние значения, полученные по результатам 100 экспериментов).
Т а б л и ц а Б
Сравнение характеристик алгоритма эволюционного синтеза
i Ti, Fi t Время, с G
1 Ti = 2Fi, Fi = (x + 2(x + 2(x + 2(x + 2(x + 2))))) 1 0,0045 1,41
2 T2 = 2(x + F2), F2 = 2(x + 2(x + 2(x + 2(x + 2)))) 2 0,059 25,9
3 T3 = 2(x + 2F3), F3 = (x + 2(x + 2(x + 2(x + 2)))) 3 0,45 231,15
4 T4 = 2(x + 2(x + F4)), F4 = 2(x + 2(x + 2(x + 2))) 4 18,5 9321,4
5 T5 = 2(x + 2(x + 2F5)), F5 = (x + 2(x + 2(x + 2))) 5 48,4 24532,2
Из табл. 5 видно, что с уменьшением числа внутренних вершин t неизвестных поддеревьев шаблона пространство поиска сокращается экспоненциально и характеристики алгоритма эволюционного синтеза уменьшаются также экспоненциально (с оценкой порядка O(C*); так, G(t) ~ 0,01e2,48t при M = 4, S =2).
Рассмотрим влияние степени специализации шаблона с различным числом вершин поддеревьев при поиске функции F(x) = exx3 sin(x) cos(x), t = 8, включающей функции от одной переменной и имеющей представление в виде дерева с внутренними вершинами со степенями 2 и З.
Пусть заданы 15 пар вход — выход для x = 0,1,..., 14 и шаблон T(x) = f(Ti), i = 1,... , Б, где Ti — поддерево, которое представляет неизвестную часть функции, а известная часть последовательно имеет t = 1, 2, 3, 4, Б внутренних вершин (см. табл. б). Множество терминальных символов в этом случае TS = {x,Cr}, S = 2, где Cr — элемент множества случайных натуральных чисел. Набор операций, используемый для синтеза формул, следующий: NS = {+, —, ■,/, exp, sin, cos}, M = Т. В табл. б приведены результаты сравнения характеристик алгоритма эволюционного синтеза — времени поиска решения и числа поколений G до получения решения — при различных шаблонах (для каждого шаблона приведены средние значения, полученные по результатам 1QQ экспериментов).
Т а б л и ц а б Сравнение характеристик алгоритма
i T, Ti t Время, с G
1 T = T' ■ T", T' = ex ■ sin(x), T" = x3 ■ cos(x) 1 1977,8 641,7
2 T = T2 ■ cos(x), T2 = ex ■ x;3 ■ sin(x) 2 696,6 296,7
3 T = T3 ■ cos(x) ■ x, T3 = ex ■ x2 ■ sin(x) 3 150,5 31,9
4 T = T4 ■ cos(x) ■ x ■ x, T4 = ex ■ x ■ sin(x) 4 2,55 11,7
5 T T 5 c О ( x) x CO n( x) f 5 e x tc 5 0,6 2,5
Из табл. 6 видно, что с увеличением числа внутренних вершин і известных поддеревьев шаблона пространство поиска и характеристики алгоритма значительно умень-
шаются (с оценкой порядка O(C-t); так, G(t) ~ 0,0044e-1,75t при M = 7, S =2), хотя величина показателя меньше, чем в случае бинарного дерева.
Рассмотрим влияние шаблона при поиске описания последовательности Маккея — Гласса (Mackey — Glass), имеющей в дискретной форме следующий вид: x(n) = = 0,9x(n — 1) + 0,2x(n — 17)/(1 + x(n — 17)10). Пусть заданы 100 пар вход —выход для n = 0,1,... , 99, множество терминальных символов TS = {x, Cr}, S = 2, множество примитивных функций NS = {+, —, •,/, pow(5,x)}, M = 5. При поиске описания в форме x(n) = f (x(n — c),x(n — d)), где параметры c E [0, 21], d E [0, 21] —целые числа, при числе поколений G = 5000 и времени поиска решения 4961с получаем приближённое решение с величиной ошибки е = 0,0058. При использовании шаблона, выражающего зависимость от предыдущего и любого другого члена последовательности в виде x(n) = a • x(n — 1) + b • f (x(n — d)), где a E [0, 2], b E [0, 2] — действительные, d E [0, 21] —целые числа, получаем точную формулу последовательности при числе поколений G = 801 и времени поиска решения 905 с.
Заключение
Дано описание алгоритма эволюционного синтеза, объединяющего преимущества генетических алгоритмов и генетического программирования, основанного на эволюционных вычислениях, шаблонах (темплейтах, скелетонах) алгоритмов и заданном множестве пар входных — выходных данных. Проведено исследование влияния степени специализации шаблона на пространство поиска при эволюционном синтезе, получены оценки величины сокращения пространства поиска при введении в шаблон дополнительной информации в виде формул, уточняющих модель и имеющих представление в виде бинарного дерева. Для данного случая теоретически и экспериментально показано экспоненциальное и сверхэкспоненциальное сокращение времени работы алгоритма синтеза при увеличении степени специализации шаблона. В планах на будущее стоит исследование влияния на результаты синтеза использования некорректного шаблона и способов его автоматической коррекции алгоритмом эволюционного синтеза.
ЛИТЕРАТУРА
1. Cole M. Algorithmic Skeletons: Structured Management of Parallel Computation.
Cambridge: The MIT Press, 1989. 131 p.
2. Mirenkov N. and Mirenkova T. Multimedia Skeletons and “Filmification” of Methods // Proc. First Intern. Conf. Visual Information Systems. Melbourne, Australia: Victoria University, 1996. P. 58-67.
3. Watanobe Y., Mirenkov N., Yoshioka R., and Monakhov O. Filmification of methods: A visual language for graph algorithms // J. Visual Languages and Computing. 2008. No. 1. P. 123-150.
4. Gamma E., Helm R., Johnson R., and Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA.: Addison-Wesley, 1994. 416 p.
5. Монахов О. Г. Эволюционный синтез алгоритмов на основе шаблонов // Автометрия. 2006. №1. С. 116-126.
6. Монахов О. Г., Монахова Э. А. Синтез новых семейств оптимальных регулярных сетей на основе эволюционных вычислений и шаблонов функций // Автометрия. 2004. №4. С.106-116.
7. Monakhov O. and Monakhova E. An Algorithm for Discovery of New Families of Optimal Regular Networks // Proc. 6th Inter. Conf. on Discovery Science (DS 2003), Oct. 17-20, 2003, Sapporo, Japan. Lecture Notes in Artificial Intelligence. 2003. V. 2843. P. 244-254.
8. Монахов О. Г. Программа эволюционного поиска математических описаний недоопреде-ленных функций на основе шаблонов // Свид. об официальной регистрации программы на ЭВМ №2011611546. М.: Федеральная служба по интеллектуальной собственности, патентам и товарным знакам, 2011.
9. Goldberg D. E. Genetic Algorithms, in Search, Optimization and Machine Learning. Reading, MA.: Addison-Wesley, 1989. 432 p.
10. Koza J. Genetic Programming. Cambridge: The MIT Press, 1992. 814 p.
11. Monakhova E., Monakhov O., and Mukhoed E. Genetic Construction of Optimal Circulant
Network Designs // LNCS. 1999. V. 1596. P. 215-223.
12. Sloane N. J. A. and PlouffeS. The Encyclopedia of Integer Sequences. London: Academic Press, 1995. 587 p.
13. http://oeis.org — On-Line Encyclopedia of Integer Sequences.
14. Koshy T. Catalan numbers with applications. Oxford: Oxford University Press, 2009. 422 p.