• 沒有找到結果。

第三章 問題定義與研究方法

3.3 範例說明

本小節以本研究所設計之 T 架構為例,說明 T_Start 的計算步驟與 Tabu_PDP 第一次搜尋之結果。考慮 6 個訂單(即 n = 6)、2 部機台(即 k = 2)、

車輛容量上限為 3 個訂單(即 v = 3)的問題。為方便表示,假設訂單 i 由顧 客 i 所訂購。各訂單權重值以及訂單於各機台加工時間如表 1 所示,各訂 單與製造工廠間的運送時間矩陣如表 2 所示。

表 1 訂單權重值以及訂單於各機台加工時間 訂單 1 訂單 2 訂單 3 訂單 4 訂單 5 訂單 6 wi 3.1 2.5 2.9 4.7 1.8 6.2

pi1 14 42 35 16 27 50

pi2 20 19 40 48 20 30

表 2 各訂單與製造工廠間的運送時間矩陣

dij 製造工廠 訂單 1 訂單 2 訂單 3 訂單 4 訂單 5 訂單 6

製造工廠 0 137 174 89 78 54 96

訂單 1 137 0 115 110 161 134 183

訂單 2 174 115 0 69 91 122 118

訂單 3 89 110 69 0 36 76 99

訂單 4 78 161 91 36 0 102 51

訂單 5 54 134 122 76 102 0 63

訂單 6 96 183 118 99 51 63 0

步驟一. 設定禁忌表列、期望水準與迭代次數

由於此範例為說明生成起始解與第一次搜尋之結果,故不設定禁忌表 列長度以及結束準則。

步驟二. 利用 T_Start 產生一起始解 (i) 決定批次與車輛途程之運送順序

首先本研究將各訂單與製造工廠間的運送時間矩陣轉換成權重運送 時間矩陣如表 3,利用在3.2.1節介紹的演算法 A 來決定訂單的運送批次 以及其運送所花費的時間,可得從製造工廠至各訂單之最小值為訂單 6 的 15.5,因此訂單 6 為 B1中第一個被運送之訂單。當車輛到達將貨品送達訂 單 6 之位置後,需選擇接下來被運送之訂單;訂單 6 可以前往的顧客位置 中,其權重運送時間值最小的為訂單 4 的 10.9,故訂單 4 為批次中第 2 個 運送點。再來檢視訂單 4 可達位置中最小值為訂單 3 的 12.4,為第 3 個運 送點。此時 B1訂單體積已達車輛容量上限 3,B1可運送訂單與訂單運送順 序為製造工廠-訂單 6-訂單 4-訂單 3。接著開始新的批次 B2自製造工廠出 發,求得其運送訂單與順序為製造工廠-訂單 5-訂單 1-訂單 2。求得 B1

B

2之運送順序後,計算其從開始發車到成品送達顧客手上所花費之時間如 表 4 所示。

表 3 權重運送時間矩陣

dij 製造工廠 訂單 1 訂單 2 訂單 3 訂單 4 訂單 5 訂單 6 製造工廠 0 44.2 69.6 30.7 16.6 30.0 15.5 訂單 1 0 0.0 46.0 37.9 34.3 74.4 29.5 訂單 2 0 37.1 0.0 23.8 19.4 67.8 19.0 訂單 3 0 35.5 27.6 0.0 7.7 42.2 16.0 訂單 4 0 51.9 36.4 12.4 0.0 56.7 8.2 訂單 5 0 43.2 48.8 26.2 21.7 0.0 10.2 訂單 6 0 59.0 47.2 34.1 10.9 35.0 0.0

表 4 批次運送順序以及其對應之訂單到達時間

B1 訂單 6 訂單 4 訂單 3

到達時間 96 147 183

B2 訂單 5 訂單 1 訂單 2

到達時間 54 188 303

(ii) 計算各批次分別在機台負荷量為 0 時之最大完工時間

在第一階段中,本研究求得起始解中批次的分配方式以及運送順序,

接著以批次方式決定其在機台上加工的先後順序,已知 B1的訂單在各機台 加工時間如表 5。針對各批次利用演算法 B 求解,先求得各批次分別在所 有機台負荷為 0 時的最大完工時間。訂單 4 於機台 1 加工時間為 16,為所 有機台加工時間中最小的值,故第 1 個加入機台排程。此時更新機台 1 的 負荷量為 16。訂單在考慮機台負荷量後的機台完工時間如表 6,選擇最小 值之訂單 6 於機台 2 加工,其完成時間為 30,接著再次更新機台負荷量。

表 3-7 顯示最後一張訂單 3 需在機台 1 加工,該批次在起始時間為 0 的最 大完工時間即為訂單 3 之 51。B1於機台上之排程如圖 3-3,B1中機台 1 的 加工順序依序為訂單 4-訂單 3,機台 2 加工訂單 6,B1在機台上的完工時 間為 51。

表 5 B1的各機台加工時間

