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

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

CC BY
849
129
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / ХОЛЛАНД / СИСТЕМА ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ / СЛАУ / GENETIC ALGORITHM / HOLLAND / SYSTEM OF THE LINEAR ALGEBRAIC EQUATIONS / SLAE

Аннотация научной статьи по математике, автор научной работы — Эйрих Станислав Николаевич

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

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

Текст научной работы на тему «Подход к модернизации генетического алгоритма для решения систем линейных алгебраических уравнений»

УДК 512.5- 004.021

С. Н. Эйрих

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

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

Ключевые слова: генетический алгоритм, Холланд, система линейных алгебраических уравнений, СЛАУ.

Abstract. In present article the original version of genetic algorithm for the decision of systems of the linear algebraic equations is considered. The basic attention is given adjustment of algorithm on feature of this problem and modernization of algorithm. Methods of computing experiment the parameters of genetic algorithm giving "good" decisions get out.

Keywords: genetic algorithm, Holland, system of the linear algebraic equations, SLAE.

Введение

Решение ряда задач математической физики (задачи гидрогазодинамики, расчета электромагнитных полей, уравнения Максвелла, Навье-Стокса и др.) методами конечных элементов (FEM) и конечных объемов (FVM) особенно на неструктурированных сетках приводит к системам линейных алгебраических уравнений (СЛАУ) с разреженными матрицами большой размерности, которые, как правило, являются несимметричными [1].

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

В настоящей работе рассматривается генетический алгоритм, использующий метод обобщенных минимальных невязок GMRES [2] для вычисления функции приспособленности (фитнес-функции) [3, 4], эффективный для решения СЛАУ с несимметричной матрицей.

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

- генетические алгоритмы продемонстрировали свою эффективность для решения дискретных экстремальных задач, плохо поддающихся решению традиционными методами;

- стохастика, используемая генетическими алгоритмами, позволяет надеяться, что мы не пропустим решения, «не поддающегося» той или иной эвристике;

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

Основными сложностями применения генетических алгоритмов для решения рассматриваемой задачи являются:

- настройка операций скрещивания, мутации и селекции;

- попадание в локальные минимумы;

- выбор способа задания критериев останова и выживаемости.

1 Описание задачи

Основной рассматриваемой задачей будет являться получение решения СЛАУ

Ах = Ь,

где А - невырожденная матрица размерности т х п , а х и Ь - векторы размерности п х1, составленные из действительных коэффициентов.

При этом СЛАУ имеют большую

р = ЫЫ = 109...1010

или даже сверхбольшую

Р = ЫЫ > 1011

размерность.

В силу невырожденности матрицы А существует некоторое точное решение х* = А-1Ь. Задача получения решения СЛАУ сводится к нахождению х*. Невязкой, соответствующей вектору х, будем называть вектор Ах = Ь - Ах = А(х* - х), где (х* - х) есть ошибка решения [5].

Линейный оператор [5], заданный матрицей А, действует в пространстве ^п . Введем в нем скалярное произведение:

п

(х у)=2 х^у1.

/=1

*

Для действительного случая сопряженный оператор А определяется матрицей АТ, так что (Ах, у) = (х, АТ у). Иногда также оказывается удобным использование скалярного А-произведения:

(х, у)а = (Ах, у) = (х, АТ у) = уТ Ах = хТ АТ у .

На основе скалярных произведений введем в ^п векторные нормы:

||х|| 2 = у/ (х, х);

||х||2 = V(Ах, х) =д/(х, х)а , это евклидова норма и А -норма соответственно [5].

Т

Для невырожденной матрицы А симметризованная матрица А А является положительно определенной, и тогда для евклидовой и А-нормы справедливо соотношение

||х - х*||Ата = (АТА(х - х*),(х - х*)) = (А(х - х*), А(х - х*)) = (Ах, Ах) =||Ах||2 .

Метод обобщенных минимальных невязок ОМКЕ8, который используется для вычисления функции приспособленности (фитнес-функции), сводится к вычислению

Дх = ^ i=1

Zj - bi j=1

где m х n - размерность матрицы A .

Таким образом, для решения СЛАУ алгоритм сходится к минимуму невязки, и сложность одной итерации имеет порядок n2 .

2 Описание алгоритма

Генетические алгоритмы предназначены для решения задач оптимизации. Примером подобной задачи служит получение решения СЛАУ. При этом в основе генетического алгоритма лежит метод случайного поиска [6]. Основным недостатком случайного поиска является то, что нам неизвестно, сколько понадобится времени для решения задачи. Для того чтобы избежать таких расходов времени при решении задачи, применяются методы, проявившиеся в биологии и открытые при изучении эволюции и происхождения видов. Как известно, в процессе эволюции выживают наиболее приспособленные особи [3]. Это приводит к тому, что приспособленность популяции возрастает, позволяя ей лучше выживать в изменяющихся условиях [7]. Впервые подобный алгоритм был предложен в 1975 г. Джоном Холландом (John Holland) в Мичиганском университете. Он получил название «репродуктивный план Холланда» и лег в основу практически всех вариантов генетических алгоритмов [3].

