Известия высших учебных заведений. Поволжский регион
УДК 681.3.01:681.3.05
П. П. Макарычев, Н. В. Слепцов
АЛГОРИТМЫ ГЕНЕРАЦИИ ДЕРЕВЬЕВ ДЛЯ ГЕНЕТИЧЕСКОГО ПОИСКА
Аннотация.
Актуальность и цели. Применение эволюционных методов вычислений позволяет эффективно решать широкий круг слабоформализуемых задач. При этом эволюционные вычисления требуют комплексного решения ряда проблем, в число которых входит генерация структур решений, что обусловливает актуальность рассматриваемых вопросов.
Материалы и методы. Генетическое программирование - эволюционный метод оптимизации, который генерирует функциональные программы решения конкретных задач. Обычно программы формируются в виде дерева, интерпретируемого как ^-выражение языка LISP. Массовая генерация программ/ деревьев при каждом цикле эволюционного моделирования предъявляет к качеству алгоритмов генерации достаточно высокие требования по скорости, размеру дерева и вероятностным характеристикам узлов. Предложенные алгоритмы сочетают свойства высокоэффективных с точки зрения генерации структур решений с обеспечением повышенной устойчивости генетического моделирования.
Результаты и выводы. Предлагаются новые алгоритмы, которые обеспечивают создание однородно распределенных структур и более низкую вычислительную сложность и управление их характеристиками на основе данных пользователя.
Ключевые слова: генетическое программирование, популяция, генерация дерева, мутация, рост дерева.
P. P. Makarychev, N. V. Sleptsov
TREES GENERATING ALGORITHMS FOR GENETIC SEARCH
Abstract.
Background. Application of evolutionary computing methods effectively to solve a wide range subformulae tasks. Еvolutionary computations require complex solutions of a number of problems that include generation of solution structures. This fact proves relevance of the issues under consideration.
Materials and methods. Genetic programming is an evolutionary method of optimization that generates functional programs to solve specific tasks. Usually the programs are shaped in the form of a tree, which is interpreted as the s-expression in LISP language. The programs/trees mass generation during each cycle of evolutionary modeling makes quite high demands to the quality of the generating algorithms on speed, tree size and probabilistic characteristics of nodes. The proposed algorithms combine properties of highly efficient solutions, from the point of view of structures’ generation, ensuring high stability of genetic modeling.
Results and conclusions. The authors have proposed new algorithms that generate uniformly distributed structures and lower computational complexity and management of their characteristics based on user data.
Key words: genetic programming, population, tree generation, mutation, tree growth.
16
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
Введение
Генетическое программирование (ГП) - разновидность генетических алгоритмов, использующая моделирование эволюции некоторой популяции для формирования решения в виде функциональной программы. Чаще всего при ГП генерация и развитие программ проводится в виде LISP-подобных деревьев/программ, сформированных из функций и узлов. Такое представление обеспечивает одновременно и представление генетической кодировки и конечное решение - программу - без необходимости промежуточных представлений и преобразований генотип-фенотип.
Моделирование эволюции популяции решений, представленных в виде деревьев, предъявляет определенные требования к применяемым для манипуляции с этими объектами алгоритмам, в частности, к алгоритмам генерации начальной популяции и алгоритмам генерации поддеревьев с использованием генетических операторов на основе имеющегося популяционного материала. Характеристики таких алгоритмов критичны для всего вычислительного эксперимента вследствие быстрого роста числа анализируемых решений и резкого усложнения их структуры [1].
Алгоритмы генерации должны предусматривать механизмы оперативного или текущего ограничения неконтролируемого роста дерева в ходе эволюционного процесса, не связанного с улучшением оценки пригодности [2, 3]. Подобный рост, или разрастание, замедляет эволюционный процесс, делая особи более стойкими к изменениям, замедляет общую скорость смены популяции и получения оценок ее пригодности, увеличивает требования к памяти. Большинство механизмов ограничений связано с генетическими операторами модификации генетического кода, в нашем случае представляющего дерево. Основную роль в неконтролируемом росте дерева играет генетический оператор кроссовера (ОК) [2]. В то же время ряд источников указывает, что генетический оператор мутации (ОМ) в сочетании с селективным давлением, основанным на оценке пригодности, также вызывает неконтролируемый рост [3].
К недостаткам часто применяемого для ГП алгоритма генерации деревьев GROW [2] относится отсутствие реальных возможностей управления, за исключением ожидаемого размера дерева и его максимальной глубины. Алгоритм достаточно часто генерирует бесконечные деревья, кроме того, большинство разновидностей алгоритма не обеспечивает управления на внутреннем уровне, за исключением вероятности появления определенной функции в дереве. В то же время в связи с рассмотрением вопросов межузлового/ межмодульного взаимодействия, межузловых зависимостей, связей и семантики возможность жесткого управления появлением узлов определенного вида была бы крайне желательна.
Предлагаемые ниже алгоритмы решают ряд отмеченных проблем, в частности, генерация в зависимости от требования пользователя может определяться либо средними характеристиками дерева, либо заданным распределением. Алгоритмы генерируют деревья с определяемыми пользователем вероятностными характеристиками появления в пределах сгенерированных деревьев требуемых терминальных и нетерминальных функций/узлов вместо однородных случайных древовидных структур, как их предшественники. Дополнительно обеспечивается строгий контроль типов.
Engineering sciences. Computer science, computer engineering and control
17
Известия высших учебных заведений. Поволжский регион
1. Обозначения
Введем следующие обозначения: T - вновь сгенерированное дерево программы; S - максимальное число узлов в дереве, разрешенное алгоритмом генерации дерева; D - максимальная глубина дерева, разрешенная алгоритмом; Etree - ожидаемый размер дерева T. T создается выбором узлов из набора функций F, состоящего из двух непересекающихся наборов, терминалов T (листья) и нетерминалов N (внутренние узлы); р - вероятность выбора алгоритмом создания дерева в процессе выбора узлов для формирования T, нетерминала из набора функции (в противоположность терминалу); b - ожидаемое число потомков к нетерминальным узлам, выбранным от набора функций; g - ожидаемое число потомков вновь сгенерированного узла в T. Поскольку ожидаемое число потомков для узла-терминала - 0, для нетерминала - р, то g = Pb + (1 -Р)(0) = pb .
2. Алгоритмы
Из известных алгоритмов генерации деревьев, применяемых в ГП [3, 4], укажем алгоритм спуска наполовину (A1), алгоритм роста (GROW), алгоритм случайных ветвлений (A2), алгоритм равномерного выбора (A3).
А1. Алгоритм спуска наполовину - стандартный при генерации деревьев в ГП. Контролируемым параметром является диапазон глубины дерева (обычно 2-6, здесь «глубина» определяется в терминах числа узлов), кроме того, задается максимальный размер дерева.
Алгоритм выбирает случайную величину в пределах диапазона глубины дерева. Далее с вероятностью 0,5 А1 для генерации применяет либо алгоритм GROW, либо алгоритм FULL, передавая это значение в обоих случаях в качестве параметра:
GROW:
GROW (depth d, Max_ depth D)
Returns: a tree of depth <D - d
IF d = D return a random terminal Else
M: Choose a random function or terminal f
IF f is a terminal, return f ELSE
FOR each argument a of f ,
FILL a WITH GROW (d+1,D)
Return f with filled arguments
GROW первоначально размещает 0 в d, переданный параметр - в D. Отличие FULL от GROW лишь в строке с меткой M. GROW в строке M выбирает только нетерминальную функцию и, следовательно, FULL создает только полные деревья, всегда требуемой глубины.
A1, в отличие от других алгоритмов, не использует в качестве параметра размер дерева, поэтому связать оценку его сложности с размером напрямую нельзя. При отсутствии ограничений по глубине А1 может генерировать бесконечные древовидные структуры. Основную роль в неконтролируемом росте дерева играет ОК [3]. Ряд источников показывает, что и ОМ в сочетании с селективным давлением, основанным на оценке пригодности, также вызывает некон-
18
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
тролируемый рост [4]. Как показано ниже, ОМ может вызвать существенный рост и без селективного давления.
А2. Алгоритм случайных ветвлений, или RANDOMBRANCH [2], генерирует дерево заданного или меньшего размера.
Алгоритм R_B:
A2: R_B( s)
Returns: a tree of size <s
IF a nonterminal with arity <s does not exist RETURN a random terminal
ELSE
CHOOSE a random nonterminal n of arity <s LET bn be the arity of n FOR each argument a of n,
FILL a with R_B(_ s bn _)
RETURN n with filled arguments
A2 равномерно разделяет s среди поддеревьев исходных нетерминалов -предков, в результате значительная часть деревьев по природе алгоритма не может быть сгенерирована. Поэтому А2 достаточно ограничен по возможностям, хотя к его достоинствам относится практически линейная сложность относительно размера дерева.
А3. Алгоритм равномерного выбора
Алгоритм, представленный в [2], известен как равномерный. Принцип А3 основывается на создании дерева заданного размера посредством выбора с равной вероятностью из полного набора деревьев заданного размера. Первоначально А3 формирует ряд таблиц, в том числе таблицу номеров деревьев. При последующей генерации из этих таблиц выбираются узлы. Для нетерминальных узлов А3 назначает каждому потомку размер генерируемой структуры, выбираемый из таблиц. Алгоритм для полного описания достаточно громоздкий, его сложность близка к полиномиальной.
А4, А5. Принципиальной альтернативной возможностью генерации деревьев для ГП может стать отказ от попытки сгенерировать равномерно распределенные древовидные структуры при одновременном обеспечении гарантии появления функциональных узлов в дереве с заданной вероятностью.
Алгоритм А4 является развитием А1, отличающимся заданием вероятности появления узлов/функций дерева/программы и средним ожидаемым размером структуры. А5 задает распределение размера дерева и обеспечивает при выборе случайного размера из этого распределения генерацию дерева такого же размера либо незначительно большего.
А4. Множество функций F разделено на два непересекающихся подмножества: нетерминалов N и терминалов T. А4 выбирает новые узлы - потомки как из нетерминалов, так и из терминалов. Для каждого нетерминала n из N существует вероятность qn, что n будет выбран из N, когда алгоритм нуждается в нетерминале. Аналогично для каждого терминала t из T есть вероятность qt, что t будет выбран из T, когда алгоритму требуется терминал. Максимальное граничное значение глубины D главным образом обеспечивает ограничения по памяти. Etree - ожидаемый размер дерева.
Engineering sciences. Computer science, computer engineering and control
19
Известия высших учебных заведений. Поволжский регион
Перед генерацией каждого дерева вычисляется вероятность р предпочтения нетерминала терминалу для генерации дерева с заданным показателем
Etree •
1 —
1
Р =
Et
tree
qnbn
neN
где bn - арность нетерминального n.
А4:
new tree T = A4(0)
A4(d)
RETURNS: a tree of depth <D - d
IF d = D, RETURN a terminal from T (by qt prob)
ELSE IF, with probability p a nonterminal must be picked,
CHOOSE a nonterminal n from N (by qn prob)
FOR each argument a of n,
FILL a with A4(d + 1)
RETURN n with filled arguments
ELSE RETURN a terminal from T (by qt prob)
А4 гарантирует ожидаемый размер дерева Etree для деревьев и поддеревьев, определяя соответствующую вероятность нетерминального выбора р. В простейшем случае при наличии одних терминалов в F, Etree = 1. Показатели характеристик структуры генерируемого дерева можно смещать изменением вероятностей соотношения нетерминалов с требуемыми показателями ветвления к терминалам.
А5. К недостатку А4 можно отнести отсутствие управления изменением в размере деревьев, в частности, пользователь ограничен в средствах воздействия на генерацию деревьев малого размера. Так, для пяти нетерминалов и пяти терминалов средняя нетерминальная арность равна 2, при ожидаемом размере 10 почти половина потомков имела бы размер 1. Аналогичная проблема существует и для GROW, причем в этом смысле А4 показывает лучшие результаты. Проблема решается в А5 предварительным заданием распределения требуемого размера древовидной структуры. Скорость алгоритма остается на уровне А4, но простота при этом теряется.
А5. В дополнение к параметрам А4 - D, s, N, T, р, q, вносится максимальная граница глубины дерева S и распределение вероятностей размера дерева wu...,ws для s от 1 до S.
А5:
new tree T = А5()
Returns: a tree of depth <D and a size between 1 and S + bmax
Let r be a random tree size from the probability distribution w1, ...,wS If r = 1 return a random terminal from T (by qt prob)
Else
Choose a nonterminal n from N (by qn prob)
20
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
Tree root root^n Node depth d^1
For each argument position a of n, Enqueue(/a, d})
Current tree size s^1 Until Size()+s>r or Size()= 0,
/argument position a, depth d}^RandomDequeue()
If d = D, Fill a with a terminal t from T (by qt prob)
Else
Choose a nonterminal n from N (by qn prob)
Fill a with n
For each argument position a of n, Enqueue(/a, d + 1}) s^s + 1 Until Size()= 0,
/argument position a, depth d}^RandomDequeue()
Choose a terminal t from T (by qt prob)
Fill a with t Return root
Алгоритм A5 начинается c выбора случайного размера дерева с заранее заданным распределением, а построение начинается с исходного корневого узла его расширением нетерминалами в рамках предельных границ.
При достижении либо превышении границы оставшиеся позиции внутри границ заполняются терминалами, после чего построение заканчивается. Обеспечение граничных параметров реализуется дополнительными функциями: Size(), Enqueue(), RandomDequeueQ:
Given:
array of slots U = /u0, ...,uS+bmax-1} array-fill value h ^ 0 Size ()
Returns: the size of the queue return h
Enqueue(item i)
Returns: nothing uh^i h ^ h + 1
RandomDequeue()
Returns: the value of a random slot in U, or nil if U is empty If h = 0, return nil Else h^h - 1
Let r be a random integer, 0<r<h Swap the values of uh and ur Return ur
Функции производят сохранение в очереди U позиции и глубины для каждого незаполненного аргумента внутри границ и выбор случайного элемента из этой очереди.
Оценка алгоритмов А4 и А5 проведена по отношению к алгоритмам А1-А3 на стандартном для ГП наборе задач - мультиплексирование и имитация поиска методом муравьиных колоний. Сравнение проводилось по оценкам пригодности алгоритмов и влияния на результат начального размера де-
Engineering sciences. Computer science, computer engineering and control
21
Известия высших учебных заведений. Поволжский регион
рева в популяции. Рисунок 1,а показывает типичное поведение показателей оценки пригодности для всех алгоритмов в зависимости от числа прогонов. Все алгоритмы показывают сходное поведение, но при этом А3 стабильно дает худшие результаты. В то же время А3 предъявляет более умеренные требования по размеру популяции (рис. 1,б) - типичные показатели составляют 10 против худших 20-35 (соответственно для мультиплексирования и метода колоний для А2). А4 и А5 предполагают начальные значения внутри приведенных границ.
б)
Рис. 1. Изменение оценки пригодности в зависимости от номера поколения (а) и начального размера дерева (б)
Заключение
Приведенные и рассмотренные алгоритмы А4 и А5 обеспечивают решение задачи повышения устойчивости процедур генетического моделирования. В отличие от других алгоритмов генерации древовидных структур, которые обеспечивают создание однородно распределенных структур, но имеют высокую вычислительную сложность, А4 и А5 обеспечивают при однородном распределении более низкую вычислительную сложность. Так, с разумными ограничениями оценка времени А4 составляет 0(Etree), для А5 - O((r + bmax), при этом А4 гарантирует генерацию деревьев ожидаемого размера дерева, не обеспечивая контроля над разбросом этого параметра, А5 обеспечивает управление разбросом характеристик дерева на основе данных пользователя.
22
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
Список литературы
1. Энгельгардт, В. В. Генетический алгоритм структурно-параметрической идентификации линейных динамических систем с помехами на входе и выходе / В. В. Энгельгардт // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2013. - № 4 (28). - С. 5-15.
2. Chellapilla, K. Evolving Programming with Tree Mutations: Evolving Computer Programs without Crossover / K. Chellapilla, J. Koza // Genetic Programming 1997: Proceedings of the Second Annual Conference (GP97). - San Fransisco : Morgan Kaufmann, 1997. - Р. 431-438.
3. Luke, S. A Revised Comparison of Crossover and Mutation in Genetic Programming / S. Luke and L. Spector // Genetic Programming 1998: Proceedings of the Third Annual Conference (GP98). - San Fransisco, CA : Morgan Kaufmann, 1998. - Р. 208-213.
4. Luke, S. ECJ: A Java-based evolutionary computation and genetic programming system / Luke Sean. - URL: http://www.cs.umd.edu/projects/plus/ecj/, 2000.
References
1. Engel'gardt V. V. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2013, no. 4 (28), pp. 5-15.
2. Chellapilla K. Genetic Programming 1997: Proceedings of the Second Annual Conference (GP97). San Fransisco: Morgan Kaufmann, 1997, pp. 431-438.
3. Luke S. A and Spector L. Genetic Programming 1998: Proceedings of the Third Annual Conference (GP98). San Fransisco, CA: Morgan Kaufmann, 1998, pp. 208-213.
4. Luke S. ECJ: A Java-based evolutionary computation and genetic programming system, 2000. Available at: http://www.cs.umd.edu/projects/plus/ecj/
Макарычев Петр Петрович
доктор технических наук, профессор, заведующий кафедрой математического обеспечения и применения ЭВМ, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: [email protected]
Слепцов Николай Владимирович
кандидат технических наук, доцент, кафедра менеджмента, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: [email protected]
Makarychev Petr Petrovich Doctor of engineering sciences, professor, head of sub-department of computer application and software, Penza State University (40 Krasnaya street,
Penza, Russia)
Sleptsov Nikolay Vladimirovich Candidate of engineering sciences, associate professor, sub-department of management, Penza State University (40 Krasnaya street, Penza, Russia)
УДК 681.3.01:681.3.05 Макарычев, П. П.
Алгоритмы генерации деревьев для генетического поиска /
П. П. Макарычев, Н. В. Слепцов // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2015. - № 2 (34). - С. 16-23.
Engineering sciences. Computer science, computer engineering and control
23