第二章 背景知識與文獻探討
2.2 演化策略
1960 年 代 早 期 , 德 國 人 Rechenberg 在 柏 林 工 業 大 學 (Technical University of Berlin, TUB),為了解決流體力學中模型控制裡實數參數最佳化 的問題,發展了第一個實驗性的演化策略方法,此為演化策略的開端。因 為體認到工程上的一些非線性模型的數值問題,無法用傳統的數學線性方 法求解。後來他與Schwefel 合作發明了一種新的方法,即為「演化策略」,
有關演化策略解決工程上非線性模型的數值問題其細節部份可參閱[7]。最 早的演化策略非常簡單,類似隨機區域搜尋,稱為 (1+1)-ES,其演化流程 如圖2.2所示。
圖2.2 (1+1)-ES 流程圖
ES 與其他遺傳演算法不同的地方,在於 ES 中個體的編碼是以實數 (real-valued)的方式來表示,因此更適合處理工程上實數最佳化的問題。對 於一個有 n 個參數需要被最佳化的問題,個體 I 直接以一個 n 維的實 數向量 x 來代表,稱之為目標變數 (objective variables)。除了目標變數之 外,每一個 I 的表示法中,還額外包含兩組策略參數 σ 與 α ,其功能 為調整目標變數中突變行為的依據,其中 σ 稱之為 step-sizes,用來調整 個體的突變強度,α 稱之為 rotation angles,用來調整個體的旋轉角度(或 突變方向)。結合目標變數與策略參數,單一個體 I 的表示法如下所示[5]
n n
n
I = (x ; ; ) σ α ∈ × +σ × −[ π π, ] α
其中 nσ ∈ …{1, ,n},代表 step-sizes 的個數;nα∈{0, (2n n )(n− σ σ −1)/2},代表 rotation angles 的個數。依據不同突變機制的採用,其個體的表示法也有所 不同。ES 的基本演化流程與其他遺傳演算法類似,如圖 2.3 所示[5]。
where
組 (recombination)、突變 (mutation)、篩選 (selection)三個遺傳操作,其中 又以突變的遺傳操作最為重要,以下針對這三種遺傳操作加以說明。重 組 (Recombination)
重組的遺傳操作發生在至少兩個或兩個以上的個體,換句話說,在族 群式的演化策略(population-based evolution strategy) μ > 1的情況下才可進 行重組,一次重組產生一個新的個體。重組的主要目的,為交換個體彼此
重組運算可同時作用於目標變數與策略參數,且可分別使用不同的重 組方式。一般來說,目標變數使用discrete 或 global discrete 的重組方式;
策略參數 σ 使用 intermediate 或 global intermediate 的重組方式;策略參 數 α 的部份則偏向以 no recombination 的方式來進行。
突 變 (Mutation)
突變為 ES 中最重要的運算,也是達到個體間差異的主要來源。相對於 重組運算利用已存在個體之間的資訊,彼此交換進行訊息的流通,突變則 是利用隨機擾動的方式產生一個含有新的資訊之個體。突變運算依據策略 參數個數的不同,將直接影響到個體所產生的突變行為。一般來說,對於 一個 n 維的問題上,我們可將個體的突變分成三個類型來討論:
單一突變強度之非關聯式突變 (Uncorrelated Mutation with One Step-Size)
Line of equal Mutation Probability density
圖2.4 單一突變強度之非關聯式突變
n 維突變強度之非關聯式突變 (Uncorrelated Mutation with n Step-Sizes)
σ1
σ2
x1
x2
Line of equal Mutation Probability density
圖2.5 n 維突變強度的非關聯式突變。
關聯式突變 (Correlated Mutation)
比較 n =1σ ,n =0α 與 n =nσ ,n =0α 兩種情況,雖說利用 n 個 step-sizes
1, , n
σ …σ 來調整各自調整目標變數x , ,x1 … n,遠比只利用單一step-size 來調整 目標變數較為有效益。但在 n =nσ 的情況下仍然存在著些許的缺點,也就 是個體可突變的範圍,受限於座標軸系統造成突變橢圓與座標軸系統相依 的缺點,1981 年 Schwefel[8]提出了關連性突變的機制,其目的為希望突變 的橢圓區域能夠達到與座標軸系統獨立效果,此突變機制需要加入第二個 策略參數 α 。策略參數個數的設定變成 n =nσ ,n = n(n+1)/2α ,個體的表示 法如下
1 n 1 n 1 n
I = (x , ,x ; , ,… σ …σ σ; , ,α …α α )
突變的機制將變成先突變策略參數 σ,再突變策略參數 α,最後再對目標 變數 x 進行突變,其數學表示式如下
' N(0,1) + N (0,1)i (uncorrelated mutation vector)轉換成一個具有關聯性的突變向量 (correlated mutation vector)。且能使得協方差矩陣具有正定的性質,並使得突變的橢圓 在座標軸上朝任意方向旋轉[9],圖 2.6 為個體突變行為的示意圖。
σ1
σ2 α12
x1
x2
Line of equal Mutation Probability density
圖 2.6 關聯式突變。
篩 選(Selection)
在 ES 中,篩選的運算可分為兩個主要的部份,一個為父代篩選(Parent Selection),另一個為倖存者篩選 (Survivor Selection)。所謂父代篩選,起因 於重組運算中,我們需要從 ρ 個候選者當中隨機挑選兩個至多個個體並參 與重組運算,在這些候選者當中,每個個體將有相同的機率被選上。倖存 者篩選又可分成兩個部份,( , )-ESμ λ 及 ( + )-ESμ λ ,兩者主要差別在於
( + )-ESμ λ 會將父代及子代族群一併進行評估;而( , )-ESμ λ 會忽略父代資
訊,而只考慮子代族群進行評估,再將進行評估的集合中所有個體依適應 值排序,並挑選較佳的 μ 個體成為新的父代族群,進入下一代演化程序。
圖2.7 為傳統演化策略的示意圖。
起始 個父代
適應值計算
重組產生 個 個體
No
Yes
μ
λ
對 個個體進行 突變產生子代 終止條件判斷
?
結束
λ
篩選出 個個 體當父代
μ t=t+1
圖 2.7 傳統演化策略流程圖。
自動調節機制 (self-adaptation)
在討論完 ES 的基本運作模式後,接者我們將重點放在 ES 最具特色的 一個機制:自動調節機制(self-adaptation)。
Self-adaptation 為演化策略中主要的一個特性,此機制賦予個體在最佳 化的過程當中,依當時的情況自動調節個體的突變行為至最佳的狀態,作 法為將策略參數依附在個體表示法中,利用目標變數與策略參數共同演化 的方式來達成。在self-adaptation 的想法中,經由先突變策略參數及再突變 目標變數的方式,若先對策略參數進行突變後產生所謂好的策略值,將會 直接地反映在目標變數的突變行為上,因而產生一個較好的子代個體。策 略參數的品質好壞,則是間接地經由突變後產生子代的適應值(fitness value) 來衡量。
最佳化的過程中,若能迅速的調整策略參數達到所謂較好的設定值,
對其搜尋效能將有顯著的提升,在突變的架構下,影響self-adaptation 調整 品質及速度的關鍵,主要來自於參與調整的策略參數個數 nσ 與 nα,表 2.3 歸納了三種最常使用的策略參數設定與其所對應的個體表示法。
在策略參數個數n =1σ ,n =0α ,也就是單一突變強度之非關聯式突變的 情況下,由於參與調整的策略參數只有一個,因此,self-adaptation 能迅速 且有效地將 step-size 調整至適合的強度;在n =nσ ,n =0α 的 n 維突變強度之
非關聯式突變地情況下,參與調整的策略參數個數與問題維度呈線性的成 長,self-adaptation 對策略參數的調整將比單一突變強度之非關聯式突變慢 了許多,不過由於其較具彈性的突變能力(每一個維度以獨自的 step-size 調 整),故其仍然可達到較好的搜尋結果;最後一個也是最複雜的一種突變方
式,n =nσ ,n =n(n-1)/2α 的關聯性突變情況下,參與調整的策略參數在 nσ 的
部份與問題的維度呈線性成長,在nα的部份將與問題的維度呈現二次平方 項次型(quadric)的成長,即使在一個較低維度的問題上,對於所要調整的 rotation angles 卻已大大地超越 step-sizes 與目標變數所要調整的總和個數,
因而self-adaptation 將導致緩慢的收斂現象,此現象也是關連性突變機制不 被廣泛使用的主要原因,即使其突變的能力上較前兩者更具彈性,本論文 的研究重點將特別針對此現象加以深入研究與探討,進而提出一個利用群 體智能的引導機制來對其作改良。
nσ nα Structure of individuals Remark
1 0 (x , ,x ; )1 n n
σ σ
… Uncorrelated Mutation
n 0 (x , ,x ; , ,1 … n σ1 …σnσ ) Uncorrelated Mutation
n n(n-1)/2 (x , ,x ; , ,1… n
σ
1…σ α
nσ; , ,1…α
nα ) Correlated Mutation表 2.3 策略參數設定與其所對應的個體表示法整理