• 沒有找到結果。

以強化突變機制之基因演算法求解多目標彈性零工式工廠排程問題

N/A
N/A
Protected

Academic year: 2021

Share "以強化突變機制之基因演算法求解多目標彈性零工式工廠排程問題"

Copied!
45
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授: 蔣宗哲 博士. 以強化突變機制之基因演算法求解多目標彈性 零工式工廠排程問題. A Genetic Algorithm with Enhanced Mutation for Multiobjective Flexible Job Shop Scheduling Problems. 研究生: 中華民國. 陳弘奇. 一○二. 年. 撰 七. 月.

(2) 誌謝 在這不算短的三年碩士生涯中,有許多人陪著我一起度過。畢業在即,在此 獻上最誠摯的謝意。 最最重要感謝的是我的指導教授 蔣宗哲老師。謝謝老師在研究的過程中總 是不厭其煩的說明、提點,給予我研究的方向及靈感。也謝謝老師不斷的包容我 延宕的進度,讓我得以順利參與口試完成學業。老師在研究及生活上良師益友的 對待,學生沒齒難忘。同時感謝國立成功大學資訊工程系的 莊坤達教授以及真 理大學資訊工程系的 梁祐銘教授於百忙之中前來參加學生的口試審查。老師們 的建議讓學生有更進一步的思考,逐漸完善研究的內容。 再來最要感謝我的父母和家人,謝謝你們對我無怨無悔的付出。因為有你們 的支持與體諒,我才能無後顧之憂的完成碩士學業。很抱歉花了那麼長的時間, 讓你們擔心了。 接著我要感謝在實驗室裡的夥伴。謝謝志翔、政南、巍懷學長以及孝柔學姐 讓我能夠快速的融入實驗室,了解研究的主題;謝謝裕傑、鼎基和維新一同修課 一同打鬧,讓我白天不無趣,晚上也熱鬧;謝謝大維、少文、冠廷、麒安、泳陖、 仁一在平常時一起遊戲一起嘴炮,排遣了許多無聊;水深火熱時互相砥礪互相幫 忙。因為有你們在,讓我充實的度過最後的學生生活。 最後要感謝彥之,妳的陪伴就是我最大的動力。. i.

(3) 中文摘要 如何有效分配資源以及提高生產效率、降低生產成本,是製造業一直以來想 要達到的目標,這就是為何十幾年來生產排程問題可以如此的熱門。排程問題大 部分都屬於組合最佳化問題,零工式工廠排程問題(Job-shop Scheduling Problem, JSP)便是其一。由於此類問題的複雜度很高,通常難以求得最佳解。彈性零工 式工廠排程問題(Flexible Job-shop Scheduling Problem, FJSP)則為零工式工廠排 程問題的延伸,主要透過分配製程的作業機台(路由問題),以及變換製程在機 台上的順序(排序問題)來最小化最大完工時間(makespan) 、機台總工作量(total workload)和最大機台工作量(maximum workload)。 本論文所提出的演算法主體為基因演算法(Genetic Algorithm, GA),搭配交 換關鍵製程以及重新插入關鍵製程來做突變,並且強化插入關鍵製程的方式。而 為了求得在多個目標上的最佳化,本論文採用柏拉圖分級法(Pareto ranking)當 作選擇機制,目的在於找到柏拉圖最佳解(Pareto optimal solutions)。 實驗的問題為 BR data 的十個測試問題。本論文提出的演算法在非凌越解 (non-dominated solutions)個數較多的問題中能大幅度更新目前的已知非凌越 解。. 關鍵字:基因演算法、多目標、柏拉圖最佳化、彈性零工式工廠排程問題。 ii.

(4) 目錄 附圖目錄......................................................................................................................... v 附表目錄........................................................................................................................ vi 第一章. 緒論................................................................................................................. 1. 1.1. 研究背景與動機............................................................................................. 1. 1.2. 多目標彈性零工式工廠排程問題(MOFJSP) .......................................... 1. 1.3. 多目標最佳化問題......................................................................................... 3. 1.4. 基因演算法..................................................................................................... 5. 1.5. 研究方法與貢獻............................................................................................. 8. 1.6. 全文架構......................................................................................................... 8. 第二章. 文獻探討......................................................................................................... 9. 2.1. 路由問題......................................................................................................... 9. 2.2. 排序問題....................................................................................................... 12. 第三章. 強化突變機制之基因演算法....................................................................... 14. 3.1. 染色體編碼................................................................................................... 15. 3.2. 染色體解碼................................................................................................... 16. 3.3. 初始化族群................................................................................................... 17. 3.4. 適應值計算與選擇機制............................................................................... 19. iii.

(5) 3.5. 交配及突變................................................................................................... 20. 3.6. 刪除重複解................................................................................................... 23. 3.7. 強化突變機制............................................................................................... 24. 3.8. 突變機制統整............................................................................................... 28. 第四章. 實驗數據與效能評比................................................................................... 29. 4.1. 測試問題....................................................................................................... 29. 4.2. 參數設定與實驗環境................................................................................... 29. 4.3. 比較對象....................................................................................................... 30. 4.4. 效能指標....................................................................................................... 31. 4.5. 效能比較....................................................................................................... 32. 第五章. 結論與未來展望........................................................................................... 34. 參考文獻....................................................................................................................... 36. iv.

(6) 附圖目錄 圖 1:凌越關係.............................................................................................................. 4 圖 2:基因演算法流程圖.............................................................................................. 6 圖 3:AB STRING 範例 ................................................................................................ 11 圖 4:染色體編碼範例................................................................................................ 15 圖 5:密集度範例........................................................................................................ 19 圖 6:ASX 範例 .......................................................................................................... 20 圖 7:POX 範例 .......................................................................................................... 21 圖 8:關鍵路徑範例.................................................................................................... 21 圖 9:交換關鍵製程範例............................................................................................ 22 圖 10:COS+COI 求解 MK 09 的非凌越解與已知非凌越解 ................................. 24 圖 11:COS+WTCOI 和 COS+COI 求解 MK 09 的非凌越解 .............................. 25 圖 12:COS+WTCOI 和 COS+WMCOI 求解 MK 09 的非凌越解 ....................... 26 圖 13:排程範例.......................................................................................................... 27 圖 14:COS+WTCOI 和 COS+EWTCOI 求解 MK 09 的非凌越解 ...................... 28 圖 15:各演算法在 MK 06 的非凌越解分布 ............................................................ 33. v.

(7) 附表目錄 表 1:零工式工廠排程問題範例.................................................................................. 2 表 2:AL 範例 ............................................................................................................... 9 表 3:ASSIGNMENT RULE 1 範例 ................................................................................. 17 表 4:ASSIGNMENT RULE 2 範例 ................................................................................. 17 表 5:關鍵製程的執行時間表.................................................................................... 27 表 6:突變機制比較表................................................................................................ 28 表 7:測試問題............................................................................................................ 29 表 8:效能指標的範例................................................................................................ 31 表 9:各演算法與已知非凌越解的效能比較............................................................ 32. vi.

