Национальный аэрокосмический университет им. Н.Е. Жуковского „Харьковский авиационный институт” Кафедра компьютерных систем и сетей Генетические алгоритмы для решения задачи коммивояжера Шелиманова Ж.В. Украина, Харьков, 5 октября, 2013 год Содержание доклада: • • • • • • Задача коммивояжера (ЗК) o Постановка задачи, особенности o Методы решения ЗК Генетические алгоритмы (ГА) Генетический алгоритм для задачи коммивояжера Решение задачи при помощи MATLAB Сравнение показателей программ Выводы. Пути дальнейшего исследования Постановка задачи: o Коммивояжер должен объехать N городов по кратчайшему пути, посетив каждый город один раз и вернуться в исходный город. o Если затраты на переезд между каждой парой городов не зависят от направления движения, то задача называется симметричной, в противном случае – несимметричной. o Данная задача коммивояжера, относящаяся к числу задач комбинаторной оптимизации, является одной из наиболее хорошо изученных с точки зрения разработанных методов и алгоритмов её решения. Это обусловлено тем фактом, что к ней сводятся многие прикладные задачи из разных областей. Постановка задачи коммивояжёра: 𝑛 𝑛 W= 𝑟𝑖,𝑗 𝑥𝑖,𝑗 → 𝑚𝑖𝑛 𝑖=1 𝑗=1 𝑖≠𝑗 1, если есть путь между i−й и j−й вершинами, 0, при отсутствии пути; где 𝑥𝑖𝑗 = 𝑟𝑖𝑗 − вес ребра между i−й и j−й вершинами; 𝑛 𝑛 𝑥𝑖𝑗 = 1∀𝑗 = 1, 𝑛; 𝑖=1 𝑥𝑖𝑗 = 1∀𝑖 = 1, 𝑛 𝑗=1 Задача коммивояжера — полигон для испытания оптимизационных методов Метод ветвей и границ Метод локальных улучшений Приближенные и эвристические методы Псевдополиномиальные алгоритмы Метод случайного поиска Генети́ческий алгори́тм - это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путем последовательного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию. Является разновидностью эволюционных вычислений (англ. evolutionary computation). Применение генетических алгоритмов: • При создании вычислительных структур, например, автоматов или сетей сортировки • При проектирование нейронных сетей или при управлении роботами • Наиболее популярное приложение генетических алгоритмов - оптимизация многопараметрических функций. • Решение задачи синтеза топологии кольцевой сети (задача коммивояжера) Основные термины: • • потенциальное решение особь (individual) потомок и родитель (child, потомок – это улучшенная копия потенциального решения родителя parent) • популяция (population) • приспособленность (fitness) качество • селекция (selection) • мутация (mutation) набор потенциальных решений отбор особей на основе их приспособленностей обычное улучшение. Часто рассматривается как «бесполое» размножение. Схема генетического алгоритма: Создание начальной популяции Отбор Скрещивание Переход Переход кк новому новому поколению поколению Мутация Ответ Интерфейс проекта: Полученный результат: Метод случайного подбора: Количество городов – 45, длина маршрута – 14934 (пикселей) Полученный результат: Метод генетического алгоритма: Количество городов – 45, длина маршрута – 14692 (пикселей) Принцип работы ГА: Тестирование программы. Сравнение алгоритмов 6000 5000 4000 3000 Генетический алгоритм Метод случайного подбора 2000 1000 Поколения (шт.) 63000 59000 55000 51000 47000 43000 39000 35000 31000 27000 23000 19000 15000 11000 7000 3000 0 10 Длина маршрута (пиксель) 7000 Решение задачи с помощью MATLAB Механизм работы с генетическими алгоритмами в среде MATLAB реализован двумя способами: 1. Вызов функции генетических алгоритмов 2. Использование комплекта Genetic Algorithm Tool Genetic Algorithm Tool Количество городов – 45, длина маршрута – 13734(пикселей) Пути дальнейшего исследования: • В теоретическом плане представляет интерес продолжение исследований по анализу различных генетических операторов, влиянию значений их параметров на эффективность применения генетических методов. • До сих пор не получены теоретические обоснования сходимости ГА. • В практическом плане представляется важным усовершенствование класса по уменьшению длины маршрута в ЗК. Т.к. результаты проведенных исследований по решению ЗК показывают успешность применения ГА для таких задач. Выводы по проведенной работе: Генетический алгоритм решения задачи коммивояжера дает отличный результат в поиске топологии кольцевой сети минимальной длины и показывает лучший результат с методом случайного подбора. Однако следует отметить, что данный алгоритм не дает гарантии по нахождению самого оптимального маршрута. Его назначение заключается в том, чтобы за короткий промежуток времени найти приемлемый вариант решения поставленной задачи, оптимальность которого будет прямо пропорционально зависеть от количества времени затраченного на его поиск. То есть данный алгоритм будет оптимизировать ваше решение настолько, насколько у вас есть на это времени. 1. 2. 3. 4. 5. 6. 7. Источники: Rechenberg, I. Cybernetic solution path of an experimental problem. August 1965. Farnborough Hants: Royal Aircraft Eatablishment. English translation of lecture given at the 1964. Schwefel, H.P. Numerical Optimization of Computer Models. John Wiley&Sons. 1981. Fogel, L.J., Owens, A.J., Walsh, M.J. Artificial Intelligence Through Simulated Evolution. – John Wiley&Sons. Фогель Л., Оуенс А., Уолш М. Искусственный интеллект и эволюционное моделирование. – М.: Мир, 1969. – 230с. Исаев С.А. Разработка и исследование генетических алгоритмов для принятия решений на основе многокритериальных нелинейных моделей / Автореф.дисс. к.т.н. – Н. Новгород: НГУ, 2000. – 18с. Веб-ресурс : http://algolist.manual.ru/ai/ga/ga1.php Веб-ресурс : http://www.computerra.ru/offline/1999/289/2523/ Полезное: • http://www.computerra.ru/offline/1999/289/2523/ О генетическом алгоритме применительно к ЗК • http://www.kv.by/index2005321102.htm GeneHunter и генетические алгоритмы • • http://masters.donntu.edu.ua/2004/kita/polyakov/links/index.htm Много информации по ЭВ и ГА (!) http://www.artint.com.ua/index_a.htm • http://algolist.manual.ru/ai/index.php (!) Спасибо за внимание! Украина, Харьков, 5 октября, 2013 год