Designing a Transport network path suggestion tool
The obvious way of doing this is via time-dependent or time-independent graphs where you run a Dijkstra on it. This is also described in the lectures I mention below.

Also you should have a close look into transfer patterns (used at google) and RAPTOR (used at microsoft). There is a nice introduction into transfer patterns at university freiburg in lectures 9-11. RAPTOR is implemented in OpenTripPlanner and later this year probably also in my GraphHopper project.


  But the complication is that the shortest route may not be the fastest route to the destination.


Of course, but why not just use the time as weight instead of the distance? So 'shortest' and 'fastest' is not really a big difference ...