(8) 第一章 緒論 1.1. 研究背景與動機 在製造業中,如何有效的分配資源,使工作能快速完成一向是業者最主要的. 目的;然而除了完工時間,成本也是一個考量的因素。在生產線上,設備的維護 以及更換都是一筆開銷。如何能降低這筆開銷,同時又能維持生產的效能,多目 標的選擇應因而生。 因為有這種需求,多目標的排程問題在近幾年來已逐漸成為熱門。有許多的 學術研究都在探討如何能提供一些在不同目標下都還不錯的解,供使用者能自行 選擇。不同於單目標的解決方式,如何維持一個解在各個目標下的品質,將是研 究多目標問題最主要的方向。. 1.2. 多目標彈性零工式工廠排程問題(MOFJSP) 一個彈性零工式工廠排程問題可以描述如下:有 n 組零件(job) ,表示為 Ji. (i = 1…n) ,m 座機台(machine) ,表示為 Mk(k = 1…m) ,每一組零件 Ji 皆有 ni 個有序的製程(operation) ,表示為 Oij(j = 1…ni) 。一個製程只可在其可行的 機台上執行,若每一個製程都可在任一座機台上執行,則稱為完全彈性(total flexible);反之則稱為部份彈性(partial flexible)。製程在不同的機台上有不同的 執行時間(processing time),記作 pijk,表示 Oij 在 Mk 上的執行時間。表 1 為. 1.

(9) 一零工式工廠排程問題的範例,數字部份為製程在不同機台上的執行時間。下表 中,左邊為完全彈性問題,右邊為部份彈性問題,在不可行機台上的作業時間則 記為 ∞。 表 1:零工式工廠排程問題範例. J1 J2 J3. O11 O12 O13 O21 O22 O31 O32. M1 7 4 9 2 4 8 3. M2 1 8 5 5 7 6 5. M3 2 5 6 2 1 3 5. M4 8 3 3 1 2 5 3. J1 J2 J3. O11 O12 O13 O21 O22 O31 O32. M1 7 4 ∞ ∞ 4 8 3. M2 ∞ 8 5 5 ∞ 6 5. M3 2 5 ∞ 2 ∞ 3 ∞. M4 ∞ 3 3 1 ∞ 5 3. 每一組零件都必須按照製程的順序在機台上執行,當一個製程開始執行後則 不可中斷,而同零件的下一個製程則必須等到目前的製程完成後才可以開始執行。 一座機台同一時間只可執行一個製程,當製程完成後可以得到一個完工時間 (completion time),記作 Cij,表示製程 Oij 的完工時間。 以單目標求解彈性零工式工廠排程問題時,主要是最佳化最大完工時間 (makespan, CM) ;多目標則會加入另兩個目標值,機台總工作量(total workload, WT)和最大機台工作量(maximum workload, WM)。分別定義如下: CM  max Cini. (1). i 1...n. WT .  p. k 1...m Oij Ok. WM  max. k 1...m. ijk. p. Oij Ok. ijk. ,Ok 表示在 Mk 上執行的製程集合. (2). ,Ok 表示在 Mk 上執行的製程集合. (3). 2.

(10) 一個彈性零工式工廠排程問題可分為下面兩個子問題: (1) 路由問題(routing problem):分配每個製程的執行機台。不同的分配將 直接影響機台總工作量和最大機台工作量。 (2) 排序問題(sequencing problem):改變同一座機台上的製程順序。好的 排序有助於縮短最大完工時間。 這兩個子問題的結果會相互影響,導致問題的複雜度極高。又根據問題的不 同,各個目標值之間也會產生不一樣的衝突關係(trade-off)。因此如何在兩個子 問題中找到平衡的組合使得各目標都能有良好的表現就是求解多目標彈性零工 式工廠排程問題的目的。. 1.3. 多目標最佳化問題 多目標最佳化問題可以簡單表示如下: minimize / maximize F ( x)   f1 ( x),..., f m ( x) ,x   T. (4). ,x 為決策空間中的一個解;F(x)  代表決策空間(decision variable space) 表示 x 所能求出的 m 個目標值所組成的向量,存在於目標空間(objective space), 記作 R m 。用多目標彈性零工式工廠排程問題來說明就是,x 為一個包含所有製 程的序列,根據這個序列的順序將製程一一放上其所分配到的機台上執行,之後 得到的目標值最大完工時間就是 f1(x),機台總工作量為 f2(x),最大機台工作量為 f3(x),目標空間就是一個三維的空間,包含所有可能的目標值組合。而解題的目 的就是找到一個製程的序列可以求得最小的目標值。 3.

(11) 在決策空間上的解的好壞,我們透過凌越關係(dominate)來判斷。假設在 最小化的問題中存在兩個解 u 和 v,若 u 所求出的目標值都不大於 v 的目標值, 且至少有一個目標值小於 v 的目標值,我們稱 u 凌越 v。關係式表示如下: i  {1...m}  f i (u)  f i (v) and i  {1...m}  f i (u)  f i (v)  u dominates v. (5). 圖 1 為在目標空間中凌越關係的表示圖。凡是在 A 所圍出的矩形區域中的 點,都會被 A 所凌越,意即 A 凌越 B、C、D。. f2. B. D C. A f1 圖 1:凌越關係. 當一個解不會被所有的其他解凌越時,我們稱之為柏拉圖最佳解(Pareto optimal solution)或非凌越解(non-dominated solution)。柏拉圖最佳解所構成的 集合稱為柏拉圖集合(Pareto set) ,其對應到目標空間上的點集合稱為柏拉圖前緣 (Pareto front) ,多目標最佳化的目的即在求得柏拉圖前緣。但是要找到柏拉圖前 緣的全部的點是非常困難的,我們只能盡量找到越接近的點越好,且構成的前緣 越完整越好。. 4.

(12) 目前保留最佳解的方法大致可分為三類: (1) 階級式(lexicographical):訂定目標值的優先權,優先權高的目標值越 好的解越先保留,然後依序往下判斷。 (2) 合併函式(aggregation function):根據著重的程度給予目標值不同的權 重,然後利用線性加權法(linear weighted sum)求出加權值總和,總和 越高的解越先保留。 (3) 柏拉圖法:保留解集合中的非凌越解。 不同的方法會找到不一樣的最佳解,如階級式和合併函式找到的解,其在目 標空間上所對應的點就會往優先權高或權重值較重的目標值靠近;而柏拉圖法則 會同時往多個目標方向前進。使用者可以根據自己解題的需求選擇適合的方法。 如前面所述,我們希望能在目標空間上找到越靠近柏拉圖前緣且越完整的點 集合越好;然而多目標最佳化問題的決策空間通常相當龐大且複雜,想要找到優 秀的最佳解就需要一個有效率的演算法來實現。演化式演算法在求解最佳化問題 的領域已發展多年,其群體式(population-based)的搜尋方式在大規模的搜尋空 間中顯得相當有效率。一些著名的多目標演化式演算法有 NSGA II(Deb et al., 2002)、SPEA2(Zitzler et al., 2002)、MOEA/D(Li and Zhang, 2009)等。. 1.4. 基因演算法 基因演算法(Genetic Algorithm, GA)為演化式演算法的一類,同樣為群體式. 的搜尋方法。初始解為一群個體(individual)所組成的族群(population),每個 5.

