Ваша проблема плохо определена для отключенных графиков. Я всегда могу добавить и край между v и u.
Если вы имели в виду, что для заданного ациклического неориентированного несвязного графа, фактически известного как лес, и для заданного подмножества ребер в качестве подграфа, вы можете найти кратчайший путь между вершинами, тогда эта проблема тривиальна, поскольку при наличии пути в полном графике есть только один путь.
Если это общий граф G, а вы говорите о лесном подграфе G ', тогда нам нужно больше информации. Это взвешено? Это только положительные веса? Если он невзвешенный, сделайте какой-нибудь вариант Дейкста. Определите диаметр дерева, чтобы быть длиной самого длинного пути между двумя листьями (это хорошо определено в дереве, так как там только один такой путь). Пусть S будет суммой диаметров всех деревьев в G ', затем установите вес всех ребер из G' в 2S, тогда алгоритм Дейкстры автоматически предпочтет пройти через G ', выходя за пределы G', только когда нет выбор, так как прогулка через G 'всегда будет дешевле.