Схема алгоритма Холланда [3]:

1. Сгенерировать случайным образом популяцию, состоящую из k особей.

2. Вычислить целевую функцию F(х) (фитнес-функцию), т.е. приспособленность каждой особи популяции. Значение этой функции определяет, насколько хорошо подходит особь, описанная данной хромосомой, для решения задачи.

3. Выполнить операцию селекции.

4. Выполнить операцию скрещивания:

4.1. Выбрать пары для скрещивания;

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

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

6. Если критерий останова не достигнут, перейти к шагу 2, иначе завершить работу.

Далее будет рассмотрена настройка алгоритма Холланда на особенности задачи решения СЛАУ. Для большей вычислительной мощности алго-

ритма и решения СЛАУ больших размерностей некоторые шаги классического алгоритма Холланда будут заменены неклассическими [4, 7] и эвристическими. Для решения СЛАУ больших размерностей не подошла ни одна операция мутации, описанная в работах [3-7]. Поэтому использована новая модернизация операции мутации, описанная далее.

Теперь подробно рассмотрим настройку классических и неклассических этапов алгоритма для задачи решения СЛАУ.

3 Модернизация и настройка алгоритма для решения СЛАУ.

Применение классических и неклассических методов и эвристик для улучшения алгоритма

На первом шаге особи стартовой популяции [4, 6, 7] генерируются произвольно, но с условием того, что гены [3, 7] не превышают максимального по модулю элемента матрицы А и вектора Ь . Эта эвристика применяется для того, чтобы повысить вычислительную мощность алгоритма, т.к., если генерировать начальные значения произвольно, то алгоритм работает только на матрицах размерности не выше 10. В нашем случае матрицы являются не просто больших размерностей, а сверхбольших. Для решения СЛАУ таких размерностей была разработана эвристика ограничения выбора. То есть гены вектора решения выбираются из интервала (-тах(А, Ь); тах(А, Ь)).

В данном алгоритме не предполагается аналогово-дискретных преобразований исходной задачи, в отличие, например, от алгоритмов, описанных в работе [4]. Поэтому гены являются не битами, а действительными числами.

По методу обобщенных минимальных невязок получаем целевую функцию для вычисления коэффициентов выживаемости (fitness) в следующем виде:

Так как меньшие значения ближе к решению, то они более желательны. В нашем случае большие численные значения коэффициентов выживаемости подходят меньше. Чтобы создать систему, где хромосомы [3] с более подходящими значениями имеют большие шансы оказаться родителями, мы должны вычислить, с какой вероятностью (в процентах) может быть выбрана каждая. Одно решение заключается в том, чтобы взять сумму обратных значений коэффициентов и, исходя из этого, вычислять проценты. Для этого используем формулу пропорциональной селекции [3, 7]:

3.1 Начальные значения. Эвристика ограничения

3.2 Оценка приспособленности (выживаемости)

n m

F(x) = II ai/xj - bi

min .

fitnessi

fitness;

100%.

3.3 Операция селекции

Для выбора родителей используем турнирную селекцию [4]. Среди всех элементов популяции выбирается один элемент с наибольшим значением целевой функции. Турнирная селекция имеет определенные преимущества перед пропорциональной, т.к. не теряет своей избирательности, когда в ходе эволюции все элементы популяции становятся примерно равными по значению целевой функции. Операторы селекции строятся таким образом, чтобы с ненулевой вероятностью любой элемент популяции мог бы быть выбран в качестве одного из родителей. Более того, допускается ситуация, когда оба родителя представлены одним и тем же элементом популяции.

3.4 Операция скрещивания

Каждый потомок содержит информацию о генах обоих родителей. Вообще говоря, это можно обеспечить различными способами, однако в нашем случае можно использовать так называемый «кроссовер» (cross-over). Есть достаточно много путей передачи информации потомку, и кроссовер - только один из них.

Будем использовать простейший однородный оператор скрещивания [3]. Позиция разделителя может быть абсолютно произвольной. Например, рассмотрим двух родителей: х = 01001101 и у = 11100011. Выполнив одноточечное скрещивание на пятой позиции, мы получаем два потомка: х1 = 01001011 и у1 = 11100101. То есть х1 и у1 содержит первые 5 битов (генов) х, а последние 3 бита - у. Таким образом, х1 и у1 тоже будут допустимыми решениями [6].

После скрещивания вычисляем коэффициенты выживаемости (fitness) потомков.

3.5 Операция мутации