(13) 個體擁有不同的基因序列(根據問題所產生的編碼)。藉由模擬生物的演化,包 括個體間的交配(crossover)及個體自身的突變(mutation)來改變基因的構成, 最終透過環境選擇(environmental selection)保留優秀的個體繁衍至後代。. 初始化族群. 評估族群 更新代數 繁殖. 環境選擇. 停止? 否 是 結束. 圖 2:基因演算法流程圖. 圖 2 為基因演算法的簡單流程,大致可分為下列幾項: (1) 初始化族群:基本上為隨機產生個體,直到達到族群的個數為止。個體 的基因序列會根據問題而有不同的編碼方式,常見的編碼有二元編碼 (binary code)和實數編碼(real code)。 (2) 評估族群:有了基因編碼,我們可以根據問題定義求出個體的目標值, 然後由目標值透過評估函式(fitness function)計算出個體的適應值 6.

(14) (fitness) ,適應值越高的個體就越有機會保留至後代。評估函式可以根 據 1.3 節中提到的保留最佳解的三種方法設計,使用合併函式著名的演 算法有 MOEA/D;柏拉圖法有 NSGA II 等。 (3) 繁殖:主要流程為親代選擇(mating selection) ,複製親代,然後進行交 配及突變後產生新的子代。選擇擁有良好基因的親代有較大的機會產生 優秀的子代,目前常用的親代選擇方法有競爭法(binary tournament) (Horn and Nafpliotic, 1993)和輪盤法(roulette wheel) (Goldberg, 1989)。 競爭法為隨機選出數個親代,保留最好的,然後重複作法直到選出交配 所需的親代個數。輪盤法為根據親代的好壞程度給予機率,越好的親代 越有機會被選到。在完成親代選擇後,會將親代複製一份作為新的子代, 然後使用交配運算子將不同親代的部份基因特性加入子代中。做完交配 後的子代有機率會進行突變,小幅度改變個體自身的基因。 (4) 環境選擇:族群經過繁殖後,族群數量會增加,這時必須透過環境選擇 決定存活到下一代的個體,通常保留的數量為原本的族群個數。方法有 直接取代親代或選擇適應度較好的個體等。 上述流程 (3) (4) 完成後我們稱為一代(generation) 。基因演算法通常透過設 定代數的方式來決定演算法執行的時間。. 7.

(15) 1.5. 研究方法與貢獻 本論文提出兩個新的突變機制,並針對其隨機性做有目的性的強化,使基因. 演算法可以在各個目標上都能有不錯的搜尋能力。我們的演算法在 BR data (Brandimarte, 1993)中非凌越解個數較多的測試問題上,可以大幅度更新由 Chiang 和 Lin(2013)發表的論文所提供的已知非凌越解集合。. 1.6. 全文架構 在接下來的論文中,第二章將會分別介紹解決彈性零工式工廠排程問題的兩. 個子問題的各種演算法;第三章將詳細的說明我們所提出的基因演算法,包括新 的突變機制以及根據解題能力的不足所做的強化;第四章則將我們研究發展中的 各個演算法所能找到的非凌越解與目前的已知非凌越解合併並觀察非凌越解的 更新狀況;第五章則是結論與未來展望。. 8.

(16) 第二章 文獻探討 前面提到彈性零工式工廠排程問題主要可分為路由問題和排序問題兩個子 問題,本章節將簡單介紹各種演算法在解決兩個子問題上的作法。. 2.1. 路由問題 演化式演算法在解決路由問題最常使用的方法就是 Approach by localization. (AL)(Kacem et al, 2002),此作法於分配機台的基本概念就是最小化每座機台 的工作量,表 2 為操作範例。 表 2:AL 範例. J1 J2 J3. J1 J2 J3. O11 O12 O21 O22 O23 O31. (a) M1 1 3 4 2 7 4. O11 O12 O21 O22 O23 O31. (c) M1 1 4 5 3 8 5. M2 3 5 1 3 6 5 M2 3 5 1 3 6 5. M3 4 2 1 6 3 2. J1 J2 J3. M3 4 2 3 8 5 4. J1 J2 J3. O11 O12 O21 O22 O23 O31. (b) M1 1 4 5 3 8 5. M2 3 5 1 3 6 5. M3 4 2 1 6 3 2. O11 O12 O21 O22 O23 O31. (d) M1 1 4 5 3 8 5. M2 3 5 1 4 7 6. M3 4 2 3 8 5 4. 先根據表中的順序選擇最小工作量(O11, M1)= 1,將製程 O11 分配給機台 M1。 為了最小化機台的工作量,我們將已分配完成的製程工作量累加至尚未分配的製 程在同機台上的執行時間,這樣可以保證在接下來的分配中,我們會優先將製程 9.

(17) 分配給目前工作量最小的機台,藉以達到最小化機台工作量的目的。重複相同步 驟直到所有製程都分配完成。. Pezzella 等人(2008)提供了一個交配機制與兩個突變機制來解決路由問題, 分別為 Assignment crossover(ASX) 、Assignment Mutation 和 Intelligent Mutation。 前兩者都是隨機改變機台的分配,ASX 是針對兩個親代間互相交換相同製程的 執行機台;Assignment Mutation 是隨機改變自己製程的機台分配。而 Intelligent Mutation 則是選擇工作量最大的機台,隨機選擇一個在這機台上執行的製程,然 後重新分配該製程到工作量最小的機台。. Yazdani 等人(2010)同樣提供一個 Intelligent Mutation,作法與上述的突變 相似,只是選擇的機台為完工時間最大的機台,並將該機台上的隨機一個製程重 新分配到完工時間最小的機台。. Xia 和 Wu(2005)提出粒子群最佳化演算法(Particle Swarm Optimization Algorithm, PSO)來解決路由問題並搭配模擬退火法(Simulated Annealing, SA) 或禁忌搜尋法(Tabu Search, TS)解路由問題。粒子群演算法解決路由問題最常 使用的編碼方式為雙染色體編碼(AB string) ,意即將製程的機台分配與排序分開 儲存。如圖 3 所示,A string 為製程依序的分配機台;B string 為製程的執行順序。. 10.

(18) A. 1. 3. 3. 2. 1. 1. 2. O11 O21 O22 O31 O32 O41 O42 B. 2. 3. 1. 4. 4. 2. 3. O21 O31 O11 O41 O42 O22 O32 圖 3:AB string 範例. 更新機台分配的作法為:根據每個製程,找出在族群中該製程最常分配的機 台編號,計算與現在機台編號的差值;以及找出該製程在自己的演化過程中最常 被分配的機台編號,同樣算出差值。之後給予兩個差值不同的權重值並計算加權 值總和,最後與自己現在的機台編號加起來就成為新的機台分配。該作法由於會 產生非整數值,所以必須以四捨五入來整數化。權重值的不同表示演算法的搜尋 方向是往區域最佳解(local optimum)或往全域最佳解(global optimum)。. Xing 等人(2009)提出蟻群最佳化演算法(Ant Colony Optimization, ACO) 來記錄演化過程中各機台分配(Oij, Mk)的選擇機率。一開始把每個機台分配的 機率設為相同的值,演化過程中按照機率的高低隨機選擇機台的分配,機率越高 越容易被選到。若選到機台分配(O12, M1),則把 O12 的執行機台設為 M1。根 據解的好壞來增加或減少其機台分配的機率。. Mastrolilli 和 Gambardella ( 2000 ) 為 了 減 少 在 區 域 搜 尋 中 的 鄰 域 解 (neighborhood solution)的數量,提出了一個鄰域函式:重新插入關鍵製程。排 程中最長的路徑稱為關鍵路徑(critical path) ,而在關鍵路徑上的製程稱為關鍵製 程(critical operation) 。此方法為:隨機選擇一個關鍵製程,並將它重新插回所有 11.

