Am I thinking about this wrong, or would this algorithm work (albeit at explosively escalating time and space): For iteration n, given start point a_n, end point b_n and existing roads Rn[], provisionally bump the speed limits on each Rn_i by one increment, create provisional roads R_ai from a to R_i and R_bi from b to R_i, where each R_ai is the shortest path from R_i to a, and the same for R_bi, create provisional road direct from a to b, Do the weighted graph traversal from a to b, Drop every provisional not part of the optimal traversal, Iterate. The O() is going to hurt, but otherwise it should work, yes? P.S. It would also be interesting to look at the railroad variant where large-angle crossings are not also intersections. -JimC -- James Cloos <cloos@jhcloos.com> OpenPGP: 1024D/ED7DAEA6