第一章 緒論
1.1 研究動機
最佳化問題是日常生活中常見之問題,如最短路徑問題、最小化時間與成 本等,其中最短路徑為單目標問題 (single-objective problem),即最佳化之目標 為單一目標;最小化時間與成本則為多目標問題 (multi-objective problem),即 問題之目標超過一個,且各目標常互相衝突,例如從地點 A 到地點 B,我們可 選擇搭飛機、捷運、高鐵、……等交通方式之組合來達成,通常愈快到達目的 地所花費之成本愈高,反之,愈慢之方式成本則愈低。若要在各目標上進行取 捨,並且找出使用者所期望的解答,給予使用者一組解決方案供其所需來挑選 解答,是個實用並且富挑戰性的議題。
1.2 背景知識
多目標最佳化問題 1.2.1
一個多目標最佳化問題可以下列式子來定義:
minimize/maximize F(x) (f1(x),…, fm(x))T
subject x
Ω (1)
Ω 代表決策空間 (decision variable space),Rm 代表目標空間 (objectivespace ),F:Ω → Rm 由 m 個實數目標函式組成。對於最小化問題,假設有兩
2
個向量 u (u1, u2,..., um),v (v1, v2,..., vm) 皆屬於 Rm 的向量,若對於所有的 i
1,..., m 使得 u
i ≤ vi,而且至少存在一個 j 屬於 {1,..., m} 使得 uj < vj,我們稱 u 凌越 (dominate) v。以圖 1 為例,解 A 凌越斜線灰色區域內所有的解,
或稱解 B、C 與 D 被解 A 所凌越。
如果不存在 x 使得 F(x) 凌越 F(x*),則稱此點 x* 為柏拉圖最
佳 (Pareto optimal),或者是非凌越解 (non-dominated solution)。令 PS 表示所 有柏拉圖最佳解的集合,PF 表示所有柏拉圖最佳化之目標向量集合,則 PS 與
PF 之定義式如下:
PS {x
* | ! x , F(x) dominates F(x*)} (2)PF {F(x) R
m | x PS} (3)
圖 1:凌越關係
3
解多目標最佳化問題就是要找出所有的非凌越解 PF,但由於 PF 相當龐 大,要找出整個 PF 是相當困難的,難以在有限時間內使用精確演算法 (exact
algorithms) 來尋找最佳解。因此,需要一個在有限時間內能夠找出近似 PF 的 演算法。
演化式演算法 1.2.2
演化式演算法即是一種能在有限時間內找出近似 PF 的演算法,其藉由模 擬自然界生物演化過程,逐漸搜尋逼近 PF。演化式演算法的族群是由一群個 體(解)所構成,每個個體都有自己的基因序列(依照問題以給予特殊形式之 編碼),接著藉由個體間的交配 (crossover)、個體之突變 (mutation) 來改變基 因序列並產生新的個體,再來運用天擇 (environmental selection) 將較優之個體 留下,以此反覆執行,慢慢搜尋最佳解。下圖為演化式演算法的簡易流程圖:
圖 2:演化式演算法流程圖
4
初始化族群 (Population Initialization):
基本上是使用隨機的方式產生個體(解),直到將整個族群填滿為止。依照 問題的不同,會有不同的決策變數 (decision variable) 個數與範圍,以及不同的 基因序列編碼方式,常見的編碼有二進制 (binary code) 與實數 (real code),具 體做法為依照決策變數之範圍隨機產生出一定數量的決策變數,以產生單一個 體,再以此產生出整個族群。
評估族群 (Population Evaluation):
為了評估族群中個體之優劣,每個個體皆有自己的適應度 (fitness),基本 上會先計算出每個個體之目標值,再利用目標值計算出適應度,然而計算適應 度的方式有很多種,常見的有凌越關係如 NSGA-II (Deb et al., 2002) 和合併函 式如 MOEA/D (Zhang & Li, 2007)等等。
繁殖 (Reproduction):
簡而言之就是產生下一代,先選擇親代 (mating selection),再經過個體間 之交配 (crossover)、個體突變 (mutation),產生出新的子代,最後經過天擇
(environmental selection) 挑選能夠存活下來之個體當作下一代。在親代選擇方 面,通常擁有高適應度之個體有較高的機會被選到,希望能夠藉此產生出好的 子 代 , 常 見的 有 競 爭法 (tournament) (Horn & Nafpliotis, 1993) 與 輪 盤法
5
(roulette wheel) (Goldberg, 1989)。交配是以兩個親代產生出一個以上的子代;
突變則是對個體本身進行基因序列之變更。然而交配與突變會依照問題與編碼 方式而有所不同,例如二進制編碼的有單點交配 (1-point crossover)、翻轉突變 (flip mutation) 等;實數編碼的有 simulated binary crossover (SBX) (Deb &
Agrawal, 1995)、polynomial mutation (Deb & Goyal, 1996) 等。天擇會依照演算 法策略來決定下一代之存活者,最簡單的方式為成代替換 (generational),也就 是產生出的子代直接成為下一代之族群;另外還有依照適應度排序,使適應度 高之個體能夠存活。有些演算法會在天擇之後加入區域搜尋法 (local search),
以加強搜尋至區域最佳解。
1.3 研究目的與方法
演化式演算法在很多部分都可切割,方便修改成為平行演算法,本論文將 修改 MOEA/D-DE (Li & Zhang, 2009) 為平行多目標演化式演算法,期望平行 加速縮短時間,並且維持演算法效能。
本論文將演算法加入平行要素,定期以全域均勻分配法或區域分配法切割 族群成為許多子族群,使子族群各自進行演化,並定期進行交流,以維持住求 解品質,最後與 MOEA/D-DE 比較,並且運用 OpenMP (Chapman et al., 2007) 進行平行加速,以觀察變化分配島嶼式 MOEA/D 成效。
6