(19) 機台的特定位置,這些特定位置的算法將在第三章作詳細的說明。Mastrolilli 和 Gambardella 證明了選擇這些位置插回製程將不會違反問題的限制且包含最佳解。 該鄰域函式不只會改變機台分配,同時也會改變製程的排序。. Zribi 等人(2007)使用了分支定界法(branch-and-bound algothim)決定機 台分配。分支定界法為一種暴力展開的方式,針對已排序的製程,重新尋找最佳 的分配機台方式。過程中透過上界(upper bound)和下界(lower bound)去除一 些確定無法成為最佳解的分支來加快搜尋。. 2.2. 排序問題 Kacem 等人(2002)的演算法在使用 AL 法解決路由問題後,使用 SPT. (shortest processing time)派工法則(dispatching rules)來解決排序問題。對目 前可進行排程的製程中,選擇執行時間最短的製程最先進行排程。. Pezzella 等人(2008)在產生初始解的排序問題中使用了三種派工法則:隨 機選擇零件,選擇剩餘工作量最大的零件和選擇剩餘製程最多的零件進行排程。. Pezzella 等人(2008)同樣還提供了一個交配機制 POX crossover與一個突變 機制 PPS mutation。POX crossover 為隨機選擇一零件並保留該零件中所有製程 在親代中的位置,剩餘的製程則換成另一個親代的順序;PPS mutation 為隨機選 擇一個製程,隨機平移到另一個合法的位置上。合法的位置為在同零件的前一個 12.

(20) 製程之後且在同零件的後一個製程之前。. Xing 等人(2009)提出的蟻群最佳化演算法同樣也可使用在排序問題上。 其記錄的對象為選擇派工法則的機率。在演化過程中,越能產生優良解的派工法 則就有越高的機率會再使用。. Nowicki 和 Smutnicki(1996)提出交換關鍵製程的鄰域函式。連續在同一 台機器上執行的關鍵製程,稱為關鍵區塊(critical block)。隨機選擇一個關鍵區 塊,若關鍵區塊為關鍵製程的第一個(最後一個)區塊,則交換其最後面(最前 面)的兩個關鍵製程,若為中間的區塊,則前兩個或後兩個製程都可交換。. 上面解決路由問題以及排序問題的做法皆可互相搭配組合,最主要的關鍵在 於設計一個有意義且有目的性的演算法流程來使用。很多演算法使用的方式都很 類似,但透過一個小小的機制或加入既有的知識,或許都可使演算法發揮更高的 效率。. 13.

(21) 第三章 強化突變機制之基因演算法 本章節將會詳細的介紹我們所提出的強化突變機制之基因演算法。 首先在執行演算法之前,必須先將測試問題的資料作處理。由於 BR data 的 十個問題皆為部份彈性問題,所以會有製程無法在某些機台上執行的狀況。針對 這些機台無法執行的製程,我們將其執行時間設為一個夠大的數字,以避免演算 法在執行過程中做出錯誤的分配。 A.. 演算法的輸入資訊: (1) 彈性零工式工廠排程問題的資訊,包含零件個數、機台數以及各製程在 各機台上的執行時間。 (2) 族群個數 Npop。 (3) 執行代數 T。 (4) 各個交配運算以及突變運算的執行機率。 (5) 刪除重複解的突變次數 c。. B.. 輸出資訊: 執行完 T 代數後,族群中的非凌越解的目標值(objective values)。. 強化突變機制之基因演算法的流程如下: (1) 初始化族群:產生 Npop 個個體並計算其目標值。將演化代數 t 設為 1。 (2) 評估族群:本論文採用 NSGA II 演算法計算適應值。 14.

(22) (3) 繁殖:使用二元競爭法選擇親代,複製產生新的子代,然後執行交配及 突變運算並計算目標值。重複執行直到產生 Npop 個子代為止。 (4) 環境選擇:將親代與子代結合成數量為 2 Npop 的族群並計算適應值,然 後選擇 Npop 個適應值較好的個體。 (5) 刪除重複解:檢查環境選擇後保留下來的個體,若有目標值完全相同的 個體,則將其中一個執行 c 次的突變。 (6) 終止條件:判斷 t 是否等於設定的執行代數 T,若是則停止演算法,輸 出族群中的非凌越解的適應值;不是則將 t 設為 t+1,然後回到步驟 (3)。. 3.1. 染色體編碼 本論文的染色體編碼方式為任務排序列表表示法(task sequencing list). (Pezzella et al. 2008) 。此表示法的一個單位是由三個位元(i, j, k)所構成,其中 i 為零件的編號,j 為製程的編號,k 為機台的編號, (i, j, k)就代表製程 Oij 會 在機台 Mk 上執行。一個染色體將被表示成由數個三位元組所組成的序列,序列 的順序代表製程執行的優先度,排在越前面的製程有越高的優先權。 (2, 1, 2). (1, 1, 2). (2, 2, 1). (2, 3, 3). (3, 1, 3). 圖 4:染色體編碼範例. 圖 4 為一個染色體的編碼。其中 O21 和 O11 都會在 M2 上執行,但由於 O21 的位元組排在較前面,所以 O21 有較高的優先權。. 15.

(23) 3.2. 染色體解碼 根據染色體的編碼資訊,我們先將製程分配到各個機台上,然後使用 GT 演. 算法(Giffler and Thompson, 1960)進行解碼以及計算目標值。這裡需注意,將製 程分配到機台上必須滿足問題的基本限制:同一零件的製程必須按照順序執行, 且必須等到上一個製程完成後才可開始執行。GT 演算法的流程如下: (1) 找到最早完工時間(earliest completion time)最小的製程,將執行此製 程的機台設為目標機台 m*,完工時間記為 ect。 (2) 找到所有在 m* 上執行且最早開始執行時間小於 ect 的製程,將他們加 入到衝突集合中。 (3) 在衝突集合中找出優先權最高的製程進行排程。 (4) 更新製程的最早開始執行時間以及最早完工時間。(需要更新的製程為 在 m* 上執行的製程以及在步驟 (3) 中進行排程的製程,其所屬的零件 的下一個製程) (5) 如果還有未排程的製程,回到步驟 (1);沒有則結束 GT 演算法,並根 據排程的順序更新染色體的編碼順序。 假如我們直接按照原本染色體的順序進行排程,則有可能會讓原本可以很早 開始執行的製程,卻因為在染色體中的排序較後面而延誤執行,這可能會造成最 大完工時間增加。因此透過 GT 演算法可以將染色體的編碼更新成正確的順序, 並求得正確的目標值。 16.

