第一章 緒論
1.2 背景知識
第一章 緒論
1.1 研究動機
在演化式計算的領域中,多目標演化式最佳化 (evolutionary multiobjective
optimization, EMO) 為現今最熱門的研究議題之一。而現存有名的多目標最佳化 演算法,大多都能在解決求解目標數為二 (bi-objective) 的問題時得到不錯的成 效,但當問題的目標數上升時,這些演算法的效能往往有著下降的趨勢。
當一個多目標最佳化問題的目標數為四或四個以上時,我們稱其為高目標最 佳化問題 (many-objective optimization problems) [1]。考慮到現實世界中的最佳化 問題大多屬於高目標最佳化問題,例如通用航空飛機設計問題 (general aviation aircraft design problem) [2]、水源管理問題 (water resource management problem) [3] 以及機械加工問題 (Machining Problem) [3],且在求解這些問題時,所需的 計算資源也較大,而耗費太多時間,因此設計一個能夠快速求解高目標最佳化問 題的演算法已成了一項研究重點。
1.2 背景知識
1.2.1 多目標最佳化問題
一個多目標最佳化問題可以下式定義:
Minimize/Maximize F(x) = (f1(x), ..., fm(x))T (1) Subject to x
2
Ω 代表決策空間 (decision space),Rm 代表目標空間域 (objective space),F:
Ω → Rm 由 m 個實數目標函式組成。在求解最小化的問題時,令 u = (u1, u2, ...,
u
m),v = (v1, v2, ..., vm) 為兩個屬於 Rm 的向量,假如對所有的 i = 1, ... , m 使 得 ui ≤ vi,而且至少存在一個 j 屬於 {1, ... , m} 使得 uj < vj,我們可稱 u 凌越(dominate) v。以圖 1 為例,空心點 A 與實心點 B 與 C 各為目標空間內一點,
在最小化問題中,空心點 A 凌越灰色斜線區域內所有的解,即實心點 B 與 C 皆被空心點 A 給凌越。如果不存在 x 使得 F(x) 凌越 F(x*),則稱此點 x*
為柏拉圖最佳 (pareto optimal)。令 PS 表示所有柏拉圖最佳解的集合,PF 表
示所有柏拉圖最佳化之目標向量集合,則 PS 與 PF 之定義式如下:
PS = {x
* | ! x , F(x) dominates F(x*)} (2)PF = {F(x) R
m | x PS} (3)圖 1:凌越關係示意圖
A B
C
f
1f
23
1.2.2 演化式演算法
在求解多目標最佳化的問題時,我們常常無法在有限的時間裡使用一套完全 精準的演算法找到最佳解,而演化式演算法則能幫助我們在有限的時間內找到一 組相對好的最佳解。演化式演算法是一種模擬自然界生物演化過程的搜尋演算法,
在演算法中,族群中的每個個體即為所欲求解問題的一個解,而每個個體皆有屬 於自己的基因序列 (依照不同的問題給定特定的編碼),透過個體間的交配 (crossover) 、 突 變 (mutation) 來 產 生 含 有 新 序 列 的 子 代 , 再 經 過 環 境 選 擇 (environmental selection) 保留優良的個體,反覆執行以達成求解多目標最佳化問 題的目的。演化式演算法的流程如下圖 2 所示:
初始化族群 (Population Initialization):
最常見的方式是以隨機的方式產生個體 (解) 來將族群填滿,或是使用與 問題相關的經驗法則來產生品質較好的起始解 (相對於隨機的方式來說) ,再 者可使用區域搜尋 (local search) 一段時間後所得到的解來當作起始解。
評估族群 (Population Evaluation):
為了判別族群中每個個體的優劣,我們會給予個體各自的適應度 (fitness) , 當問題為單目標問題時,我們可以直接使用每個解的目標值來當作適應度,但當
是
否
初始化族群 評估族群 繁殖 停止? 結束
累加演化代數
圖 2:演化式演算法流程圖
4
問題為多目標問題時,考慮到各目標間可能存有衝突,因此也衍生出了許多計算 適應度的方式。常見的方式有凌越關係 [4]、合併函式 [5] 等等。
繁殖 (Reproduciton):
此步驟旨在產生下一代的方式,首先會先選擇親代 (mating selection),再來 經過親代間的交配、個體突變來產生子代,而經由環境選擇後存活下來的個體,
則當作下一代繼續演化。在親代選擇方面,常見的有根據適應度高低分配選取機 率的輪盤法 (roulette wheel) 以及隨機挑選多個個體,再以其中適應度最佳者為 親代的競爭法 (tournament)。交配與突變則依照不同的編碼方式與問題而有著各 種方式,如編碼方式為二進制編碼時,常用的交配方式有單點交配 (1-point
crossover) 與雙點交配 (2-point crossover),而突變則有翻轉突變 (flip mutation);
若 為 實數 編碼 ,交配可用 simulated binary crossover (SBX) [6],突變則為 polynomial mutation [6]。常見的天擇機制有成代替換 (generational)、穩態機制 (steady-state) 等。有些演算法會在以上機制完成後加入區域搜尋來加強解的品 質。
1.2.3 平行演化式演算法
Cantú-Paz [7] 將常見的平行演化式演算法分為三大類,分別為全域單一族 群主從模型 (global single-population master-slave GAs)、單一族群微粒模型 (single-population fine-grained GAs) 以及多族群粗粒模型 (multiple-populaiton coarse-grained GAs)。
5
在「全域單一族群主從模型」中,通常有一個負責管理演算法運作的主處理 器 (master) 以及多個可獨立運作用以執行演算法中各動作的子處理器 (slaves),
當此模型運行時,主處理器會分派可同時運算的工作給各個子處理器去同步執行,
例如演化式演算法中的評估個體,此機制不需交換個體間的情報即可進行計算;
主處理器會等待所有子處理器完成計算後才會繼續進行下一個步驟,因此並不改 變演算法的本質,通常以加速計算為訴求。
「單一族群微粒模型」則以一個處理器來負責一個個體,並將個體排成網格 狀,每個個體皆可與相鄰的個體進行交配繁殖,但不可與其他未相鄰的個體交 配。
「多族群粗粒模型」與上述兩種單一族群的模型不同,為多族群模型。此模 型將族群分成多個子族群 (sub-population),各個子族群可以獨立演化,就如同 獨立的島嶼般,因此也稱為島嶼模型 (island model),各島嶼間可透過特定的連 結方式來聯絡,將各自具有代表性的解做遷徙 (migration),防止各島嶼陷入區域 最佳解。而透過不同的族群切割方式、島嶼間的連結方式,以及選擇用來作為遷 徙的解,使得此模型的變化相當大,因此也廣受人們喜愛。
(a)
… Master
Slaves