• 沒有找到結果。

第二章 文獻探討

3.2 演算法之設計

3.2.3 適合度函數設定

較適用於排程與車輛途程問題的粗略標示交配法 (partial mapping crossover, PMX)為交配方式。其步驟如下:

步驟 1:隨機選取兩切點,此兩切點中的染色體稱為標示區段(mapping sections)。

母代 1:1 2 3 4 5 6 7 8 9

母代 2:5 6 9 8 7 1 4 2 3 步驟 2:對調兩切點中的基因。

子代 1:12 9 8 7 6 7 8 9

子代 2:5 6 3 4 5 1 4 2 3

步驟 3:調換切點外與切點內重複之基因。

子代 1:1 2 9 8 7 6 5 4 3

子代 2:7 6 3 4 5 1 8 2 9 3.2.6 突變

在搜尋空間中,當收斂至某區間時有可能只收斂至局部最佳解,而無法 收斂至期望的最適解。因此,藉由突變可避免收斂過早的問題。雖然移動突 變法包含了兩點突變以及三點突變方式,但移動突變法限制所選取的基因必 須相鄰,與兩點型一突變相同,較無法真正達到突變的效用,故本研究採用 能徹底交換的兩點型二突變方式。

3.2.7 基因演算法參數設定

一般基因演算法使用的參數有三種,茲分別說明如下:

1. 母體數(population size)

母體數是指基因系統內的染色體數目,母體數的多寡將影響基因求解的 效益與演算的效率。母體數較小的系統較難以達到預期的效果,且可能發生

的計算時間。由於本研究之問題為一複雜的 NP-HARD 問題,為了能增加搜 尋空間,本研究將母群體數設定的範圍為 1000 到 6000 之間,以期找到全域 最適解。

2. 交配率(crossover rate)

交換率是用來決定染色體被選擇交配的機率,愈高的交配率產生愈多的 子代。但若是太高則會將較佳的染色體快速的摒棄,太低則會使群體失去活 力及更新。基於能迅速脫離局部最佳解的道理,本研究將交配率設定為 Grefenstette [26]所提出之 0.95 交配機率,以達到快速更新染色體之目的。

3. 突變率(mutation rate)

突變率是指染色體被選擇突變的機率,適度的突變機率將可激發染色體 內潛伏的基因,以增加問題的搜尋空間。突變率若是太低則將會使整個群體 快速收斂而無法突破局部最佳解;太高則又會產生本質上的隨機搜尋而失去 突變的意義。因此本研究將突變率設定為 Schaffer et al.[48]所提出之 0.005 突 變率。

3.2.8 產生新群體

親代經過複製、交配及突變等過程所產生的子代,必須依照事先設定的 方式來決定是否完全或部分取代原族群,以成為一個新的循環點。取代方法 有以下三種:

1、親代取代法

親代取代法是指只有親代產生的子代,才能取代其親代。如果一個親代 產生很多子代,則此親代便有很多機會被其子代替換,如此在同一世代的兄 弟姊妹中,才不會有相互競爭而導致第二好的子代無法取代親代的情形。

2、完全取代法

完全取代法是指所有的親代都被所有的子代所替代,不論其是否為同一交 配來源,且此取代法,不考慮子代的適合度值是否比親代來得高,全部皆將 取代親代。

3、菁英保留政策(elite preserve strategy)

保留親代中適合度值較高的染色體,其餘不足的染色體由子代中適合度 較高之染色體填補,如此不斷循環以產生適合度較高之母群體。

雖然前兩種取代法較為簡單,但為了能確切地將適合度值較高的基因保 留住,本研究採取菁英保留政策來取代較差的親代,以獲得較佳的取代效果。

3.2.9 演化世代停止條件

基因演算法在正常情況下,母群體演化過程是趨向全域最適解發展,但 仍需要有一個停止條件來判斷是否已達成收斂或達到目標。常用之演化世代 停止條件是直接設定演化世代數以及演化時間的長短,至於須演化多少世代 或是設定多長的演化時間,則依照問題的複雜程度或資料量而定。由於此供 應鏈中的生產排程與物流配送兩階段問題為NP-HARD問題,其求解時間會隨 訂單大小而呈指數分配。當訂單數越大時,則演化世代數必須增加才能搜尋 到更理想之解。本研究世代數設定方式如下:

假設原本訂單數為n筆,而世代數為g次,則當訂單數增加至n×2x時,世 代數則為g+ x×1000次。舉例說明,若原訂單數為10筆,而世代數為1000次,

則當訂單數增加到10×21 =20筆時,世代數即為1000+1000×1=2000次;當訂 單數增加到10×23 =80筆時,世代數即為1000+1000×3=4000次,以此類推。