(24) 3.3. 初始化族群 為了降低機台工作量同時又要增加機台分配的多樣性,在產生初始解的路由. 問題上採用了 AL 演算法的延伸方法,Assignment Rule 1 和 Assignment Rule 2。 表 3:Assignment Rule 1 範例. J1 J2 J3. J1 J2 J3. O11 O12 O21 O22 O23 O31. (a) M1 1 3 4 2 7 4. M2 3 5 1 3 6 5. M3 4 2 1 6 3 2. O11 O12 O21 O22 O23 O31. (c) M1 1 4 5 3 8 5. M2 3 6 1 4 7 6. M3 4 2 1 6 3 2. J1 J2 J3. J1 J2 J3. O11 O12 O21 O22 O23 O31. (b) M1 1 4 5 3 8 5. M2 3 5 1 3 6 5. M3 4 2 1 6 3 2. O11 O12 O21 O22 O23 O31. (d) M1 1 4 5 3 8 5. M2 3 6 1 4 7 6. M3 4 2 1 8 5 4. O21 O22 O23 O31 O11 O12. (b) M3 1 7 4 3 5 3. M1 4 2 7 4 1 3. M2 1 3 6 5 3 5. O21 O22 O23 O31 O11 O12. (d) M3 1 7 4 6 8 6. M1 4 2 9 6 3 5. M2 1 3 6 5 3 5. 表 4:Assignment Rule 2 範例. J2 J3 J1. J2 J3 J1. O21 O22 O23 O31 O11 O12. (a) M3 1 6 3 2 4 2. M1 4 2 7 4 1 3. M2 1 3 6 5 3 5. O21 O22 O23 O31 O11 O12. (c) M3 1 7 4 3 5 3. M1 4 2 9 6 3 5. M2 1 3 6 5 3 5. J2 J3 J1. J2 J3 J1. 17.

(25) (1) Assignment Rule 1:如表 3 所示,找到表中工作量最小的值 1,根據表中 工作和機台的順序選擇(O11, M1) ,把 O11 分配給 M1,然後更新在 M1 上尚未分配機台的製程的工作量,更新方法為加上 M1 執行 O11 的工 作量,執行完後如表 (b)。然後再次尋找最小的工作量(O21, M2)= 1, 將 O21 分配給 M2,以此類推,直到所有製程都分配到機台。 (2) Assignment Rule 2:如表 4 所示,改變製程和機台的順序,然後執行原 始的 AL 法即可。由於順序不同,在最小工作量相同的情況下,選到的 分配組合就會不一樣,藉此增加分配的多樣性。. 處理完路由問題後,排序問題我們使用派工法則(dispatching rules) 。常見的 派工法則有: (1) 隨機排序:隨機選擇一個零件進行排序。 (2) 最多剩餘工作量:選擇剩餘工作量最大的零件進行排序。 (3) 最多剩餘製程數:選擇尚未排序的製程數量最多的零件進行排序。 上述選擇零件進行排序指的是將該零件中尚未排序的第一個製程進行排序。 其他還有最少剩餘工作量、最少剩餘製程數、執行時間最長、執行時間最短等不 同的派工法則。 本論文為了增加初始族群的多樣性,給予各種方法不同的選擇機率。路由問 題中,Assignment Rule 1 為 10%,Assignment Rule 2 為 90%;排序問題中,隨機 排序 20%,最大剩餘工作量 40%,最多剩餘製程數 40%。 18.

(26) 3.4. 適應值計算與選擇機制 本論文使用 NSGA II(Deb et al., 2002)演算法來計算適應值。NSGA II 主. 要透過柏拉圖法將族群中的個體劃分階級(rank) 。方法為:先找出族群中的非凌 越解,設為 rank 1。之後將非凌越解從族群中移出,再從剩下的族群中找出新的 非凌越解,設為 rank 2;以此類推,直到所有個體都被劃分階級。階級越小的解 代表其目標值越接近柏拉圖前緣,所以適應值越高。 同一階級中的解的好壞,則是比較密集度距離(crowding distance)。如圖 5 所示,先將同階級中的個體依照任一目標值進行排序,個體的密集度距離就是在 目標空間中其前後一個點之間的距離。密集度距離越大表示該個體所找到的目標 值空間的區域越分散,越有機會拓展找到的前緣,因此給予越高的適應值。但是 邊界解(任一目標值為最佳的個體)無法透過上述的方式計算密集度距離,而在 我們希望能拓展前緣的目的下,邊界解不可或缺,因此我們會給予邊界解在其階 級中最高的適應值。. f2. f1 圖 5:密集度範例 19.

(27) 基因演算法過程中有兩種選擇機制:親代選擇和環境選擇。親代選擇是用來 選出參與交配的個體,我們使用二元競爭法實作。先隨機選出兩個個體,保留適 應值較高的,接著重複動作直到選出足夠的親代。環境選擇則是在完成繁殖後從 Npop 個親代及 Npop 個子代裡面選出適應值較高的 Npop 個個體存活至下一代。 這種選擇方式屬於(    )機制,本論文中     Npop。. 交配及突變. 3.5. 由於染色體的編碼方式同時包含了機台分配和製程排序的資訊,所以交配和 突變的運算子必須要有改變機台和改變排序的能力。 本論文使用的交配運算子有: (1) Assignment Crossover(ASX):隨機選取數個製程,並互相交換他們在 親代中所分配到的工作機台。如圖 6。 (2) Precedence Preserving Order-based Crossover (POX):隨機選擇一個零 件,保留這個零件的所有製程在親代中的位置。剩餘的製程則與另一個 親代做交換,並維持它們在另一個親代中的排序。如圖 7。 以上兩種交配運算隨機選擇一種使用。. 1,1,1. 1,2,1. 2,1,2. 3,1,3. 2,2,3. 1,3,1. 3,2,2. 1,1,1. 1,2,3. 2,1,2. 3,1,2. 2,2,2. 1,3,3. 3,2,2. 1,1,2. 2,1,1. 2,2,2. 1,2,3. 3,1,2. 1,3,3. 3,2,2. 1,1,2. 2,1,1. 2,2,3. 1,2,1. 3,1,3. 1,3,1. 3,2,2. 圖 6:ASX 範例. 20.

(28) 1,1. 2,1. 3,1. 1,2. 2,2. 1,3. 3,2. 2,3. 1,1. 2,1. 2,2. 1,2. 2,3. 1,3. 3,1. 3,2. 1,1. 2,1. 1,2. 2,2. 2,3. 3,1. 1,3. 3,2. 1,1. 2,1. 1,2. 3,1. 2,2. 3,2. 1,3. 2,3. 圖 7:POX 範例. 本論文提出兩個新的突變運算子,交換關鍵製程(COS)和重新插入關鍵製 程(COI) 。前者原本為 Nowicki and Smutnicki(1996)提出的禁忌搜尋法中的鄰 域函式(neighborhood function),後者為 Mastrolilli 和 Gambardella(2000)提 出的具有效率的鄰域函式。我們嘗試將它們拿來做為突變運算子並期待它們能在 基因演算法中發揮強力的搜尋能力。 圖 8 為一排程的範例。其中最長的路徑稱為關鍵路徑(critical path) ,為圖中 的 O11、O12、O22、O23 所構成的路徑,而這四個製程則稱為關鍵製程(critical operations)。連續在同一座機台上執行的製程組稱為關鍵區塊(critical blocks), 如下圖中的(O11)、(O12, O22)和(O23)。改變關鍵製程的排序或機台分配對降 低最大完工時間是相當有效率的。. M1. O21. M2. O11. O32. O13. O31. O33. O12. M3. O23. O22 t. 0. 1. 2. 3. 4. 5. 6. 圖 8:關鍵路徑範例. 21. 7. 8.

