Есть простое решение, которое устроит каждого:
Построение маршрутов в системе в той, или иной мере сводится к нахождению кротчайшего пути на взвешенном направленном графе.
Не будем вдаваться в детали построения этого графа, но если говорить про видимую часть, то все сводится к следующей задаче.
Для графа заданны две величины - это скорость движения (реальная или статистическая) и длинна этого ребра.
Вес равен времени, т.е. длине поделенной на скорость. Дальше ищется минимум (или аппроксимация с нужной достоверностью).
Т.е. m = S / t
Введем параметр A, который позволит нам строить с