0: 基本概念
- ** 松弛操作:更新節點的值 : v_end=min(v_end, v_source +v_side)
v_end:表示邊的終點(需要更新的節點值);
v_source: 表示 邊的源點;
v_source:表示邊的終點
注:若節點值無變化,則表示松弛不成功** -
隊列 : 先進先出
image.png
一、用武之地:
- 給定的圖G存在負權邊,但不存在負權回路
二、參考此鏈接
直接從實驗方法看起
三、SPFA算法有兩個優化算法 SLF 和 LLL:
SLF:
Small Label First 策略,設要加入的節點是j,隊首元素為i,若dist(j)<dist(i),則將j插入隊首,否則插入隊尾。
LLL:
Large Label Last 策略,設隊首元素為i,隊列中所有dist值的平均值為x,若dist(i)>x則將i插入到隊尾,查找下一元素,直到找到某一i使得dist(i)<=x,則將i出對進行松弛操作。
引用網上資料,SLF 可使速度提高 15 ~ 20%;