Научная статья на тему 'Эволюционный метод нахождения оптимального пути в условиях сложного рельефа местности'

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

CC BY
189
29
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭВОЛЮЦИОННОЕ МОДЕЛИРОВАНИЕ / ЭВОЛЮЦИОННЫЕ АЛГОРИТМЫ / ЭВОЛЮЦИОННЫЙ МЕТОД / СХОДЯЩИЕСЯ АЛГОРИТМЫ / ОПТИМАЛЬНЫЙ ПУТЬ

Аннотация научной статьи по математике, автор научной работы — Дементьев Юрий Игоревич, Зимин Роман Владимирович

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

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

Похожие темы научных работ по математике , автор научной работы — Дементьев Юрий Игоревич, Зимин Роман Владимирович

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

AN EVOLUTIONARY METHOD FOR FINDING THE OPTIMAL PATH CONNECTING TWO SETTLEMENTS

The paper describes an evolutionary method and an algorithm for finding the optimal path connecting two settlements.

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

УДК 519.8

ЭВОЛЮЦИОННЫЙ МЕТОД НАХОЖДЕНИЯ ОПТИМАЛЬНОГО ПУТИ В УСЛОВИЯХ СЛОЖНОГО РЕЛЬЕФА МЕСТНОСТИ

Ю.И. ДЕМЕНТЬЕВ, Р.В. ЗИМИН

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

Ключевые слова: эволюционное моделирование, эволюционные алгоритмы, эволюционный метод, сходящиеся алгоритмы, оптимальный путь.

1. ВВЕДЕНИЕ И ПОСТАНОВКА ЗАДАЧИ

Работа посвящена теме поиска оптимального маршрута при соединении дорогой двух населённых пунктов. Пусть, например, требуется соединить автомобильной или железной дорогой два города (или любые другие объекты). Города могут быть удалены друг от друга на значительное расстояние. Предполагаемая дорога может пройти по многочисленным типам местности, начиная от равнин и заканчивая тоннелями в горах. Строительство дороги по равнине требует значительно меньших затрат ресурсов, чем, например, по холмам или по болотистой местности, не говоря уже о постройке мостов через реки.

Рассмотрим карту местности, состоящую из клеток различного типа. Каждая клетка представляет собой какой-то один тип местности (равнина, холм, лес, река, озеро и т.д.). Прокладка пути по клетке каждого типа требует затрат определённого количества ресурсов. Чем "хуже" местность на данной клетке, тем больше ресурсов необходимо для прокладки пути по ней. Требуется соединить дорогой две фиксированные клетки карты. Эти две клетки могут являться городами, деревнями, месторождениями полезных ископаемых или любыми другими объектами.

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

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

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

2. ОПИСАНИЕ РАБОТЫ АЛГОРИТМА

Для решения задачи предлагается применить методы эволюционного моделирования, в частности, эволюционные алгоритмы. В нашем случае это будут сходящиеся алгоритмы (см. [1, глава 5], а также книги [2], [3]). Мы будем «выращивать маршруты». Для каждого «маршрута» будем определять оценку (подобно игре «горячо - холодно» определяется, как близко «маршрут» подошёл к финишу, и сколько при этом он затратил ресурсов). Таким образом, если «маршрут № К» хорошо прошёл по карте, то он получит хорошую оценку, а если плохо, то плохую оценку. Затем все «маршруты» сортируются по результатам оценок. Самые успешные «маршруты» будут оставаться и «скрещиваться» с другими успешными «маршрутами», а неуспешные «маршруты» будут удаляться. «Скрещивая маршруты» через несколько поколений, мы получим наиболее оптимальный «маршрут».

Поставленную задачу рассмотрим на абстрактном примере Карта-лабиринт (рис. 1). Для иллюстрации предлагаемого алгоритма нахождения оптимального маршрута рассмотрим карту с различными типами клеток и границ между ними.

Старт: х = 8, у = 8; Финиш: х = 23, у = 8.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

/V /V в в в в в в в в в в /V /ч/

в ■

/V Л/ ¡¡¡Ш

1 л/ /V /V т /V /V Щ/ л/ л/ /V ■ — — УЧ/ л/ /V уу 1

1 А-У /V /V т /V /V /V л/ Щ| /V X /V /х/ /V I

1 л/ /V /V т л/ /V /V л/ /V /V ■ уЧ/ /V /V 1

/V /V ■ /V /V щрр /V /V /V

в в в в в в в в в в

1 2 3 4 5 6 7 8 Э 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Й4 25 26 27 28 29 30

Рис. 1. Карта-лабиринт

