Поиск кратчайшего пути между двумя точками графа - это вопрос классических алгоритмов со многими хорошими ответами (алгоритм Дейкстры, Bellman-Ford и т.д.) Мой вопрос заключается в том, есть ли эффективный алгоритм, который, учитывая направленный взвешенный график, пару узлов s и t и значение k, найдет k-й-кратчайший путь между s и t. Если существует несколько путей одинаковой длины, каждая из которых привязана к k-кратчайшему, то алгоритм должен возвращать любой из них.
Я подозреваю, что этот алгоритм, вероятно, может быть выполнен в полиномиальное время, хотя я знаю, что может быть сокращение от самой длинной проблемы пути, что сделает его NP-трудным.
Кто-нибудь знает о таком алгоритме или о сокращении, показывающем, что он NP-жесткий?