Я работаю над проектом по поиску кратчайшего пути. Я просмотрел много ресурсов в Интернете, чтобы придумать хороший алгоритм.
Я работаю с данными openstreetmap, и мне ясно, что я должен использовать алгоритм A*.
При поиске различных решений я обнаружил, что, поскольку путь состоит из разных узлов, можно отсечь промежуточные узлы, которые не являются соединениями. Как я могу сделать это на языке программирования? Если у кого-то есть идея или дополнительная статья, которая может мне помочь, это было бы очень признательно.
Точная информация, которую я нашел об этой обрезке, относящейся к osm, такова:
разобрать все пути второй раз; путь обычно становится одним ребром, но если какие-либо узлы, кроме первого и последнего, имеют счетчик ссылок больше единицы, то в этой точке путь разделяется на два ребра. Узлы со счетчиком ссылок, равным единице, которые не являются ни первыми, ни последними, могут быть отброшены, если только вам не нужно вычислять длину ребра.