A jakbyś zmodyfikował algorytm dijkstra, żeby zamiast wartości najkrótszej drogi zwracał tą drogę? I tylko jakbyś zboczyl z trasy dopiero wtedy generowal nowa drogę?
Edit: mógłby być problem taki, że trzeba mieć listę punktów. I o tyle byłoby lepiej, że mógłbyś sobie ograniczyć je, zakładając że np długość drogi nie będzie większa od powiedzmy 5x odległość.
Edit2: nie wiem czy o tym mówiłeś, bo nie znalazłem czegoś takiego jak mapy kafelkowe.