國立交通大學
工業工程與管理學系
碩士論文
應用基因演算法求解供應鏈中
生產排程與物流配送兩階段總成本最小化問題
Minimizing Total Cost of a Two – Stage with Scheduling and
Delivery Problem in a Supply Chain using Genetic Algorithm
研 究 生:周碩鴻
指導教授:唐麗英 博士
張永佳 博士
應用基因演算法求解供應鏈中
生產排程與物流配送兩階段總成本最小化問題
學生:周碩鴻 指導教授:唐麗英 博士 張永佳 博士國立交通大學工業工程與管理學系碩士班
摘要
生產排程(product manufacturing)與物流配送(finished good delivery)為供應鏈
中的兩個階段作業。目前已有相當多的中、外文獻分別探討此兩階段之最佳 化問題。本研究則是將此兩階段視為單一系統,並使用非等效平行機台的生 產排程模式(unrelated parallel machine scheduling problem)及車輛途程問題(vehicle routing problem,VRP)來探討其整體之最小成本。由於此兩階段所用之非等效
平行機台及車輛途程問題已被證明為非多項式複雜度演算法可解
(non-deterministic polynomial-time hard,NP-hard)問題,其求解時間會隨著訂單數 的大小而呈指數增加,因此很難在合理的時間內找出整合此兩階段之最佳 解。而巨集式啟發式演算法(meta-heuristic)是一種快速且實用的尋優求解方 法,其中基因演算法(genetic algorithm,GA)較能符合各種不同型態的最佳化 問題。有鑑於此,本研究運用基因演算法以有效地找出整合供應鏈中生產排 程與物流配送兩階段總成本最小化的最適解,並使用國際題庫及電腦模擬資 料探討在不同情況下本研究所發展之基因演算法在求解此兩階段最佳化問題 之可行性及穩定度。結果顯示本研究所提出之方法非常適合求解此兩階段最 佳化之問題。 關鍵字:非等效平行機台、生產排程、車輛途程問題、基因演算法
Minimizing Total Cost of a Two-Stage Scheduling
and Delivery Problem in a Supply Chain Using
Genetic Algorithm
Student: Shuo-Hung Chou Adviser:Lee-Ing Tong
Yung-Chia Chang
Department of Industrial Engineering and Management
National Chiao Tung University
Taiwan
Abstract
Product manufacturing and finished good delivery are two stages in a supply chain. This study considers these two stages as one system and aims to find a system-wide
solution to minimize the total cost of the integrated two-stage problem. Unrelated parallel machine scheduling problem (UPMSP) and vehicle routing problem (VRP) are used to represent each stage of the integrated problem. Since both UPMSP and VRP are NP-hard, the studied problem is also NP-hard. Therefore, it is unlikely to find an optimal solution within reasonable time to this two-stage problem. Meta heuristics are then considered to find the near-optimal solution in this study. Genetic algorithm is utilized to efficiently solve the two-stage problem with an objective of minimizing the total cost incurred at both stages. Finally, simulated data along with problem instance are used to examine the effectiveness and stability of the proposed method. The results show that the proposed approach performs well for this problem.
Key Words: Unrelated Parallel Machine 、Scheduling、Vehicle Routing Problem、
致謝
時光飛逝,兩年的研究所生涯已經要畫下句點了,在下之所以能順利畢 業,必須感謝每天都很忙碌卻耐心指導的唐老師;感謝快被氣炸卻依然溫柔 的張老師;感謝舟車勞頓卻沒有怨言的王老師。當然還有陪伴我兩年的各位 同學們,考試只拿滿分的啟峰、只愛肌肉男正琪、減肥不成功的長科、動不 動就頭痛的修來、女人緣極佳的喬凱、說話有點激動的俊榮、真的很處女座 的莉安、最近比較熟的幸穎、努力做人中的盈杰以及一年來同進退的昱浩、 即將成為貴婦人的佩君。 最後,感謝我爸辛苦努力工作,使我在求學過程中都不須為物質生活而 煩惱;感謝我媽即使在我半夜回家依然為我準備宵夜,擔心我熬夜身體不好; 當然還有四個最疼我的姊姊,謝謝當我難過時陪在我身邊要我不要放棄的朋 友們,謝謝大家。目錄
摘要……….……….…….…-i- 英文摘要……….….………….-ii- 致謝………..-iii- 目錄……….……….…-iv- 圖目錄……….……...….….-vi- 表目錄……….………...….…-vii- 第壹章 緒論...- 1 - 1.1 研究背景與動機...- 1 - 1.2 研究範圍...- 2 - 1.3 研究目的...- 4 - 1.4 研究方法...- 4 - 1.5 研究架構...- 4 - 第二章 文獻探討...- 6 - 2.1 基因演算法...- 6 - 2.2 生產排程與物流配送問題之探討...- 12 - 2.2.1 非等效平行機台...- 12 - 2.2.2 車輛途程...- 14 - 2.3 整合排程與配送兩階段...- 15 - 2.4 結論...- 16 - 第三章 研究方法...- 17 - 3.1 問題描述...- 17 - 3.2 演算法之設計...- 18 - 3.2.1 兩層式染色體編碼方式...- 18 - 3.2.2 起始解設定...- 19 - 3.2.3 適合度函數設定...- 20 - 3.2.4 基因複製與選取...- 20 - 3.2.5 交配...- 20 - 3.2.6 突變...- 21 - 3.2.7 基因演算法參數設定...- 21 - 3.2.8 產生新群體...- 22 - 3.2.9 演化世代停止條件...- 23 - 3.2.10 修復...- 23 - 3.2.11 求解流程...- 24 - 3.3 啟發式排程...- 25 - 第四章 電腦模擬驗證...- 31 - 4.1 模擬設計...- 31 - 4.2 模擬結果分析...- 32 - 4.2.1 加工時間小於配送時間...- 33 - 4.2.2 加工時間近於配送時間...- 35 -4.3 總結...- 39 - 第五章 結論與未來展望...- 43 - 5.1 研究結論...- 43 - 5.2 建議及未來展望...- 44 - 參考文獻...- 45 - 附錄一………-49- 附錄二………-55- 附錄三………-69-
圖目錄
圖 1.1 研究流程架構圖...- 5 - 圖 2.1 基因演算法流程圖...- 7 - 圖 2.2 單點式交配示意圖...- 9 - 圖 2.3 兩點式交配示意圖...- 9 - 圖 2.4 字罩式交配示意圖...- 10 - 圖 2.5 兩點突變型一示意圖...- 11 - 圖 2.6 兩點突變型二示意圖...- 11 - 圖 2.7 移動突變示意圖...- 12 - 圖 3.1 兩層染色體編碼示意圖...- 19 - 圖 3.2 求解整合供應鏈中生產排程與物流配送二階段最小總成本之流程圖...- 25 - 圖 4.1 顧客位置分佈圖...- 32 - 圖 4.2 加工時間小於配送時間之改善率圖...- 34 - 圖 4.3 加工時間小於配送時間之改善率圖...- 35 - 圖 4.4 加工時間近於配送時間之改善率圖...- 36 - 圖 4.5 加工時間近於配送時間之改善率圖...- 37 - 圖 4.6 加工時間大於配送時間之改善率圖...- 38 - 圖 4.7 加工時間大於配送時間之改善率圖...- 39 - 圖 4.8 三種模擬之改善率比較圖...- 40 - 圖 4.9 三種模擬之求解時間比較圖...- 41 - 圖 4.10 三種模擬之尋優過程圖...- 42 -表目錄
表 3.1 訂單之權重表...- 27 - 表 3.2 訂單於各機台之加工時間表...- 27 - 表 3.3 訂單配送時間表...- 27 - 表 3.4 排程順序說明表...- 28 - 表 3.5 排程步驟說明表...- 28 - 表 3.6 配送順序說明表...- 29 - 表 3.7 訂單完工時間及成本說明表...- 30 - 表 4.1 加工時間小於配送時間結果分析表...- 33 - 表 4.2 加工時間近於配送時間結果分析表...- 35 - 表 4.3 加工時間大於配送時間結果分析表...- 37 -第壹章 緒論
1.1 研究背景與動機
供應鏈管理在近十年來已是一個非常重要的議題。在供應鏈中包括了一 連串的上游廠商物料的供給、排程廠商的生產、物流中心的配送以及顧客的 服務等,且運用「金錢流」、「物流」以及「資訊流」三方流通,來整合上中 下游廠商,以達到降低供應鏈的總生產成本及提高生產效能的目的。由於供 應鏈所要求的是整體之利益,但在供應鏈中各階段所重視的績效指標皆不 同,且常會有相互衝突的情況。譬如在生產排程階段,由於顧及到顧客滿意 度,必須在交期內將成品完成且送至顧客手中,以免顧客滿意度降低;但在 物流配送階段,因為考量到成本,希望能夠盡量地一次滿足運送工具的最大 承載量後再出貨,以減少運送成本,但交期可能因此延後。在供應鏈中各階 段的目標要求皆不盡相同的情況下,工廠若只針對單一階段績效指標的最佳 化已不再符合現今的需求,為了解決這種情況,本研究以整合供應鏈中各個 不同階段的方式,同時考量供應鏈中各階段之最佳績效。另外,由於即時生 產系統(just in time,JIT)觀念的盛行,使得工廠紛紛減少庫存量,期望以達到 零庫存的方式來降低庫存成本,進而提升競爭力。如此一來,不僅增加了供 應鏈內各階段的互動,亦提升了整合供應鏈中各階段的必要性。 由於供應鏈所包含的範圍相當廣大,若欲將各階段完全整合是件極為困 難的工作,有鑑於此,本研究僅探討整合在供應鏈中最為重要的生產排程以 及物流配送兩階段問題。 由於台灣為代工生產製造王國,工廠每天皆必須面臨如何在訂單交期 內,將訂單在有限的設備上有效率地完成加工,以達到設備使用、在製品庫 存、人力資源等整體績效最佳化的目的,故生產排程問題對於製造業而言是 一個非常重要的環節。再加上現在商品趨於多元化,運送次數頻繁且運送範圍大,導致運送成本成為影響企業經營利潤的重要因素之一,故如何規劃一 個好的配送途程路線,將商品以最短路線且在交期時限內送達至顧客手中, 是一個高度複雜的問題,由此可見,物流配送也是供應鏈中另一個重要的議 題。 在傳統方法中,大多是分開探討生產排程及物流配送兩階段,罕見整合 此兩階段之研究。但在現今社會當中,早已存在將供應鏈整合的例子,如比 薩業在顧客下外送訂單時,須將顧客所下訂的比薩經過工作站的生產排程, 完成比薩成品後,再經由外送車送至顧客手中;或像是郵局須將寄件者的信 件包裹經由人工整理生產排程後,再經由郵差送件至收件人手。以上這兩個 例子便是整合供應鏈中的生產排程以及物流配送兩階段的例子,此例已經超 越以往只針對供應鏈中單一階段(如生產排程、物流配送等)產業的探討範圍, 故由此得知,企業已有往整合供應鏈的方向發展之趨勢,故只探討供應鏈的 單一階段最佳化已不再符合現在社會的要求,因此在這樣的需求下,如何整 合供應鏈中之各階段,已成為企業永續經營的一個非常重要的關鍵因素。
1.2 研究範圍
在現實生活中,一間工廠同時擁有數條生產線是常見的情況,再加上各 機台及人員的效率不一,故在第一階段中,以非等效平行機台(unrelated parallel machine)來模擬現實情況。而在第二階段中,雖然在理論上,為了能 夠提升服務品質,供應商通常皆希望能確切地在的顧客指定時間內將商品送 至顧客手中,在實際上,當客戶端數量或商品產量較少時,此目標並不難達 成;但當整個供應鏈中的客戶端數量或商品產量較龐大時,要能確切地滿足 每一個客戶在時間上的要求會相當困難,故在第二階段中,本研究僅只探討 一般的車輛途程問題(vehicle routing problem ,VRP)。再加上第二階段物流配送的運送成本,以兩階段的總成本作為績效指標,建 構一個能有效連接供應鏈中生產排程以及物流配送兩階段問題的模型。雖然 目前文獻尚未深入探討此整合供應鏈各階段的問題,但若對兩完全等效平行 機台排程問題,將其各訂單完成時間分別乘上不同權重以轉換為成本,再以 所轉換之成本作為績效衡量指標,此種問題已被證實為非多項式複雜度演算 法可解 (non-deterministic polynomial-time hard,NP-Hard) 的問題,故同樣是以 時間轉成本為績效衡量指標但更為複雜的非等效平行機台排程最佳化問題, 亦為 NP-Hard 問題;傳統無時窗車輛途程問題也被證明為 NP-Hard 問題。既 然非等效平行機台的排程問題以及車輛途程問題都個別屬於 NP-Hard 問題, 則整合供應鏈中此兩階段的問題,亦是 NP-Hard 問題。而在問題如此複雜的 情況下,當整個問題規模較小時,或許還可以使用傳統之數學規劃軟體(如 lingo)來求解最小成本;但當問題規模較大時,傳統之數學規劃必須花相當長 的時間才能求得最佳解,有時甚至無法得到最佳解。因此,許多學者紛紛使 用有別於傳統數學規劃的巨集式啟發式演算法(meta-heuristics algorithms )來 求解如此複雜的問題。一般常用的巨集式啟發式演算法有基因演算法(genetic algorithms,GA)、塔布搜尋法(tabu search,TS)、模擬退火法(simulated annealing,SA)以及類神經網路(neural networks,NN)等,雖然無法保證得到 最佳解,但可改善傳統區域搜尋方法常受限於起始解的特性,在短時間內求 得近似最佳解。由於基因演算法主要是運用在參數編碼的位元字串上,而非 參數本身,故在搜尋上不受參數連續性的限制,且基因演算法是採用隨機多 點並同時搜尋的方式,與傳統的單點依序搜尋方式(如塔布搜尋法)不同,因此 可避免只受限於局部最佳解,而能求得問題的真正最佳解,此外,基因演算 法是以機率(probabilistic)法則來決定其運算子的運算過程,而非以決定論 (deterministic)法則來決定,故基因演算法較能符合各種不同型態的最佳化問 題。所以本研究將運用基因演算法來解決供應鏈中整合生產排程與物流配送
兩階段之總成本最小化問題。
1.3 研究目的
本研究利用基因演算法求解整合供應鏈中生產排程與物流配送兩階段總 成本最小化之問題,將客戶訂單能以最有效率的順序加工,並將成品以最短 路徑配送至客戶手中,以達到問題總成本最小化的目標。而本研究結果可供 某些產業降低營運成本之用。1.4 研究方法
本研究先探討相關文獻,針對目前非等效平行機台以及車輛途程問題的 情況,找出整合供應鏈中生產排程與物流配送兩階段所需考慮的問題,設計 適合供應鏈之生產排程與物流配送兩階段整合的基因演算法來求解此二階段 總成本最小化問題,並利用國際題庫與電腦模擬的問題測試此演算法之穩定 度及有效性。1.5 研究架構
本研究的架構如下: 1、 緒論 包含研究動機與背景、範圍、方法與目的以及本研究架構。 2、 文獻探討 簡單介紹基因演算法,並蒐集、整理有關於供應鏈管理、生產排程以及 物流配送的相關文獻。 3、 研究方法 針對目前非等效平行機台以及車輛途程問題的情況,找出整合供應鏈中 生產排程與物流配送兩階段所需考慮的問題,設計適合供應鏈之生產排程與模式分析 模式問題定義 模式建構 驗證是否通過 是 否 確認主題 文獻探討 基因演算 法相關文 生產排程 相關文獻 物流配送 相關文獻 結論與建議 模式驗證 物流配送兩階段整合的基因演算法來求解此二階段總成本最小化問題。 4、 電腦模擬驗證 使用國際題庫及電腦模擬資料當作訂單之加工及配送時間,並依照訂單 及機台數大小來驗證演算法之穩定度及有效性。 5、 結論與建議 根據研究結果,歸納出本研究對業界之貢獻,並提出未來研究之方向與 建議。本研究之流程如圖 1.1 所示。 圖 1.1 研究流程架構圖
第二章 文獻探討
本章介紹與本研究有關之文獻。2.1節介紹基因演算法,2.2節簡介生產 排程與車輛途程問題並探討國內外相關文獻, 2.3節則探討兩階段排程配送 問題之國內外相關文獻。2.1 基因演算法
基因演算法又稱遺傳演算法,是1975年由 John Holland [23,24]所提出解 決數學尋優問題的方法,之後經由其子弟兵 Goldberg[19]、Jong[28]等人的推 廣,使得基因演算法正式開拓出一片新領域,經由這些年的發展後,基因演 算法已成功地運用在物理、工程及醫學等方面。而其主要的理論是根據達爾 文進化論的「物競天擇,適者生存,不適者淘汰」的基礎進行演化。在演化 的過程中,母體(population)在周遭環境的限制下,具有較佳適應力的母體將 有較大的機會成為繁衍後代的親代;而所繁衍出的較佳後代,通常都是遺傳 於親代雙方,且適應力較好的後代也較有機會被選擇進行交配(crossover)及突 變(mutation)等運算子(operator)。經由如此不斷地演化,適應力較差之子代則 被淘汰;相反地,適應力佳的子代則不斷的演化,以產生更佳的下一代。遵 循達爾文進化論的精神,重複地演化,將產生近似最佳解甚至為最佳解。 基因演算法之流程步驟主要是由編碼、產生初始解(初始化)、評估目標 值、複製選取、交配、突變所構成,如下圖2.1所示。其中除了編碼與初始化 的步驟外,其餘的步驟則是不斷地重複進行演化的動作,直到符合所設定的 條件才終止。本研究簡介基因演算的流程步驟如下:[3] (一)、編碼(coding) 常見編碼方式可分二進位編碼(binary)、實數(real number)編碼及順 序(order)編碼方式,一般編碼方式需依照問題本身之特性來決定。圖 2.1 基因演算法流程圖 [3] (二)、初始解(initialization) 初始化主要就是根據編碼的形式,以隨機的方式產生n 個基因字串的 起始解。例如編碼方式為二進位編碼法,則是以隨機方式產生n 個以0 或1 所構成之起始解。而一般起始解的好壞將對於子代的收斂有一定程度的影 響,若產生的起始解越好時,則越容易找到最佳解。 (三)、評估目標值(evaluation) 通常在產生起始解之後便計算目標值,即為計算適存值。其主要是根據 目標值的優劣來計算其適合度(fitness),用以評估染色體的好壞以作為之後各 染色體被複製選取的機率之計算依據。
(四)、複製與選取(reproduction & selection)
由達爾文的進化論中可以知道「適者生存,不適者淘汰」,因此,當染 色體具有較高的適存值時,則較有機會能繼續存活於下一代中。而基因演算 法中的複製選取則是根據這個原理而進行的。一般常用的選取方法為輪盤式 選取法(roulette wheel parent selection algorithms),其主要觀念就是將母代各染
愈大的則其所佔的部分相對就愈大。而此時以隨機的方式產生一介於0~1 之 間的隨機值,用以與累積機率比較。如此,適度大的染色體將比適度小的容 易被選到,但此並不保證適度大的就一定會被選到。重複進行這樣的步驟則 是,直到足夠產生下一代的染色體為止。輪盤選取法的詳細步驟如下: 步驟1:計算各染色體之適應函數值及各染色體適應函數值之總合。 步驟2:計算每個染色體的選取機率及染色體的累積機率。 步驟3:隨機產生一隨機數r。 步驟4:傳回母體中適合度累加值大於r的染色體。 步驟 5:若傳回染色體個數小於母體數,則回到步驟 3,直到染色體個數等於 母體數為止。 (五)、交配(crossover) 交配的主要觀念就是提供一個機制能使訊息得以交換,即可使得族群 中的不同個體經由隨機的交配過程,互換其基因的組合,以產生新的子代 。而經由交配的過程後,可使得演算有機會能加速搜尋到初使化所產生的起 始解中較佳解之組合。因此,一般而言,經由交配的過程將有可能使得演算 搜尋到最佳解的時間減少。而由於交配點的選擇一般都是使用隨機的方式決 定,因此通常皆可保有母染色體的較佳的特性;且可經由與母染色體交配的 過程中,有可能繁衍出更佳的下一代。而一般交配的方式有單點交配、兩點 式交配、字罩式交配等三種,但不管是哪一種的交配形式其主要觀念都是相 同的。即是以隨機的方式產生一個0至1 的亂數,再與事先預設的交配機率進 行比較,若此亂數值小於交配機率,則依不同的交配形式對此基因進行交配。 以下針對上列三種交配形式簡單敘述如下: 1. 單點交配(One-Point Crossover) 當由交配率與隨機亂數比較決定是否交配後,再取一隨機亂數以決定在 所選取欲交配之兩字串中擇一相對之交配點,並互相交換其交配點後之字串 位元值,如圖2.2 所示。
圖 2.2 單點式交配示意圖 [3] 2. 兩點交配(Two-Point Crossover) 兩點交配與單點交配之程序幾乎相同,其主要的不同處在於交配點的形 式。即當欲選擇交配點時以隨機方式產生兩個交配點,並交換此兩個交配點 間的字串單元值,如圖2.3 所示。 圖 2.3 兩點式交配示意圖 [3]
3. 字罩式交配(Uniform Crossover) 此交配方法主要是先以亂數的方式產生一個與母代染色體字串長度相同 的字罩,以作為之後是否進行交配的依據。此字罩中主要是由隨機所產生的 值所組成,其值包括 0 與 1,其中 0 表示其相對應之字串不作變動,若值為 1 則表示所相對應之字串應進行交配動作。由於每一個基因其交配的機率都 是相等的 ,故又有人稱之為均等交配(Uniform crossover),如圖 2.4 所示。 圖 2.4 字罩式交配示意圖 [3] 在交配率部分,Grefenstette [26]首先提出交配機率為0.95能夠快速更新染色 體,認為較高的交配率能夠快速的更新群體中的染色體,而Schaffer et al.[48] 也提出交配率介於0.75~0.95之間最佳,確切的交配率則可視問題性質而定。 (六)、突變(mutation) 由於子染色體並不一定繼承上一代之所有特性,而以隨機的方式使得子 染色體的某一基因值隨意的變換成另一值的情形,稱為突變。而突變在基因 演算的流程中雖只居於次要地位(主要為交配),但卻可以引進新的基因樣式,
使得演算不會過早收斂(premature convergence)。就因如此,經由突變可開發 新的搜尋領域,防止收斂於問題的局部最佳解( local optimum),而較容易搜尋 到全域最佳解 (global optimum)。其突變主要是先以隨機的方式產生一值,再 與事先設定之突變機率相比較。若此隨機值小與突變機率值,染色體則進行 突變的程序。而一般都是產生一個與染色體字串長度相同之矩陣,並於每個 染色體所相對的位置上產生介於0~1 的隨機數值,再與其設定之突變機率比 較以決定是否進行突變。而欲進行突變之染色體則是改變其基因值。(一般若 為二進位形式之基因字串,若原基因值為0 則改變為1;原基因值若為1 則更 改為0) 。以下列舉在排程問題中常用的突變方式:
1、兩點突變型一(Two-Point Mutation, 2MU1)
隨機選取兩鄰近的基因進行交換,如圖3.2所示。
圖 2.5 兩點突變型一示意圖 2、兩點突變型二(Two-Point Mutation, 2MU2)
隨機選擇兩個基因進行交換,此兩點不須為相鄰。而此突變方式也包含兩 點突變型一的交換方式,如圖3.3所示。
3、移動突變(Shift Mutation, SMU) 隨機選擇兩個基因位置進行平移,此突變方式包括以上三種突變方式,如 圖3.4所示。 圖 2.7 移動突變示意圖 在突變率的設定上,一般常見的乃是De Jong [20]所提出之0.001,但 Grefenstette [26]與Schaffer等[48]先後提出突變率為0.005較佳。
2.2 生產排程與物流配送問題之探討
生產排程以及物流配送是供應鏈中兩個極為重要的階段,以下即針對生產 排程中的非等效平行機台與物流配送的車輛途程問題探討相關的文獻。2.2.1 非等效平行機台
所謂非等效平行機台是指機台的型態對於其相同工作並沒有相對的關 係,即相同的訂單在任一機台上的加工時間都無相關且均不成比例。而在探 討非等效平行機台相關文獻時,通常整備時間(setup time)、交期延誤(tardiness) 以及最大完工時間(Makespan)等三方面最常被探討。在整備時間方面,Lee與Pinedo[30]以改進的ATCS(apparent tardiness cost with setups)方法來求解訂單間存在順序相依整備時間(Sequence-dependent setup time)的總加權延遲時間最小化問題(minimizing the sum of the weighted tardiness),Park et al.[35]則使用類神經網路與啟發式演算法來求解與Lee[30]
相同的問題。
在交期延誤方面,Suresh與Chaudhuri [49]以GAP-EDD的方法求取非等效 平行機台的最大延遲時間最小化問題,並以績效指標來評估結果的好壞; Azizoglu與Kirca[7]結合傳統最佳解的分之界限法(branch and bound)與下限值 (lower bound)求解總延遲時間最小化問題;徐烈昭[4]應用塔布搜尋法探討在 考慮訂單分割、整備時間與優先權之限制下,求解延遲損失與加工機台成本 最小化,實驗結果發現經過塔布搜尋法改善後可達到穩定且不錯的解。 在最大完工時間方面的研究相當廣泛,如Karp[43]針對兩平行機台的排 程求解最小化大完工時間問題,證明其為一NP-Hard問題,故非等效平行機台 也是一NP-Hard問題;Ruiz 與 Maroto [45]以基因演算法求解包含非等效平行 機台的流程式生產型態(flow-shop scheduling),考慮以相依整備時間的最小化 最大加工時間為目標函數,結果顯示基因演算法較其他啟發式演算法優異; Potts [36] 應用啟發式演算法,求解最小化最大完工時間之目標式;Glass et al. [17] 應用基因演算法,探討最小化最大完工時間的研究;Piersma 與 Dijk [42] 提出一套新的局部搜尋方式,鄰近搜尋法(neighborhood search)來求解最小化
最大完工時間之問題,結果介於其他一般局部搜尋法之間;Anagnostopoulos 與
Rabadi [6]以模擬退火法為基礎求解非等效平行機台的最小化最大完工時間問
題;Figielska [15]以基因演算法和變數產生法(column generation technique)求 解包含前置作業時間的非等效平行機台問題,以最小化最大完工時間與切換 機台(Changeover)之成本為目標函數,將研究結果與作者先前所提出之下界值 相比較,結果顯示其切換機台成本不會大於加工時間之成本的十分之一;陳 正雄[2] 應用塔布搜尋法求解雙目標問題,其建議若使用基因演算法或模擬退 火法,亦可得到不錯的結果;蕭陳鴻[5] 提出以菁英政策為基礎的基因演算 法,求解成本與最大完工時間總和的最小化,結果證明無論訂單數量為何, 其效果皆比其他啟發式演算法佳。
2.2.2 車輛途程
近年來車輛途程相關問題之研究相當多,而所謂的車輛途程問題,簡單 來說就是用來決定配送車輛行駛之路線。配送車輛由工廠或物流配送中心出 發,依循特定之路線經過各配送點或客戶端,最後回到配送中心,以致於所 有的配送點均被服務過一次,且此路線必須能使業者所考量之目標函數(如 距離、成本、時間等)最小。以下是探討以巨集式啟發式演算法求解車輛途 程之相關文獻的整理: 在許多車輛途程相關之文獻中,基因演算法是最常被使用的一種啟發式 演算法,例如 Blanton [11]運用基因演算法針對車輛途程問題中的車輛容量限 制加以研究;Thangiah et al.[51]先使用掃瞄法把顧客分群,再利用基因演算法 把鄰近群的顧客互相交換,以達降低成本的需求;Malmborg[31]也利用基因 演算法求解具時窗性車輛途程問題;Potvin et al.[38]使用基因演算法針對後式 拖運的車輛途程問題作深入研究;Salhi et al.[47]則使用分群式基因演算法研 究多倉庫(multi-depot)情況下的車輛途程問題;Potvin et al. [39] 結合基因演算 法及類神經網路來求解最小化車輛途程問題的總成本;Barrie 與 Ayechew[9] 將基因演算法加入鄰近搜尋法,求解車輛途程問題的求解時間與品質最小 化,並將結果與塔布搜尋法及模擬退火法相比較,結果顯示基因演算法為較 適合求解車輛途程問題的巨集式啟發式演算法;Hwang [25]改良式基因演算 法求解多場站車輛途程最小化運送成本問題,且將研究結果與國際題庫相比 較 , 顯 示 此 一 改 良 式 基 因 演 算 法 於 求 解 車 輛 途 程 問 題 有 極 佳 的 潛 力 。 Goldberg[20]等學者應用基因演算法求解生產排程問題時,設計新的交配運算 子粗略位置交配 (Partially Mapped Crossover;PMX),並同時解決旅行推銷員 的問題,有相當顯著的結果。塔布搜尋法也是許多文獻所選擇的一種巨集式啟發式演算法,例如 Osman [34]結合模擬退火法與塔布搜尋法求解車輛途程問題,以大家所熟知
的Tailard[50]與Rochat[44]例題當作評估績效指標,顯示結合兩種演算法所衍 生之新型態演算法優於單單使用模擬退火法,而Gendreau[18] 、Rego與 Roucairol[42]以及Barbarosoglu與Ozgur[8]皆以[50,44]作為標竿學習,分別以塔 布搜尋法與平行塔布搜尋法來求解車輛途程問題,也有相當不錯的結果;另 外,Hiquebran et al.[32]也以[50,44]為基礎,結合改良式模擬退火法以分群為 首,路線為輔(class-first rout-second)的方法來求解車輛途程問題;而Badeau et
al.[10]、Brandao[12]、Duhamel et al. [14]、Golden et al. [37]等先後皆以改良式
之塔布搜尋法求解具上限單邊時窗性車輛途程問題,也都獲得不錯的成果。 其他相關文獻如Russell [46]討論具時窗性車輛途程問題的混合啟發式 (hybrid heuristics)的發展,針對路線的部分改良,以降低車子數量,效果比之 前已提出之方法佳;王生德[1]運用巨集啟發式解法求解具時窗性車輛途程問 題,並提出六種改良式的鄰點法分別構建不同的起始解,結果證明,他所提 出之改良式鄰點法比傳統鄰點法具較佳的解題能力。
2.3 整合生產排程與物流配送兩階段
所謂生產排程與物流配送兩階段問題是指將顧客所下訂的訂單先經由工 廠的機台加工後,再經由配送車輛送至顧客手中才算是完成工作。由於此問 題是在近年來才漸受重視,故其相關文獻並不多,以下為針對生產排程與物 流配送兩階段問題之相關文獻。 Maggu 與 Das [32]探討兩台機器在沒有任何緩衝空間限制且有足夠的 配送車輛可將在第一台機器完工的半成品直接且立即地送往第二台機器繼續 加工情況下的流程式生產最大完工時間問題,並以擴展 Johnson's rule[29]當 作例題,以解決其問題;Maggu et al.[33]以與 Maggu 與 Das [32]相同的問題, 加上一條必須直接連續不可被打斷地完成相同工作的限制,也以相同方法來 解決此問題;Kise[29]也是探討與 Maggu 與 Das [32]相同的問題,但限制一
次只能夠運送一個訂單,證明此問題就算是每個訂單都是獨立的運送時間, 也是一個 NP-Hard 問題;Potts[50]和 Hall 與 Shmoys[21]皆考慮以產品到達時 間及配送時間不相同的單機排程問題,其假設在有充足配送車輛的條件下, 只要有任一訂單被加工完成即立刻送至顧客手中,且以啟發式求解法及誤差 界限分析法來求解此問題;Lee 與 Chen[13]探討在不同的生產排程的情況 下,兩種訂單配送問題。第一種是當生產形式為流程式生產時,其前一階段 訂單加工完成後,如何將其運送至下一階段繼續加工;第二種是當訂單所有 加工完成後,如何將成品運送至顧客手中,且將單次運送的車子容量及運送 時間也納入考量之中;Hall 與 Potts[22]應用動態規劃求解 Lee 與 Chen[13] 之整合供應鏈整體成本最小化問題,其證明整合供應鏈中生產排程與物流配 送此兩階段至少可降低為整合前成本之百分之二十,甚至有可能高達百分之 百。Garcia 與 Lozano[16]同樣探討將訂單加工完後的成品立即送至顧客手中, 但其在運送過程中加入了時窗的限制,並以塔布搜尋法來求解此問題,以達 到最大利潤。
2.4 結論
包含生產排程以及物流配送的經營形式已漸被企業應用,而由上述鮮少 的相關文獻得知,雖然有少許學者探討此方面之問題,但尚未有人將現今已 被業界所廣泛應用的非等效平行機台的生產方式,以及車輛途程問題加以整 合,並以一有效且能在較短時間內求得最適解的演算法應用在此兩階段問題 上,因此本研究將深入探討包含非等效平行機台及車輛途程兩階段生產排程 與物流配送問題,並以基因演算法來求得系統最小總成本最適解。第三章 研究方法
由於整合供應鏈之各階段並不是ㄧ件簡單的工作,必須要考慮許多方面 的問題以及相關限制,故在定義供應鏈各階段最小化總成本之假設條件時, 必須要考慮所使用之演算法是否符合,再加上求解整合供應鏈問題的複雜程 度並非傳統的混整數規劃方法可解,故本研究運用能符合各種不同型態問題 的基因演算法來求解整合供應鏈總成本最小化問題。本章主要是說明本研究 之問題假設以及運用基因演算法求解整合供應鏈中生產排程與物流配送兩階 段總成本最小化之步驟。3.1 問題描述
本研究主要探討整合供應鏈中的生產排程與物流配送兩階段問題,以非 等效平行機台模擬生產製造階段及車輛途的問題模擬物流配送階段,探討將 系統中 n 筆訂單 Oi,經由 m 台非等效平行機台 Mk中任一機台加工,其中 Oi 於 Mk之加工時間為p
ik。Oi加工完畢後經由 r 台配送車輛 Rj中的一台車輛配 送到顧客 Di手中,如此一來訂單才算真正完工。其中 Oi從工廠 D0送至顧客 Da之配送時間為d
ioa;從顧客 Da配送至顧客 Db之配送時間為d
iab,且每一訂 單皆依據其重要性而增設權重 wi。本問題之目標函數為 Min i N i i c w ×∑
=1 ,其 中 wj表示 Oi之權重;而 cj 為 Oi之總完工時間,亦即送達至顧客手中的時間。 本研究問題之假設如下: (1) 機台間沒有閒置時間(表示全部訂單一開始都可以被加工),沒有整備時 間。 (2) 所有的車輛與行駛速度皆相同。 (3) 一輛車只運送一次。(4) 所有訂單的加工時間與顧客所在位置為已知。 (5) 每部機器一次只能加工一筆訂單。 (6) 訂單為不可分割,且在同一機台上加工 (7) 一個顧客只下一筆訂單。 (8) 不考慮有重工及當機的情況。 (9) 運送過程無特定方向。 (10) 任意三個顧客所在位置不在一條直線上。
3.2 演算法之設計
由於非等效平行機台的生產排程與車輛途程問題皆屬 NP-HARD 問題, 在整合此兩階段時,其計算時間及繁複程度會隨著問題規模大小呈指數成 長。在此情況下若採取簡單基因演算法來求解此問題時,編碼會過於冗長而 可能導致計算時間過長或無法獲得最適解的困境。故本研究設計一具多層染 色體的基因演算法,運用兩層式的染色體表現方法,將訂單及車輛的資訊存 放至染色體中,以增加搜尋空間,並利用基因演算法的平行多點搜尋的特性, 增加搜尋之效率。3.2.1 兩層式染色體編碼方式
在兩層式的染色體編碼的表現模式中,第一層染色體存放生產排程的資 訊,以建立一訂單與機器加工順序的對應矩陣;第二層染色體存放車輛途程 的資訊,以客戶之所在位置,以建立一配送車輛資訊矩陣。在基因演算法的 編碼過程中,一般皆採用最簡單的二進位的編碼方式。但當染色體長度過長 時,則會有字串過長的困擾,再加上排程所著重的是加工順序,故本研究將 以順序編碼方式,將訂單加工及需求點配送的順序編碼為 1、2、3、4、…等, 來解決字串過於冗長的問題,且第一層染色體與第二層染色體的關係為一對
一或多對一,取決於配送車輛的數量及客戶之所在位置。其中以 0 為加工機 台間之分隔點以及配送車輛之分隔點。第一層染色體長度為訂單數加機台數 減一;第二層染色體長度為訂單數加配送車輛數減一。以下為 10 筆訂單、2 台機器、2 輛車輛之兩層染色體編碼示意圖,如圖 3.1 所示: 圖 3.1 兩層染色體編碼示意圖
3.2.2 起始解設定
理論上當產生的起始解品質越好時,應越容易找到最佳解。但事實上, 基因演算法為一種多點的平行搜尋法,若採用隨機方式產生起始解,只要所 產生之親代數足夠,對於尋求最適解並不會有太大的影響,且基因演算法所 需要之親代數有一定的數量,例如當染色體長度為50時,則至少要有200個以 上的起始解才有足夠的選擇空間,因此若採用啟發式解法來產生起始解,則 必須要使用200種啟發式演算法,那麼光在產生起始解這一部分就會花非常長 的時間,如此便失去基因演算法方便且快速求解的特性。因此,本研究以隨3.2.3 適合度函數設定
由於本研究問題之目標為最小總成本,屬於望小特性,但一般的績效指 標皆為望大特性,故本研究將適合度函數定義為目標函數(即總成本)的倒數。 也就是說,當總成本越小時,就會有越大的適合度值。若以Bi 表示第i 個暫 時解,fitness(i) 表示其適合度值,則 i B i fitness()= 1 。
3.2.4 染色體選取
複製主要目的是在篩選下次複製的搜尋點,並由複製的數量來控制搜尋 的方向及速度。雖然複製的方法不只一種,但無論採用哪一種複製方式,最 重要的還是希望能選取適合度函數值大者來進行複製,以產生更容易存活的 染色體,如此才不會違背適者生存的原始概念。因此本研究採用基因演算法 最常使用的輪盤法來進行複製的運算子,以期望能選取較高適合度值的染色 體,以增加染色體生存的機率。根據輪盤法,第 i 個暫時解被選取為複製運算子 的機率,以 P(i)表示,之計算方式如下:∑
= n i i fitness i fitness i P ) ( ) ( ) (3.2.5 交配
交配是將交配池中染色體做兩兩互換重組之動作,以產生新染色體。期 望藉由所選取出的一對母代做結合,使在搜尋時可作較大的跳躍,以產生適 合度更高的染色體,而選取交配點可由隨機或指定的方式產生。本研究採用 較適用於排程與車輛途程問題的粗略標示交配法 (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次,則當訂單數增加至 x 2 n× 時,世 代數則為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) 的啟發式演算法,另行設計出一套啟發式演算法,稱之為W_SPT,用以計算 問題之參考解。W_SPT的原則在排程階段是先求出各訂單 i 之 i ik w p 值,依 照 i ik w p 值由最小排至最大以作為訂單加工順序,再依照O i 在Mk 之負荷量 ik
s
作為O i選擇Mk之加工依據;而在配送階段是將同一台配送車輛所負責配送 之所有訂單,依照 i ab w d 之最小值先配送。而以下列公式評估運用基因演算法 所求之解的改善率: % 100 _ _ × − = SPT W GA SPT W Pimprove 其中W_SPT為W_SPT所求之解;GA為基因演算法所求之結果。 W_SPT的排程方式方法可同時考慮訂單的重要性及訂單加工與配送之時 間長短。此種方法之排程步驟如下: 步驟1:計算目前尚未加工之Oi 於Mk之 i ik w p 值,再找出O i之最小 i ik w p 值,依照O i之最小 i ik w p 值由最小排至最大以作為 Oi之加工順序。步驟2:依照Oi之加工順序,計算於Mk上加工到Oi-1之負荷量
s
i−1k加上pik,當sik值最小時,則Oi即於Mk上加工。 步驟 3:直到所有Oi皆加工完成則進行步驟四,否則重複步驟 1、2。 步驟 4:依 Oi完成時間先後決定各 Oi之 Rj,當 Rj之程載輛 Lj被 滿足時即配送。當 r n 為整數時,則 r n Lj = ,反之,
1 + = r n Lj 。當nr 不為整數時,則比較
O
[nr+1]前後完工 時間之差距,差距較小之 Oi歸為同一輛配送車配送。 步驟5:Rj之出發時間t_startj為Rj所負責配送之Oi中最大sik值。 步驟6:找出Rj中未被配送Oi之 i iab w d 值,再找出其最小之 i iab w d 值,依照Oi之最小 i ab w d 值當作在Rj中未被配送之Oi的配 送順序,最小者先配送。步驟7:將t_startj加上Oi配送時間diab則為Oi之ci,而wici則為Oi之
總完工成本 。 步驟8:重複上述步驟一到步驟七,直到所有訂單完工為止。 舉例說明,若有一問題為n=7
、
m=2、
r=2、Lj =4。且其wi、pik及diab如表 3.1至3.3所示,則W_SPT排程依上步驟說明如下: 表 3.1 訂單之權重表 O O 1 O2 O3 O4 O5 O6 O7 wi 3.21 1.49 1.07 5.59 6.58 6.61 0.55 表 3.2 訂單於各機台之加工時間表 O O1 O2 O3 O4 O5 O6 O7 pi1 17 103 67 96 73 62 58 pi2 61 117 48 84 83 80 44 表 3.3 訂單配送時間表 a b 0 1 2 3 4 5 6 70 0 281 174 463 482 430 455 467 1 281 0 454 210 221 213 237 244 2 174 454 0 634 654 596 621 633 3 463 210 634 0 26 76 76 70 4 482 221 654 26 0 102 99 91 5 430 213 596 76 102 0 26 37 6 455 237 621 76 99 26 0 14 7 467 244 633 70 91 37 14 0 步驟 1:將O1到O7之 i ik w p 值計算出後,找出個別之最小 i ik w p 值,依照最小 i ik w p 值由小到大之順序作為訂單之加工之順序,分別為 O1、O6、O5、 O4、O3、O2、O7,如表 3.4 所示: 表 3.4 排程順序說明表 O O1 O2 O3 O4 O5 O6 O7 i i w p1 5.29 69.12 62.61 17.17 11.09 9.38 105.4 i i w p2 18.54 78.52 44.86 15.03 12.61 12.11 80 加工順 序 1 6 5 4 3 2 7 步驟2及步驟3:si1 ≤s12,故選擇O1於M1加工且si1 =17分鐘;s61 ≤s62,故選擇 O6於M1加工且s61 =79分鐘,以此類推,O5於M2加工,s52 =83鐘; O4於M2加工,s42 =164分鐘;O3於M1加工,s31 =146分鐘;O2於M1 加工,s21 =249分鐘;O7於M2加工,s72 =208分鐘。如表3.5所示: 表 3.5 排程步驟說明表 O O1 O6 O5 O4 O3 O2 O7 pi1 17 62 73 96 67 103 58
1 i s 17 79 79 79 146 249 249 pi2 61 80 83 84 48 117 44 2 i s 0 0 83 164 164 164 208
步驟 4 及步驟 5:訂單之完工順序分別為 O1、O6、O5、O3、O4、O2及 O7。在本問題 中 2 7 = r n 不為整數,故 1] 4 2 7 [ + = = j L ,由於s31 − s52 =63大於 18 42 31− s = s ,因此 R1配送 O1、O5及 O6,t_start1 = s52 =83分鐘;R2則配
送 O2、O3、O4及 O7,t_start1 = s21 =249分鐘。
步驟 6:計算 Rj所負責配送之訂單的 i iab w d 值,再找出 O i中最小之 i iab w d 值,依照 Oi中最小之 i iab w d 值由小到大之配送順序如下: 第一輛車:O6、O5及 O1。
第二輛車:O4、O7、O3及 O7。如表 3.6 所示:
表 3.6 配送順序說明表 1 R R2 O O1 O5 O6 O2 O3 O4 O7 i b i w d0 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 i d7 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%左右;而當訂單數 為大量時,基因演算法之改善率已經攀升至 39%,改善效果可說是相當良好。 由此結果可清楚發現,隨著訂單數的增加,改善率也大幅度地增加。而當訂 單數固定時,隨著機台的增加,改善率只有呈現穩定且緩慢上升的趨勢,並 無太大的波動,如圖 4.2 所示。 二、在求解時間部分: 由圖 4.3 可清楚發現,當訂單數增加時,求解時間會呈現急速上升的趨 勢,如當訂單數為 20 筆時,只花了大概 2 分鐘的時間求解,但當訂單數增加 至 40 筆時,求解時間卻增加至 6 分鐘多,為 20 筆訂單數的 3 倍。若從另一 方面來探討,當機台數增加時,求解時間卻未如訂單數之增加而有所劇烈之 變動,幾乎都只增加 30 秒左右。 此現象證明了本研究所設計之基因演算法非常穩定並不因為機台的改變 而使改善率及求解時間受到太大的影響。 0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 10 20 40 80 120 訂單數 改善 率 2台機台 4台機台 8台機台 overall 圖 4.2 加工時間小於配送時間之改善率圖
0 200 400 600 800 1000 1200 1400 1600 1800 2000 10 20 40 80 120 訂 單 數 求解 時間 2台 機 台 4台 機 台 8台 機 台 overall 圖 4.3 加工時間小於配送時間之改善率圖 (單位:秒)
4.2.2 加工時間近於配送時間
本案例分析加工時間介於 200 至 500 分鐘之小於配送時間範圍之情況, 將三次的隨機試驗結果取其平均,來說明由基因演算法與 W_SPT 所得結果之差 異以及基因演算法在不同機台數及訂單數之求解時間,如表 4.2 所示。 表 4.2 加工時間近於配送時間結果分析表 機台數 訂單數 10 20 40 80 120 改善率 16.84% 11.88% 23.61% 25.11% 24.18% 2 求解時(秒) 9.57 119.29 352.85 888.80 1825.76 改善率 11.79% 25.29% 28.88% 26.58% 4 求解時(秒) 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 基因演算法於本小節之改善率及求解時間討論如下: 一、在改善率部分: 當機台數固定時,隨著訂單數的增加,改善率也大幅度地增加。如從小 量訂單之 11%至 16%左右提升至中量訂單之 27%,甚至高達 34%左右,改善 效果非常明顯。而當訂單數為 120 筆的大量訂單時,雖然其改善率比中量訂 單之改善率微微下滑,但改善效果依然相當不錯。而當訂單數固定時,改善 率與問題一相同,也只是隨著機台的增加而緩慢地成長,如圖 4.4 所示。 二、在求解時間部分: 由圖 4.5 可清楚發現,當訂單數為 20 筆時,只花了大概 2 分鐘的時間求 解,但當訂單數增加至 40 筆時,求解時間卻增加至 6 分鐘多,為 20 筆訂單 數的 3 倍多;而訂單數從 40 筆增加至 80 筆時,求解時間也增加了 3 倍左右, 與問題一幾乎相同。另一方面來探討,當機台數增加時,求解時間亦未如訂 單數之增加而有所劇烈之變動,甚至在大量訂單中,機台數從 2 台增加到 4 台時,求解時間也只增加了 4 秒。 0% 5% 10% 15% 20% 25% 30% 35% 40% 10 20 40 80 120 訂單數 改善率 2台機台 4台機台 8台機台 overall 圖 4.4 加工時間近於配送時間之改善率圖
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 基因演算法於本小節之改善率及求解時間討論如下: 一、在改善率部分: 在機台相同時,隨著訂單的增加改善率並未如前兩問題有大幅度的改 善,如圖 4.6 所示。如從小量訂單 16%左右的改善率提升至中量訂單之 24% 至 31%左右,甚至高達 34%左右,改善效果非常顯著。而當訂單數為 120 筆 的大量訂單時,雖然其改善率比中量訂單之改善率微微下滑,但改善效果依 然相當不錯。而在訂單固定時,改善率則與前兩問題相似,也都隨著機台之 增加而穩定且小幅度的成長。 二、在求解時間部分: 由圖 4.7 可清楚發現,此問題之求解時間依然與前兩問題相同,皆會隨 著訂單數之增加而大幅度地成長,且成長之空間也都與前兩問題相似。 0% 5% 10% 15% 20% 25% 30% 35% 40% 10 20 40 80 120 訂 單 數 改善 率 2台 機 台 4台 機 台 8台 機 台 overall 圖 4.6 加工時間大於配送時間之改善率圖
0 500 1000 1500 2000 2500 10 20 40 80 120 訂單數 求解 時間 2台機台 4台機台 8台機台 overall 圖 4.7 加工時間大於配送時間之改善率圖 (單位:秒)
4.3 總結
依本研究 4.2 節中三種模擬驗證的結果可將基因演算法之改善率及求解 時間結果如下: 一、在改善率部份 (1)機台方面: 由於本研究在生產排程方面是採用非等效平行機台,訂單在各 機台上加工時間皆不相等,因此當機台數較小時,會因機台數的限制而使得 訂單必須在有限機台下協調加工順序;反之,當機台數增加時,訂單於機台 加工之協調空間增加,使得基因演算法搜尋之最佳解有更加進步改善的效 用,因此在此三部份的模擬驗證中,當訂單數固定時,隨著機台數的增加基 因演算法之改善率亦增加,且平均每增加兩台機器,改善率也都增加 2%到 5%。 (2)、訂單方面:在三部份的模擬驗證中,當機台數相同時,改善率也隨著訂 單數的增加而呈現大幅度成長,最高甚至高達 36%,如圖 4.8 所示。此改善率隨著訂單數增加之原因一方面可看出本研究所設計之基因演算法的效果, 另一方面也有可能是因為 W_SPT 對於求解大量訂單的問題時效果較差。而在 訂單數為 120 筆時,基因演算法的改善率卻有減少的傾向,尤其是在加工時 間近於配送時間的第二部份,主要原因可能為基因演算法在解決本研究之問 題時,當訂單數超過 120 筆的情況下,其效率不如訂單數小於 120 筆時佳。 0% 5% 10% 15% 20% 25% 30% 35% 40% 10 20 40 80 120 訂單數 改善率 50-100 200-500 800-1000 圖 4.8 三種模擬之改善率比較圖 二、在求解時間部份 (1)、機台方面: 當訂單數相同時,由於機台的增加會使得訂單選擇加工機台 的組合方式亦增加,使得基因演算法在搜尋的空間上相對變大,所以尋優的 時間也會因此延長。但在此三種模擬驗證中,當每增加 2 台機台時,大致上 只增加了 30 至 40 秒的求解時間。由此可知,本研究所設計之基因演算法為 非常穩定並不因為機台的改變而使求解時間受到太大的影響。 (2)、訂單方面:在此三種模擬驗證中,當機台固定,訂單數由 10 筆增加至 20 筆時,求解時間皆增加了 10 倍;而當訂單數由 40 筆增加至 80 筆時,求 解時間增加也平均增加了 3 至 4 倍。如圖 4.9 所示,三種模擬驗證之求解時 間無論是成長趨勢或確切實際數值皆幾乎相同,此結果說明了本研究針對整 合供應鏈中生產排程與物流配送之問題所設計的基因演算法在求得最適解的
時間上,並不因訂單之加工時間與配送時間之間的大小關係而有所影響,因 此本研究所設計之演算法相當有穩定性。且本研究在後續也測試了 160 筆的 訂單數,其求解之結果以高達將近 3.5 小時,基於時間成本之考量,本研究 則只探討至 120 筆之訂單數。此結果皆顯示求解時間隨著訂單數的增加而大 幅度地成長,而此現象也符合 NP-HARD 問題會隨著訂單數增加而使求解時 間程指數成長的特性。 0 500 1000 1500 2000 2500 10 20 40 80 120 訂 單 數 求解時 間 50-100 200-500 800-1000 圖 4.9 三種模擬之求解時間比較圖 此三種不同模擬驗證對於基因演算法在尋求最適解之演化過程之差異 也是一個值得探討的議題。由於基因演算法之演化過程繁複,故只以第三次 試驗中 80 筆訂單數、8 台機台數尋優之情形為例,結果如圖 4.10 所示。三種 模擬驗證在尋優過程中第一次大幅度改善皆在 400 次的演化世代左右,而後 雖然改善速率較為緩慢但卻未陷入局部最佳解,此現象說明了本研究所設計 之演算法其所得之結果確實是全域最適解。
排程資料比較圖 0 1000000 2000000 3000000 4000000 5000000 6000000 1 471 941 1411 1881 2351 2821 3291 3761 4231 4701 世代 最佳解 50-100 200-500 800-100 圖 4.10 三種模擬之尋優過程圖
第五章 結論與未來展望
5.1 研究結論
放眼當今產業,供應鏈已邁向整合之趨勢發展,而傳統將上、下游分開 的供應鏈已不適用於現今產業之營運模式,因此必須有效率地重新規劃適合 現今產業營運之供應鏈整合模式。本研究著重於整合供應鏈中生產排程與物 流配送兩階段之最小總成本,利用基因演算法可快速尋優的特性,建構出一 套適合整合供應鏈中生產排程與物流配送兩階段模式,且此模式應用在模擬 之三種不同的案例上皆有相當不錯的成果。 根據本論文模式建立之過程,與其他整合供應鏈兩階段之研究相比較, 可歸納出本論文的貢獻如下: 1、 在求解方面:本研究針對整合供應鏈兩階段問題而設計之基因演算 法,無論在求解時間以及改善率上皆有非常顯著的效果,且不受所輸 入之資料不同而有所影響,有相當的穩定度,因此本研究所設計之演 算法非常適用在此類之問題上。 2、 在成本方面:有效控管成本是所有企業在從事生產活動最關切的議題 之一。供應鏈整合的擬定除了須滿足顧客需求,配合廠商本身資源外, 最重要的是能提升效率且降低訂單之完工成本,因此本研究考量總成 本之最小化,使企業能以最低之成本完成整合供應鏈之規劃。 3、 在學術方面:由於整合供應鏈之生產排程與物流配送兩階段並最小化 其總成本問題,是一個全新的研究領域,相關之中外文獻中尚未見到 使用演算法求解此問題,故本研究可供往後發展其他目標函數或整合 供應鏈中不同階段的相關研究之用。 4、 在實務方面:雖然本研究並非針對某特定企業,但由於現今產業競爭 日趨激烈,且消費者要求的服務水準逐漸提升,整合生產排程與物流配送兩階段的型式已是現今產業界之經營模式,且此現象將持續增 加,故本研究結果可供企業參考。