3.2.10 修復

經由複製、交配、突變的運算後,檢查是否有可行解產生,若無,則重新

3.2.11 求解流程

現將本研究所建之模式求解流程彙整成以下六個步驟:

步驟 1:問題集的產生-定義問題之假設與設定參數值。

步驟 2:編碼-依據問題將訂單及車輛的資訊編碼成兩層式染色體。

步驟 3:起始解的產生-利用隨機方式減少產生起始解之時間。

步驟 4:演化-進行基因演算法的複製、交配與突變的運算。

步驟 5:可行解的檢查-檢查所產生的解是否為可行解,若為可行解,則繼續 進行步驟 6;反之,則重新設定基因演算法中之參數後,再進行步 驟 4。

步驟 6:停止條件的確認-檢查在演化停止條件後所產生的解是否為可行解,

若為則停止;反之,則重新進行步驟 4。

本研究所設計之求解供應鏈中整合排程與配送二階段問題最小總成本之演算 法流程如圖3.2所示。

圖 3.2 求解整合供應鏈中生產排程與物流配送二階段最小總成本之流程圖

3.3 啟發式排程

由於目前中外文獻無可應用至本研究所探討之問題的演算法,且本研究 的下限(lower bound)亦不易計算,為了評估本研究所提出之基因演算法所得到

進行演化

檢查是否為 可行解

停止 問題集的產生

編碼

產生起始解

檢查是否達到 停止條件 修復

考慮權重下最短處理時間先加工(weighted shortest processing time first,WSPT)

+1

0 0 281 174 463 482 430 455 467

1

87.54393 65.27528 68.78321 116.5546 432.6497 86.19218 848.9683

i b i

w d1

N/A 32.3997 35.85477 304.7675 195.9432 39.5446 444.1726

i b i

w d 2

141.4653 90.58567 93.88813 N/A 592.9131 117.0095 1151.692

i b

i w

d3

65.31441 11.59506 11.52159 425.7833 N/A 4.664903 127.8041

i b i

w d 4

68.86427 15.4575 14.94595 438.9821 24.37085 N/A 165.1346

i b i

w d5

66.41435 N/A 3.877763 400.036 71.30419 18.19506 68.07871

i b i

w d6

73.83178 3.895442 N/A 416.5104 71.17545 17.67311 25.25899

b

di7

76.10433 5.69047 2.101731 425.121 65.69369 16.24759 N/A

配送順序 3 2 1 4 3 1 2

步驟7及步驟8:如表3.7所示:

表 3.7 訂單完工時間及成本說明表 order t_startj

(min)

diab (min) ci (min) wici (NT)

O6 83 455 583 3853.63

O5 83 455+26 564 3711.12

O1 83 455+26+213 777 2494.17

O4 249 482 731 4086.29

O7 249 482+91 822 452.1

O3 249 482+91+70 892 954.44

O2 249 482+91+70+634 1526 2273.74 i

N

1 i

i c

w ×

=

13812.46

第四章 電腦模擬驗證

本章將針對供應鏈中生產排程與物流配送兩階段中之機台數、車輛數、

訂單數以及訂單加工時間等參數之設定,藉以測試本研究解此兩階段問題之 有效性及可行性。

4.1 模擬設計

本研究之機台數、配送車數與訂單數之設計如下:

機台數設定為 2 台、4 台、8 台三種;

配送車數設定為 2 台、4 台、8 台三種;

訂單數設定為小量、中量及大量。其中小量包含 10 筆、20 筆的訂單數;中 量包含 40 筆、80 筆的訂單數;大量則為 120 筆的訂單數。

當機台數為 2 台時,則可加工 10 筆、20 筆、40 筆、80 筆以及 120 筆訂單;

當機台數為 4 台時,則可加工 20 筆、40 筆、80 筆以及 120 筆訂單;

當機台數為 8 台時,則可加工 40 筆、80 筆以及 120 筆訂單。

當訂單數為 10 筆時,則由 2 台配送車負責配送;

當訂單數為 20 筆以及 40 筆時,則由 3 台配送車負責配送;

當訂單數為 80 筆以及 120 時,則由 4 台配送車負責配送。

基因演算法之參數設計如下:

當訂單數為 10 筆時,則母體數設定為 1000 筆、世代演化數設定為 1000 次;

當訂單數為 20 筆時,則母體數設定為 2000 筆、世代演化數設定為 2000 次;

當訂單數為 40 筆時,則母體數設定為 3000 筆、世代演化數設定為 3000 次;

當訂單數為 80 筆時,則母體數設定為 4000 筆、世代演化數設定為 4000 次;

