Since I don't know a lot about the problem, this advice may or may not be useful:
Can you pre-process the entire database and store the fastest results? For example, let's say that there are 5 ways to get from A -> Z and they are:
a,b,c,d,z
a,m,z
a,b,y,z
a,b,g,z
a,b,t,u,v,w,x,z
So you run the numbers once (maybe you have to let your machine run for 2-3 days) and it builds and index where it stores the fastest time:
So your table has two fields: path and best route. Path would be "az" and best route could be "a,b,y,z". When you want to find the best route from A-Z, you just lookup the best_route where path='AZ'.
If there are some conditions where a,b,y,z is the fastest way and there are other times when a,b,g,z is faster, then you could store maybe the three fastest routes. When the user wants to know the best route, you only have to calculate the times on three routes instead of 55 million.