Научная статья на тему 'Специализированный язык программирования как наиболее эффективное средство использования генетических алгоритмов'

Специализированный язык программирования как наиболее эффективное средство использования генетических алгоритмов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
284
63
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СПЕЦИАЛИЗИРОВАННЫЙ ЯЗЫК ПРОГРАММИРОВАНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Генералов Константин Александрович

Рассмотрена проблема многообразия вариантов представления элементов информации генетических алгоритмов (хромосом и генов) и методов их обработки. Предложен метод преобразования хромосом к унифицированному виду. Также предложено инструментальное средство решения задач на основе теории генетических алгоритмов язык генетического программирования. Предложенный язык программирования ориентирован на работу с объектами генетических алгоритмов.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Генералов Константин Александрович

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

Текст научной работы на тему «Специализированный язык программирования как наиболее эффективное средство использования генетических алгоритмов»

УДК 681.3

К. А. Генералов

СПЕЦИАЛИЗИРОВАННЫЙ ЯЗЫК ПРОГРАММИРОВАНИЯ КАК НАИБОЛЕЕ ЭФФЕКТИВНОЕ СРЕДСТВО ИСПОЛЬЗОВАНИЯ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ

Рассмотрена проблема многообразия вариантов представления элементов информации генетических алгоритмов (хромосом и генов) и методов их обработки. Предложен метод преобразования хромосом к унифицированному виду. Также предложено инструментальное средство решения задач на основе теории генетических алгоритмов - язык генетического программирования. Предложенный язык программирования ориентирован на работу с объектами генетических алгоритмов.

Введение

Генетические алгоритмы (ГА) являются альтернативным методом исследования многоэкстремальных функций. Впервые данный метод был предложен в 1975 г. Джоном Холландом.

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

Постановка задачи

На сегодня отсутствуют лингвистические и инструментальные программные средства, позволяющие описывать задачи и процесс их решения в терминах ГА. Это связано с многообразием вариантов реализации ГА. Генетические алгоритмы оперируют понятиями хромосома, популяция, ген. Каждое потенциальное решение задачи (хромосома) может иметь любую структуру, которую необходимо представить в памяти ЭВМ для ее последующей обработки. Существуют стандартные типы структур хромосом (список, дерево, циклическое представление) и методы их обработки (генетические операторы). Структура хромосомы и требования к ней определяются согласно специфике решаемой задачи, т.е. форма может быть любой.

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

Рис. 1 Преобразование хромосом

Анализ структуры ГА выявил:

- многообразие вариантов представления элементов информации ГА (хромосом и генов);

- многообразие вариантов обработки элементов информации ГА;

- как следствие первых двух причин - отсутствие универсального инструментария использования аппарата ГА.

Таким образом, можно сделать вывод о необходимости некоторого инструментария по преобразованию объектов информации ГА (рис. 2).

Внешнее

представление

объекта

хромосомы любого типа к единому виду для унификации операций по обработке в ЭВМ

Г \

(Хл/ \ (X) , ( Преобразование

структуры V ^

V

Внутреннее

представление

объекта

Рис. 2 Схема представления объектов

Наиболее универсальный инструмент использования ГА должен позволять описывать практически любые формы представления хромосом и операции над ними. Такими инструментами могут стать языки программирования высокого уровня. Однако в данном случае возникает ряд других проблем:

- на решение задачи средствами языков программирования высокого уровня уходит значительное время;

- полученный код обладает большим объемом и высокой сложностью;

- как следствие предыдущей проблемы существует высокая вероятность ошибки в коде, т.е. задача будет решена неправильно;

- требуется профессиональное владение языками программирования высокого уровня.

Поэтому более предпочтительным является использование специализированного языка программирования ГА, ориентированного на представление и обработку объектов информации ГА. Таким образом, стоят следующие задачи:

- разработка методов преобразования хромосом к унифицированному внутреннему представлению;

- разработка специализированного языка программирования ГА.

Преобразование элементов информации генетических алгоритмов

Пусть Н - объект, называемый в дальнейшем хромосомой, такой, что Н = [С, Я, И], где О - множество вершин gi; Я - множество связей между вершинами; И - функция, ставящая в соответствие каждой вершине g/ некоторый набор вершин, который непосредственно соединен с данной вершиной. Множество вершин О определяет состав Н, а множество связей Я и функция соответствия И - структуру графа (хромосомы).

Назовем геном элемент множества О такой, что g е О, gi = [х/, с/ ]. Вершина g определяется значением X/, которое в ней закодировано, и способом кодирования с/.

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

Популяцией называется множество хромосом, т.е. {Н/ }е Р . Конечное множество различных вариантов хромосом есть генофонд. Популяция состоит из экземпляров генофонда. В терминах задачи экстремального поиска популяция Р есть множество объектов, среди которых идет поиск.

Структура графа Н описывается матрицей переходов М:

щ,1 Щ,2 Щ,ъ . .. Щ, п

ш2,1 ш2,2 «2,3 . .. т2,п

щ,1 Щ,2 «3,3 т3,п

шп,1 шп,2 тп,3 . .. тп, п

где п - количество элементов хромосомы; тг- j определят наличие дуги из /-й вершины в у-ю.

Качественное содержание графа Н определяет упорядоченное множество вершин О. Таким образом, пара (М, О) есть унифицированное внешнее представление хромосомы любой структуры. Необходимо определить способ преобразования унифицированного внешнего представления хромосомы во внутреннее представление (представление в памяти ЭВМ) для последующей обработки по ходу работы ГА. Для преобразования (М, О) во внутреннее представление используем теорию нумерационных методов.

Нумерация позволяет сопоставить паре чисел некоторое уникальное числовое значение. Можно выделить ряд способов для нумерации пары чисел [10]:

- нумерация горизонтальной строкой квадратов;

- нумерация диагональной строкой квадратов.

Нумерация с горизонтальной строкой квадратов выполняется с помощью следующего выражения:

Нумерация диагональной строкой квадратов выполняется по следующей схеме:

Нумерация пар чисел

(2)

Выражения для х и у схемы кодирования задаются функциями:

[77], * - Ь/7]2 < [77],

X = Г (7 )

[77]2 + 2[77] - 7,7 - [77]2 > [77];

\7 - Ь/7]2,7 - Ь/7]2 < ь/7],