當訂單數為 120 筆時,則母體數設定為 5000 筆、世代演化數設定為 5000 次;

訂單加工時間及配送時間設計如下:

第二階段之訂單配送至顧客之時間矩陣使用車輛途程問題網站[51]中由

Taillard所提供之tai385 檔案。在tai385 之檔案中,共有 385 筆的顧客數,且顧 客之分配位置相當密集,如圖 4.1 所示。顧客間配送時間皆介於 200 至 500 分鐘之範圍,因此本研究直接使用前 120 筆資料作為訂單配送至顧客之配送 時間矩陣。為模擬不同情況,本研究依第一階段之訂單加工時間範圍配合訂 單配送時間之範圍,利用電腦依照均勻分配(uniform distribution)隨機產生,

共設計以下三部分的測試問題。

1、加工時間小於配送時間:加工時間介於 50 至 100 分鐘小於配送時間之範 圍;

2、加工時間近於配送時間:加工時間介於 200 至 500 分鐘近於配送時間之範 圍;

3、加工時間大於配送時間:加工時間介於 800 至 1000 分鐘大於配送時間之 範圍。

且在每一部分中皆相同地以電腦依照均勻分配隨機產生三次相同範圍的訂單 加工時間,藉以探討本究所設計的基因演算法之穩定度。

0 500 1000 1500 2000 2500

4900 5000 5100 5200 5300 5400 5500 5600 5700 5800 5900 X

Y

圖 4.1 顧客位置分佈圖

4.2 模擬結果分析

本節使用電腦程式語言 JAVA 經由 Intel Pentium 4 3.00GHz 及 516RAM 的 電腦配備,運用 4.1 節之模擬設計來驗證本研究第三章所構建之研究步驟與 流程。以下共分三小節來說明三種不同案例之模擬結果。

4.2.1 加工時間小於配送時間

本小節分析加工時間介於 50 至 100 分鐘,小於配送時間範圍之情況。將三次的 隨機試驗結果取其平均,藉以探討由基因演算法與 W-SPT 所得結果之差異以及基因 演算法在不同機台數及訂單數之求解時間,結果如表 4.1 所示。

表 4.1 加工時間小於配送時間結果分析表

機台數 訂單數 10 20 40 80 120

改善率 15.16% 16.86% 26.36% 33.15% 33.45%

2 求解時(秒) 9.73 118.19 352.15 913.70 1805.01

改善率 17.46% 28.23% 33.82% 34.81%

4 求解時(秒) 126.03 367.12 932.29 1831.96

改善率 32.54% 36.15% 39.44%

8 求解時(秒) 411.13 987.73 1879.43

整體改善率 15.16% 17.16% 29.04% 34.37% 35.9%

整體求解時間(秒) 9.73 122.11 376.8 944 1838.3

基因演算法於本小節之改善率及求解時間分析如下:

一、在改善率部分:

當機台數固定時,雖然小量訂單之改善率皆大概只在 16%左右;但當訂

單數為中量時,改善率卻增加至 26%以上,甚至高達 36%左右;而當訂單數

0

126.92 372.15 935.40 1829.78

改善率 32.63% 34.34% 29.59%

8 求解時(秒) 415.88 986.36 1855.84

整體求解時間(秒) 9.57 120.7 380.29 936.85 1937.13

0 500 1000 1500 2000 2500

10 20 40 80 120

訂單數

求解時間

2台機台 4台機台 8台機台 overall

圖 4.5 加工時間近於配送時間之改善率圖 (單位:秒)

4.2.3 加工時間大於配送時間

本案例分析加工時間介於 800 到 1000 分鐘之小於配送時間範圍之情況,將三次 的隨機試驗結果取其平均,探討由基因演算法與 W_SPT 所得結果之差異,以及基 因演算法在不同機台數及訂單數之求解時間,結果如表 4.3 所示。

表 4.3 加工時間大於配送時間結果分析表

機台數 訂單數 10 20 40 80 120 改善率 17.40% 15.28% 25.38% 32.15% 31.75%

2 求解時間(秒)

9.05 112.92 434.38 948.71 1910.36 改善率 19.67% 24.88% 28.68% 28.49%

4 求解時間(秒)

122.19 447.95 962.77 2002.90 改善率 24.08% 34.32% 29.89%

8 求解時間(秒)

468.58 1091.52 2082.43

整體改善率 17.40% 17.48% 24.78% 31.71% 30.04%

整體求解時間(秒) 10.05 117.56 450.30 1001.00 2018.56

基因演算法於本小節之改善率及求解時間討論如下:

基因演算法於本小節之改善率及求解時間討論如下:

相關文件