• 沒有找到結果。

第三章 模式構建與基因演算法之執行流程

3.3 基因演算法之執行流程

本研究採用Bean (1994)所提出 Random keys 代表各工作生產順序的指標,以下 的舉例將過程說明如下:假設有有三種工件,即A、B、C,每日生產目標為 100、

200、200,則最小工件集合 MJS={A, B, B, C, C}。而 rA:rB:rC=1:2:2,而工件 數n=rA+rB+rC,即為5 個工件。隨機產生 5 個介於 0~1 的數值,如 (0.46, 0.91, 0.33, 0.75, 0.51),此即所謂 random keys,其代表一染色體。將染色體中的所有基因做升 羃排序後,即為(0.33, 0.46, 0.51, 0.75, 0.91),依序對應其之原始所在位置做為其所 代表的工件序列,如0.33 原始所在位置為 3,0.46 原始所在位置為 1,0.51 原始所 在位置為5,0.75 原始所在位置為 4,0.75 原始所在位置為 2,則此一染色體所代 表的工件序列為31542。

(0.46, 0.91, 0.33, 0.75, 0.51)≡3→1→5→4→2 二、設定初始母體(initial population):

在進行基因演算法運算之前,必須先隨機地產生 s 條染色體,在本研究中即為

Parents1:(0.46, 0.91, 0.33, 0.75, 0.51)≡3→1→5→4→2 Parents2:(0.84, 0.32, 0.64, 0.14, 0.48)≡4→2→5→3→1

(2)單點交配(single-point crossover):

隨機挑選一個交配點,將交配點之後的基因進行互換。設假交配點為第二個 基因之後,則交配後新的染色體如下:

Children1:(0.84, 0.32, 0.33, 0.75, 0.51)≡2→3→5→4→1 Children2:(0.46, 0.91, 0.64, 0.14, 0.48)≡4→1→5→3→2 四、突變(mutation):

雖然突變帶可能帶來的優良基因,但是也可能造成部分優良基因無法繼續延 續,因此通常突變率不會設定太高。本研究中,突變率假設以P%來代表之,而突 變執行的方式係針對上述完成交配後的染色體來執行,以下例的描述加以說明:

(1)隨機選取一基因的截斷點,假設為第二個基因。

(0.84, 0.32, 0.33, 0.75, 0.51) ≡2→3→5→4→1

(2)將截斷點之後的基因,重新隨機產生一新的random keys,如(0.95, 0.23, 0.60),

則突變後的染色體如下:

(0.84, 0.32, 0.95, 0.23, 0.60)≡4→2→5→1→3

執行完突變步驟之後,母體染色體的數目會增加,但因為有隨機性,確切的 數目不會固定,但其期望值為(sC2*2+s)*(1+P%)。

五、解碼(decoding):

將產生的順序,參考原始之MJS:{A, B, B, C, C},將順序轉換為所對應的工 件序列,如以下之範例。

順序 4 2 5 1 3

工件序列 C B C A B

六、求解其適應函數值(fitness value):

隨著問題的不同所得的目標函數亦有所不同,目標函數可以用來評估母體中 染色體的優劣,但當目標函數是愈小愈佳時,通常利用適應度函數來修正使其為 極大化,修正方式是將目標函數取倒數。f (x) = 1/ x, f (x)是適應度函數(fitness function), x是目標函數值(objective function value)。本研究利用式(1)求得每一工件 序列的CT,而其適應函數值:fitness value=1/CT。

七、選擇(selection):

一般而言,選擇的方式有輪盤法與競爭法,經過二者績效(求解品質)的比較之 後,本研究採用競爭法,即將由母體中的染色體做降羃排序後,選取前s個染色體 做為下一代母代。

八、停止規則(termination criteria):

本研究以當搜尋到指定的代數作為停止條件,而在此指定代數經過多次測試 後,設為一固定值。

圖 3- 2 演化流程圖

在執行上述基因演算法的過程中,需對相關的參數加以調整與控制。然而,

參數控制與調校的方式並無絕對的好或壞,因此截至目前為止並沒有一套完善的 選擇過程

(Selection process) 設定初始母體

(Set initial population)

交配過程

(Crossover process) 染色體編碼

(Encoding)

是否達到搜尋終止條件 (Termination criteria) No

Output 適應函數

(Fitness function)

Yes 突變過程

(Mutation process)

母體取代

(Next population)

染色體解碼 (Decoding)

機制,可以確保能讓我們找到最適的參數設定值。必需依靠付出許多實驗訓練的 代價來找尋理想的參數(Srinivas, 1994)。

事實上截至目前為止,並沒有一套完整的理論,可以用來證明遺傳演算法一 定可以找到整體之最佳解,但許多實證研究及應用,驗證了遺傳演算法的搜尋效 能。因此遺傳演算法仍廣泛的被應用於在無法預知最佳解的狀況,或搜尋空間極 大、搜尋成本極高的狀況下,以系統化的方法在合理的時間內求得滿意解。

相關文件