У = I (7) = <

1ь/7 ], 7 - ь/7 ]2 > ь/7 ].

(3)

х2, х = у,

•*(х,у) = <!у2 + у - 1,0 < у < х, у2 + 2у - х,0 < х < у.

Выражения для х и у схемы кодирования задаются функциями

(4)

А,[ А]2 = 7,

X = Г(7) = і В,7-[В]2 -1 <В,

(5)

С + 2С - 7 при других случаях;

А,[ А]2 = *,[ А]2 = 5,

у = I(^) = -Ь-[В]2 -1,5-[В]2 -1 <В, 2

[С] при других случаях,

где а = Ь/7 ], В = ь/7-1], С = [(747+1 -1) / 2].

Таким образом, перечисленные методы нумерации для пары отношений позволяют получить уникальное численное значение для пар (х, у), причем нумерационные методы учитывают как значения элементов х и у, так и порядок их следования, т.е. s(х, у) Ф 5 (у, х). Номер пары отношения позволяет получить сами отношения.

Применение нумерационных методов для преобразования хромосом к унифицированному виду

Стоит задача преобразования объекта (М, О) к единому виду. Преобразование V состоит их следующих шагов:

1) обработка О;

2) обработка М.

Таким образом,

*(М, О) = (^(М), ^(О)) = (и,У), (6)

где и - число, описывающее структуру внешнего представления; У - число, описывающее элементы внешнего представления (переменные) задачи; V и w2 - функции преобразования внешнего представления хромосомы во внутреннее (причем ^1 - для преобразования структуры хромосомы, ^- для преобразования упорядоченного множества элементов).

Кодирование хромосомы можно записать как с(х/) = g/.

О = (gl,g2,...gn), где О является хромосомой, элементы g/ - генами во внутреннем представлении после применения операции кодирования.

Номер, соответствующий этой последовательности (хромосоме), может быть получен следующим образом:

2

5 ^1, g2) = 5^1, g2) , (7)

А gl, g2, g3) = 5(5 2( gl, g2), g3),

А gl, g 2, g3, g4) = Ф3( gl, g2, g3), g4),

*П (gl, g2,..., gn ) = 5(^П-1(^П-2(gl,..., gn-1), gn-1), gn ) , У = ^ .

Для вычисления по номеру = У последовательности О ее элементов используются функции Г(5) и I(5):

gn = I (5), (8)

gn-1 = I (Г (5)), gl = Г (I (...Г (5)...)).

Преобразование матрицы М будет происходить схожим образом:

1) согласно (7) необходимо свернуть каждую строчку матрицы в число:

V = (m/,1, т/,п) = Я/(5”-1(5|П~2(т/,Ъ ..., т/,n-2), т/,п-1Х т/,п) ,

в результате получаем множество элементов и = {^,И2,..., un} ;

2) полученное множество также согласно формулам (7) сворачиваем в

число:

^ ("1,"2, •••, "п) (яг (яг С"г,1,"., "г,и—2), "г,и—1),"г,и)'

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

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

^(М, С) = (м^(М), W2(G)) =

Г А

V V

т1,1 т1,2 т1,3 . . т1,и

т2,1 т2,2 т2,3 . . т2,и

т3,1 т3,2 т3,3 т3,и

