Столкнулся с проблемой оптимизации:
У меня есть график с большим количеством узлов (10 ^ 5), который представляет точки на плоской поверхности.
Мне нужно найти кратчайший путь на графе, чтобы добраться до «конечного узла», начиная с «начального узла».
любая пара узлов может быть соединена или нет. Проверка, связаны ли они, является очень затратной операцией. Если они соединены, вес, связанный со связью, равен евклидову расстоянию между двумя узлами.
На данный момент я только проверяю все ссылки с «текущего узла» на все остальные узлы, чтобы заполнить «открытый список» для A *. Я выбрал A*, потому что это кажется лучшим алгоритмом поиска пути, и у меня есть быстрая, допустимая и простая эвристика H для узла J (H = расстояние до цели), но я не уверен, что это хорошо для моей задачи.
Построение графа заранее неуправляемо, нужно проверить N ^ 2 ссылок, это слишком медленно. На данный момент (почти) весь граф строится только в том случае, если нет решения, нет пути от начала до конца.
Я хотел бы подсказку для лучшего решения ... спасибо!