Для нашего примера введём 5 основных типов местности. Клетки: «1. обычная клетка -на ней ничего не происходит, это обычные затраты на строительство дорог»; «2. Клетка-яма -построить на ней дорогу невозможно»; «3. Клетка-лужа - построить на ней дорогу возможно, но придётся затратить больше ресурсов, чем проходя обычную клетку»; «4. Клетка-болото -построить на ней дорогу возможно, но надо затратить больше ресурсов, чем проходя клетку-лужу»; «5. Клетка-готовые блоки - это уже построенные ранее участки дороги (соответственно, при преодолении данного типа клеток дополнительные ресурсы тратить не нужно)». Также есть стены и перегородки (через которые проходить нельзя), на практике они могут отражать, например, непреодолимые горы или пропасти.

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

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

- Старт )< - Финиш Щ - Яма

2 3 4

\ 1 X

_ 1 <- ♦ — 5

- Лужа Щ - Болото - Гот. Блоки

8 7 6

Рис. 2. Типы местности и направления движения

Пусть у нас есть среда обитания, мы будем называть её «аквариум». В среде обитания есть живые организмы, в нашем случае это будут «кибернетические организмы». Термин «кибернетический организм» очень многогранен, это может быть как одна строка кода, так и некоторое количество файлов (с алгоритмами) объединённых главным файлом. Отметим, что в рамках данной статьи под термином «кибернетический организм» мы будем понимать объект, состоящий из нескольких параметров (чисел и строк) и алгоритма кибернетического организма (это главный параметр). Под «алгоритмом кибернетического организма» будем понимать т строк по п команд в строке, где команды - какие-то действия в среде (в «аквариуме»). «Алгоритм кибернетического организма» - линейный, без циклов и разветвлённых конструкций. Это самые простейшие «кибернетические организмы», вся жизнь которых состоит в нескольких линейных алгоритмах. У этих организмов есть пол (самка, самец) и могут быть родители (отец и мать), если они получены не на нулевом поколении (не сгенерированы случайным образом).

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

Итак, у нас имеется карта-лабиринт, например, 30 на 15 клеток - см. рис. 1. На карте есть начальная точка (8, 8) и конечная точка (23, 8). Требуется пройти из начальной точки в конечную точку за наименьшее количество ходов и с использованием минимального количества ресурсов. На пути движения имеются препятствия различных типов: стенка (преграда), яма (пропасть), лужа, болото. Имеются также места, где дороги уже построены.

Маршрут должен пройти от старта до финиша, истратив как можно меньше ресурсов с учётом различной стоимости ресурсов на разных типах дорог. Ходить можно по горизонтали, вертикали и диагонали (8 разных типов ходов, см. рис. 2).

3. РАЗБОР ПРИМЕРА

Среда обитания («аквариум») - карта. «Кибернетический организм» - это последовательность длины п, состоящая из восьми различных команд. У «кибернетического организма» есть вероятность мутации от 0% до 100% и вероятность мутации длины «алгоритма кибернетического организма» от 0% до 100%. Есть два пола, самка и самец, различие в них только в том, что мутация у самцов выше, чем у самок. А также у «кибернетического организма» есть количество топлива (сколько ресурсов у него осталось).

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

точкой, в нашем случае точкой (23, 8). Все «кибернетические организмы» сортируются по расхождению, чем меньше, тем лучше. Если расхождение у «кибернетических организмов» одинаково, то они сортируются по количеству оставшихся у них ресурсов, чем больше, тем лучше. Все «кибернетические организмы», которые показали плохие результаты, удаляются.

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

Посмотрим промежуточные стадии изменения «кибернетического организма», чтобы лучше понять, как шла его эволюция, как он развивался и почему стал таким. Объём «аквариума» мы взяли 150 особей каждого пола (по 150 пробных маршрутов на каждом поколении). Как можно увидеть (рис. 3) уже на 49 поколении «кибернетический организм» почти вышел из исходного квадрата-лабиринта, что иллюстрирует «действенность» предложенного алгоритма.

На данном этапе его эволюция может пойти двумя разными путями (верхним путём или нижним путём). Так как эти пути равнозначны и «оценщик» будет оценивать их одинаково. Вот именно на этом поколении мы вновь сталкиваемся с возможностью разделения всех организмов на подгруппы. То есть мы подтверждаем, что такое явление есть, мы его можем наблюдать. Также отметим, что, так как мы рассматриваем «простейшие кибернетические организмы», то у них нет входных потоков данных (зрения, слуха, кинестетики) и нет выходных потоков данных (реакций). На данном этапе можно сказать, что у них нет восприятия окружающего их мира. Они не могут хоть как-то интерпретировать окружающий их мир. Поэтому, даже достигая какого-либо результата, они не смогут этого понять или как-то осознать.