訂單 3 訂單 4 訂單 6

pi1 35 16 50

pi2 40 48 30

表 6 訂單 4 加工後剩餘訂單於各機台加工完成時間

訂單 3 訂單 6

pi1 51 66

pi2 40 30

表 7 訂單 6 加工後剩餘訂單於各機台加工完成時間

訂單 3 pi1 51 pi2 70

圖 7 B1於機台上加工之甘特圖(假設開始時間為 0)

同理,利用演算法 B 求得 B2機台排程之結果如圖 7,B1中機台 1 的 加工順序依次訂單 4-訂單 3,機台 2 加工訂單 6,批次之最大完工時間為 39。

圖 8 B2機台排程之甘特圖

39 訂單 1

機台 1

機台 2

14

訂單 2 訂單 5

19 20

訂單 6 51

訂單 3 訂單 4

機台 1 16

機台 2 30

35

(iii) 決定批次在機台上加工的順序

由演算法 A 與 B,我們求得兩批次之最大完工時間以及運送時間,以 演算法 C 求得該批次權重最大完工時間如表 8,並將其依遞增的方式排 序。由於 H1=17.0 小於 H2=46.2,故批次的加工順序為 B1-B2,B1之發車時 間即為 51,重新將訂單依照批次之順序,最後將訂單排入機台中;如圖 9 所示,各機台加工流程中 B2的最大完工時間往前移動至 69。

表 8 權重最大完工時間

H

r

B

1 17.0

B

2 46.2

圖 9 各機台加工流程圖 (iv) 一個起始解組合與計算目標函數值

由 (i)、(ii)以及(iii),本研究求得一起始解之組合如表 4 以及表 9 所示。

在此組合下其對應之訂單完成時間與加權後訂單總完成時間列於表 10,

4469 即為本研究起始解的目標函數值。

表 9 機台加工順序與完工時間表 批次1

51

訂單 2 訂單 5

49 69

65 訂單 6

訂單 1 訂單 3

訂單 4 機台 1 16

機台 2 30

35 14

19 20

批次 2

機台 1 訂單 4 訂單 3 訂單 1

完工時間 16 51 65

機台 2 訂單 6 訂單 2 訂單 5

完工時間 30 49 69

表 10 起始解訂單花費時間與目標函數值表

訂單 1 訂單 2 訂單 3 訂單 4 訂單 5 訂單 6

wj 3.1 2.5 2.9 4.7 1.8 6.2

cj 257 372 234 198 123 147

wjcj 797 930 679 931 221 911

Σwjcj 4469

步驟三. 更新禁忌表列、計算目標函數值更新為 f(x)*

在求得此範例之起始解後,將此解加入禁忌表列中,將目標函數值更 新成為目前搜尋法之最佳解 f(x)*。

步驟四. 產生目前解之鄰域

本研究鄰域共有三種鄰近解的類別:

(i) 批次內運送順序之兩兩交換

此例起始解之批次內皆為 3 張訂單,如圖所示,訂單與訂單交換 其運送順序成為一鄰近解,範例中此類鄰近解數共 6 個。

(ii) 批次於機台加工順序之交換

起始解只 2 個批次,故鄰近解僅 2 個。

(iii) 不同批次中訂單之兩兩交換

第三類型之鄰近解為不同批次中訂單之兩兩交換,在交換批次 時,同時交換兩張訂單在機台加工與運送時的順序,其組合共有 9 種。

步驟五. 移步的選擇

本研究檢視此範例之鄰近解並計算其目標函數值,在鄰域中以 B1中 的訂單 6 與訂單 4 兩張訂單交換其運送順序,為所有鄰近解中成本最低的 一組,其解之組合如表 11 與表 12,目標函數值之計算過程列於表 13,

此解之目標函數值為 4220,與起始解之目標函數值比較後,改善率約為 3%。移步至此解並將其記入禁忌表列中;同時因為此目標函數值低於起始 解,故更新此解為目前之最佳解。至此搜尋法之第一次迭代結束,搜尋法 將以此解做為第二次迭代中鄰域產生的基準,目前禁忌表列記錄起始解以 及目前移步之解,禁忌表列確保搜尋法在第二次迭代時不會選取起始解為 移步,防止搜尋法陷入重覆搜尋的情況。

表 11 最佳移步之機台加工順序與完工時間

B1 訂單 4 訂單 6 訂單 3

運送時間 78 129 165

B2 訂單 5 訂單 1 訂單 2

運送時間 54 188 303

表 12 最佳移步之訂單運送順序與到達時間

機台 1 訂單 4 訂單 3 訂單 1

完工時間 16 51 65

機台 2 訂單 6 訂單 2 訂單 5

完工時間 30 49 69

表 13 最佳移步之訂單花費時間與目標函數值

訂單 1 訂單 2 訂單 3 訂單 4 訂單 5 訂單 6

wi 3.1 2.5 2.9 4.7 1.8 6.2

