2010-05-20 7 views
3

У меня есть неориентированный, невзвешенный граф, который не обязательно должен быть плоским. У меня также есть подмножество узлов графика (истинное подмножество), и мне нужно найти узел, не принадлежащий подмножеству, с минимальной суммой расстояний до всех узлов в подмножестве.На графике, как найти ближайший узел к группе узлов?

До сих пор я реализовал поиск в первом дыхании, начиная с каждого узла в подмножестве, а первое пересечение - это узел, который я ищу. К сожалению, он работает слишком медленно, так как граф содержит большое количество узлов.

+0

Что слишком медленно? На каком языке вы используете? что бы вы хотели посоветовать? это скорость или алгоритм, который вы используете? – Glycerine

ответ

1

Алгоритм кратчайшего пути по всем парам позволяет найти расстояние между всеми узлами друг к другу в времени O (V^3), см. Floyd-warshall. Тогда суммирование впоследствии будет по крайней мере квадратичным, и я считаю, что в худшем случае кубический тоже. Это очень простой и не очень быстрый способ сделать это, но похоже, что это может быть на порядок быстрее, чем то, что вы делаете прямо сейчас.

+0

Привет, Спасибо за совет. В то же время я понял, что предлагаемое мной предложение неверно и не должно приводить к созданию оптимального узла. Флойд-Варшалл был тем, чего я собирался избежать из-за сложности времени, но кажется, что это единственный правильный путь. Спасибо, Nikola – Nikola