Научная статья на тему 'Метод бинарного генетического программирования для поиска математического выражения'

Метод бинарного генетического программирования для поиска математического выражения Текст научной статьи по специальности «Математика»

CC BY
171
36
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИМВОЛЬНАЯ РЕГРЕССИЯ / ГЕНЕТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ / ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / SYMBOLIC REGRESSION / GENETIC PROGRAMMING / GENETIC ALGORITHM

Аннотация научной статьи по математике, автор научной работы — Дивеев Асхат Ибрагимович, Ломакова Евгения Михайловна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

METHOD OF BINARY ANALYTIC PROGRAMMING TO LOOK FOR OPTIMAL MATHEMATICAL EXPRESSION

In the known methods of symbolical regression by search of the solution with the help of a genetic algorithm, there is a problem of crossover. Genetic programming performs a crossover only in certainpoints. Grammatical evolution often corrects a code after a crossover. Other methods of symbolical regression use excess elements in a code for elimination of this shortcoming. The work presents a new method of symbolic regression on base of binary computing trees. The method has no problems with a crossover. Method use a coding in the form of a set of integer numbers like analytic programming. The work describes the new method and some examples of codding for mathematical expressions.

Текст научной работы на тему «Метод бинарного генетического программирования для поиска математического выражения»

#

RUDN Journal of Engineering researches Вестник РУДН. Серия: Инженерные исследования

2017 Vol. 18 No 1 125-134

http://journals.rudn.ru/engineering-researches

DOI 10.22363/2312-8143-2017-18-1-125-134

МЕТОД БИНАРНОГО ГЕНЕТИЧЕСКОГО ПРОГРАММИРОВАНИЯ ДЛЯ ПОИСКА МАТЕМАТИЧЕСКОГО ВЫРАЖЕНИЯ

А. И. Дивеев1,2, Е. М. Ломакова2

1 Федеральный исследовательский центр «Информатика и управление» РАН ул. Вавилова, 44, Москва, Россия, 119333

2 Инженерная академия Российский университет дружбы народов ул. Миклухо-Маклая, 6, Москва, Россия, 117198

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

Ключевые слова: символьная регрессия, генетическое программирование, генетический алгоритм

Введение

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

Все методы символьной регрессии кодируют математические выражения и осуществляют поиск на пространстве кодов с помощью эволюционного алгоритма. Наиболее подходящим для поиска решения в методах символьной регрессии является генетический алгоритм. Он не использует арифметические операции для модификации возможных решений. Основными операциями генетического алгоритма являются операции скрещивания и мутация. Операция скрещивания генетического алгоритма зависит от вида кода. Генетическое программирование [1] делает операцию скрещивания в определенных точках корректных кодов для того, чтобы новый код после скрещивания был правильным и соответствовал некоторому возможному решению. Методы грамматической эволюции [2] и аналитического программирования [3] осуществляют скрещивание в любых точках, как генетический алгоритм для численных задач. После применения операции

скрещивания в данных методах иногда получается неправильный код. Исправление кода требует дополнительных затрат времени. Методы сетевого оператора [4], декартово генетического программирования [5] и метод матриц синтаксического разбора [6] всегда применяют корректную операцию скрещивания, но эти методы символьной регрессии используют избыточные элементы в коде.

В работе представлен новый метод символьной регрессии, метод бинарного аналитического программирования. Метод кодирует математические выражения только в виде суперпозиции функций с одним или двумя аргументами. Для корректного выполнения операции скрещивания метод также включает в себя избыточные элементы кода, тождественную функцию с одним аргументом и единичными элементами для функций с двумя аргументами. Эти элементы, как и нули в позиционной записи чисел, также позволяют построить правильный код математического выражения, в котором чередуются коды функций с различным числом аргументов.

Бинарное аналитическое программирование

Для того, чтобы составить код бинарного аналитического программирования, мы используем следующие базовые наборы:

— множество аргументов математического выражения

Роо = (01,..., др, Х1,..., х„); (1)

— множество функций с одним аргументом

Ъ = /и(г) = г, Л,2(г), ..., Л,й(г)); (2)

— множество функций с двумя аргументами

р2 = (/2,1(^1, /2,^1, ^)); (3)

— множество единичных элементов для функций с двумя аргументами

Е2 = (*1, М (4)

Набор функций с одним аргументом должен включать в себя тождественные функции.

/и(г) = г. (5)

Каждая функция с двумя аргументами множества (3), у/2 г(г1, г2) е ¥г, имеет единичный элемент из множества (4), Зе- е Е2,

кМг *2) = *2,/2А, - = ^1,1 е {1, 5),у е {1, ..., М}. (6)

Чтобы сгенерировать код бинарного аналитического программирования, мы объединяем в одно упорядоченное множество аргументов математического выражения (1), множество единичных элементов (4) и множество функций с двумя аргументами (3)

Р = (/1 = /Р = qP,/Р+1 = x1, /Р+Л =

/р+Л+1 = е1, •",/р+Л+И = ем,

/Р+Л+М+1 = /2,1(^1, ^2), •",/Р+Л+М+8 = /2,5(^1, ^2)). (7)

Запишем математическое выражение в виде суперпозиции вложенных функций и аргументов математического выражения

У = /а1(/а2(—/ак) — ) = /а1 ° /а2 ° • ° /ак, (8)

где/, е Л и и / = 1, • , К.

Для получения кода бинарного генетического программирования суперпозиция функций (8) должна удовлетворять следующим условиям:

a) аргументами функций с двумя аргументами являются только функции с одним аргументом;

b) аргументами функций с одним аргументом являются аргументы математических выражений или функции с двумя аргументами или их единичные аргументы;

c) первой функцией является функция с двумя аргументами.

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

Пусть условие а) не выполнено. Аргументом функции с двумя аргументами является тоже функция с двумя аргументам. Добавим функцию тождества (5) в математическое выражение

/2Л/2,/(Zl, Z2), = А^/^Ъ ^ £з). (9)

Аргументом функции с двумя аргументами является аргумент математического выражения. Мы снова добавим функцию тождества в математическое выражение.

Л*(*1, *2) = /2,к(/хМ), *2), (10)

где г1 е F0.

Пусть условие Ь) не выполнено. Аргументом функции с одним аргументом является тоже функция с одним аргументом. Добавим функцию с двумя аргументами и с единицей в качестве одного из аргументов в математическом выражении.

//*) = /1л/2,т/1А), /М(е,))), (11)

где ег е Еъ Дш(г, ег) = Ь

Пусть условие с) не выполнено. Функцией суперпозиции (8) является функция с одним аргументом. Добавим функцию с двумя параметрами, взяв в качестве одного из аргументов единичный элемент, в начало математического выражения

/!,*(*) = Л/^), /1,1(ег)). (12)

После коррекции суперпозиции (8) мы получаем суперпозицию с нечетным количеством элементов и чередующихся элементов из множеств (7) и (2)

У = /а1 °/а2 ° . °(13) где4+1 е Г,/^ е I = 0, ..., (L - 1)/2.

Для получения кода математического выражения мы заменим элементы суперпозиции (13) на их серийные номера в соответствующих наборах Г и Г1

А = (01, ..., а£), (14)

где а2;+1 = V, если= / е Г, I = 0, ..., ^ - 1)/2, (15)

а2г = го, если/а2; = Дт е Г1,1 = 0, ..., (L - 1)/2. (16)

Бинарное дерево графа имеет количество листьев на единицу больше числа узлов. Узлы и листья бинарного дерева графа математического выражения (14) соответствуют элементам множества (7). Если серийный номер элемента является не более чем объединенным числом параметров, переменных и единичных элементов в Г, а2+1 < Р + N + М, / е {0, ..., ^ — 1)/2}, то элемент множества находится на листе бинарного дерева графа. В противном случае а2+1 > Р + N + М, / е {0, ..., ^ — 1)/2}, а элемент расположен в листе двоичного дерева графа.

