• 沒有找到結果。

第四章 模式求解

4.2 TVLS 最佳解搜尋法

本研究之 TVLS 最佳解搜尋演算法從結構可以分為三部分,第一部分為 BP-based 模式求解,以獲得基本週期乘數ki及基本週期 B 。針對此部分本研 究使用共同週期法、基因演算法、接合點搜尋法三種方法進行求解,詳細內 容將在 4.3、4.4 及 4.5 節進行敘述。

第二部份是將ki及 B 輸入最長操作時間派工法,建構出排程 q 及週期 T。

最後一部分求解 TVLS 模式,以下分兩小節進行介紹。

4.2.1 建立排程

本研究使用最長操作時間派工法(Longest-Process-Time Dispatching, LPT) 來建立排程,方法如下:

輸入資料:基本週期乘數ki、基本週期 B

步驟一:找出ki之最大值,建構出max( )ki 個的基期,每期的剩餘時間即 為基本週期長度 B。

步驟二:對每個產品計算出總生產時間(Total Process Time, TPT),本研究 之實際總生產時間計算公式如下:

( )

i i i i i

RTPT  sk B

步驟三:將產品以ki由小到大排序,其中相同ki之產品則按RTPTi由大到 小排序,成為派工清單。

步驟四:按照派工清單之順序將產品放入基期,放入之頻率為ki,若為 1 則每期皆要放入,若為 2 則每間隔一期放入一次,放入時選擇 剩餘時間多者進行放入,而放入之後將剩餘時間減去該產品的

RTPTi,並把該產品從派工清單中移除。

步驟五:持續放入直到派工清單為空。

但由於本方法會透過 TVLS 模式進行求解,且 TVLS 之解皆為可行解,

故在此若產生剩餘時間為負的不可行解,仍能採用之。最後再將每個基期的 生產順序按照期數順序接合成一條數列,即為輸入 TVLS 模式的排程 q,而 週期T max( )kiB即可得到。

4.2.2 求解 TVLS 模式

對於給定之排程順序下,未必在週期T max( )kiB可以找出最佳解,故 週期 T 也需要進行搜尋,並且本研究透過設定搜尋之上下界來提升求解速率。

然後使用 LPT 派工法建構出之排程 q 未必為最佳的排程順序,故需要透過演 算法進行排程的改善,本研究使用之演算法為鄰域搜尋法。

4.2.2.1 排程固定下對 T 進行搜尋

已知在給定排程下,TVLS 模式為一個凹性函數,存在一個最大值,如圖 4.2 所示,雖然如圖中大約T 40之後接近目標值持平,但仍然存在最大值的 部分,再改動座標刻度後可以看出最佳解出現之位置,如下頁圖 4.3。

搜尋下界之設定為

1 l

LB k

k

T s

,其中

1 l

k k

s

是給定排程下的整備時間加總,

因為週期至少要大於該值,才會開始進行生產。

因為無法推導出合理且具管理意義之上界,故本研究僅使用數理方式求 出上界,由於現有資訊僅有共同週期法週期TCC,故每次取TCC的整數倍 (x TCC, xN)作為測試週期 T 代入 TVLS 公式,運算後計算與前一次數值的 變異量,若變異量為負,表示目標式曲線在該區間出現最大值後開始遞減,

故可以作為二分搜尋法之上界。

圖 4.2-固定排程下對 T 搜尋 TVLS 目標值(1)

圖 4.3-固定排程下對 T 搜尋 TVLS 目標值(2)

但因為上下界的搜尋範圍還是過大,若使用微步搜尋法(Small-Step Search Procedure)會造成過久的搜尋時間,故本研究採用二分搜尋法(Bisection Search Algorithm)增加求解速率,步驟如下:

二分搜尋法(Bisection Search Algorithm)

步驟一:在最初的上下界中選擇兩者的中點 T ,計算該點目標值Obj T( )。 步驟二:取 'T   T T, ( T 0),計算該點目標值Obj T( '),並令

( ') ( )

Obj Obj T Obj T

   ,若Obj為負,表示最佳解在TLB與T 之間,則令TUBT;若Obj為負,表示最佳解在TUB與T 之間,

則令TLBT

步驟三:重複步驟一至二,若每期之目標值改進率小於誤差值,則停止。

該方法之求解時間會依據誤差值而有顯著的影響,考慮足夠的精確度與 求解速率之間的權衡,本研究設定為102至103

4.2.2.2 排程改善

在傳統 BP 模式裡,由於只定義將欲生產的產品放入基期後,剩餘時間大 於 0 即為可行解,因此沒有生產順序上的疑慮。但 TVLS 模式已經無基期之 概念,故即使是排程中的一個順序改變,也可能會造成整體生產時間與閒置

時間的重新調整,如圖 4.4 中產品 2 的ki最小,所以每次都排在最前面,但其 時還有其它的排序如[4,1,2,9]、[1,2,9,4]或其他可能,故對於 LPT 派工法生產 出之排程,仍有最佳化之必要性。

本研究使用之排程改善方法為鄰域搜尋法(Neighborhood Search Algorithm, NS),以下進行說明。

鄰域搜尋法

本研究提出的鄰域搜尋法(Neighborhood Search Algorithm, NS)之鄰域定義 為每次隨機選定排程中的兩個位置,將先選的位置差入到後選位置之前,而 後選位置及其後的排程將往後順延。但要注意若排程中有任一相鄰的兩個生 產品項相同時,為不可行解。群體數設定為 20 個鄰域。

輸入資料:LPT 派工法產生之排程 q ,作為初始母體

步驟一:對母體建立鄰域群體,並計算各自之目標值(使用 TVLS-Search-T)。

步驟二:取鄰域群體中目標值最大者,與母體之目標值進行比較,若鄰 域群體較母體為優,則取代成為新母體。

步驟三:重複步驟一至二,若每期之目標值改進率小於誤差值,則停止。

誤差值:設定與二分搜尋法相同。

排程 q:2 4 1 9 2 7 3 5 6 2 4 8 10 2 7 3 2 4 1 2 7 3 5 2 4 2 7 3 4 2 1 9

1 2 9 4

圖 4.4-使用 LPT 派工法產生的排程失誤 其它可能排序

按照以上之方法及可以對排程 q 與週期 T 兩者皆進行最佳化,找出 TVLS

基因演算法(Genetic Algorithm, GA) 由 John Holland 於 1975 年所提出,其 過程是模擬大自然物競天擇的演化基製,來進行解的交配、汰換,從中淬煉出

相關文件