Тип работы:
Предмет:
Язык работы:


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

Работа №113441

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы68
Год сдачи2022
Стоимость4365 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
125
Не подходит работа?

Узнай цену на написание


Введение 5
1 АНАЛИЗ ТЕХНОЛОГИЙ ПОИСКА КРАТЧАЙШЕГО ПУТИ 7
1.1 Описание исследуемой задачи 7
1.2 Анализ существующих решений 11
2 ПРОЕКТИРОВАНИЕ АЛГОРИТМА ДЛЯ ПОИСКА КРАТЧАЙШЕГО ПУТИ 20
2.1 Анализ и выбор алгоритма 20
2.2 Общая структура алгоритма 21
2.3 Анализ реализованного алгоритма 35
3 АНАЛИЗ И ВЕРИФИКАЦИЯ ПОЛУЧЕННЫХ ДАННЫХ 55
3.1 Проведение вычислительного эксперимента 55
3.2 Корректировка разработанного алгоритма 56
Заключение 59
Список используемой литературы и источников 61
Приложение А Листинг программы

В современных городах, особенно в крупных, чтобы добраться из одной точки в другую, можно воспользоваться несколькими вариантами маршрута. Если человеку некуда спешить, то можно выбрать любой из них, а что, если наоборот: ему необходимо добраться до назначенного пункта как можно быстрее или выбрать наиболее дешевый маршрут? В таком случае ему предстоит просмотреть несколько маршрутов вручную и выбрать наиболее подходящий вариант.
Для решения таких транспортных задач используются приложения, которые автоматически строят маршрут до указанного места. Однако они чаще всего предоставляют своим пользователям самые короткие маршруты, но это не значит, что они самые быстрые или же менее затратные.
Просчет маршрута с учетом не только расстояния, но и затраченного на него времени, а также средств - это труднореализуемая чисто математическая задача. Для решения такого рода задач часто применяют эволюционные алгоритмы [15][13].
Эволюционные вычисления основаны на идеи применения дарвинской эволюции к компьютерной программе, концепция выживания которой заключается в том, что выживает наиболее приспособленная особь. Задачей эволюции является с помощью случайных мутаций в результате прийти к решению задачи с нужной точностью [1][14][12].
Эволюционные алгоритмы разделены на несколько видов:
- генетические алгоритмы;
- эволюционное программирование;
- программирование экспрессии генов;
- дифференциальная эволюция;
- нейроэволюция.
Все они используют базовые эволюционные этапы - отбор, скрещивание и мутации. Поведение особи (агента) определяется окружающей средой в результате чего определяется его пригодность к ней. Особи с подходящей приспособленностью участвуют в размножении, формируя следующее поколение (популяцию). Такие алгоритмы относятся к адаптивным поисковым механизмам [24].
Эволюционные алгоритмы используются при поиске оптимального решения задачи в конечном множестве решений, например при решении NP- трудных задач, таких как задача коммивояжера, задача упаковки ранца и зарисовка графов. NP-трудные задачи - это задачи, оптимальное решение которых невозможно вычислить за разумное время никакими способами и методами, но с помощью эволюционных алгоритмов стало возможным получение приблизительного оптимального решения. Обычно оптимальность полученного результата оценивается приспособленностью, которая должна быть не ниже установленного значения. Наглядным примером успешности работы эволюционных вычислений является космическая антенна NASA. Задача состояла в определении формы антенны такой, чтобы передаваемый ею сигнал был как можно лучше. Ее пытались решить точными методами, но только эволюционный алгоритм смог найти оптимальную форму [17].
Объект исследования - поиск оптимального маршрута.
Предмет - разработка алгоритма поиска оптимального городского маршрута с использованием эволюционных вычислений.
Целью данной выпускной квалификационной работы является проектирование и разработка алгоритма маршрутизации в городских условиях с использованием эволюционных вычислений.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Для решения задач маршрутизации используют различные алгоритмы, которые наиболее всего подходят к поставленной задаче. Известно, что эволюционные алгоритмы используются в решении NP-сложных задач, включая задачи маршрутизации. А в поиске кратчайшего пути активно используют модифицированный алгоритм Дейкстры. В литературе можно найти сильные и слабые стороны этих алгоритмов, но нигде не приводятся результаты сравнения в их производительности на одинаковых задачах - обычно эволюционные алгоритмы сравниваются только между собой. Среди эволюционных алгоритмов мною был выбран генетический и на задаче поиска кратчайшего пути его производительность сравнивалась с активно используемым в решении таких задач алгоритмом Дейкстры.
Генетический алгоритм, как было выяснено в результате исследований, сильно зависит от параметров и даже небольшое изменение одного из них может привести как к сильному ухудшению, так и к улучшению полученных решений. Влияние начальных параметров хорошо заметно на популяциях, полученных в результате имитации эволюции начальной популяции, которая в моей работе генерировалась случайными значениями, где каждая особь популяции хранила в себе лучшие, по ее мнению, маршруты, хранящиеся у нее в хромосоме. На основе этих хромосом выбирались лучшие, т. е. более приспособленные по мнению алгоритма особи, которые с заданной вероятностью могли скрещиваться, а затем с некоторой вероятностью могла происходить мутация полученных новых особей. Вероятности мутации и скрещивания также сильно влияют на результирующий ответ. Чем больше популяций и особей в них, тем больше вероятность получения хорошего результата. Тем не менее, если задача состоит в поиске оптимального пути для, например, 20 и более городов, то возникает задача коммивояжера, с решением которой генетический алгоритм покажется себя лучше Дейкстры.
На основе полученных в результате тестирования оценки производительности генетического алгоритма в дальнейшем можно будет его усовершенствовать, чтобы ускорить его работу с сохранением точности полученных решений. Например, можно будет добавить в программу многопоточность, чтобы оказалось возможным обрабатывать несколько переменных (особей в популяции) за раз. Еще одним вариантом его усовершенствования можно быть внедрение в него частей других алгоритмов (гибридизация) и внесение в него модификаций, как было сделано с алгоритмом Дейкстры в таких приложениях как Google Maps, Apple maps, OpenStreetMap, Яндекс.Карты и многих других. Возможно, добавление сильной стороны генетического алгоритма в алгоритм Дейкстры в качестве модификации поможет ускорить его еще больше, особенно в тех моментах, когда решение задачи может быть не очевидным (т. е. невозможно получить точный ответ), либо же ее расчет займет настолько много времени, что достаточным будет получение приблизительно оптимального решения.


