第一章 緒論
1.2 背景知識
1.2.1 多目標最佳化問題定義
一般的情況下,多目標最佳化問題可以定義成下面的形式:
Mimimize (or Maximize) 𝐹(𝑥) = (𝑓1(𝑥), … , 𝑓𝑚(𝑥))T
Subject to 𝑥 ∈ Ω. (1)
Ω 代表決策空間 (decision space),x = (x1, …, xn)T 為決策空間中的候選 解,包含 n 個決策變數 (decision variable), F:Ω → Rm 由 m 個實數目標函式 構成,Rm 代表目標空間 (objective space)。
假設問題是將目標值最小化,存在兩組解 x1 與 x2,對應到 Rm 中的目標向 量分別為 F(x1) = (f1(x1), … , fm(x1))、F(x2) = (f1(x2), … , fm(x2)),若滿足所有的 i = 1, … , m 使得 fi(x1) fi(x2),並且至少存在一個 j 屬於 {1, …, m} 使得 fj(x1) fj(x2),這種情況我們稱為 x1 凌越 (dominate) x2。如果有一組解 x*,不存在任何 解 x 使得 F(x) 凌越 F(x*),則我們稱此 x* 為柏拉圖最佳解 (pareto optimal) 或非凌越解 (non-dominated solution)。由所有柏拉圖最佳解所形成的集 合稱為柏拉圖解集合 (Pareto set, PS),而柏拉圖解集合中的所有解對應到 Rm 中 的目標向量所形成的集合稱為柏拉圖前緣 (Pareto front, PF),兩者的定義如下:
𝑃𝑆 = {𝑥∗ ∈ Ω | !∃ 𝑥 ∈ Ω, 𝐹(𝑥) dominates 𝐹(𝑥∗)}. (2) 𝑃𝐹 = {𝐹(𝑥) ∈ 𝑅𝑚 | 𝑥 ∈ 𝑃𝑆}. (3)
圖 1 說明凌越關係,假設其為多目標最小化問題中解在目標空間上的分布 狀況,則點 A 凌越點 C 與點 D,點 B 凌越點 D 與點 E,點 A 與點 B 沒有 其它點凌越它們,所以由這兩點構成此問題的柏拉圖前緣。
圖 1:凌越關係示意圖 f2
f A
B C
D
E
1.2.2 演化演算法
演化演算法是模擬大自然中生物演化過程的一種搜尋演算法,演算法會維持 一個族群,族群中的每一個個體都代表問題的一個可能的解,每一個個體都擁有 自己的基因 (決策變數或根據問題而決定的特定編碼),透過親代之間互相進行交 配 (crossover)、突變 (mutation) 來產生下一輪帶有不同基因的子代,再經由環境 選擇 (environmental selection) 挑選可以存活到下一代的個體,反覆執行這些步驟 直到演算法到達設定的終止條件。演化演算法的基本流程如圖 2 所示:
族群初始化 (population initialization):演化演算法需要先產生初始的族群,
普遍的方法是隨機產生,或者是使用與求解的問題相關的知識與經驗法則來產生,
也有利用區域搜尋方法 (local search),先對隨機產生的解進行一段時間的搜尋演 算法,將得到的解作為初始解的作法。
圖 2:演化演算法流程圖 族群初始化
評估族群
親代選擇
繁殖
環境選擇 評估族群
結束 否
是 累加演化代數
到達終止條件
評估族群 (population evaluation):為了判斷族群中個體的優劣,演化演算法 會對個體計算適應值 (fitness),在單目標的情況下我們可以直接使用個體的目標 函數值作為適應值;多目標的情況下,需要較為複雜的方法來賦予個體適應值。
常見的計算適應值方法有凌越關係以及將各目標函數值進行合併計算的聚合函 數 (aggregation function) 等。
親代選擇 (mating selection):親代選擇的目的在於選擇優秀的親代來產生優 秀的子代,常見的選擇方法有依照個體適應值分配被選為親代機率的輪盤法 (roulette wheel selection),以及透過隨機挑選數個個體互相比較優劣,由最優秀者 擔任親代的競賽法 (tournament selection)。
繁殖 (reproduction):繁殖經由親代選擇所選出的親代進行交配與突變來產生 子代。交配與突變的方法根據不同的問題與個體的編碼方式有多種不同的方法,
若編碼方式為二進位編碼,交配方式有單點交配 (1-point crossover) 與雙點交配 (2-point crossover) 等,突變方式有交換突變 (swap mutation) 等;如果為實數編 碼,常用的交配方法為模擬二進制交配法 (simulated binary crossover, SBX),搭配 的突變方法為多項式突變法 (polynomial mutation) [4]。
環境選擇:產生完所有子代之後,演化演算法使用多種環境選擇機制來保留 族群中優秀的個體或淘汰較差的個體,基本的作法有整個子代替換掉整個親代的 成代替換 (generational model) ,以及產生幾個子代就替換掉幾個適應值最差的親 代的穩態替換 (steady-state model)。
終止條件:演化演算法的終止條件通常為進行過的演化代數或者產生過的子 代的數量。
求解多目標最佳化問題時,如果我們使用精確的演算法來求問題的最佳解,
演算法會花費相當多的時間,然而我們或許沒有那麼多的時間可以等待,這個時 候能夠控制計算時間的演化演算法能夠讓我們在設定的終止條件內得到可以接 受的相對好的最佳解,因此演化演算法被認為是求解多目標最佳化問題時較有效 率的方法。