Теперь посмотрим, каких результатов достиг «кибернетический организм» на 62 поколении (рис. 3). Алгоритм неудачно попал в болото, но направление поворота выбрал правильно. Таким образом, можно однозначно сказать, что он пойдёт верхним путём. Как мы и предсказывали, он пошёл верхним путём (рис. 4), но попал в другое болото. Такой результат объясняется тем, что у него нет памяти, он не может хоть как-то понять, что происходит с ним, когда попадает в клетку-лужу. Алгоритм исправляется, выходит из болота. Вернее будет сказать, что его потомки стали мудрее, и они в болото уже не заходят (рис. 4).

Результат работы «кибернетического организма» показан на рис 4. Путь из начальной точки в конечную точку найден.

4. ЗАКЛЮЧЕНИЕ

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

Старт: х = В, у = 8; Финиш: х = 23, у = В.

1 2 3 4 5 6 7.

.10 11 12 13 14 15 1S 17 18 19 20 21 22 23 24 25 26 27 28 29 30

вввввввввв

li

fx

вввввввввв

1 2 3 4 5 6 7

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

1 2 3 4 5 6 7

Путь «кибернетического организма» (V = 150, S = 49) Старт: X = 8, У = 8; Финиш: X = 23, у = 8.

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

ВВВВВВВВВВ

вввввввввв

1 2 3 4 5 6 7

25 26 27 28 29 30

1 2 3 4 5 6

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Путь «кибернетического организма» (V = 150, S = 62) Старт: х = В, у = В; Финиш: х = 23, у = В.

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

В в

вввввввввв

1 2 3 4 5 6 7

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Путь «кибернетического организма» (V = 150, S = 100) Рис. 3. Путь «кибернетического организма»

1 2 3 4 5 6

Старт: х = В, у = S; Финиш: х = 23, у = В.

7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

н ■ в

■ ■■■■■■■

1 2 3 А 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Путь «кибернетического организма» (V= 150, S = 130) Старт: х = В, у = В; Финиш: х = 23, у = В.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

В

вввввввввв

1 2 3 4 5 6

7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Путь «кибернетического организма» (V = 150, S = 150)

Старт: X = 8, У = 8; Финиш: X = 23, у = 8.

1 2 3 4 5 6

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

В В В В В В В

1 2 3 4 5 6 7

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Путь «кибернетического организма» (V — 150, S — 197) Рис. 4. Путь «кибернетического организма»

ЛИТЕРАТУРА

1. Потапов А.С. Технологии искусственного интеллекта // СПб, ИТМО, 2010.

2. Емельянов В.В., Курейчик В.В., Курейчик В.М. Теория и практика эволюционного моделирования. -М.: Физматлит, 2003.

3. Гладков Л.А., Курейчик В.В., Курейчик В.М. Генетические алгоритмы: учеб. пособие. - 2-е изд. - М.: Физматлит, 2006.

AN EVOLUTIONARY METHOD FOR FINDING THE OPTIMAL PATH CONNECTING TWO SETTLEMENTS

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

Dement'ev Yu.I., Zimin R.V.

The paper describes an evolutionary method and an algorithm for finding the optimal path connecting two settlements.

Keywords: evolutionary modeling, evolutionary algorithms, evolutionary method, converging algorithms, optimum way.

REFERENCES

1. Potapov A.S. Tekhnologii iskusstvennogo intellekta (Technology of an Artificial Intelligence), Sanct-Petersburg, ITMO, 2010, 218 p.

2. Yevel'yanov V.V., Kureychik V.V., Kureychik V.M. Teoriya i praktika evolyutsionnogo modelirovaniya (Theory and Practice of Evolutionary Modelling), Moscow, Fizmatlit, 2003, 432 p.

3. Gladkov L.A., Kureychik V.V., Kureychik V.M. Geneticheskiye algoritmy: Uchebnoe posobiye. - 2-e izd. (Genetic Algorithms. Educational textbook, second edition) - Moscow, Fizmatlit, 2006, 320 p.

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

Дементьев Юрий Игоревич, 1976 г.р., окончил МГУ им. М.В. Ломоносова (1998), кандидат физико-математических наук, доцент, заведующий кафедрой высшей математики МГТУГА, автор 30 научных работ, область научных интересов - обыкновенные дифференциальные уравнения, в частности, теория показателей Ляпунова и её приложения к вопросам устойчивости.

Зимин Роман Владимирович, 1989 г.р., студент 4 курса факультета прикладной математики и вычислительной техники МГТУГА, область научных интересов - эволюционные вычисления, эволюционные методы решения практических задач, искусственный интеллект, искусственная жизнь.

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