Моделирование вычислительных, телекоммуникационных, управляющих и социально-экономических систем
DOI: 10.18721/JCSTCS.12206 УДК 519.6:527
МЕТОДИКА ОПРЕДЕЛЕНИЯ РАССТОЯНИЯ ОТ ТОЧКИ ДО ОТРЕЗКА
В ЗАДАЧАХ НАВИГАЦИИ
В.А. Ботнев', С.М. Устинов2
1 Акционерное общество «Вяртсиля Цифровые Технологии», Санкт-Петербург, Российская Федерация; 2 Санкт-Петербургский политехнический университет Петра Великого,
Санкт-Петербург, Российская Федерация
Предложена эффективная методика для определения расстояния между отрезком и точкой на поверхности сфероида для решения последующих задач управления. Указаны причины возникновения и метод выявления многоэкстремальности в предложенной задаче. Представлен алгоритм ее решения в этих условиях. В случае многоэкстремальности отрезок разбивается на гарантированно унимодальные части, которые анализируются отдельно. Для унимодального отрезка в общем случае применяется гномоническая проекция специального типа (метод проекции), что позволяет обеспечить квадратичную сходимость. Определяются границы применимости метода проекции, и обосновывается оптимальный выбор центра гномо-нической проекции. При неприменимости метода проекции расстояние определяется с помощью универсального метода минимизации. Методика демонстрирует высокую точность решения, может быть рекомендована для использования в коммерческих навигационных и геодезических программных продуктах и распространена на задачи управления в различных приложениях навигации.
Ключевые слова: методы моделирования, геодезические задачи, локсодромия, ортодромия, задачи многоэкстремальной оптимизации.
Ссылка при цитировании: Ботнев В.А., Устинов С.М. Методика определения расстояния от точки до отрезка в задачах навигации // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. 2019. Т. 12. № 2. С. 68-79. DOI: 10.18721/JCSTCS.12206
DISTANCE FINDING METHOD BETWEEN A POINT AND A SEGMENT
IN NAVIGATION
V.A. Botnev', S.M. Ustinov2
1 Wartsila Digital Technologies, St. Petersburg, Russian Federation;
2 Peter the Great St. Petersburg Polytechnic University, St. Petersburg, Russian Federation
The authors proposed an efficient method for determining the distance between an interval and a point on the surface of a spheroid to address some ensuing control problems. The authors described detection of multi extremal situations in the proposed
problem and the causes of its occurrence. The authors suggested the algorithm of its solution under such conditions. In the case of multiextremality, the algorithm divides the interval into parts that are analyzed separately. In general case of unimodal intervals the algorithm uses special gnomonic projections with squared degree of convergence. The limits of applicability of the projection method are determined, and the optimal choice of the center of the gnomonic projection is justified. If the method is not applicable the universal minimization method provides the required solution. The method demonstrates high accuracy of the solution and the authors recommend it for use in commercial navigation and geodetic software products. The technique extends to control problems associated with different applications of navigation.
Keywords: modeling methods, geodesic problems, loxodrome, orthodrome, multi-extremal optimization problems.
Citation: Botnev V.A., Ustinov S.M. Distance finding method between a point and a segment in navigation. St. Petersburg State Polytechnical University Journal. Computer Science. Telecommunications and Control Systems, 2019, Vol. 12, No. 2, Pp. 68—79. DOI: 10.18721/JCSTCS.12206
Введение
Во многих приложениях навигации и геодезии необходимо определять расстояние между точкой и отрезком. При этом отрезок может быть частью одной из линий на поверхности Земли: ортодромы или локсодромы. В первом случае линия (орто-дрома) является кратчайшим путем из одной точки в другую по поверхности Земли. Во втором случае в силу ряда практических потребностей и исторических причин (особенно в задачах навигации) линией между точками служит линия постоянного азимута, что отвечает траектории с постоянным курсом (локсодрома) [1].
В многочисленных задачах навигации требуется многократно определять расстояние между точкой и отрезком. Интерес к их анализу не ослабевает уже более полувека [2, 3]. Кроме того, решения некоторых из них предполагают современные стандарты в области мореплавания. В частности, контроль прохождения маршрута судном является одной из основополагающих функций для ЭКНИС (электронно-картографическая навигационно-информационная система). Он необходим согласно указаниям международного стандарта 1ЕС-61174 Её.4.0 — 2015. Поэтому при разработке соответствующего программного обеспечения нужно уметь решать задачи подобного рода, что предполагает разработку эффективных ал-
горитмов. Одной из лидирующих компаний в этой области является Транзас, продукты которого охватывают полный круг задач для целей навигации. Предлагаемый в настоящей статье алгоритм доведен до реализации в коммерческом продукте Navi-Sailor 4000 этой компании [4]. Рассмотрим некоторые реальные примеры, требующие решения задачи, указанной в заголовке.
Маршрутное рандеву. Судно движется в соответствии с некоторым маршрутом на некотором удалении от него. При движении вдоль такого маршрута, используя AIS (система в судоходстве, служащая для идентификации судов, их габаритов, курса и других данных с помощью радиоволн диапазона УКВ), можно заранее определить какие ещё суда движутся вдоль этого маршрута. Принимая во внимание их координаты, вектор скорости и геометрические размеры, а также учитывая координаты, скорость и размеры собственного судна, можно рассчитать точку встречи на маршруте. Это часто необходимо, т. к. возможная точка встречи может приходиться на узкое место (узкий канал, сужение русла реки, узкий фарватер и т. д.), достаточное по ширине для прохода одного судна, но недостаточное для прохождения одновременно двух судов.
Для предотвращения столкновения или посадки на мель нужно заранее изменить скорость собственного судна, чтобы место
встречи судов было там, где ширина фарватера достаточна для расхождения с другим судном. В такой задаче нужно уметь проецировать положение судна на маршрут (судно всегда идет с некоторым отклонением от маршрута), чтобы сопоставить положению судна точку на маршруте. Маршрут состоит из ортодромичных или локсо-дромичных отрезков. Поэтому для нахождения проекции судна на маршрут нужно для произвольного положения судна уметь находить расстояние до каждого отрезка маршрута и рассчитывать ближайшую точку на ближайшем отрезке маршрута.
Маршрутный мониторинг. Для отслеживания прохождения судном маршрута с помощью ЭКНИС, как было указано выше, необходимо иметь функцию маршрутного мониторинга. С этой целью маршрут задают последовательностью путевых точек (waypoints), соединенных либо ортодромич-ными, либо локсодромичными отрезками (плечами маршрута). Каждому плечу маршрута в мониторинге сопоставляется определенная путевая точка — это та точка, на которую нужно идти вдоль этого плеча по ходу движения по маршруту. При старте мониторинга осуществляется привязка судна к определенной путевой точке. Эта привязка реализуется путем выбора ближайшего плеча маршрута. Чтобы выбрать ближайшее плечо, нужно вычислить расстояние от судна до всех отрезков маршрута. В ходе мониторинга для определения отклонения судна (cross track error — XTE) от текущего плеча маршрута также нужно уметь вычислять расстояние от судна до этого плеча.
Выход из опасного региона. В ходе плавания судно может получить информацию об опасном для плаванья регионе (например, через NAVTEX, международную автоматизированную систему оповещения). Если вдруг выяснилось, что судно находится в опасном регионе, то в ряде случаев нужно как можно быстрее его покинуть. Границы этого региона могут задаваться локсодромическими или ортодромически-ми отрезками. Чтобы определить кратчайший путь для выхода из опасного района,
нужно определить ближайший отрезок границы и ближайшую точку на нем (точку выхода из опасного района).
Решение всех этих задач не является тривиальным, т. к. даже при вычислении расстояния между двумя точками приходится сталкиваться с рядом проблем [5—7], в том числе с катастрофической потерей точности [8, 9]. Нахождение расстояния до отрезка очень близко к вопросу нахождения расстояния до линии [10], но обладает некоторыми особенностями. В частности, при нахождении расстояния до линии можно ограничиться только ближайшим к стартовой точке минимумом, в то время как при определении расстояния до отрезка необходимо рассмотреть все минимумы в пределах этого отрезка для получения абсолютного минимума.
Первоначально обратимся к определению отрезка. В Евклидовой геометрии на плоскости отрезок — это часть прямой, заключенная между двумя точками этой прямой. В рамках этой геометрии через две не совпадающие точки можно провести только одну прямую. На поверхности эллипсоида вращения соединение двух точек отрезком решается не так однозначно.
Если на поверхности сфероида аналогом прямых на плоскости считать геодезические (что справедливо не только для геодезии, но и для дифференциальной геометрии), то через любые две точки можно провести бесконечное множество различных геодезических в силу не замкнутости этих линий на такой поверхности. Если дополнительно потребовать, чтобы две точки, задающие отрезок, были соединены кратчайшей линией, то тем самым в подавляющем числе случаев геодезическая, соединяющая эти две точки, будет определяться однозначно. Исключением является ситуация расположения двух точек на противоположных полюсах. Тогда для определенности можно задать какое-либо правило соединения точек, например, по нулевому меридиану.
Еще один вариант неоднозначности возникает, когда точки размещены диаметрально противоположно на поверхности
сплюснутого сфероида (каковым является ШОБ84), симметрично относительно центра сфероида, и не совпадают с полюсами. При этом существуют два различных отрезка одинаковой длины, проходящие через северный и южный полюс. Здесь также можно задать правило соединения точек, например, из двух отрезков выбирать тот, который проходит через северный полюс.
Если линией, соединяющей две точки, является локсодрома (что часто осуществляется в навигации), то возникают схожие проблемы. Для их разрешения нужно потребовать (опять же исходя из соображений здравого смысла), чтобы отрезком в этом случае считался кратчайший кусок локсодромы, соединяющий эти две точки. Если точки лежат на противоположных полюсах, их так же, как и в предыдущем случае, можно соединить нулевым меридианом (который является частным случаем локсодромы). Если две точки лежат на противоположных меридианах и не совпадают с полюсами, для однозначного определения отрезка можно выбрать тот, который пересекает нулевой меридиан. В случае нахождения одной из точек на нулевом меридиане, можно выбирать тот отрезок, который находится в восточном полушарии.
Задача определения расстояния от точки Р0 до отрезка Р1Р2 (см. рисунок) может ставиться в четырех постановках. Отрезок Р1Р2 может быть частью локсодромы или ортодромы, а расстояние от точки Р0 до него, в свою очередь, может определяться как по ортодроме, так и по локсодроме.
Остановимся на варианте с ортодроми-ческим отрезком и ортодромическим расстоянием, поскольку в данной статье речь будет идти только об этом случае. Определение минимального расстояния часто сводится к стандартной задаче минимизации без учета специфики предметной области, что оказывается весьма трудоемким. Для повышения эффективности в работах [5, 6] предложено использовать т. н. гномониче-скую проекцию. Однако этот прием не является универсальным. Предлагаемый здесь метод свободен от указанных недостатков.
Точка P0 и отрезок P1P2 на сфероиде Point P0 and segment P1P2 on a spheroid
Об актуальности задачи свидетельствуют многочисленные дискуссии среди разработчиков соответствующего программного обеспечения. Одним из направлений решения этой задачи являлось использование сферического приближения. В целом ряде приложений получающаяся погрешность приемлема. Это относится не только к отдельным задачам морской навигации, но и к задачам воздушной навигации, где использование такой идеализации популярно [11—16]. Однако в тех случаях, когда плечи маршрута достаточно велики, и необходима высокая точность позиционирования, погрешность сферического приближения может оказаться неприемлемо большой [17].
Другим направлением определения расстояния от точки до отрезка является решение задачи с использованием классических методов минимизации на базе решения прямой и обратной геодезических задач. При этом на каждом шаге находится расстояние от фиксированной точки до
точки отрезка, а точка отрезка варьируется в соответствии с выбранным алгоритмом минимизации. В ряде приложений такой подход является приемлемым, если общее время решения не выходит за разумную величину. В частности, такой подход реализован в продукте Transas Navi-Sailor 4000 в версиях до 2.00.340. Однако требования новых стандартов для ЭКДИС по представлению маршрутов привели к увеличению времени исполнения необходимых расчетов. Это привело к тому, что использование классических методов минимизации стало неприемлемым для длинных маршрутов (состоящих из нескольких тысяч точек). Именно этот факт и продиктовал необходимость поиска более эффективного для данной задачи метода минимизации. Выяснилось, что с проблемой недостаточной эффективности классических методов минимизации столкнулись и при разработке программных продуктов других компаний [18].
Следует также отметить подход, связанный с разбиением ортодромических участков на локсодромические отрезки с последующим решением задачи уже для локсодромы. Такой способ также популярен, и соответствующие алгоритмы входят в состав Navi-Sailor. Популярность данного подхода обусловлена доминирующим положением карт в проекции Меркатора в морской навигации, где локсодромические отрезки являются прямыми линиями. Более того, двигаться по локсодроме, используя компас или гироскоп, значительно проще, чем по ортодроме, т. к. достаточно удерживать постоянный курс. Однако прохождение маршрута по ортодромическим плечам с использованием GPS и автоматических систем перестало быть проблемой, в то время как добавление промежуточных точек для локсодромического разбиения на маршрутах с большими плечами усложняет структуру маршрута и приводит к ненужной потере времени и топлива.
Если же интересует лишь расстояние до ортодромического отрезка, то отличие между локсодромой и ортодромой может быть
весьма значительным [19]. Это приводит к необходимости разбиения на множество частей с последующим нахождением расстояния до каждой из них, что оказывается неэффективно. Более того, расстояние от точки до локсодромического отрезка должно вычисляться совсем другим способом (одним из эффективных методов её решения видится решение полярного треугольника по двум углам и стороне не между ними). Это далеко не тривиально, и обсуждение ее эффективного решения требует рассмотрения в отдельной статье. Все сказанное делает задачу поиска расстояния по ортодроме весьма актуальной.
Постановка задачи
Рассматривается точка Р0 с широтой ф0 и долготой Х0 и ортодромичный отрезок, образованный точками Р1 с широтой ф1 и долготой Х1 и точкой Р2 с широтой ф2 и долготой Я,2. Необходимо найти расстояние от точки Р0 до отрезка Р1Р2 и точку (( на данном отрезке, где это расстояние реализуется. На сфере ортодрома является замкнутой линией, и минимум в пределах отрезка может быть только один (исключение составляют вырожденные варианты, когда Р0 и продолжение отрезка Р1Р2 на сфере до большого круга соотносятся как полюс и экватор). В случае эллипсоида вращения ортодрома уже не будет замкнутой и имеет достаточно сложное поведение. Поэтому иногда можно наблюдать несколько конкурирующих между собой локальных минимумов в пределах одного отрезка. При этом с практической точки зрения интересным для геодезических задач и для задач навигации чаще всего является именно глобальный минимум на отрезке.
Обозначим длину отрезка Р1Р2 за Ь. Пусть точка Р лежит на отрезке Р1Р2 (см. рисунок), и пусть I — это длина отрезка Р1Р, тогда 0 < I < Ь. Предполагая, что позицию точки Р на отрезке Р1Р2 можно варьировать, меняя параметр I, получим функцию ¿(¡) расстояния от Р0 до Р. Глобальный минимум ¿(¡) на отрезке [0, Ь] будет решением поставленной задачи.
Решение задачи
В работе [10] предложен алгоритм определения расстояния на сфероиде от точки Р0 до линии, являющейся ортодро-мой. В свою очередь, ортодрома задавалась стартовой точкой Р1 и азимутом. При определении расстояния от точки Р0 до ор-тодромы из всех локальных минимумов необходимо было выбрать ближайший к Р1. Поставленная здесь задача будет решаться по той же схеме, что и в [10].
Существенное отличие заключается в том, что отрезок Р1Р2 — это только часть ортодромы, и среди всех локальных экстремумов требуется найти глобальный минимум.
С методической точки зрения целесообразно первоначально решить данную задачу на сфере, а не на сфероиде. Это позволит не только проиллюстрировать поведение ортодромы на более простой модели, но и даст подсказку, где искать области многоэкстремальности функции ¿(1) для модели сфероида. На сфере ортодрома (геодезическая) замкнута и представляет собой дугу большого круга. В рамках сферической модели сформулированная задача нахождения расстояния между точкой и отрезком решается аналитически. Кроме того, в [20, 21] доказывается, что функция ¿(1) расстояния от точки Р0 до точки Р, лежащей на произвольном отрезке Р1Р2, является унимодальной, т. е. имеет не более одного экстремума в рамках отрезка. Таким образом, для сферы существует всегда только одно решение. Это верно за единственным исключением, когда точка Р0 и ортодрома соотносятся так, как полюс и экватор. В этом случае расстояние от любой точки ортодромы до Р0 одинаково
и равно 1 =2а, где а — радиус сферы; угол
между ортодромой и направлением на Р0 для любой точки ортодромы у = 90°.
Расширим область определения параметра I на всю ортодрому, на которой лежит отрезок Р1Р2. В этом случае — на < I < на, причем отрицательные I отвечают точкам на ортодроме, расположенным по другую
сторону от Р1 относительно Р2. Если устранить из рассмотрения указанное выше исключение (которое легко определить по
значениям =на и у1 = 90°), то значение
1т, при котором достигается минимальное расстояние до точки Р0, определяется по формуле:
гап(!т) = (ьтЦ) * ес^)) / 008(1!). (1)
Комбинация знаков числителя и знаменателя позволяет однозначно определить 1т (например, на языке С с помощью стандартной функции а1ап2).
Решаемая здесь задача — это определение ближайшей к Р0 точки 0 лишь в пределах отрезка Р1Р2. Если 0 < 1т < Ь, то ближайшая точка на всей ортодроме и ближайшая точка на отрезке Р1Р2 суть одно и то же, и положение этой точки будет определяться путем решения прямой геодезической задачи. В противном случае минимальное значение ¿(1) на отрезке Р1Р2 будет достигаться на одном из концов этого отрезка. Если —на + Ь/2 < 1т < 0, то минимальное значение ¿(1) на отрезке Р1Р2 достигается в точке Р1, если 1т < —на + Ь/2, или Ь < 1т, то оно достигается в точке Р2. Если 1т = —на + Ь/2, то минимальное значение ¿(1) на отрезке Р1Р2 будет достигаться одновременно на обоих концах этого отрезка.
Как только известна точка (), расстояние между точкой Р0 и отрезком Р1Р2 можно определить путем нахождения расстояния от 0 до Р0.
В случае сфероида картина значительно усложняется [22—24]. Во-первых, аналитическое решение в общем случае получить не удается, а, во-вторых, указанная выше функция ¿(1) даже на коротких относительно радиуса сфероида отрезках может иметь произвольное число экстремумов. Таким образом, решение в подавляющем большинстве случаев можно получить только численно, и даже если будет найден некий локальный минимум (что чаще всего обеспечивают традиционные методы минимизации), нет полной гарантии, что
он будет глобальным в рамках отрезка РР2. Это и представляет главную проблему статьи в отличие от [5].
Учитывая ситуацию на сфере, много-экстремальность следует ожидать в первую очередь, когда точка Р0 и орто-дрома соотносятся примерно так же, как соотносятся полюс и экватор в случае сферы (расстояние от точки до ортодромы
с1 будет близким к ^ а, где а — большая
полуось Земли, а угол у между ортодромой и направлением на Р0 будет близок к 90°). Результаты многочисленных экспериментов, отраженные ниже, полностью подтверждают эту гипотезу. Их целью было установить условия существования нескольких экстремумов в пределах одного отрезка.
Эксперименты выполнялись по той же схеме, по которой решалась задача определения расстояния от точки до линии в работе [5]. Случайным образом 105 раз задавались точки Р0 и Р1 (расположенная на ортодроме). Для каждой из них 3600 раз фиксировался начальный азимут а, задающий ортодрому из Р1 (от 0 до 180° с шагом 0,05). В итоге проведено 3,6*108 экспериментов, результатом которых стал ряд немногочисленных наборов (Р0 и Р1 и начальный азимут), для которых наблюдалось сближение соседних экстремумов меньше, чем на заданное расстояние Ь = 3, где Ь измеряется в радиусах экватора. Далее для всей коллекции полученных данных эксперимент повторялся, но с уменьшением шага по углу а и с уменьшением расстояния Ь. Каждый из этих наборов
был изучен детально для выяснения того, как ведут себя ¿(¡) и угол у(1) в окрестности близких экстремумов.
Итак, пусть Ь — длина отрезка Р1Р2, на котором оказывается более чем один экстремум; ¿т[а , ¿тзх — это минимальное и максимальное зафиксированные в эксперименте расстояния от отрезка Р1Р2 до точки Р0, выраженные в радиусах экватора.
Выяснилось, что ¿тП и dmax располагаются по обе стороны от числа 2, и уже начиная с Ь < 1,5 их разность стабилизиро-
(^шах _ ) .
валась: Ad = -
2
- = 0,0046. Ymin , ymax -
это минимальное и максимальное на отрезке Р1Р2 значения угла в градусах между ортодромой, на которой лежит этот отрезок, и направлением на точку Р0. Так же, как и для й, значения ут1п и утах оказались по разные стороны от величины 90°. Однако, в отличие от Д^ значение (у _ у ■ )
Ду = шах ^ заметно сокращалось при
уменьшении Ь.
Введем параметр N связанный с процедурой последовательного уменьшения Ь
и задающий Ь по формуле Ь = • При
этом последовательному увеличению N соответствует сокращение Ь в два раза.
С учетом обозначений Ь = ,
Ay =
(y max y min ) 2
Ad = (dmax ~ dmin) £ = АУ 2 i2
результаты экспериментов для различных N представлены в таблице.
Результаты экспериментов The results of the experiments
N 0 1 2 3 4 5 6 7
Ad102 5,09 0,46 0,46 0,46 0,46 0,46 0,46 0,46
Ay(°) 3,09 0,29 0,10 2,5T0-2 6,5T0-3 1,6-10-3 4,1T0-4 1,0-10-4
k 0,343 0,131 0,171 0,181 0,184 0,185 0,185 0,185
Эксперименты полностью подтвердили п
гипотезу а и 90°». Например, N = 6 соответствует отрезку длиной L = 0,46875, где унимодальность нарушалась хотя бы один раз, и дальность до точки P0 изменялась только в узком диапазоне расстояний Ad = 0,0046, а по углу между касательной к ортодроме и направлением на точку P0 в диапазоне Ay = 0,0041°. По мере увеличения N (уменьшения длины L) интервал по y сокращался по квадратичной зависимости от L. Последний факт легко видеть из последней строки таблицы, где параметр k определялся
по формуле к =Ay. Таким образом, при достаточно малых L для величины Ay имеем:
(y max y min)
Ay = -
2
: 0,185L2.
(2)
ловины. Следует заметить, что интервал по углу при этом резко сокращается по квадратичной зависимости, как видно из таблицы.
В картографии отображения земной поверхности на плоскость называют проекцией [25]. Гномоническая проекция определяется следующим образом. Пусть точка A — центр проекции, а точка B — произвольная точка (обе находятся на поверхности земного эллипсоида). Тогда точка B проецируется в точку на плоскости с координатами [5, 6]:
х = p*sin(a1), y = p*cos(a1), р =
m
12
M
12
Реализация алгоритма
Выполненные исследования позволяют предложить процедуру нахождения глобального минимума. Для каждого значения L в соответствии с таблицей можно указать интервал по расстоянию d от dmin до dmax, и интервал по углу у от утЬ до утах, для которых возможно существование близких экстремумов. Если выясняется, что для крайних точек отрезка значения d и у попадают в соответствующие интервалы, то такой отрезок длиной L будем называть «проблемным».
Общая идея алгоритма заключается в следующем:
• если рассматриваемый отрезок не является «проблемным», то функция d(l) унимодальная, и можно предложить алгоритм, описанный в работе [9] (вместо применения какого-либо универсального метода минимизации можно использовать расчет на сфере как начальное приближение для последующего использования метода минимизации в гномонической проекции, о чем речь пойдет ниже);
• если отрезок оказывается «проблемным», то он делится пополам и алгоритм рекурсивно повторяется для каждой его по-
где a1 — азимут из точки A в точку B; m12 — приведенная длина геодезической; M12 — коэффициент сближения геодезических (geodesic scale). заметим, что проекция не определена для неположительных значений M12.
Тогда алгоритм реализации пункта (A) выглядит так:
1. Задаем на имеющейся ортодроме точку Q0 — сферическое приближение к точке минимума Q, причем должна использоваться сфера усредненного радиуса R = 2a/3 + b/3 [26], где b — малая полуось, и на этой сфере точки берутся с такими же значениями географических координат и азимутов, как и на эллипсоиде. При этом Q0 если совпало с P1, то поменяем местами P1 и P2.
2. Переводим точки P0, P1 и Qj на плоскость в точки A0, A1 и Bj, соответственно, выбрав в качестве центра проекции точку Qj. При этом точки A1 и Bj окажутся на прямой, отражающей ортодрому, а точка A0 может оказаться как вне этой прямой, так и на ней.
3. Определяем точку прямой, ближайшую к A0. Переводим на эллипсоид найденное решение и получаем точку Qj+1, которая является очередным приближением к ответу.
4. Вычисляем расстояние между Qj и Qj+1. Если расстояние оказывается меньше максимально допустимого отклонения от истинного минимума, то прерываем расчет, принимая за ответ точку Qj+1. Если —
нет, то переходим к шагу 2, используя вместо Qj.
Общий алгоритм имеет следующий вид.
Шаг 0. Для отрезка длиной L определяем значения Г^п, Г^, Д^п, Дтах, руководствуясь таблицей или функциональной зависимостью (2).
Шаг 1. Для краевых точек отрезка определяем расстояния Д1 и Д2, а также углы А1 и А2. Если хотя бы одна из пар (расстояние — угол) не попала в интересующий диапазон, то функция считается унимодальной и используется указанный выше «стандартный» алгоритм.
Шаг 2. Если параметры обеих краевых точек попали в «опасный» диапазон, то определяем d и а для точки Р3 на середине отрезка. После этого повторяем шаги 0 и 1 для отрезка Р1Р3 вдвое меньшей длины ^/2). Деление пополам продолжается до тех пор, пока самый левый отрезок не будет признан «нормальным».
Шаг 3. Повторяем шаг 2 для ближайшего правого соседа отрезка, принятого на шаге 2.
Шаг 4. Сравниваем минимальные значения d(l) для всех полученных отрезков и выбираем минимальный из них.
Многочисленные расчеты, выполненные на основе программного продукта Кауь8аПог 4000, в составе которого реализован предложенный алгоритм, показали, что точность нахождения минимального расстояния оказывается весьма высокой и составляет десятки нанометров. При этом точность определения положения точки, где достигается минимум, зависит от того, как сильно изменяется расстояние в окрестности минимума. В подавляющем большинстве вариантов точность составляет около метра. В редких случаях, когда изменение функции в окрестности минимума имеет относительно пологий характер, точность оказывается несколько ниже.
В рамках задачи маршрутного рандеву ближайший отрезок маршрута нужно находить при каждом обновлении позиции отдельно для собственного судна и отдельно
для цели. Одно из основных применений маршрутного рандеву — это речная навигация, где маршруты могут состоять из десятков тысяч точек, а аппаратные вычислительные ресурсы весьма скромные (результат экономии судовладельцев). Все эти факторы формируют высокие требования к эффективности расчета, что и обеспечивает представленный здесь алгоритм. В результате многократных замеров времени вычисления расстояния от судна до речного маршрута Санкт-Петербург — Ростов (около 3500 отрезков) выяснилось, что предложенный алгоритм минимизации дает в среднем выигрыш в 6,2 раза по сравнению с широко известным универсальным алгоритмом минимизации Брента [27].
Успех алгоритма продиктован тем, что вместо решения задачи «в лоб» предлагается использование гномонической проекции. Применение специфики геометрии земной поверхности (вместо использования универсальных численных методов) в прикладных задачах навигации оказалось весьма перспективным направлением [28—30]. Это позволяет существенно сократить время, необходимое для расчета, что очень актуально для облачных вычислений в морской навигации, когда сервер вынужден обрабатывать тысячи запросов от морских судов, подключенных к определенным онлайн-сервисам.
Заключение
Предложена методика решения задачи поиска кратчайшего расстояния между точкой и отрезком геодезической линии (орто-дромы). Методику можно распространить на задачи определения расстояния до протяженных объектов, таких, как маршруты или области на поверхности Земли.
Методика позволяет выявлять случаи аномально близких экстремумов. Даны рекомендации по решению задачи в таких ситуациях. Используемый подход может быть рекомендован и в более общих случаях поиска глобального минимума в многоэкстремальных задачах.
На основе методики разработан алгоритм, который был реализован в составе
коммерческого программного продукта Navi-Sailor 4000 компании Transas, широко использующегося для морской и речной навигации.
Предложенный алгоритм обеспечивает в среднем шестикратное увеличение производительности по сравнению с универсальным алгоритмом.
СПИСОК ЛИТЕРАТУРЫ
1. Deakin R.E., Hunter M.N. Geometric geodesy. Part A // Lecture Notes. School of Mathematical and Geospatial Sciences, RMIT University, Melbourne, Australia, 2008. 140 p.
2. Faulkner F.D. Numerical methods for determining optimum ship routes // J. of the Institute of navigation. Winter 1963. Vol. 10. No. 4. Pp. 351-367.
3. Bijlsma S.J. A computational method for the solution of optimal control problems in ship routing // J. of the Institute of Navigation. 2001. Vol. 48. No. 3. Pp. 145-154.
4. Transas sea traffic management // URL: http://s3-eu-west- 1.amazonaws.com/stm-stmvalidat ion/uploads/20180516214207/TRANSAS-STM.pdf (Дата обращения: 27.05.2019).
5. Karney C.F.F. Algorithms for geodesics // J. Geodesy. 2013. Vol. 87(1). Pp. 43-55.
6. Karney C.F.F. Geodesics on an ellipsoid of revolution // Technical report. SRI International, Febr. 2011.
7. Ботнев В.А., Устинов С.М. Методы решения прямой и обратной геодезических задач с высокой точностью // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. 2014. № 3(198). С. 49-58.
8. Press W.H., Teukolsky S.A., Vetterling W.T. Numerical recipes in C // The Art of Scientific Computing. 3rd Ed. Cambridge University Press, 2007. 1235 p.
9. Conte S.D., Carl de Boor Elementary numerical analysis. An algorithmic approach // SIAM-Society for Industrial and Applied Mathematics. 2017. 480 p.
10. Ботнев, В.А., Устинов С.М. Методика определения расстояния между точкой и линией в геодезии // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. 2015. № 6(234). С. 33-44. DOI: 10.5862/JCSTCS.234.4
11. Hickley P. Great circle v rhumb line cross track distance at mid-longitude - The final answer // The J. of Navigation. 2008. Vol. 61. Pp. 367-368.
12. Aviation formulary // URL: http://www. edwilliams.org/avform.htm#XTE (Дата обращения: 27.05.2019).
13. Distance from point to line on Earth // URL: https://stackoverflow.com/questions/7803004 /distance-from-point-to-line-on-earth (Дата обращения: 27.05.2019).
14. Distance between lon/lat point and line segment // URL: https://www.sitepoint.com/comm unity/t/distance-between-long-lat-point-and-line-seg ment/50583 (Дата обращения: 27.05.2019).
15. Projecting cross-track distance on great circle? // URL: https://gis.stackexchange.com/ques tions/209540/projecting-cross-track-distance-on-gre at-circle (Дата обращения: 27.05.2019).
16. How to calculate cross-track error (GPS/ Core Location) // URL: https://stackoverflow.com /questions/3997410/how-to-calculate-cross-track-erro r-gps-core-location (Дата обращения: 27.05.2019).
17. Cross track distance to great circle line and rhumb line // URL: https://gis.stackexchange.com/ questions/121117/cross-track-distance-to-great-cicle-line-and-rhumb-line (Дата обращения: 27.05.2019).
18. Shortest distance between a point and a geodesic // URL: https://sourceforge.net/p/geograph iclib/discussion/1026621/thread/f122cc28/ (Дата обращения: 27.05.2019).
19. Cross-track difference rhumb vs great circle // URL: http://www.atpforum.eu/forum/technicals ubjects/-071-operational-procedures-a/1315-cross-track-difference-rhumb-vs-great-circle (Дата обращения: 27.05.2019).
20. Kells L.M. Plane and spherical trigonometry // Andesite Press, 2017. 526 p.
21. Кранц П. Сферическая тригонометрия. ЛКИ, 2019. 96 с.
22. Helmert F.R. Die mathematischen und physikalischen Theorem der höheren geodäsie // Die mathematischen Theorem. Leipzig, 1880. Vol. 1. 631 p.
23. Rapp R.H. Geometric geodesy. Part II // Technical report. Ohio State University, 1993. 177 p.
24. Meyer T.H. Introduction to geometrical and physical geodesy. ESRI Press, 2018. 260 p.
25. Snyder J.P. Map projection-a working manual // Professional Paper 1395. U.S. Geological Survey, 1987. 383 p.
26. McCaw G.T. Long lines on the Earth // Empire Survey Review. 1932. No. 1 (6). Pp. 259-263.
27. Brent R.P. Algorithms for minimization without derivatives. Englewood Cliffs, NJ: Prentice-Hall, 1973. 195 p.
28. Мазуров Б.Т. Линейные искажения при переходе от эллипсоида Красовского на секущий эллипсоид // Геодезия и картография. 2018. Т. 79. № 1. С. 8-13.
29. Виноградов А.В., Мазуров Б.Т. Перспективы использования специальных геодезических проекций и местных систем координат // Вестник СГУГиТ. 2017. Т. 22. № 1. С. 18-29.
Статья поступила в редакцию 03.04.2019.
30. Соколов С.В. Аналитические модели пространственных траекторий для решения задач навигации // Прикладная математика и механика. 2015. Т. 79. Вып. 1. С. 24-30.
REFERENCES
1. Deakin R.E., Hunter M.N. Geometric geodesy. Part A. Lecture Notes, School of Mathematical and Geospatial Sciences, RMIT University, Melbourne, Australia, 2008, 140 p.
2. Faulkner F.D. Numerical methods for determining optimum ship routes. Journal of the Institute of Navigation, Winter 1963, Vol. 10, No. 4, Pp. 351-367.
3. Bijlsma S.J. A computational method for the solution of optimal control problems in ship routing. Journal of the Institute of Navigation, 2001, Vol. 48, No. 3, Pp. 145-154.
4. Transas sea traffic management. Available: http://s3-eu-west-1.amazonaws. com/stm-stmvalidation/up loads/20180516214207/TRANSAS-STM.pdf (Accessed: 27.05.2019).
5. Karney C.F.F. Algorithms for geodesics. Journal Geodesy, 2013, Vol. 87(1), Pp. 43-55.
6. Karney C.F.F. Geodesies on an ellipsoid of revolution. Technical report, SRI International, Febr. 2011.
7. Botnev V.A., Ustinov S.M. Methods for solving direct and inverse geodetic problems with high accuracy. St. Petersburg State Polytechnical University Journal. Computer science. Telecommunication and Control Systems, 2014, No. 3(198), Pp. 49-58. (rus)
8. Press W.H., Teukolsky S.A., Vetterling W.T.
Numerical recipes in C. The Art of Scientific Computing, 3rd Edition, Cambridge University Press, 2007, 1235 p.
9. Conte S.D., Carl de Boor Elementary numerical analysis. An algorithmic approach. SIAM-Society for Industrial and Applied Mathematics, 2017, 480 p.
10. Botnev V.A., Ustinov S.M. A Method for finding the distance between a point and a line in geodesy. St. Petersburg State Polytechnical University Journal. Computer Science. Telecommunication and Control Systems, 2015, No. 6(234), Pp. 33-44. (rus) DOI: 10.5862/JCSTCS.234.4
11. Hickley P. Great circle v rhumb line cross track distance at mid-longitude - The final answer. The Journal of Navigation, 2008, Vol. 61, Pp. 367-368.
12. Aviation formulary. Available: http://www.e dwilliams.org/avform.htm#XTE (Accessed: 27.05.2019).
13. Distance from point to line on Earth. Available: https://stackoverflow.com/questions/7803004/distance-fro m-point-to-line-on-earth (Accessed: 27.05.2019).
14. Distance between lon/lat point and line segment. Available: https://www.sitepoint.com/commu
nity/t/distance-between-long-lat-point-and-line-segme nt/50583 (Accessed: 27.05.2019).
15. Projecting cross-track distance on great circle. Available: https://gis.stackexchange.com/ques tions/209540/projecting-cross-track-distance-on-great-circle (Accessed: 27.05.2019).
16. How to calculate cross-track error (GPS/Core Location). Available: https://stackoverflow.com/quest ions/3997410/how-to-calculate-cross-track-error-gps-core-location (Accessed: 27.05.2019).
17. &oss track distance to great circle line and rhumb line. Available: https://gis.stackexchange.com/ questions/121117/cross-track-distance-to-great-cicle-line-and-rhumb-line (Accessed: 27.05.2019).
18. Shortest distance between a point and a geodesic. Available: https://sourceforge.net/p/geograph iclib/discussion/1026621/thread/f122cc28/ (Accessed: 27.05.2019)
19. Cross-track difference rhumb vs great circle Available: http://www.atpforum.eu/forum/technical-sub jects/-071-operational-procedures-a/1315-cross-track-di fference-rhumb-vs-great-circle (Accessed: 27.05.2019).
20. Kells L.M. Plane and spherical trigonometry. Andesite Press, 2017, 526 p.
21. Krants P. Spherical trigonometry. LKI, 2019.
22. Helmert F.R. Die mathematischen und physikalischen theorem der höheren geodäsie. Die mathematischen theorem. Leipzig, 1880, Vol. 1, 631 p.
23. Rapp R.H. Geometric geodesy. Part II. Technical report. Ohio State University, 1993, 177 p.
24. Meyer T.H. Introduction to geometrical and physical geodesy. ESRI Press, 2018, 260 p.
25. Snyder J.P. Map projection — a working manual. Professional Paper 1395, U.S. Geological Survey, 1987, 383 p.
26. McCaw G.T. Long lines on the Earth. Empire Survey Review, 1932, No. 1 (6), Pp. 259-263.
27. Brent R.P. Algorithms for minimization without derivatives. Englewood Cliffs, NJ: Prentice-Hall, 1973, 195 p.
28. Mazurov B.T. Linear distortions in the transition from Krasovsky's ellipsoid to the secant ellipsoid. Geodesy and Cartography, 2018, Vol. 79, No 1, Pp. 8-13 (rus)
29. Vinogradov A.V., Mazurov B.T. Prospects for the use of special geodetic projections and local coordinate systems. Journal of Siberian State
Received 03.04.2019.
University of Geosystems and Technologies, 2017, Vol. 22, No 1, Pp. 18-29. (rus)
30. Sokolov S.V. Analytical models of spatial trajectories for solving navigation problems. Applied Mathematics and Mechanics, 2015, Vol. 79, No. 1, Pp. 24-30. (rus)
СВЕДЕНИЯ ОБ АВТОРАХ / THE AUTHORS
БОТНЕВ Виктор Александрович BOTNEV Victor A.
E-mail: [email protected]
УСТИНОВ Сергей Михайлович USTINOV Sergey M. E-mail: [email protected]
© Санкт-Петербургский политехнический университет Петра Великого, 2019