УДК 681.3.001.63
Ю.О. Чернышев, А.Ю. Полуян
АДАПТИВНЫЙ ГЕНЕТИЧЕСКИЙ АЛГОРИТМ ДЛЯ РЕШЕНИЯ ЗАДАЧ ОПТИМИЗАЦИИ НА ОСНОВЕ СТРАТЕГИИ ЭЛИТИЗМА
Генетические алгоритмы (ГА) - это очень популярные в настоящее время способы решения задач оптимизации. В их основе лежит использование эволюционных принципов для поиска оптимального решения. В нем используется как аналог механизма генетического наследования, так и аналог естественного отбора, при этом сохраняется биологическая терминология в упрощенном виде [1].
Задача о коммивояжере как одна из важнейших оптимизационных задач была выбрана объектом исследования потому, что техника ее решения хорошо известна и изучение нового метода на данной задаче позволит в дальнейшем с его помощью решать , , .
Отметим, что задача о коммивояжере относится к классу № полных проблем [2]. Поэтому целесообразно использовать ГА для решения указанной задачи. В последнее время в области исследований, направленных на повышение эффективности генетических алгоритмов, большое значение приобрели идеи создания адаптивных генетических алгоритмов, которые могут изменять свои параметры в про. , которые в процессе работы изменяют размер популяции. Идея адаптивных генетических алгоритмов получила свое воплощение в концепции пОЛ, представляющей многоуровневые генетические алгоритмы. Нижний уровень такого алгоритма непосредственно выполняет задачу улучшения популяции решений. Верхние уровни представляют собой генетические алгоритмы, решающие оптимизационную задачу по улучшению параметров алгоритма нижнего уровня. При этом в качестве целевой функции используется обычно скорость работы алгоритма нижнего уровня и скорость улучшения им популяции от поколения к поколению.
Основная особенность генетического алгоритма состоит в том, что анализируется не одно решение, а некоторое подмножество квазиоптимальных решений, называемых хромосомами и состоящих из генов. Это подмножество носит название "популяция". В данной реализации начальная популяция формируется случайным обра-.
хромосома, описывающая путь по "жадному" алгоритму. Для рассматриваемой задачи хромосома описывает последовательность номеров вершин графа.
Для хромосомы вычисляется целевая функция Е(к), где к - маршрут, описы-. -
.
.
В рассматриваемом генетическом алгоритме реализована стратегия элитизма, при которой несколько лучших индивидуумов переходят в следующее поколение без изменений. Количество элитных индивидуумов К1 определяется по формуле:
К1 = ( 1 - 80) * ЯР, где 80 - степень обновления популяции, ЯР - размер по.
После формирования начальной популяции, осуществляется процесс синтеза новых решений (поколений) задачи посредством кроссинговера и мутации. Исходными данными для него являются хромосомы текущей популяции. Исследуемая в некоторый момент времени популяция называется текущей. В начале работы алгоритма текущая популяция совпадает с начальной.
Данный генетический алгоритм предлагает ликвидировать имеющиеся пересечения в маршрутах, используя оператор инверсии, а также применить к каждой хромосоме операцию разнообразия. Операция разнообразия вносит некоторые изменения в отдельную хромосому. Адаптивный генетический алгоритм поддерживает такую архитектуру генетического поиска, при которой целенаправленное изменение применяется ко всем вновь созданным хромосомам.
После скрещивания и мутации размер популяции увеличивается. Однако для последующих преобразований необходимо сократить число хромосом текущей популяции. Такая процедура носит название селекции. В текущей популяции, состоящей из родителей и потомков, производится отбор лучших решений, т.е. хромосом с наилучшим значением ШпеББ-функции (целевой функции).
Эта функция показывает, насколько исследуемая хромосома близка к опти-. -дуры. Процесс продолжается до тех пор, пока не будет обработано заданное число поколений. При этом каждая последующая популяция должна быть лучше, чем .
ШпеББ-функции. Таким образом, для адаптивного генетического алгоритма выделяется четыре основных этапа:
1) формирование начальной популяции;
2) синтез новых хромосом (операторы скрещивания и мутации);
3) ( -
);
4) селекция текущей популяции.
, -та, зависит также от начальной генетической информации в первом поколении. Поэтому оно меняется от попытки к попытке. Для получения наилучшего результата работы генетического алгоритма рекомендуется сделать несколько попыток (3-5).
Общую схему генетического алгоритма можно представить следующим об:
1. .
Шаг 2. Применение "жадного" алгоритма для построения маршрута.
3. .
Шаг 4. Порядковый номер попытки 1=1 (/ = 1, КР). КР - количество попыток.
Шаг 5. Формирование начальной популяции /-ой поп ытки.
6. .
Шаг 7. Порядковый номер генерации /'-ой поп ытки }=1 (} = 1, ТО).
Шаг 8. Выделение элиты и формирование текущей /'-ой популяции.
Шаг 9. Скрещивание хромосом в /'-ой популяции.
10. /- .
11. .
12. /- .
13. /- .
14. /- .
Шаг 15. Переход к следующей популяции: ]=]+1.
Шаг 16. Если /<ТО, то переход к шагу 8, иначе - определение наилучшего маршрута /'-ой попытки. (ТО - число генераций).
Шаг 17. Переход к следующей попытке: 1=1+1.
18. / КР, 5,
маршрута за время работы алгоритма.
Шаг 19. Вывод результирующего маршрута.
В каждой популяции хромосомы могут подвергаться действиям различных операторов. При этом происходят процессы, аналогичные действиям, которые случаются в естественной генетике. К основным операторам относят: оператор скре-
, , , -.
В данной реализации оператор кроссинговера является модифицированным, так как в нём предусмотрен механизм, исключающий возникновение "нелегальных" решений. Такими решениями считаются хромосомы, не отвечающие условию .
Общую схему реализованного оператора скрещивания можно представить :
Шаг 1. Выбрать хромосому с лучшим значением целевой функции Е(к) в те, .
Шаг 2. Порядковый номер итерации і=1.
Шаг 3. Сгенерировать случайное число гпё, причём 0<гпё<1.
Шаг 4. Если гпё < РБ, то выбрать і-ую хромосому в текущей популяции в качестве второго родителя, применить операцию скрещивания к выбранным хромосомам и запомнить получившихся потомков.
Шаг 5. Переход к следующей итерации: і=і+1.
Шаг 6. Если і < ЯР (р^мер популяции), то перейти к шагу 3.
Шаг 7. Конец работы алгоритма.
Оператор селекции формирует новое поколение из хромосом с лучшими значениями целевой функции ¥(к). Он уничтожает большую часть популяции и освежает генетический материал, пополняя популяцию большим количеством новых .
ЯР.
Оператор инверсии изменяет характер связей между компонентами хромосомы. Он берёт хромосому, случайным образом выбирает в ней две точки разрыва и располагает в обратном порядке элементы, попавшие между точками разрыва [3].
Оператор разнообразия также вносит изменения в отдельного индивидуума, но это очень небольшие изменения в каждой хромосоме, а не сильное изменение , . . С целью улучшения значения целевой функции каждая хромосома обрабатывается итерационным алгоритмом оператора разнообразия, основанным на методе циклического координатного спуска. Идея метода заключается в том, что его итерация ( ) .
алгоритма смежные хромосомы попарно рассматриваются и заменяются хромосомами минимально возможной длины. Поэтому в процессе реализации каждого шага значения целевой функции Е(к) улучшаются, так как минимизируется компонента целевой функции. Если изменения целевой функции Е(к) для двух последних итераций не превысили заданную точность є, то итерационный алгоритм оператора разнообразия прекращает свою работу.
Критерий остановки алгоритма может быть разным. Можно задать фиксированное число генераций. Можно на каждой итерации полученное решение сравнивать с оптимальным, пока не будет достигнута желаемая точность.
Для данного алгоритма разработан программный комплекс решения задачи коммивояжера. На рис. 1 изображен результат работы генетического алгоритма в
задаче коммивояжера, каждый столбец отображает результат на каждом шаге вы.
алгос*п<1 щ1о а см -им« «,т»«?»•:*) «з * I
Рис. 1. Столбчатая диаграмма значений ЦФ на последовательных итерациях
Более светлая полоска - самое лучшее решение, найденное на данном шаге, а более темная - общее качество популяции, т.е. среднеарифметическое всех решений на данном шаге, посредине отображается диаграмма. Если навести курсор на любой из столбцов, то появится подсказка о шаге, к которому относится столбец. Под диаграммой указанно время работы алгоритма, значение целевой функции. Анализ полученных данных говорит о том, что предложенная в работе стратегия использования генетического алгоритма позволяет: получать набор оптимальных решений, является гибкой, обладает высоким быстродействием (15%-30%) на одних и тех же входных данных, по сравнению с другими алгоритмами. ВСА=Ю(п2).
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Емепьянов В.В., Курейчик В.М, Курейчик В.В. Теория и практика эволюционного моделирования. - М: ФИЗМАТЛИТ, 2003.
2. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов.
- М: Мир, 1979.
3. ГладковЛ.А. Генетические операторы. - Таганрог: Изд-во ТРТУ, 2005.
4. Пападимитриу X., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность.
- М.: Мир, 1985.
УДК 681.3.06
Л.А. Гладков, А.Е. Криницкая ГИБРИДНЫЕ НЕЧЕТКИЕ ГЕНЕТИЧЕСКИЕ СИСТЕМЫ*
При решении многих задач оптимизации, проектирования и принятия решений часто приходится встречаться с таким понятием как, неопределенность в отношении какого-либо параметра. Для решения данной проблемы было предло-
* Работа выполнена при поддержке: РФФИ (гранты № 06-01-00272, № 08-01-00473), РНП 2.1.2.3193, РНП 2.1.2.2238.