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