Пусть количество узлов ап и листьев а1 в коде (14) математического выражения рассчитываются по формулам

^-1)/2

®п = Е п, (17)

I=0 (L-1)/2

Е

I=0

где

п = IX ССЛИ а2,-+1 > Р + N + м (19)

' [0 — иначе

1 = Х если а2,-+1 < Р + N + М (20)

' [0 — иначе

Для корректного кода математического выражения справедливо уравнение

а, - ап = 1. (21)

Рассмотрим операцию скрещивания для кодов бинарного аналитического программирования. Для того чтобы реализовать функцию операции скрещивания,

оI = Е Ь, (18)

мы совершаем обмен подмножеств кодов. Каждое подмножество соответствует коду математического выражения. Точки для операция скрещивания определяются в нечетных позициях кодов.

Определение подмножеств кодов для операция скрещивания является важной задачей.

Подмножество кода (14) математического выражения всегда начинается с нечетного порядкового элемента г и имеет нечетное число элементов к

А(г, к) = (йг, йг+1, •, аг+к), (22)

где г + к < Ь.

Количество узлов и листьев в подмножестве кода математического выражения рассчитывается по формулам

(к-1)/2

а„ (г, к) = ^ П, (23)

I=(г-1)/2

(к-1)/2 Е

i=(r-1)/2

аi (r, к) = Е h' (24)

где п1 и ^ определяются выражениями (19), (20).

Подмножество А(г, к) кода соответствует математическому выражению, когда условие (21) справедливо для минимального количества элементов в нем

ш1п{а,(г, к)-ап(г, к) = 1}. (25)

к

Для операции скрещивания мы выбираем два кода для математических выражений

Аа = (аа1 aа,Lа), (26)

Ав = (аp>l, арьр). (27)

Нечетные позиции для точек операции скрещивания определяются случайным образом Га е {1, •.., Ьа}, гр е {1, •, Ьр}.

Определим подмножества кодов для математических выражений с помощью уравнения (25)

Aa(гa, ка) = (aа,га, аа,га+ка), (28)

Ap(гp, кр) = (ap;гp, ар гв+к) (29)

где переменные ка и кр удовлетворяют следующие выражения

Ш1п{аа,/(га, ка ) -ап (га, ка) = 1}, (30)

т1п{ар,/(гв, )-ап(гр, кр) = 1}. (31)

кр

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Поменяем подмножества кодов математических выражений и получим коды для новых математических выражений

Аа = (аа,1, •••, аа,га-1, ав,, •••, ав,/¡¡ + кр , аа,га+ка+1, •••, аа,га+Lа ), (32)

Ав = (ар,1, •••, ав,/-р-1, аа,га , •••, аа,га+ка , ар,/¡¡ + кр+1, •••, ав,/¡¡ + ^ ). (33)

Рассмотрим пример. Пусть это множество двух математических выражений

Гео8(^2х2 + q3), если q1 х, < q2х2 У1 = sin(ql Х1)+1 ,

