第三章 以 MOEA/D 結合適應性區域搜尋求解多目標定序流線型工廠排程問題
3.9 區域搜尋
雖然我們可以透過交配與突變過程找到品質不錯的解;然而,個體卻不容易
剛好落在區域最佳解的位置。因此我們加入區域搜尋,使得演算法能同時擁有全
域搜尋與局部搜尋的能力。區域搜尋除了能讓個體目標值更好之外,透過將這些
個體放入族群中,還能夠作為精英推動族群的演化。為了兼顧演化的收斂性與族
群多樣性,有許多影響因素需要被決定。區域搜尋流程如圖3-13,圖中的相關細
節將於接下來的章節說明,3.9.1 節說明不同區域搜尋對象 (target_selection);3.9.2
節說明不同搜尋方向策略 (searching_direction);3.9.3 節則敘述區域搜尋中的運算
操作流程 (segment、reorder 與 reinsertion)。
Input P, o
iD←perpendicular_distance (P,oi) P←sort(P, D)
j←0
repeat
if fitness(o
i, j)≤fitness(Pj, j) then Pj←oibreak
end if
j←j+1until j=T
n28
圖3-13 區域搜尋流程
3.9.1 搜尋對象
在搜尋對象方面,Ishibuchi 等人 [27] 建議針對適應值較好的個體進行區域搜
尋會比較節省運算時間。顯然地,非凌越解集合為演化過程中最好的個體,因此,
針對非凌越解集合進行區域搜尋是個不錯的選擇;然而這個做法有可能受到非凌
越解集合個體分布不均勻的影響。因此,另一種做法則是將子問題分組,並從每
一組隨機挑選一個個體為搜尋對象。我們將針對上述兩種不同對象進行實驗並分
析探討其結果。兩種搜尋對象如圖3-14,圖中黑色的點為區域搜尋之對象。
圖3-14 搜尋對象示意圖
input P, A, n
NEH, nFE: archive
S
←target_selection(P, A)S
←contribution_selection(S, n
F) D←searching_direction(S
)for x S
x
J, ←segment(x, nNEH) J ←reorder(J)
x
reinsertion(x, J ,D) archive_update(E,x)end for
archive_update(A, E) population_update(P, E, Tn)
29
3.9.2 搜尋方向
在搜尋方向方面,我們將實驗五種不同的策略如圖3-15,說明如下:
隨機目標法 適應目標法
隨機權重法 適應權重法
柏拉圖凌越法
圖3-15 搜尋方向策略
隨機目標(random objective, RO):隨機選擇一個目標作為搜尋方向。
適應目標(adaptive objective, AO):根據搜尋對象目標值選擇搜尋方向,
若該個體在某個目標值表現較好,則朝向該方向進行搜尋。
隨機權重(random weights, RW):隨機選擇一個搜尋方向。
f1
f2
f1
f2
f1
f2
f1
f2
f1
f2
30
本論文也採用NEH_LS 方法。NEH_LS 方法可由分段 (segment)、重排 (reorder)、
接受策略(acceptance)組成,描述如下:在分段階段,從染色體上隨機選擇一段
31
取出的連續基因,其長度影響區域搜尋的鄰域大小;在 [9] 中透過世代數動
態控制取出的長度nNEH,如公式 (18),其中 NNEH為取出之最大長度。
)}
/ 1 ( ,
1
max{ N e e
maxn
NEH
NEH
(18)在NEH_LS 方法中,將取出的基因放回有不同的派工法則;在本論文中,我
們將實驗六種派工法則對效能造成的影響,分別為Evolution, SPT, LPT, Random,
(SPT, LPT), (LPT, SPT),說明如下:
Evolution:不改變順序,以演化過程中原來的順序插入。
SPT:將取出的零件根據加工時間由小到大排序。
LPT:將取出的零件根據加工時間由大到小排序。
Random:將取出的零件隨機排序。
(SPT, LPT):由個體目標值決定採用何種策略,最大完工時間表現較好
的個體使用SPT 策略,總流程時間表現較好的個體則使用 LPT 策略。
(LPT, SPT):與(SPT, LPT)策略相反。
前四種皆為 [9] 提出的順序策略,最後兩種則根據不同目標採用不同的插入
順序策略;在 NEH 策略 [11] 中使用 LPT 派工法則產生最大完工時間表現較好
的解,而Framinan 等人 [19] 提出的策略則使用 SPT 策略產生總流程時間表現較
好的解;因此我們想實驗分析針對不同目標採用不同派工法則對效能的影響。
NEH_LS 方法最後可以得到多個解,我們將搜尋過程中得到的非凌越解以 3.8 節
的取代機制放回族群中。
32
33
作業系統,CPU 為 3.4GHz 的 Intel®Core™i7-4770,記憶體大小為 12GB,編譯器
環境為GNU GCC。