(29) (1) 交換關鍵製程(Critical Operation Swap, COS):此作法為交換關鍵區塊 上的關鍵製程。隨機選擇一關鍵區塊,若關鍵區塊有兩個以上的關鍵製 程,則進行製程的交換。交換的方法為:若選到的關鍵區塊為關鍵路徑 上的第一個(最後一個)區塊,則交換區塊上的最後面(最前面)兩個 製程;若是在中間的區塊,則隨機選擇最前面兩個製程或最後面兩個製 程做交換。圖 9 為 O22 和 O23 交換後的排程,最大完工時間更新為 7。. M1. O21. M2. O11. O32. O13. O31. O33 O22. M3. O23. O12 t. 0. 1. 2. 3. 4. 5. 6. 7. 8. 圖 9:交換關鍵製程範例. (2) 重新插入關鍵製程(Critical Operation Reinsertion, COI):在執行突變之 前,必須先計算所有製程 Oij 的 sij 和 tij 值。sij 為 Oij 的最早開始執 行時間;tij 為最大完工時間減去 Oij 的最晚完工時間。計算完 sij 和 tij 後,隨機選擇一個關鍵製程 Oxy,並計算 sxy* 和 txy*,sxy* 為 Ox(y-1) 的 最早完工時間;txy* 為最大完工時間減去 Ox(y+1) 的最晚開始執行時間。 Ox(y-1) 表示和 Oxy 同零件的前一個製程,若 Oxy 為零件的第一個製程, 則 sxy* 設為 0;同理若 Oxy 為零件的最後一個製程,txy* 設為 0。 22.

(30) Lk  {Oij  Ok | pijk  tij  t xy } *. Rk  {Oij  Ok | sij  pijk  s xy } *. 接著隨機選擇一座要插入的機台 Mk,標記 Ok 為在 Mk 上執行的製程 集合,透過上面的式子將 Ok 分成 Lk 和 Rk。Mastrolilli and Gambardella (2000)在發表的論文裡證明了下面兩種插入的位置皆能找到最佳的最 大完工時間。 A.. 若 Lk 交集 Rk 等於空集合,則插入 Lk 與 Rk 之間的任一位置。. B.. 若 Lk 交集 Rk 不等於空集合,則插入 Lk−Rk 與 Rk−Lk 之間的任 一位置。. 3.6. 刪除重複解 為了增加族群的多樣性,我們將目標值重複的個體做 c 次的突變。執行時間. 點在環境選擇之後,使用的突變機制為 Assignment mutation 和 PPS mutation。 (1) Assignment mutation:隨機選擇一個製程並隨機分配到另一個可行的機 台。 (2) PPS mutation:隨機選擇一個製程,隨機平移到另一個位置。平移的位 置須滿足問題本身的限制,於同零件的前一個製程之後且在同零件的後 一個製程之前。 這兩種突變機制有相當高的隨機性,除了希望能增加族群的多樣性外,我們 也期待這個機制能幫助陷於區域最佳解(local optimum)的個體跳出區域最佳解。 23.

(31) 強化突變機制. 3.7. 圖 10:COS+COI 求解 MK 09 的非凌越解與已知非凌越解. 圖 10 為上述演算法求解問題 MK 09 找出的非凌越解與 Chiang 和 Lin (2013)所提供的已知非凌越解集合做比較。由圖中可以看出我們所提出的演算 法沒辦法找到機台總工作量較小的解。針對此情形我們透過改善突變機制 COI 中隨機選擇的部分來加強機台總工作量的搜尋。新的突變機制 WTCOI 的流程如 下: (1) 計算所有製程的 s 值和 t 值。 (2) 選擇執行時間最長的關鍵製程,如有兩個以上則隨機選擇。 (3) 計算 s* 值和 t* 值。 (4) 根據要重新插入的關鍵製程,選擇執行時間最小的機台。 (5) 同原 COI 作法插入最佳的位置。 24.

(32) 由流程可知我們將原本隨機選擇的部份換成能縮小製程執行時間的做法,透 過減少製程執行的時間達到縮小機台總工作量的目的。圖 11 為 COS+WTCOI 求 解 MK 09 的結果,從圖中可看出改善後的突變機制確實可以找到機台總工作量 較小的非凌越解。. 圖 11:COS+WTCOI 和 COS+COI 求解 MK 09 的非凌越解. 接著我們繼續藉由改變關鍵製程以及重新插入的機台的選擇,針對 WTCOI 的兩個缺點提出兩個不同的改善策略。. A.. WMCOI 從圖 11 中觀察,雖然 COS+WTCOI 成功的拓展了機台總工作量小的非凌越. 解,但是在最大完工時間較小(亦最大機台工作量較小)的區域的非凌越解品質 卻略差於原先的突變機制,這是由於 WTCOI 的選擇方式將資源都使用在縮小機 25.

(33) 台總工作量上而壓縮到其他兩個目標值的搜尋。為了解決這個現象,在關鍵製程 的選擇上改成選擇在關鍵路徑中,工作量最大的機台上的關鍵製程。如圖 9 中關 鍵路徑上的機台有 M1 和 M2,M1 的工作量為 4,M2 的工作量為 5,所以我們 就從機台 M2 上隨機選擇一個關鍵製程。但為了保持非凌越解的拓展性,重新插 入的機台依舊是根據要重新插入的關鍵製程,選擇執行時間最小的機台。. 圖 12:COS+WTCOI 和 COS+WMCOI 求解 MK 09 的非凌越解. 圖 12 為突變策略改善前後的非凌越解的比較,在最大完工時間小的非凌越 解品質確有改善,且非凌越解的拓展性亦有保持。. B.. EWTCOI WTCOI 為隨機選擇執行時間最長的關鍵製程,重新插入該關鍵製程中執行. 時間最小的機台。然而該作法存在一個缺點,如下面範例所示: 26.

(34) M1. O21. M2. O11. M3. O13 O31. O41. O12. O32. O23. O24. O22 O42. O34 O14. O43. O44. O33 t. 圖 13:排程範例. 圖 13 為一排程範例,表 5 為該排程的關鍵製程的執行時間。根據 WTCOI 的 選擇方式,我們會選擇執行時間最長的關鍵製程 O43,然後重新插入到執行時間 最小的機台,而問題就出現在這。雖然 O43 在 M3 的執行時間 13 為關鍵製程中 最長,但在 O43 中已經是最小的執行時間,在這種情況下 WTCOI 並不能有效 的改變關鍵製程的執行機台,而造成計算資源的浪費。 表 5:關鍵製程的執行時間表. 關鍵製程. M1. M2. M3. O11 O14 O31 O33. 16 8 6. 11 10 12. 9 5 9. 6 16 8 16 18 16. 11 11 5 10 15 11. 12 7 13 11 13 7. O34 O41 O42 O43 O44. 為了避免這種現象,我們改選擇確定可以降低執行時間的關鍵製程,如表 5 中的 O11、O31、O33、O34、O42、O44,然後同樣重新插入到執行時間最小的機 台,如此便能保持非凌越解的拓展性,也可以減少計算資源的浪費。若關鍵製程 27.

(35) 皆已在執行時間最小的機台上執行,則隨機選擇一個製程重新插入。圖 14 可以 發現比起 COS+WTCOI,COS+EWTCOI 更能有效的拓展找到的非凌越解。. 圖 14:COS+WTCOI 和 COS+EWTCOI 求解 MK 09 的非凌越解. 3.8. 突變機制統整 表 6:突變機制比較表. COS+WTCOI 發 展 目 的. COS+WMCOI. COS+EWTCOI. 維持機台總工作量的拓 修 正 WTCOI 無 法 有 拓展機台總工作量小的 展度並加強其他兩個目 效減少機台總工作量的 區域 標值的搜尋 問題. 作 法. 更改 COI 為選擇執行 時間最長的關鍵製程並 插入該製程執行時間最 短的機台. 隨機選擇工作量最大的 機台上的關鍵製程,插 入該製程執行時間最短 的機台. 發 展 結 果. 成功找到機台總工作量 成功找到機台總工作量 拓展度保持並強化了最 較小的解;但另兩個目 更小的解並維持最大完 大機台工作量 標值變差 工時間的值. 28. 選擇確定可以減少執行 時間的關鍵製程重新插 入執行時間最短的機 台;沒有則隨機選擇.