[ехр(^2 х 2) — иначе

Гexp(-q2х2), если еos(q2х2 + q3)< sin(q1 х1 + q3)

У2 = I .

[ехр(^ х1) — иначе

Составим коды бинарного генетического программирования для математических выражений у1 и у2.

Будем использовать следующие базовые множества

Гз = (х1, х2, ql, q2, qз),

Г = (/1,1 (г) = г, /1,2(г) = sin(г), /м(г) = еos(z), /м(г) = ехр(г),

/1,5(г) = -г, /1,6(г) = »(г), Ду(г) = 1 - %)), Г = (/2,1(^1, ^2) = г1 + г2, /2,2(^1, ¿2) = адг),

Е2 = (0,1),

где

Г1, если г > 0

«(г) = 1: .

[0 — иначе

Объединим множества Г0, Е2 и Г2

Г = (/1 = хl, /2 = ^ /3 = ql, /4 = q2, У5 = qз, У6 = 0, /7 = 1, /8 = г1 + z2, /9 = г^.

Наши математические выражения у1, у2 включают в себя функцию с тремя аргументами

, (г г г ) ф, если г1 < 0 Л1^ ^ г3) = [г3 — иначе .

Мы можем представить эти функции с помощью некоторых функций с одним и двумя аргументами

/зА, *2, *з) = (1 - + =

=/2,2(1 - ад, ¿2) + /2,2(^1), гз) = /2,2/1,7(^1), ¿2) + /г,2/\№), Zз) = =Лд/^/АХ ^ /2,2(/i,6(Zl), гз)). Представим математические выраженияу1, у2 элементами множеств Е0,

У1 = /2,1/1,2/2,2(01, Х1)), /2,1/2,2/1,7/2,1/2,2(41, Х1), /1,5/2,2(0.2, Х2)))),/1,3/2,1/2,2(02, Х2), 0з))), /2,2/1,6/2,1/2,2(01, Х1), /1,5/2,2(02, Х2)))), /1,4/1,5/2,2(02, Х2)))))).

У2 = /2,1/2,2/1,7/2,1/1,з/2,1/2,2(02, Х2)), 0з)),/1,5/1,2/2,1/2,2(01, *1),

/1,4/1,5/2,2(02, Х2)))),/2,2(/1,б(/2,1(/1,з(/2,1(/2,2(02, Х2)), 0з)),

/1,5/1,2/2,1/2,2(01, Х1), 0з))))),/1,4/1,5/2,2(01, Х1))))).

Полученные записи математических выражений не удовлетворяют свойствам а, Ь, с. Исправим оба выражения в соответствии с формулами (9)—(12)

У1 = /2,1 °/1,2 °/2,2 °/1,1 ° 01 °/1,1 ° Х1 °/1,1 °/2,1 °/1,1 °/2,2 °/1,7 °

/2,1 ° /1,1 ° /2,2 ° /1,1 ° 01 ° /1,1 ° Х1 ° /1,5 ° /2,2 ° /1,1 ° 02 ° /1,1 ° х2 °/\,з °/2,1 °/1,1 °/2,2 °/1,1 ° 02 °/1,1 ° х2 °/1,1 ° 0з °/1,1 °/2,2 ° /1,6 ° /2,1 ° /1,1 ° /2,2 ° /1,1 ° 01 ° /1,1 ° Х1 ° /1,5 ° /2,2 ° /1,1 ° 02 ° /1,1 ° х2 ° /1,4 ° /2,1 ° /1,1 ° 0 ° /1,5 ° /2,2 ° /1,1 ° 02 ° /1,1 ° ^

у2 = /2,1 °/1,1 °/2,2 °/1,7 °/2,1 °Л,з °/2,1 °/1,1 °/2,2 °/1,1 ° °2 °/1,1 ° х2 °/1,1 ° 0з °/1,5 °/2,1 °/1,1 ° 0 °/1,2 °/2,1 °/1,1 °/2,2 °/1,1 ° 01 ° /1,1 ° Х1 ° /1,4 ° /2,1 ° /1,1 ° 0 ° /1,5 ° /2,2 ° /1,1 ° 02 ° /1,1 ° х2 ° /1,1 ° /2,2 °/1,6 °/2,1 °Л,3 °/2,1 °/1,1 ° /2,2 °/1,1 ° 02 °/1,1 ° х2 °/1,1 ° 0з ° /1,5 °/2,2 °/1,1 ° 0 °/1,2 ° /2,1 °/1,1 °/2,2 ° /1,1 ° 01 ° /1,1 ° Х1 °/1,1 ° 0з °/1,4 °/2,2 °/1,1 ° 0 °/1,5 °/2,2 °/1,1 ° 01 °/1,1 ° х1.

