Введение 3
Постановка задачи 5
Обзор существующих методов 7
Глава 1. Реализация вспомогательных алгоритмов 14
1.1. Особенности реализации и хранения 14
1.2. Генерация случайных многоугольников 14
1.3. Гексагональный растр 19
1.4. Растеризация отрезков 22
1.5. Заливка многоугольников 24
Глава 2. Алгоритм поиска оптимального маршрута 26
2.1. Идея и описание алгоритма 26
2.2. Данные для тестирования 29
2.3. Тестирование алгоритма 29
Глава 3. Анализ алгоритма 34
3.1. Повороты карты 34
3.2. Поиск оптимального угла 36
3.3. Временная сложность алгоритма 43
3.4. Характеристики вычислительной среды 45
Заключение 46
Список использованных источников 48
Задача поиска оптимального маршрута в условиях динамически меняющихся ограничений возникает практически повсеместно. Особенно в наши дни, когда ведутся активные наработки в области искусственного интеллекта: создание бытовых роботов-пылесосов, автопилотов (к примеру, компания «Яндекс» уже запустила экспериментальные такси без водителя в Москве [1]) и т.п. В этой же работе будет рассмотрена задача, относящаяся к одной из важнейших сфер человеческой деятельности - к судоходству.
Важнейшим фактором конкурентоспособности в морской отрасли является минимизация расхода топлива на судоходных маршрутах. В то же время, это согласуется с усилением общемировой тенденции к сокращению выбросов вредных веществ в атмосферу в рамках смягчения последствий изменения климата (например, глобального потепления) [2]. Оба этих требования могут быть удовлетворены посредством поиска оптимального маршрута. Под критериями оптимальности можно понимать очень многое: время в пути (за опоздание или слишком раннее прибытие может быть наложен штраф), расход топлива, минимизация выбросов, безопасность судна и груза (боковая качка может привести к повреждениям судна или потере груза) и комфорт пассажиров (особенно страдающих морской болезнью). Выбор конкретных критериев зависит от поставленной задачи.
Кроме того, в последние годы в академических и в коммерческих кругах значительно возросло внимание к так называемым метеорологическим маршрутам судов (англ. weather routing). Основной задачей в этой области является поиск оптимального пути и скорости движения для заданного рейса в условиях динамически меняющихся ограничений (погодных условий, таких как ветер, высота и направление волн и т.п.). Данную тенденцию можно заметить на рис. 1, где отображено изменение количества статей в области weather routing за последние 60 лет [3].
Рис. 1. Повышение интереса к области weather routing [3]
Большинство существующих разработок в этой области основывается либо на классических алгоритмах поиска кратчайших путей в графе (таких как алгоритм Дейкстры [4, 5, 6, 7], А* [2, 8]), либо на оптимизационных и математических алгоритмах: метод динамического программирования [4], метод многокритериальной оптимизации [9, 10], задача вариационного исчисления [6, 9], задача нелинейного программирования [4, 11], метод изохрон [4, 12], эволюционный алгоритм [4, 9, 10]. Кроме того, в последние годы также возросло количество приложений искусственного интеллекта и машинного обучения [3]. В работе [13] упоминается, что в некоторых системах планирования маршрутов используется метод Монте-Карло.
Однако не было найдено ни одного исследования, опирающегося на идеи гексагональной растеризации карты, математической морфологии и поиске в ширину. Вследствие чего этот подход к решению проблемы weather routing рассматривается в данной работе.
Вопрос навигации судов был актуален с самого зарождения человеческой цивилизации. Плавание в океанских просторах всегда считалось опасным, в какой-то степени непредсказуемым предприятием. В данной работе был рассмотрен не встречавшийся ранее метод нахождения оптимального по времени маршрута, учитывающий динамически меняющиеся ограничения (например, погодные), основывающийся на гексагональной растеризации, алгоритме поиска в ширину и математической морфологии.
Были разработаны вспомогательные алгоритмы генерации случайных ограничений-многоугольников и их растеризации в гексагональном растре, а также непосредственно алгоритм поиска оптимальных маршрутов в условиях динамически меняющихся ограничений. Был проведён анализ получившегося алгоритма, показана практическая применимость на реальных тестовых данных о состоянии погоды. Разработанный алгоритм может быть адаптирован для любых движущихся в условиях динамически меняющихся ограничений объектов. Написана программная реализация, код которой находится в репозитории на github (ссылка: https: //github .com/4eckah7 8/weather_routing).
Подводя итоги, можно сказать, что маршрутизация по погодным условиям (англ. weather routing) - это хотя и относительно не новая концепция, но она довольно быстро получила широкое распространение и повышенное внимание ученых и практиков в последние годы. Возможно, это связано с возросшими вычислительными возможностями современных вычислительных систем.
В целом ожидается, что область погодных маршрутов и оптимизации рейсов будет всё более привлекать исследовательский интерес в будущем. Она достаточно широка, в ней используется множество подходов, о чем свидетельствует множество статей с порой совершенно различными разработанными методиками. Также присутствует явная экономическая выгода. Улучшение качества прогнозов погоды, доступность данных и всё увеличивающаяся вычислительная мощность открывают пути для дополнительных исследований по оптимизации погодных маршрутов. Можно с уверенностью сказать, что это перспективное поле для научных и коммерческих исследований.
[1] Фонтанка.ру [Электронный ресурс]. URL: https://www.fontanka.ru/2022/03/ 17/70515458/ (Дата обращения: 18.03.2022).
[2] Grifolla, M. Ship weather routing using pathfinding algorithms: the case of Barcelona - Palma de Mallorca / Manel Grifolla, Lluis Martorella, Marcella Castellsb, F. Xavier Martinez de Oses // Transportation Research Procedia. - 2018. - Vol. 33. - P. 299-306.
[3] Zis, T. Ship weather routing: A taxonomy and survey / Thalis P.V. Zis, Harilaos N. Psaraftis, Li Ding // Ocean Engineering. - 2020. - Vol. 213. - P. 118.
[4] Walther, L. Modeling and Optimization Algorithms in Ship Weather Routing / Laura Walther, Anisa Rizvanolli, Mareike Wendebourg, Carlos Jahn // International Journal of e-Navigation and Maritime Economy. - 2016. - Vol. 4. • P. 31-45.
[5] Takashima, K. On the Fuel Saving Operation for Coastal Merchant Ships using Weather Routing / K. Takashima, B. Mezaoui, R. Shoji // International Journal on Marine Navigation and Safety of Sea Transportation. - 2009. - Vol. 3, №4. • p. 401-406.
[6] Mannarini, G. A Prototype of Ship Routing Decision Support System for an Operational Oceanographic Service / G. Mannarini, G. Coppini, P. Oddo, N. Pinardi // International Journal on Marine Navigation and Safety of Sea Transportation. - 2013. - Vol. 7, №1. - P. 53-59.
[7] Bottner, C.-U. Weather routing for ships in degraded condition // International Symposium on Safety, Security and Environmental Protection. - 2007.
[8] Shin, Y. Near-Optimal Weather Routing by Using Improved A* Algorithm / Yongwoo Shin, Misganaw Abebe, Y. Noh, Sangbong Lee, Inwon Lee, Dong- Hyun Kim, Jungchul Bae, K. Kim // Applied Sciences. - 2020. - Vol. 10, Iss. 17, 6010.
[9] Szlapczynska, J. Multicriteria Evolutionary Weather Routing Algorithm in Practice // International Journal on Marine Navigation and Safety of Sea Transportation. - 2013. - Vol. 7, №2. - P. 61-65.
[10] Szlapczynska, J. Multicriteria Optimisation in Weather Routing / J. Szlapczynska, R. Smierzchalski // International Journal on Marine Navigation and Safety of Sea Transportation. - 2009. - Vol. 3, №4. - P. 393-400.
[11] Веремей, Е. И. Алгоритмы оптимизации маршрутов движения с учётом погодных условий / Е. И. Веремей, М. В. Сотникова // International Journal of Open Information Technologies. - 2016. - Т. 4, № 3. - С.55-61.
[12] Ван, Х. Построение маршрута с помощью улучшенного метода изохрон при минимизации времени плавания и с учетом прогноза погоды / Ван Х., Ли П., Сюэ Ю., Коровкин М. В. // Вестник Санкт-Петербургского университета. - 2017. - T. 13, № 3. - С.286-299.
[13] Larsson, E., Simonsen, M. H. DIRECT Weather Routing, 2014. URL: https: //hdl .handle.net/20.500.12380/205858.
[14] Marine Digital. Оптимизация маршрута вашего судна с учетом времени и расхода топлива [Электронный ресурс]. URL: https://marine- digital.com/ru/tpost/9d7glblfr5-optimizatsiya-marshruta-vashego-sudna-s (Дата обращения: 29.04.2022).
[15] ScienceDirect [Электронный ресурс]. URL: https://www.sciencedirect.com/ (Дата обращения: 13.03.2022).
...