У меня есть список поездов с расписанием прибытия на различные станции.
Мне нужно найти самый быстрый путь между двумя железнодорожными станциями, если это возможно.
Для этого я даже разрешено менять поезд один раз в течение всего пути.
Однако . Если я меняю поезд, я должен также добавить время ожидания при посадке в другой поезд.
Ниже приведен псевдокод, который у меня есть. написано, но я сталкиваюсь с проблемами при его заполнении. Особенно во время смены поезда и учета времени ожидания. Может ли кто-нибудь помочь мне с этим и исправить мой псевдокод.
function findFastestPath(source_station,dest_staion,waiting_time_at_current_station,travel_time_in_previous_train):
for each train_schedule in TrainList:
while train_schedule is not over:
if source_station equals train_schedule[station]
Then
if dest_staion in train_schedule
Then
if dest_staion[departure_time] > source_station[departure_time]
Then
duration = dest_staion[departure_time] - source_station[departure_time] + waiting_time_at_current_station + travel_time_in_previous_train
if mintime > duration
Then
mintime = duration
else:
travel_time_in_previous_train = next_station_to_source_station[departure_time]-source_station[departure_time]
waiting_time_at_current_station = next_train_departure_time - next_station_to_source_station[departure_time]
call findFastestPath(next_station_to_source_station, dest_staion, waiting_time_at_current_station, travel_time_in_previous_train)
return mintime
end function
for each source_station in Travel_Time_Matrix:
for each dest_staion in Travel_Time_Matrix:
call findFastestPath(source_station,dest_staion,0,0)