最短路径或路由算法

时间:2013-11-13 16:55:37

标签: c# shortest-path

有预先定义的路线。

Route1 [Edirne (1)-Kırklareli (2)-Istanbul (3)]
Route2 [Istanbul (3) - Sakarya (4) - Zonguldak (5)]
Route3 [Istanbul (3) - Kutahya (6) - Afyon(7)]
Route4 [Afyon(7) - Isparta (8) - Anatlya(9)]

每条路线都有一辆穿越它的车辆。

例如,如果某些货物将从Edirne(1)发往安塔利亚(9),则必须选择Route1-Route3-Route4。

如果案件是Zonguldak到Edirne Route1-Route2必须选择。

等。

基于步长之间距离的最短路径算法,找到“最短路径”而不是路径。因为我的位置在路线中,所以对于这种情况,最短路径算法不适合我。关于如何解决这个问题的任何想法,||有没有人有建议?

1 个答案:

答案 0 :(得分:2)

最短路径仍然适用;你只需改变思路。不是在路线上的每个城市之间包括边缘,而是将路线1转换为Edirne和伊斯坦布尔的顶点以及它们之间的单个边缘(加权到您的路线长度)。忽略它经过Kirklareli的事实。

为您的其他路线执行相同的操作,您将拥有类似

的内容
Edirne--1--Istanbul--2--Zonguldak
               |
               3 
               |
             Afyon--4--Anatlya

然后你可以应用最短的路径,你会发现Edirne到Anatlya是1-3-4,然后你转换回完整的路线(Edirne - Kırklareli - 伊斯坦布尔 - Isparta - Anatlya)