тп,1 тп ,2 тп ,3 . . ти, и

.^2( ^1, £ £и )

= (и,У). (9)

Таким образом, преобразование хромосомы (М, С) описывается следующим алгоритмом (рис. 3).

Преобразование

і = 1...и

Для г-й строки матрицы М вычислить номер последовательности Яг

Для {51, .. ^ 5п}

вычислить номер последовательности

и

Конец

Преобразование О

V = £1

/ і = 2 \ ..и

Рис. 3 Преобразование хромосомы

При кодировании хромосомы функция кодирования я должна учитывать, что отношение (gj, gj) не является симметричным (т.е. я(gj, gj ) Ф я(gj, gj)) и

иррефлексивным.

Функции языка генетического программирования

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

- унифицированное внутреннее представление хромосом и генов;

- манипуляция хромосомами с применением стандартных типов скрещивания и мутации;

- обработка популяции с использованием стандартных типов селекции;

- возможность разработки и использования своих методов обработки объектов ГА с учетом специфики задачи;

- возможность разработки ГА, ориентированных на параллельное выполнение.

В языке программирования ГА присутствуют следующие стандартные типы оператора кроссовера [1-9]:

- плоский кроссовер;

- арифметический кроссовер;

- линейный кроссовер;

- простой кроссовер;

- дискретный кроссовер;

- расширенный линейный кроссовер;

- расширенный промежуточный кроссовер;

- эвристический кроссовер Райца;

- линейный БОЛ кроссовер;

- 8БХ кроссовер;

- простой кроссовер;

- Л-точечный кроссовер;

- однородный кроссовер.

В языке программирования ГА присутствуют следующие стандартные типы оператора мутации [1-9]:

- случайная мутация;

- неоднородная мутация;

- мутация Мехленбеина;

- дискретная модальная мутация;

- непрерывная модульная мутация.

Выводы

Данная работа посвящена проблеме использования ГА для решения прикладных задач. Анализ структуры ГА выявил многообразие вариантов представления элементов информации ГА (хромосом и генов). Следствием чего является отсутствие универсального инструментария использования аппарата ГА.

Для решения указанных проблем предлагается разделить внешнее представление (в терминах решаемой задачи) и внутреннее представление (унифицированное представление в памяти ЭВМ) хромосом и генов. Пред-

ложен механизм преобразования элементов информации ГА из внешнего представления во внутреннее на основе теории нумераций.

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

Список литературы

1. Батищев, Д. И. Генетические алгоритмы. Решение экстремальных задач / Д. И. Батищев. - Нижний Новгород : Изд-во Нижегород. гос. ун-та им. Н. И. Лобачевского, 1995.

2. Herrera, F. Tackling real-coded genetic algorithms: operators and tools for the behaviour analysis / F. Herrera, M. Lozano, J. L. Verdegay // Artificial Intelligence Review. - 1998. - V. 12. - № 4.

3. Jurgen Branke. Global Selection Methods for SIMD Computers / Jurgen Branke, Haiis Christian Andersen, Hartmut Schmeck // Forschungsbericht Xo. 333, Institute AIFB, University of Karlsruhe, Germany.

4. Robin Allenson. Genetic Algorithms with Gender for Multi-function Optimisation / Robin Allenson // EPC SS92-01. - 1992. - September.

5. Rolf Drechsler. A Genetic algorithm for minimization of fixed polarity reed-muller expression / Rolf Drechsler, Bernd Becker, Nicol Gockel // International Conference on Artificial Neural Networks and Genetic Algorithms. - 1995. - Ales, April. - Р. 392395.

6. Joseph Culberson. Genetic Invariance: a new Paradigm for genetic algorithm design / Joseph Culberson // DEPARTMENT OF COMPUTING SCIENCE University of Alberta, Edmonton, Alberta, Canada,Technical Report. - 1992. - TR 92-02.

7. Dorigo, M. Parallel genetic algorithms: Introduction and overview of current research / M. Dorigo and V. Maniezzo // J. Stender / editor, Parallel Genetic Algorithms. -IOS Press, 1993. - Р. 5-42.

8. D’haeseleer, P. Context preserving crossover in genetic programming / P. D'hae-seleer // Proceedings of the 1994 IEEE World Congress on Computational Intelligence. -1994. - V. 2.

9. Гладков, Л. А. Генетические алгоритмы / Л. А. Гладков, В. В Курейчик,

В. М. Курейчик ; под ред. В. М. Курейчика. - 2-е изд., испр и доп. - М. : Физмат-лит, 2006. - 320 с.

10. Линьков, В. М. Нумерационные методы в проектировании систем управления данными : монография / В. М. Линьков. - Пенза : Изд-во Пенз. гос. техн. ун-та, 1994. - 156 с.

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