Заменим элементы упорядоченных множеств Е0, на номера этих элементов в множествах и Е

А1 = (8,2,9,i,3,i,i,i,8,i,9,7,8,i,9,i,3,i,i,5,9,i,4,i,2,3,8,i,9,i,4, i,2,i,5,i,9,6,8,i,9,i,3,i,i,5,9,i,4,i,2,4,8,i,6,5,9,i,4,i,2),

А2 = (8,1,9,7,8,3,8,1,9,1,4,1,2,1,5,5,8,1,6,2,8,1,9,1,3,1,1,4,8,1,6,5,9,1,4, 1,2,1,9,6,8,3,8,1,9,1,4,1,2,1,5,5,9,1,6,2,8,1,9,1,3,1,1,1,5,4,9,1,6,5,9,1,3,1,1).

Мы получили коды бинарного аналитического программирования для математических выражений.

Рассмотрим пример операции скрещивания кодов А1, А2. Определим случайным образом нечетные точки для скрещивания. Пусть г1 = 15, г2 = 21.

Определим подмножества математической формы формулами (28)—(31), к1 = 4, к2 = 16,

ам(15,4) = 0 + 1 + 1 = 2, а1,п(15,4) = 1 + 0 + 0 = 1, ам(15,4) - а1,п(15,4) = 2 - 1 = 1, а21(21,16) = 0 + 0 + 1 + 1 + 0 + 1 + 0 + 1 + 1 = 5, а2п(21,16) = 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 0 = 4, а2,,(21,16) - а2,п(21,16) = 5 - 4 = 1.

Мы получили следующие подмножества кодов

А1 = (8,2,9,1,3,1,1,1,8,1,9,7,8,1,9,1,3,1,1,5,9,1,4,1,2,3,8,1,9,1,4,1,2,1,5,1,

А1(15,4)

9,6,8,1,9,1,3,1,1,5,9,1,4,1,2,4,8,1,6,5,9,1,4,1,2),

А2 = (8,1,9,7,8,3,8,1,9,1,4,1,2,1,5,5,8,1,6,2,8,1,9,1,3,1,1,4,8,1,6,5,9,1,4,1,2,1,9,

А2(21Д6)

6,8,3,8,1,9,1,4,1,2,1,5,5,9,1,6,2,8,1,9,1,3,1,1,1,5,4,9,1,6,5,9,1,3,1,1).

Новые коды соответствуют новым математическим выражениям

У1 = sin(qlХl) + (1 - О^х +ехр(--2х2) - q2Х2)) ■ ■ cos(q2Х2 + qз) + О^х, - q2Х2)exp(-q2Х2),

У2 = (1 - + qз) - sin(qlХl))) ■

■ О(еos(q2Х2 + qз) - sin(qlХl + qз))exp(-qlХl).

Выводы

Представлен новый метод символьный регрессии, бинарного генетического программирования. Новый метод использует бинарное вычислительное дерево. Метод увеличивает число возможных точек скрещивания и не требует коррекции кода после скрещивания.

© Дивеев А.И., Ломакова Е.М., 2017

БИБЛИОГРАФИЧЕСКИЙ СПИСОК/REFERENCES

[1] Koza, J.R. Genetic Programming: On the Programming of Computers by Means of Natural Selection. Cambridge, Massachusetts, London, MA: MIT Press, 1992. 819 p.

[2] O'Neill, M., Ryan, C. Grammatical Evolution. IEEE Trans. Evol. Comput. 2001, 5. Pp. 349—358.

[3] Zelinka, I. Analytic programming by Means ofSOMAAlgorithm. In Proceedings of8th International Conference on Soft Computing Mendel 02, 2002, Brno, Czech Republic. Pp. 93—101.