Следующее поколение может мутировать. Например, мы можем заменить одно из значений какой-нибудь хромосомы на случайное. Для задачи решения СЛАУ будем использовать модернизированную операцию мутации, описанную в следующем подпункте. Это самое важное для улучшения алгоритма и его настройки под задачу решения СЛАУ.

3.5.1 Модернизация мутации

Проанализировав критерии выживаемости и операцию мутации, улучшим работу генетического алгоритма (ГА).

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

Ввиду вышесказанного модернизируем операцию мутации. Будем изменять значение хромосомы на случайное число, равномерно распределенное на интервале [min(A), max(A)]. Это дает возможность выйти за границы популяции, но не дает уйти далеко за ее пределы.

3.6Критерий останова

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

4 Результаты

Исследование проводилось методом проб: алгоритм запускался с различными значениями параметров (на каждом новом запуске прибавлялось

0,0005 к параметру). Значение считается «хорошим», если получаем «хорошее» решение. Критерии «хорошего» решения - минимизация суммы целевой функции для различных матриц. Таким образом, мы вычислили оптимальные значения параметров алгоритма, которые находятся в интервалах:

- порог вероятности мутации 0,0075-0,0085;

- порог вероятности скрещивания 0,3-0,5;

- размер популяции 25.

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

Подходящее решение находилось за 50-1500 итераций алгоритма. Зависимость числа итераций от качества получаемых решений и параметров алгоритма не прослеживается.

Динамика ошибок алгоритма (изменение отличия решения от целевой функции в популяции) приведена на графиках (рис. 1).

Данные представляют собой ошибки, полученные после работы генетического алгоритма Холланда и модернизированного генетического алгоритма на одном и том же тестовом множестве СЛАУ.

Из графиков можно сделать вывод, что ошибки простого генетического алгоритма в 2 раза выше ошибок модернизированного ГА.

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

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

Очень сильное влияние на качество получаемых решений оказывает размер популяции. Он имеет ярко выраженный оптимум, равный 25 (алгоритм в этом случае сходится быстро и стабильно).

Выводы

Описанный в данной работе алгоритм хорошо работает на СЛАУ больших размерностей. Классическим методам Якоби и Гаусса-Зейделя алгоритм не уступает как в размерности матриц, но уступает в скорости, однако важно заметить, ГА не требует предобусловливания [2], которое не учитывалось при исследовании этих методов. Однако применение предобусловлива-ния в ГА возможно. Предварительные результаты показывают, что применение некоторых эвристик к операциям алгоритма, использование предобу-

словливания и специальное хранение разреженных матриц может дать рабочий алгоритм и для сверхбольших размерностей. Поэтому на будущее ставится задача увеличения размерности СЛАУ.

а)

б)

Рис. 1 Графики ошибки для тестовых СЛАУ размерности Р = 109: а - простой ГА; б - модернизованный ГА

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

1. Natarajan, R. Finite element applications on a shared-memory multiprocessor: algorithms and experimental results / R. Natarajan // Ibid. - 1991. - № 94. - Р. 352-381.

2. Aspects of Computational Science. - Stichting Nationale Computer Faciliteiten, The Netherlands, 1995.

3. Holland, J. N. Adaptation in Natural and Artificial Systems / J. N. Holland ; Ann Arbor. - Michigan : Univ. Michigan Press, 1975.

4. Стариков, А. Генетические алгоритмы - математический аппарат [Электронный ресурс] / А. Стариков. - Режим доступа: http://www.basegroup.ru/genetic/ math.htm

5. Воеводин, В. В. Вычислительные основы линейной алгебры / В. В. Воеводин. - М. : Наука, 1977. - 304 с.

6. Hromkovic, J. Algorithms for Hard Problems / J. Hromkovic. - Springer, 2003.

7. Zbignev, M. Genetic Algorithms + Data Structures = Evolution Programs / Michalewiz Zbignev // Third, revised and extended edition. - Springer, 1999.

8. Мельников, Б. Ф. Эвристики в программировании недетерминированных игр / Б. Ф. Мельников // Известия РАН. Программирование. - 2001. - № 5 - С. 63-80.

9. Мельников, Б. Ф. Мультиэвристический подход к задачам дискретной оптимизации / Б. Ф. Мельников // НАН Украины. Кибернетика и системный анализ. -

E-mail: [email protected]

УДК 512.5-004.021 Эйрих, С. Н.

Подход к модернизации генетического алгоритма для решения систем линейных алгебраических уравнений / С. Н. Эйрих // Известия высших учебных заведений. Поволжский регион. Физико-математические науки. -

200б. - № 3. - С. 32-42.

Эйрих Станислав Николаевич

инженер электросвязи II категории, ЗАО «АИСТ»

Eyrikh Stanislav Nikolaevich Telecommunication engineer of the second degree, closed corporation "Aist"

2009. - № 3 (11). - С. 88-95.

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