1. Александр Ершов. Азбука ИИ: «Эволюционные алгоритмы» //
N+1. 2016. URL: https: //nplus 1 .ru/material/2016/07/06/evodevo (дата
обращения: 10.4.2022).
2. Александр Гришутин, Станислав Алексеевич. Поиск в ширину // Алгоритмика. URL:https://ru.algorithmica.org/cs/shortest-paths/bfs/(дата обращения: 16.4.2022).
3. Генетический алгоритм // Википедия. [2022]. Дата обновления: 23.02.2022. URL:https://ru.wikipedia.org/?curid=16652&oldid=120270996(дата обращения: 25.03.2022).
4. Дмитрий Трофимов, Анатолий Федуков. Задача маршрутизации
транспорта. Дискретная математика: алгоритмы // Lobanov Logist. URL: https://www.lobanov-logist.ru/library/all articles/55059/ (дата обращения:
25.3.2022) .
5. Е. Г. Климко. Генетический алгоритм как разновидность
эволюционного алгоритма // Cyber Leninka. URL:
https://cyberleninka.ru/article/n/geneticheskiy-algoritm-kak-raznovidnost-evolyutsionnogo-algoritma(дата обращения: 12.3.2022).
6. Задача коммивояжёра // Википедия. [2022]. Дата обновления: 06.04.2022. URL:https://ru.wikipedia.org/?curid=45128&oldid=121246343(дата обращения: 16.04.2022).
7. Компания Яндекс - Технологии - Маршрутизация // Яндекс.
URL: https://yandex.ru/company/technologies/routes/(дата обращения:
15.3.2022) .
8. Классический генетический алгоритм. Часть 1. Краткий обзор // AIportal. URL:http://www.aiportal.ru/articles/genetic-algorithms/classic-alg-part1.html(дата обращения: 13.3.2022).
9. Поиск в ширину // Википедия. [2021]. Дата обновления: 10.10.2021.
URL:https://ru.wikipedia.org/?curid=227593&oldid=117122792(дата обращения: 16.04.2022).
10. Реализация алгоритма Дейкстры на Python // Русские Блоги. URL: https://russianblogs.com/article/90771009032/(дата обращения: 18.4.2022).
11. Роберт Седжвик. Алгоритмы на с++. Лекция 21: Кратчайшие
пути // ИНТУИТ. URL:
https://intuit.ru/studies/courses/12181/1174/lecture/25268?page=9 (дата
обращения: 8.4.2022).
12. Эволюционные алгоритмы // Википедия. [2020]. Дата
обновления: 01.01.2020.
URL:https: //ru.wikipedia.org/? curid=1304904&oldid=104297578 (дата
обращения: 15.3.2022).
13. Эволюционные алгоритмы // Постнаука. 2016. URL: https://postnauka.ru/tv/69879(дата обращения: 16.4.2022).
14. Эволюционный алгоритм (Evalutionary algorithm) // Loginom. URL:https://wiki.loginom.ru/articles/evolution-algorithm.html(дата обращения:
12.4.2022) .
15. Эволюционные методы для решений задач проектирования и логистики // БиГОР. URL:http://bigor.bmstu.ru/?cnt/?doc=Default/Evolution.cou(дата обращения: 5.3.2022).
16. ASF Infrabot. .GeneticAlgorithm // Apache. 2009. URL:
https://cwiki.apache.org/confluence/display/SPAMASSASSIN/GeneticAlgorithm(дата обращения: 14.3.2022).
17. Automated Antenna Design with Evolutionary Algorithms // Ti. URL:
https://ti.arc.nasa. gov/m/pub-archive/1244h/1244%20(Homby).pdf (дата
обращения: 17.4.2022).
18. Somasundaram Kumanan. A Genetic Algorithm for Optimization Of Supply Chain Logistics Network // ResearchGate. 2005. URL: https://www.researchgate.net/publication/267212044 A Genetic Algorithm for
Optimization Of Supply Chain Lo gistics Network (дата обращения:
22.4.2022) .
19. Fmder. DEAP documentation. // Github. 2020. URL: documentation https://deap.readthedocs.io/en/master/ (дата обращения: 10.3.2022).
20. Genetic Query Optimization (GEQO) in PostgreSQL // PostgreSQL. URL:https://www.postgresql.org/docs/9.1/geqo-pg-intro.html (дата обращения:
16.4.2022) .
21. Mafulechka. Поиск в ширину (Breadth first search, BFS) // Evileg. 2019. URL: https://evileg.com/ru/post/512/(дата обращения: 18.4.2022).
22. Muthukumar Kumar. The famous algorithm that made navigation in
Google Maps a reality // GEO Awesome. 2015. URL:
https://geoawesomeness.com/the-famous-algorithm-that-made-navigation-in-google-maps-a-reality/(дата обращения: 15.4.2022).
23. Nick Johnson. What algorithms compute directions from point A topoint B on a map? // Stack overflow. 2009. URL: https://stackoverflow. com/questions/430142/what-algorithms-compute-directions-from-point-a-to-point-b-on-a-map(дата обращения: 16.4.2022).
24. PatientZero. Эволюционные вычисления: учим табуретку ходить // Хабр. 2017. URL: https://habr.com/ru/post/340772/(дата обращения: 15.4.2022).
25. Welcome To Colaboratory // Google URL:
https://colab.research.google.com/?utm source=scs-index (дата обращения:
10.3.2022) .


Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