Я хочу найти ближайшее крен в графе. Рассмотрим следующий пример:
Рисунок 1: желтый: вершины, черные: ребра, синий: точка запроса
Общая информация: График содержит около 10 миллионов вершин и около 15 миллионов краев. Каждая вершина имеет координаты. Края определяются двумя соседними вершинами.
Простейшее решение: Я мог бы просто рассчитать расстояние от точки запроса до любого другого края графика, но это было бы ужасно медленно.
Идея и трудности: Моя идея состояла в том, чтобы использовать некоторый пространственный индекс для ускорения запроса. Я уже реализовал kd-дерево, чтобы найти ближайшую вершину. Но, как показано на рисунке 1, ребра, попадающие в ближайшую вершину, не обязательно являются ближайшими к точке запроса. Я бы получил край 3-4 вместо более близкого края 7-8.
Вопрос: Есть ли алгоритм для нахождения ближайшего ребра в графе?