TSSPA算法痛過設(shè)定目標函數(shù)值持續(xù)未改善次數(shù)或運算達到預(yù)先設(shè)定的最 大選代次數(shù)來中止運算。 綜上所述,求辯立MP五M”的啟發(fā)式TSSPA算法的具體計算步驟如下。
步驟1應(yīng)用上述初始解的構(gòu)造方法產(chǎn)生初始解,并設(shè)為當前解和當前最
步驟2依次將(加二P)個輪輻機場與當前樞組集中的力個樞組作單一交換: 產(chǎn)生p(m一力)個候選解集,可見個數(shù)小于枚舉法的I1個解;
步驟3從候選解集中選擇最好的候選解,此解若優(yōu)于當前最好解,轉(zhuǎn)步驟6, 否則執(zhí)行步驟4。
步驟4判斷此解是否為禁忌,若是則轉(zhuǎn)步驟5,否則轉(zhuǎn)步驟7。
步驟5若所有候選解都禁忌,將最好候選解作為當前解,轉(zhuǎn)步驟8,否則把非 禁忌的最好候選解作為當前解,轉(zhuǎn)步驟8。
步驟6更新當前最好解。
步驟7更新當前解。
步驟8更新禁忌名單。
步驟9是否達到停止條件,若是則輸出結(jié)果,計算結(jié)束;否則轉(zhuǎn)步驟2。
例3-7在例3-6的15個城市中再增加5個城市,共20個城市。在20個城 市的基礎(chǔ)上構(gòu)建樞紐航線網(wǎng)絡(luò)。城市編號如表3-7所示。在本例中同樣把距離直 接作為成本來看待。城市間距離數(shù)據(jù)和航空運輸流量數(shù)據(jù)參見附表3-5和附表3- 6。折扣系數(shù)a分別取0.4、0.6、0.8,樞紐數(shù)目p分別取23、4 解利用上述TSSPA算法求解,用Matlab編程計算,算法的禁忌長度TL= 7,算法終止規(guī)則是:連續(xù)5次保持相同最好解或最大迭代次數(shù)達到30次即終止運 算。具體運算結(jié)果如 計算結(jié)果可以得出以下結(jié)論。
(1)利用啟發(fā)式TSSPA算法均可在0.09s內(nèi)求得所有問題的最優(yōu)解,而利用 ILOG優(yōu)化軟件則計算時間較長。需要注意的是,由于計算機更新?lián)Q代很快,這里 的計算時間本身已經(jīng)沒有參考價值,但用于比較計算效率還是有意義的。
(2)利用ILOG優(yōu)化軟件的求解時間隨著問題規(guī)模的變大而快速增長,而利 用TSSPA算法的求解時間隨著問題規(guī)模的變大增長較慢,因此TSSPA算法可用 來解決大型問題。
(3)TSSPA算法給出了與ILOG同樣的最優(yōu)解(除個別樞紐城市外,此時有 多個最優(yōu)解,兩種方法各獲得了一個)。 由于算例是無容量限制的嚴格的樞紐航線網(wǎng)絡(luò)優(yōu)化問題,且算例的規(guī)模相對 較小,就這樣ILOG的精確算法的運算時間也是禁忌搜索算法TSSPA的100倍 以上。對于大規(guī)模的網(wǎng)絡(luò)優(yōu)化問題,TSSPA算法的速度優(yōu)勢更明顯,但不一定保 證能獲得最優(yōu)解。