Ⅰ 迪傑特斯拉演算法怎麼用lingo實現,在線等等等!!
假設10個城市,他們之間的距離結構如DATA部分所示,目的是找到城市1到城市10的最短路徑。試試找到的這個代碼。
MODEL:
SETS:
CITIES /1..10/: F;
ROADS( CITIES, CITIES)/
1,2 1,3 1,4
2,5 2,6 2,7
3,5 3,6 3,7
4,5 4,6
5,8 5,9
6,8 6,9
7,8 7,9
8,10
9,10/: D;
ENDSETS
DATA:
D =
1 5 2
13 12 11
6 10 4
12 14
3 9
6 5
8 10
5
2;
ENDDATA
F( @SIZE( CITIES)) = 0;
@FOR( CITIES( i)| i #LT# @SIZE( CITIES):
F( i) = @MIN( ROADS( i, j): D( i, j) + F( j))
);
END
Ⅱ 數據結構中關鍵路徑和最短路徑有什麼簡便的方法可以求得嗎
額,什麼是簡便的方法呢。
我只知道可以利用事件的最早最晚發生時間來遞推求關鍵路徑。
而最短路徑兩種演算法:迪傑特斯拉和弗洛伊德。
這個直接網路都有,我覺得它們已經很簡便了,當然我相信會有其他的演算法,但太簡便的應該還沒有,因為如果有那麼好的的演算法,為什麼教科書上不採用呢。
Ⅲ 迪傑特斯拉演算法和普里姆演算法做法是不是類似的
不是,迪傑斯特拉演算法是算一點到其他所有點的最短路徑
普利姆演算法是算最小生成樹的。
普利姆演算法是在已加入的集合上,長新的邊,挑距離這個集合最短的(就是無論連到哪一點,只要連到這個集合上,距離最短)
地傑斯特拉每一步是挑距離欲求的點最短的點加入。
用自然語言描述很難說清,按照例子試一下吧。