См. Скриншот - кратчайший путь от А до D
У меня есть один график с множеством узлов, представляющих остановки автобусов.Есть автобусы, которые связаны с автобусными остановками.Я могу найти кратчайший путь (направление отсчета) от А до G, как расстояние, как вес.Теперь мне нужно найти комбинации доступных автобусов, которые могут помочь пользователю добраться до пункта назначения.
1) Я могу найти общий автобус, если он существует.
2) Как программно найти межшкольные автобусы
Пример - от A (источник) до G (пункт назначения)
A --------> B ------> C------> D ----> E -----> F --------> G
Ниже приведены автобусы, доступные на каждой остановке автобуса -
Стоп. - ServiceNo (Автобусы).
A - 120 147 196 197 167 961 961C
B - 12,2,2A, 121,122,124,147,166,174,196,197,54,167,190,61,961,961C, 143
C - 12,12e, 2,2A, 121,122,124,147,166,174,174e, 196,197,54, CT18, CT8,167, 190,61,961,961C, 143
D - 124,147,147e, 166,197,61,961,961C, 143
E - 12,12e, 22A, 197,33,63,80, CT18, CT8,61,961,961C, 970,143
F - 12,12e, 2,2A, 174,174e, 197,33,51,63,80,61,961,961C
G - 174 174e, 186, 51,143
Узлы на графике содержат информацию об автобусах для каждого маршрута. Так как я могу узнать автобусы (если прямой автобус недоступен), чтобы добраться от A до G?
1) A -> F (на 961 961C), затем F -> G (на 174 или 174e).
2) A ---> D на (197,147,961), затем D -> F (на 961 или 961C), а затем F -> G (на 174 или 174e) и т. Д.
Проблема заключается в том, как программно проверить, является ли прямая шинаG доступен или нет, или где я могу поменять местами шину.
Есть ли какой-нибудь шифровальный запрос для выполнения этой задачи.
Я должен найти 4 лучших решения с минимальным количеством обменов.