• 沒有找到結果。

改良型可回溯式門檻接受法(MBATA)模組設計

第三章 VRPB 問題之巨集啟發式解法架構設計

3.3 改良型可回溯式門檻接受法(MBATA)模組設計

本研究之巨集啟發式解法是以Tarantilis and Kiranoudis [30]所使用的BATA架構為基 礎。並且採用廖昱傑[47]之修改型門檻回溯公式,討論回溯比率可以大於1的情況,另外 再針對有門檻回溯的情況發生時,設計一包容性搜尋模組為找尋門檻值範圍內成本值最 大的一組解做交換,期望能增加搜尋機制的廣度並跳脫局部最佳解的束縛。

在3.3.1節中,會先以BATA構建一個巨集啟發式解法,其目的除了方便說明BATA與 本研究之改良型可回溯式門檻接受法(Modified BATA, MBATA)之相異之處以外;另一個 目的是為了後續測試時可以將BATA與本研究設計之MBATA之求解結果做一比較與分

析之用。而3.3.2節則提出本研究的主要求解架構所使用的MBATA,而此方法也是後續 測試題庫與參數的主要求解架構。

3.3.1 BATA模組

若以BATA構建一個巨集啟發式解法求解VRPB如圖3.8所示,首先以平行式的最遠 起點之最省插入法構建出一組起始解,並由前述之鄰域搜尋改善模組進行改善,最後將 此改善的解投入BATA架構中。

在BATA的架構中,核心搜尋模組依序使用1-0、1-1、2-Opt*、2-Opt與Or-Opt五種,

而包容性搜尋的接受策略是採用半最佳 (Semi-best Improvement) 策略。首先搜尋一組 暫存解Xt,在這一組暫存解 C(Xt)中找尋小於現有解 C(Xc)加上現有門檻值 Tc,且同時 為暫存解中成本最小者接受交換同時更新現有解,並檢查該解有無小於所記錄的暫時最 佳解,若有則同時更新暫時最佳解。接著再回到判斷是否已考慮所有交換。若包容性搜 尋得到的所有新解皆大於現有解加上門檻值則直接跳回上一層判斷是否考慮所有交換。

若所有交換尚未考慮完畢則重複執行上述步驟;若已考慮所有交換則再執行一次嚴 格性接受法則之鄰域搜尋改善模組。

在迴圈之中有發生過接受交換的情形(H > 0),門檻值即遞減。而門檻值遞減型態與 Tarantilis and Kiranoudis [30]相同,採用等比數列,並有門檻下降比率 r 來控制下降速 度;另外,回溯幅度受到門檻回溯比值 b 的控制,由於 Tarantilis and Kiranoudis [30]

提出的BATA門檻回溯發生時,新的門檻值不可超過前一次被接受的門檻值,故 b < 1 。 其公式為 Tn = Tc + (Tp - Tc) ×b 。其中 Tp 是前一個曾經接受交換的門檻值,Tc 為現有 門檻值,下一個門檻值為 Tn。因此在控制參數方面有起始門檻 T0 、門檻下降比率 r、

門檻回溯比率 b 。停止法則為完成 K 次的鄰域搜尋與連續放鬆 C 次的門檻皆無法找 到可接受的解。若已達到停止條件則結束演算法,否則更新現有門檻值再繼續執行前述 步驟。其步驟如圖3.8。整個演算法停止後,記錄中之暫時最佳解即為所得之結果。

圖3.8 本研究以可回溯式門檻接受法求解VRPB流程圖13 

3.3.2 MBATA模組

如圖3.9 為本研究設計之以 MBATA 求解 VRPB 問題之啟發式解法流程架構圖。

MBATA 和 BATA 主要不同之處在於:

1. 門檻回溯比率 b 可以大於 1,採用修改之門檻回溯公式。

2. 結合兩極跳躍的概念於包容性接受法則之中。

MBATA 以廖昱傑[47] 提出之修改型門檻回溯公式 Tn = Tc + |Tp - Tc| ×b 代替。其 中 Tp 是前一個曾經接受交換的門檻值,Tc 為現有門檻值,新的門檻值為 Tn。因此在 控制參數方面有起始門檻 T0 、門檻下降比率 r、門檻回溯比率 b ,且此 b 值可包含 b

> 1 的情形。停止法則為完成 K 次迴圈與連續放鬆 C 次的門檻皆無法找到可接受的解。

MBATA 結合了兩極跳躍法(Flip Flop Method, FF)之概念,執行包容性搜尋時,會先 判斷前一次包容性搜尋迴圈是否有找到可接受交換的解,以判斷所要找尋的解為成本小 於門檻中最小或最大者。

若j = 0 即沒有門檻回溯的情形發生,代表前一次迴圈有找到可接受交換的解進行 交換或本次迴圈為初次執行,此時包容性搜尋法則為接受小於現有解加上該回合門檻值 之中成本值最小者進行交換。這部分與BATA 模組相同。

但當j > 0 也就是前一次迴圈中有門檻回溯的情形,代表前一次包容性搜尋的迴圈 之中並沒有找到可接受的交換,此時包容性搜尋的方式為半最佳策略,但目標改為搜尋 小於現有解加上門檻值之中成本值最大者(可接受的最劣解)進行交換,希望能夠增加搜 尋的廣度並幫助跳脫局部最佳解的束縛而找到更好的解。這也是MBATA 與 BATA 最大 的不同之處。

此概念來自兩極跳躍法,本研究將其應用在BATA 的包容性搜尋接受法則中。當第

一次執行迴圈或前一次迴圈有找到可交換的解時,就找門檻值以內成本值最小者接受;

若前一次迴圈完全沒有找到可接受的解(也就是前一次迴圈所有新解成本值皆大於門 檻,而使門檻回溯),即改跳往門檻值之內成本值最大者做接受。主要目的即在於當目 前解已陷入區域最佳解而難以改善時,使其在一個可接受的範圍(門檻值)內進行反向操 作的搜尋,期望能跳脫此區域最佳解,再往另一個區域解做改善。

MBATA 模組為本研究後續對標竿題庫以及參數測試時使用的求解架構。整體求解 流程架構如圖 3.9 所示。起始解構建模組使用 3.1 節所述之平行式的最遠起點之最省插

入法;鄰域搜尋改善模組使用3.2 節所述之交換法;而包容性搜尋之核心搜尋模組依序

使用1-0、1-1、2-Opt*、2-Opt 與 Or-Opt 五種,接受法則亦為半最佳策略。

開始 Max{C(Xt) : C(Xt) <=C(Xc)+Tc}

接受交換更新現有解 min{C(Xt) : C(Xt) <=C(Xc)+Tc}

鄰域搜尋改善

相關文件