(36) 第四章 實驗數據與效能評比 本章節將先介紹測試問題、參數設定與實驗環境,比較的對象以及效能指標, 然後針對實驗的結果進行分析與說明。. 測試問題. 4.1. 本論文的測試問題為 BR data(Brandimarte, 1993) ,包含十個部分彈性問題, 表列如下。在求解彈性零工式工廠排程問題的文獻中,BR data 是最常使用的基 本問題。 表 7:測試問題. 4.2. 測試問題. 零件數. 機台數. 總製程數. MK 01. 10. 6. 55. MK 02. 10. 6. 58. MK 03. 15. 8. 150. MK 04. 15. 8. 90. MK 05. 15. 4. 106. MK 06. 10. 10. 150. MK 07. 20. 5. 100. MK 08. 20. 10. 225. MK 09. 20. 10. 240. MK 10. 20. 13. 240. 參數設定與實驗環境 本論文提出的演算法是以 C++ 實作,實驗的電腦配備作業系統為 Windows 29.

(37) 7-64 位元,CPU 為 Intel Core i7,記憶體大小為 6 GB,編譯器環境為 Microsoft Visual Studio 2010。 演算法的參數設定是參考 Chiang 和 Lin(2011)提出的文化遺傳演算法中, 基因演算法的參數設定,資訊如下: (1) 族群大小:200 (2) 代數:200 (3) Assignment Rule 1 機率:10% (4) Assignment Rule 2 機率:90% (5) 派工法則–隨機分配 機率:20% (6) 派工法則–最多剩餘工作量 機率:40% (7) 派工法則–最多剩餘製程數 機率:40% (8) 刪除重複解–突變執行次數:5 每個演算法都會執行 10 個測試問題各 10 次,輸出結果為集合執行 10 次所 能找到的非凌越解。. 4.3. 比較對象 在 Chiang 和 Lin(2013)發表的論文中提供的非凌越解集合,是由下列各. 文獻所找到的非凌越解構成: (1) Xing 等人(2009) (2) Li 等人(2010) 30.

(38) (3) Wang 等人(2010) (4) Li 等人(2012) (5) Chiang 和 Lin(2013). 4.4. 效能指標 集合想要比較的所有演算法求出的解,從中找出新的非凌越解集合。根據每. 個演算法在非凌越解集合中的表現,提供下面量化的方式來比較。 定義 n1/n2/n3: (1) n1:演算法找到的解在新的非凌越解集合中保留的個數。 (2) n2:演算法找到的解個數。 (3) n3:演算法在新的非凌越解集合中為唯一可以找到的解的個數。. 表 8:效能指標的範例. CM 309 309 309 309 309 309 310 311 311 314. 演算法[1] WT 2268 2265 2267 2264 2276 2275 2265 2260 2263 2255. WM 304 308 307 309 299 301 307 310 309 314. CM 309 309 309 309 309 309 310 311 311 311 311 312 315. 演算法[2] WT 2275 2271 2272 2268 2265 2267 2264 2260 2263 2273 2266 2256 2255. 31. WM 299 303 302 304 308 307 308 310 309 299 304 312 314. 新的非凌越解 CM WT WM 309 2275 299 309 2271 303 309 2272 302 309 2268 304 309 2265 308 309 2267 307 309 2264 309 310 2264 308 310 2265 307 311 2260 310 311 2263 309 311 2273 299 311 2266 304 312 2256 312 314 2255 314. [2] [2] [2] [1][2] [1][2] [1][2] [1] [2] [1] [1][2] [1][2] [2] [2] [2] [1].

(39) 表 8 為效能指標的範例,最右方欄表示找到某個解的演算法編號。由最右方 欄的編號可以看出演算法[1]在新的非凌越解集合中保留了 8 個解,而它原本找到 的解為 10 個,這表示有 2 個解會被演算法[2]找到的解凌越;而在新的非凌越解 集合中,只有演算法[1]能找到的解有 3 個,所以演算法[1]的效能可以表示為 8/10/3, 其中能保留的解越多越好,唯一找到的解也是越多越好。同理,演算法[2]的效能 為 12/13/7,可看出在範例中,演算法[2]優於演算法[1]。. 效能比較. 4.5. 表 9:各演算法與已知非凌越解的效能比較. 非凌越. 已知非凌. COS+. COS+. COS+. COS+. 解個數. 越解. COI. WTCOI. WMCOI. EWTCOI. MK 01 MK 02 MK 03 MK 04 MK 05. 10 8 24 28 11. 8/11/0 7/8/1 24/24/7 27/28/9 11/11/0. 10/10/0 7/8/1 17/17/0 19/22/0 10/10/0. 10/10/0 6/9/0 17/17/0 17/22/0 10/10/0. 10/10/0 6/8/0 17/17/0 18/21/0 10/10/0. 10/10/0 5/9/0 17/17/0 15/24/0 11/11/0. MK 06. 124. 60/110/23. 23/109/13. 25/100/7. 45/124/26. 35/117/9. MK 07 MK 08. 15 10. 15/15/3 10/10/2. 12/15/0 8/9/0. 12/15/0 8/9/0. 12/16/0 8/9/0. 12/15/0 8/9/0. MK 09. 60. 25/69/5. 25/53/0. 25/59/2. 30/61/2. 48/58/7. MK 10. 198. 52/142/44. 16/158/14. 39/181/34. 46/137/42. 58/176/51. 測試問題. 表 9 為本論文發展的演算法與已知非凌越解的效能比較。首先看到非凌越解 個數較少的測試問題 MK 01~MK 05 以及 MK 07 和 MK 08。由於非凌越解的 個數少,幾乎都已經被文獻裡的演算法找到,所以在這些問題上將很難有所更新. 32.

(40) 或更新的程度很小。我們很大程度只能找到與已知非凌越解相同的解,甚至無法 找出所有的已知非凌越解。 而在 MK 06、MK 09 和 MK 10 的問題上,本論文皆可更新一半以上的非凌 越解。其中 WMCOI 在 MK 06 的效能最好,而 EWTCOI 在 MK 09 和 MK 10 皆為最佳。透過觀察問題本身的資訊,我們發現在 MK 01~MK 06 中,每個製程 在不同的可行機台上的執行時間差距很小,這表示 EWTCOI 致力於減少每個製 程的執行時間的策略,效果有限;而 WMCOI 試著縮小最大機台工作量的做法 會顯得更有效率,產生的解更容易被保留。相反的,MK 07~MK 10 的問題,每 個製程的最大和最小執行時間差距較大,減少製程的執行時間的策略能收到較大 的成效。圖 15 為測試問題 MK 06 中各演算法保留的非凌越解分布,圖中可看出 WMCOI 確實保留了較多最大機台工作量較小的非凌越解。. 圖 15:各演算法在 MK 06 的非凌越解分布. 33.