cj 257 372 216 180 123 129

wjcj 797 930 626 846 221 800

Σwjcj 4220

第四章 第四章

第四章 第四章 電腦 電腦 電腦 電腦測試 測試 測試與結果 測試 與結果 與結果分析 與結果 分析 分析 分析

本章以模擬實驗的方法來評估不同因子下對本研究所發展 Tabu_PDP 所找出之最佳近似解的影響,並測試 Tabu_PDP 的求解品質與效率。其中 4.1 探討 Tabu_PDP 參數的最佳組合,4.2 說明模擬問題的設計方式,而 4.3 節則分析是電腦測試結果與改善率。本研究利用 Dev C++軟體將演算法以 C 語言撰寫成為程式並在 AMD 64 Sempron 2800+ CPU 1G RAM 環境進行 電腦模擬與測試。

4.1 Tabu_PDP 參數設計 參數設計 參數設計 參數設計

本節中探討 Tabu_PDP 中禁忌表列長度與停止準則兩個重要參數的設 定值。在測試參數設定值時,希望在問題複雜度適中與程式運算時間不要 太長的情況下進行。故本研究選定問題之訂單數為 80 張、訂單在機台的 加工時間由均勻分配 U(20,80)隨機產生、運送時間自 U(150,250)產生、機 台數目為 4 台而車容限制為 5 個單位。本研究針對需要測試的每種參數組 合進行 10 次的隨機實驗,並以此 10 次實驗之平均目標函數值為主要的評 估標準。

4.2.1 禁忌表 禁忌表 禁忌表 禁忌表列 列 列長度 列 長度 長度 長度

以往在使用禁忌搜尋法求解問題時,禁忌表列長度為影響最佳近似解 品質的一個重要參數。目前文獻中大多利用 Glover(1990)在其研究中所指 出的數字 7 作為禁忌表列之長度;然而本研究所探討之問題與目前文獻中 所探討的問題模型有所不同,故需測試禁忌表列長度對目標函數值的影 響。因此本研究針對預設問題,在 50 次迭代下測試 3、5、7、9、11、13 以及 15 這 7 種不同的禁忌表列長度與目標函數值之間的關係,所得結果 如圖 10。由圖 10 中可知,當禁忌表列長度為 7 時演算所求得之最佳近似 解品質較佳,禁忌表列長度大於 7 後目標函數值的差異甚小。故本研究採 用 Glover (1990)所提出之建議,在測試演算法時將禁忌表列長度設定為 7。

目標函數值與禁忌表列關係

時間在 1.5 個小時左右,而使用 500 次迭代則需花費約 7 個小時。考量 一個特例),利用窮舉法求得其真實理想解並與分別與T_Start和 Tabu_PDP 所得之結果比較。在禁忌表列長度為7與迭代次數為100次的參數設定下,

測試10、20以及30三種不同訂單數量、加工時間與運送時間皆服從

U(100,400)以及車容限制為5單位與10單位的6組問題。結果如表 14所示,

其中T_Start解與Tabu_PDP最佳解分別表示利用T_Start與Tabu_PDP所找出

的解,而T_Start相對誤差的計算方式為T_Start相對誤差=( T_Start解 - 真實 最佳解)/ 真實最佳解*100%;Tabu_PDP相對誤差的計算方式為Tabu_PDP 相對誤差= (Tabu_PDP最佳解 - 真實最佳解)/ 真實最佳解*100%。由表 14

的數據作為測試所需的運送時間矩陣。由於加工時間與運送時間組合的不

12 M10_2_5 10 2 5

表 16 Tabu_PDP 測試結果

為了進一步探討影響運算時間與改善率的相關變項,本研究對表 16 所得測試結果使用複迴歸分析(Analysis of Variance, AVOVA),討論各因子 對本研究所設計演算法之運算時間與改善率的影響,以下探討各因子與運 算時間與改善率的問題作更深一步的探討。

4.4.1 Tabu_PDP 運算時間 運算時間 運算時間 運算時間複迴歸分析 複迴歸分析 複迴歸分析 複迴歸分析

以運算時間為因變數的複迴歸分析結果如表 17 所示,其中

R2=0.962、調整後的 R2=0.924,代表表示四個自變數可解釋 92%運算時間 的變異。在 α=0.05 時,無論在情境 L、情境 M 以情境 S 三種不同的情境 的因子水準下,加工時間對運算時間並無顯著影響,即 Tabu_PDP 的求解 速度不受加工時間與配送時間之相對關係改變而有所影響。除此之外,車

R2=0.962、調整後的 R2=0.924,代表表示四個自變數可解釋 92%運算時間 的變異。在 α=0.05 時,無論在情境 L、情境 M 以情境 S 三種不同的情境 的因子水準下,加工時間對運算時間並無顯著影響,即 Tabu_PDP 的求解 速度不受加工時間與配送時間之相對關係改變而有所影響。除此之外,車

相關文件