[4] Diveev, A., Sofronova, E. Application of Network Operator Method for Synthesis of Optimal Structure and Parameters of Automatic Control System. Proc. of 17-th IFAC World Congress, Seoul, 05.07.2008 — 12.07.2008. Pp. 6106—6113.

[5] Miller, J., Thomson, P. Cartesian Genetic Programming. Proc. EuroGP'2000R 3rd European Conf. Genetic Programming, R. Poli, W Banzhaf, W.B. Langdon, J.F. Miller, P. Nordin, and Fogarty, T.C. Eds., Edinburgh, Scotland, 2000, vol. 1802. Berlin: Springer-Verlag. Pp. 121—132.

[6] Luo, C., Zhang, S.-L. Engineering Applications ofArti cial Intelligence. 2012, 25. Pp. 1182—1193.

История статьи:

Дата поступления в редакцию: 5 декабря 2016 Дата принятия к печати: 22 января 2017

Для цитирования:

Дивеев А.И., Ломакова Е.М. Метод бинарного генетического программирования для поиска математического выражения // Вестник Российского университета дружбы народов. Серия: Инженерные исследования. 2017. Т. 18. № 1. С. 125—134.

Cведения об авторах:

Дивеев Асхат Ибрагимович, доктор технических наук, профессор, заведующий сектором проблем кибернетики, Федеральный исследовательский центр «Информатика и управление», Российская академия наук, профессор департамента механики и мехатроники, Инженерная академия, Российский университет дружбы народов. Сфера научных интересов: вычислительные методы для решения задач управления. Контактная информация: e-mail: [email protected].

Ломакова Евгения Михайловна, аспирант, департамент механики и и мехатроники, Инженерная академия, Российский университет дружбы народов. Сфера научных интересов: Computational methods for problems ofcontrol. Контактная информация: e-mail: lomakovajm@ gmail.com.

METHOD OF BINARY ANALYTIC PROGRAMMING TO LOOK FOR OPTIMAL MATHEMATICAL EXPRESSION

A.I. Diveev1, E.M. Lomakova2

1 Federal Research Center "Computer Science and Control" of RAS Vavilov str., 44, Moscow, Russia, 119333

2 Engineering Academy Peoples' Friendship University of Russia Miklukho-Maklaya str., 6, Moscow, Russia, 117198

In the known methods of symbolical regression by search of the solution with the help of a genetic algorithm, there is a problem of crossover. Genetic programming performs a crossover only in certain

points. Grammatical evolution often corrects a code after a crossover. Other methods of symbolical regression use excess elements in a code for elimination of this shortcoming. The work presents a new method of symbolic regression on base of binary computing trees. The method has no problems with a crossover. Method use a coding in the form of a set of integer numbers like analytic programming. The work describes the new method and some examples of codding for mathematical expressions.

Key words: symbolic regression, genetic programming, genetic algorithm

Article history:

Received: 5 December 2016 Accepted: 22 January 2017

For citation:

Diveev A.I., Lomakova E.M. (2017) Synthesis of control for group of autonomous robots with phase constraints by multi-layer network operator with priorities. RUDN Journal of Engineering Researches, 18(1), 125-134.

Bio Note:

AskhatI. Diveev, Doctor of technical sciences, professor, chief of sector of Cybernetic problems, Federal Research Centre "Computer Science and Control" of Russia Academy of Sciences, professor of department Mechanics and mechatronics, Engineering Academy, Peoples' Friendship University of Russia (RUDN University). Research Interests: Computational methods for problems of control. Contact information: e-mail: [email protected].

Evgenia M. Lomakova, graduate student, department Mechanics and mechatronics, Engineering Academy, Peoples' Friendship University of Russia (RUDN University). Research Interests: Computational methods for problems of control. Contact information: e-mail: lomakovajm@gmail. com.

i Надоели баннеры? Вы всегда можете отключить рекламу.