第二章 文獻探討
2.5 瀰集演算法
藉由 Dawkins 在 The Selfish Gene 這本書中對於瀰(Meme)的解釋,認為瀰是 人與人交換想法的文化傳遞單元,瀰的概念是無所不在的,而每個人在進行傳遞 時多少都會將資訊產生變化,但會留下所謂的精隨。
瀰集演算法(Memetic Algorithm;MA)是 Moscato (1989)根據文化的演化概念 所發展出多點搜尋的方式,屬於一種整合式的演算法,利用全域搜尋(例如:GA) 的方式來結合區域搜尋(例如:SA、Tabu、PSO)。本研究參考 Moscato (1989)所 提出此演算法的組合概念利用 GA(全域)+SA(區域)來求解問題,即在基因演算法 中的每一代皆使用 SA 來導入局部最佳化的概念。一些學者使用瀰集演算法的相
(1+F)條染色體
(1)條染色體
關文獻如表 2.5。
表 2.5 瀰集演算法的相關文獻
作者(年分) 評估指標 問題描述
França et al. (2001) Total tardiness 利用瀰集演算法來求解單機台的排程問題
Chiang et al. (2010) Total weighted tardiness 式有二元編碼(Binary Coding)和實數編碼(Real Coding)兩種。
二元編碼就是將染色體的各點用 0、1 表示,例如 0 表示此時間點作業暫停,
1、工件 3、工件 5、工件 2、工件 6、工件 4。
1 3 5 2 6 4
圖 2.5 實數編碼方式 初始母代群體
由於瀰集演算法是屬於多點搜尋的方法,所以在一開始就必頇產生多組的初 始母代群體,產生初始母代群體的方法像是隨機產生、利用派工法則或是要與某 篇論文比較而使用與某篇論文相同的初始母代群體。
初始母代群體的數量與求解效能相當有關,若數量太大雖然能夠得到較佳的 解但是所需計算的時間較長,若數量太小會造成提早收斂且達不到預期的目標,
此外若問題有訂定運算次數的話,所訂定的運算次數很大則可以搭配較大的初始 母代群體,若所訂定的運算次數有限則初始母代群體就不能太大,因此在運算次 數、初始母代群體的數量和求解效能上面的考量取捨是相當重要的。
區域搜尋
區域搜尋的意義就是在找尋目前解中的局部最佳解,如圖 2.6 所示將目前解 移到最接近的一個局部最佳解位置的過程。不管在剛開始產生初始母代群體或是 經過交配、突變所產生出的新解,都需要經過區域搜尋這個步驟,此步驟可以使 得在整個瀰集演算法的過程中加速到達最佳解的位置。常見的區域搜尋方法像是 交換(Swap)、插入(Insert)、甚至使用模擬退火法等等。
圖 2.6 區域搜尋找解方式
交配
從母代群體中隨機挑選出兩條染色體,將這兩對染色體進行配對交換基因的 動作,產生出一個子代,此為模擬自然界生物交配的現象,希望透過這種方式所 產生出的子代能夠保有兩個母代較好的基因片段。一般常見的交配方式有單點交 配(One-point Crossover)、雙點交配(Two-point Crossover)、線性順序交配(Linear Order Crossover Operator)、部分相應交配(Partially Matched Crossover)。
突變
突變的意義是為了避免在求解一段時間後,造成收斂的現象而導致遺漏掉一 些可能的解空間而落入局部最佳解。因此從母代群體中挑選出一條染色體來進行 突變的動作,希望能夠跳脫出來局部最佳解繼續尋優。瀰集演算法的突變與基因 演算法最大的不同在於發生的時間點。瀰集演算法的突變是當演化了一定的世代 後造成收斂的現象才需要將最好的染色體除外的所有母代群體進行突變,而所謂 的收斂在後面會進行介紹。常見的突變方法有交換(Swap)、插入(Insert)和反轉 (Inverse)。
適應度函數值
適應度函數值即表示此染色體適合存在的程度。每個染色體根據研究的目標 後利用目標值函數算出目標值,再利用適合度函數轉換成適合度函數值,以便於 在決定進行染色體淘汰篩選時的重要指標。
菁英政策
菁英政策顧名思義就是留下好的淘汰不好的,只要每次產生出新的染色體時,
為了要保留一定數量大小的母代群體,所以需要進行菁英化,經過不斷的世代演 化和不斷的菁英政策才能夠找到最好的解。常見的菁英政策有輪盤法(Roulette
收斂
收斂的定義有很多種像是連續幾次運算皆未改變最佳解或是當運算次數到 達一定的次數就直接認定或是母代群體中有多少對染色體皆相同時。
終止條件
即所謂結束尋優的條件。一般常見的像是運算次數到達設定條件、經過多少 的運算時間、設定連續幾代未改變最佳解。
至於瀰集演算法的演算步驟流程以相關參數設定會在後面的章節進行介紹。