• 沒有找到結果。

第三章 研究方法

3.3 演算法模組

3.3.3 初始解產生器

初始解產生器本研究利用隨機方法(Random) 與螞蟻演算法(Ant colony system)+鄰近搜尋法(Local search)兩種。鄰近搜尋法由於與後續要介紹的更新解 修正器方法相同,所以留待3.3.5 章節再作介紹。

(一) 隨機方法

單純利用隨機方式產生一組工件排序解,隨機產生的優點是快速大量產生且 方便,缺點則是解的品質容易較不盡理想。

(二) 螞蟻演算法 數,由公式(2)的隨機比例法則(random-proportional rule):

轉移機率Pij =

( ) ( )

所產生的轉移機率分配來抽出。Pij指的是加工到Ji時,下一個job會選擇尚未加工 工件集合中job j的機率。

所以當一隻螞蟻從工件Ji要選擇下一個執行工件Ji時,要先產生一個隨機亂 數q,若q≤ q0,則利用公式(1)從J(i)挑選出最佳的工件;反之,則按照公式(2)產 生的機率分配來隨機選取工件。

貪婪法則則是依據每種問題,一開始以五種派工法則求其 makespan,取最 小者作為貪婪法則所採用的方法。這五種派工法則如下所示:(1)最短加工時間 (SPT)、(2)最末站最短加工時間(BPT)、(3)修改 CDS(Campbell et al., 1970)演算法、

(4)修改 Raghu and Rajendran rule(RR)(Raghu & Rajendran, 1993)、(5)修改 Palmer’s rule(Palmer, 1965)。決定所選擇的最適派工法則之後,將該派工法則所求得的 makespan 設定為目前所得到的最佳解。決定貪婪法則所使用之派工法則後,將 派工法則的值利用正規化為介於0 與 1 之間的值,進而得到每個工件的η值。

2.局部更新法(Local updating rule)

當一隻螞蟻建立一個完整解之後,我們要依照局部更新法,將它所經路徑的 費洛蒙進行更新,局部更新法過程使拜訪過的工件順序上費洛蒙減少,因而對螞 蟻吸引力減小,目的是為了要使之後的螞蟻能夠找到更多不一樣的解,進而避免 產生過於強勢路徑,使螞蟻無法進行探索動作,而導致收斂局部最佳解。局部更 新法公式(3)如下:

( , ) i j (1- ) ( , ) i j 0

τ = ρ τ× + × (3) ρ τ

其中,0<ρ<1,為一個控制費洛蒙揮發比例的參數,τ0為初始費洛蒙濃度,設 定為(LB-1)。

3.全域更新法(Global updating rule)

當所有螞蟻都已經建構完成各自的解之後,找出至今最佳解來進行全域的費 洛蒙更新,全域更新法公式(4)如下:

( )

( , ) 1-i j ( , ) i j ( , )i j

τ = α τ× + α× Δτ (4)

( , ) 0

m Cbest τ i j

⎧⎪

⎪⎪

Δ = ⎨

⎪⎪

⎪⎩

i、j 屬於至今最佳解的工件排序 otherwise

而其觀念是只有目前表現最佳的解其內的工件執行順序才具有遺留費洛蒙的權 力,以使得下個世代中,螞蟻能再次利用相類似的排序;而另外所有工件執行順 序的費洛蒙濃度皆會揮發。到這裡為止稱作一個世代,當世代的次數尚未達到預 先設定的數目,則繼續演算法搜尋最佳解;反之,則結束演算法。

4.求解流程

雖然僅針對第一站的工件排序,但是本研究在螞蟻演算法求解過程中使用了 F&B-ACS,同時採用了 forward 及 backward 兩個方向的搜尋,所以紀錄費洛蒙 量的矩陣需要兩個,每個矩陣的大小為n×n,其中元素τij代表的是第j 個工件排 在第i 個工件後的費洛蒙量。

相關文件