(41) 第五章 結論與未來展望 在排程問題中,快速的完工時間已經不再是唯一的考量,如何平均分配機台 工作量,降低總作業時間等成本需求也是目標之一。發展一個演算法能同時求取 多目標的最佳化已然成為熱門。 本論文提出基因演算法搭配新的突變運算,交換關鍵製程和重新插入關鍵製 程,來求解多目標彈性零工式工廠排程問題。針對演算法無法拓展機台總工作量 較小的區域,我們將「隨機選擇關鍵製程然後隨機插入另一個機台」,改成「選 擇執行時間最長的關鍵製程並重新插入該製程中執行時間最小的機台」,透過減 少製程執行時間有效的降低非凌越解的機台總工作量。 接著我們針對新的突變運算的兩個缺點提出兩種改良方式。第一種改良是為 了解決新的突變運算太著重於減少機台總工作量而忽略另兩個目標的搜尋。我們 將每次都選擇「執行時間最長的關鍵製程」改為選擇「工作量最大的機台上的關 鍵製程」,並重新插入執行時間最小的機台,藉此保留非凌越解的拓展度並成功 的降低最大機台工作量。而另一個改良方法則是要解決當執行時間最長的關鍵製 程已經在執行時間最小的機台上,導致無法有效降低機台總工作量而造成計算資 源的浪費。我們不再選擇執行時間最長的關鍵製程,改為選擇確定可以降低執行 時間的關鍵製程,若沒有則隨機選擇一個製程,然後同樣重新插入到執行時間最 小的機台。實驗結果證明該改良方式能更加的拓展非凌越解的分布並提高非凌越. 34.

(42) 解的品質。 實驗結果顯示,我們提出的演算法在非凌越解個數較多的問題上,能更新一 半以上的非凌越解。 在往後的發展中,可以試著不要每次都重新插入執行時間最小的機台。雖然 目前的演算法可以確實降低非凌越解的機台總工作量,然而該突變運算就只會降 低而不會提升。假如有一個非凌越解可以藉由增加一點點的機台總工作量就能大 幅降低最大完工時間,現在的突變機制就無法找到。另一方面,我們可以針對問 題的特性,執行投資報酬率較高的演算法;又甚至可以根據每個解的狀態去做適 合的變動來達到搜尋資源的有效利用。. 35.

(43) 參考文獻 Brandimarte, P. (1993). Routing and scheduling in a flexible job shop by tabu search. Annals of Operations Research, 41, 157–183. Chiang, T.C., & Lin, H.J. (2011). Flexible job shop scheduling using a multiobjective memetic algorithm. Lecture Notes in Artificial Intelligence (Proc. of International Conference on Intelligent Computing), 6839, (pp. 49–56). Chiang, T.C., & Lin, H.J. (2013). A simple and effective evolutionary algorithm for multiobjective flexible job shop scheduling. International Journal of Production Economics, 141(1), (pp. 87–98). Deb, K., Pratap, A., Agarwal, S., & Meyarivan, T. (2002). A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation, 6, 182–197. Giffler, B., & Thomspon, G.L. (1960). Algorithms for solving production-scheduling problems. Operations Research, 8, 487–503. Goldberg, D.E. (1989). Genetic algorithm in search, optimization and machine learning. Reading, MA: Addison-Wesley. Horn, J., & Nafpliotis, N. (1993). Multiobjective optimization using the niched Pareto genetic algorithm. University Illinois at Urbana-Champain, Urbana, IL, IlliGAL Report 93005. Kacem, I., Hammadi, S., & Borne, P. (2002). Approach by localization and multi-objective evolutionary optimization for flexible job-shop scheduling problem. IEEE Transactions on Systems, Man, and Cybernetics Part C, 32, 1–13. Li, H., & Zhang, Q. (2009). Multiobjective optimization problems with complicated Pareto sets MOEA/D and NSGA-II. IEEE Transactions on Evolutionary Computation, 13(2), 284–302. Li, J.Q., Pan, Q.K., & Liang, Y.C. (2010). An effective hybrid tabu search algorithm 36.

(44) for multi-objective flexible job-shop scheduling problems. Computers & Industrial Engineering, 59, 647–662. Li, J.Q., Pan, Q.K., & Chen, J. (2012). A hybrid Pareto-based local search algorithm for multi-objective flexible job shop scheduling problems. International Journal of Production Research, 50(4), 1063–1078. Mastrolilli, M., & Gambardella, L.M. (2000). Effective neighborhood functions for the flexible job shop problem. Journal of Scheduling, 3, 3–20. Nowicki, E., & Smutnicki, C. (1996). A fast taboo search algorithm for the job-shop problem. Management Science, 42, 797–813. Pezzella, F., Morganti, G., & Ciaschetti, G. (2008). A genetic algorithm for the flexible job-shop scheduling problem. Computers & Operations Research, 35, 3202– 3212. Wang, X., Gao, L., Zhang, C., & Shao, X. (2010). A multi-objective genetic algorithm based on immune and entropy principle for flexible job-shop scheduling problem. International Journal of Advanced Manufacturing Technology, 51, 757–767. Xia, W., & Wu, Z. (2005). An effective hybrid optimization approach for multi-objective flexible job-shop scheduling problems. Computers & Industrial Engineering, 48, 409–425. Xing, L.N., Chen, Y.W., & Yang, K.W. (2009). Multi-objective flexible job shop scheduling: design and evaluation by simulation modeling. Applied Soft Computing, 9, 362–376. Yazdani, M., Amiri, M., & Zandieh, M. (2010). Flexible job-shop scheduling with parallel variable neighborhood search algorithm. Expert Systems with Applications, 37, 678–687. Zitzler, E., Laumanns, M., & Thiele, L. (2002). SPEA2: Improving the strength Pareto evolutionary algorithm for multiobjective optimization. In: Giannakoglu, K.C., et al. (Eds.), Evolutionary Methods for Design, Optimization, and Control, (pp. 19– 26).. 37.

(45) Zribi, N., Kacem, I., A. Kamel, E., & Borne, P. (2007). Assignment and Scheduling in Flexible Job-shops by Hierarchical Optimization. IEEE Transactions on System, Man, and Cybernetics Part C, 37(4), 652–661.. 38.

(46)

參考文獻

相關文件

4.2 Copy the selected individuals, then apply genetic operators (crossover and mutation) to them to produce new individuals.. 4.3 Select other individuals at random and

A multi-objective genetic algorithm is proposed to solve 3D differentiated WSN deployment problems with the objectives of the coverage of sensors, satisfaction of detection

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA

工期變化 間接工程費 售價 土地成本 營建因素 客戶自備款收入 工法選擇 土地融資比率 銷售率 銀行貸款收入 銷售方式 運算數值 銷售費 利息收入 土地取得方式 變動成本

導引指示標誌設置規範可區分為牌面數限制、設置範圍、人因工程等三方

本研究主要以 But-for 崩塌竣工時程分析技術為基礎進行理論推導,確認此延遲分析技術 計算邏輯之問題與完整性,之後提出修正之計算邏輯,使

(計畫名稱/Title of the Project) 提升學習動機與解決實務問題能力於實用課程之研究- 以交通工程課程為例/A Study on the Promotion of Learning Motivation and Practical

keywords: Incident Detection, California algorithm, Automatic vehicle identification (AVI), Paramics, long road tunnel, Beacon... 誌 誌 誌 誌 謝 謝