第二章 文獻探討
2.3 具參數調整機制之演化式演算法
2.3.3 連續數值-個別參數-群體資訊
2.3.3.1 Self-adaptive DE (SaDE)[8]
SaDE 也是使用多突變策略的演算法,分別為 DE/rand/1/bin 與 DE/current to best/2/bin,前者的隨機性可提供族群探索空間的可能性,後者則對增加收斂度有 所幫助,而使用哪種策略則是由是否產生優良子代的次數來決定,其算法見下 式:
突變策略 DE n n
DE n o n o (8)
代表使用 DE n n 的機率, 與 分別代表 DE n n 與 DE n o n 兩個策略在學習時間 (learning period,在此設定為50代)
內成功產生優良子代的次數,
與 則是失敗的次數。一開始
會設為0.5,在經過學習時間,也就是每50代演化後,會依上式重新計算並將 、 、 與
歸零,因此兩種策略的使用機率會從一開始相同的 50% 隨著演化而增減。
除了突變策略,SaDE 的 CR 值也有其調整機制,其算法見下式:
F 值為平均數 0.5,標準差 0.3 的常態分布隨機值,其範圍為 (0, 2],在一開
始不需要特別設定。CR 的算法較特別,為一個以 為平均值,標準差 0.1 的 常態分布隨機值,而 代表所有產生過優良個體的 CR 值之平均,如同突變策略的調整,在經過固定代數的演化後會進行 的統計(此處設定為 25 代),
而 CR 則是每 5 代便重新計算一次,藉此讓 CR 值依過往的優良經驗移動來提 升效能。
2.3.3.2 Self-Adaptive DE Algorithm in Constrained Real-Parameter
Optimization(jDE-2)[9]
jDE-2 對 jDE 進行了改良,從原本只使用一個突變策略改為兩個,分別為 DE n n 和 DE n o n,因此每個個體所擁有的參數組也變為兩
組,如下圖所示:
突變策略1 突變策略2
個體1
個體2
個體n
圖 2-3 jDE-2 個體與參數關係示意圖。
至於如何選擇突變策略,jDE-2 使用和 SaDE 一樣的作法,利用成功產生優 良子代的次數來決定是否提高其中一種策略的使用機率。
在 F 和 CR 值的調整方面,跟 jDE 的作法相同,只是多了另一組參數組 需考慮而已,見下式:
…
o (9)
o
s 即代表哪一種策略,
表示第i個個體的第一種策略 (DE n n)所 使用的 F 參數值。在演化次數達到 l(一般設為1000)代後,jDE-2 會將族群中 最差的前 k(一般設為70)個個體在合理範圍內以均勻分布之隨機值初始化,目 的是將那些對求解問題效能不太有貢獻的個體去除,嘗試以加入新成員的方式推 動演化的狀態。2.3.3.3 Self-adaptive Neighborhood Search DE(SaNSDE) [10]
此演算法融合了 NSDE 與 SaDE,藉由 SaDE 對 CR 與突變策略的調整能 力,來改善 NSDE 對於參數只有隨機性而沒有調整機制的缺點。在突變策略方 面,SaNSDE 的作法與 SaDE 相同。對於 F 值的處理,NSDE 原本有各半的機 率使用常態分布與科西分布,而 SaNSDE 則將該機率以類似 SaDE 的方式調整 之,也就是說必頇記錄突變出優良子代的 F 值是由常態分布還是科西分布產生 的,才能以其成功及失敗的次數來對之後的F值進行調整,見下式:
o (10)
CR 值的算法也從 SaDE 處經過了修改,除了
,還需要 CRrec 來記錄在25 代之內產生過優良子代的 CR 值,具體算法見下式:
(11)
﹣
代表新值與原值的適應度之差, 則是算出當前個體的適應度差在 整體裡佔多少比重,將 CRrec 內存放的每個 CR 值乘上自己的比重,即求出
,其概念為即使同樣產生優良子代,這些 CR 值可能還是有優劣之分,故捨 棄原本單純算出平均值的方式,用比重來提高一些效果較好的 CR 值之影響力。
2.3.3.4 Adaptive DE with Optional External Archive (JADE) [11]
JADE 使用了算術平均 (arithmetic mean) 與勒莫平均 (Lehmer mean) 來保 留優良的參數值,並且會和上一代所使用的參數做一定比例的結合來達到參數調 整的目的,其 CR 與 F 值算法如下述。
(12)
m n
代表成功產生過優良子代(優於親代)的 CR 值之集合,m n 為 其算術平均,c 之範圍介於0與1,可決定參考過往 CR 值的比例, 之初始值 設為0.5,之後每代演化結束後會依上式進行更新,再藉著常態分布來算出 。 因為記錄了 ,即使演化結束了,優良的CR值依然能繼續發揮一定的影響力來 對之後的 CR 進行調整。
(13) m nL
m nL ∈
∈
如同 CR 值,F 值的計算也參考了前代演化的結果。 為成功產生優良子 代的 F 值之集合,m nL 為其勒莫平均,算出 後可由科西分布得出 F 值。因為越大的 F 值越能提高演化率,而太小的 值可能產生過早收斂之情 形,並且勒莫平均產生之數值平均來說大於算術平均,所以在計算 F 值的時候 使用的是勒莫平均。
2.3.3.5 Self-adaptive Multi-objective DE with Direction Information Provided
by Archived Inferior Solutions (JADE2) [12]
為求解多目標最佳化問題,Zhang 與 Anderson 之後又發表了 JADE2 演算 法,主要是對個體的選擇與交配行為進行修改。如同之前提到的凌越概念,在問 題目標數大於等於二的時候,個體間是有可能產生互不凌越的關係(例如全部的 個體都在非凌越解集合內),此時我們需要別的機制來比較其優劣以進行選擇的 步驟,JADE2 認為在同一個階級上,擁有較低密集度的個體有利於在之後的演化 確保整個族群的分散度,所以使用了擁擠距離(crowding distance)來評估個體間 的密度關係,其計算方式見下式:
(14)
-
為個體 i 至最近的第 j 個個體間的歐基里德距離,M 為問題的目標數,
為個體 i 之擁擠距離,值越小代表此個體附近的密集度較高,而我們會挑選 密度較低者來進行演化。
至於突變的部份,因為族群在演化初期雖然能朝柏拉圖前緣逼近,但在一定 代數演化後經常呈現收斂速度減緩而往其他方向發展的情形,此時我們以選擇機 制挑出的優良個體可能變得不具有太大的影響力去帶動整個族群演化,因此
JADE2 另外將之前選擇時被淘汰的個體儲存起來,有機會再被用來計算差異向量,
其算法見下式:
+ [ - + - (15)
代表從前 個優良個體中隨機挑出的個體 (pϵ(0,1]),
是從族群與被淘汰個體中隨機挑出之親代, 則單純由族群中挑出,藉由考 慮那些曾被淘汰的個體,來嘗試再次增強整個族群往柏拉圖前緣演化的動力。
2.3.3.6 Self-adaptive JADE (SaJADE) [13]
JADE 演算法只對 F 與 CR 參數進行了調整,而 SaJADE 與 JADE 的不 同是加入了多種突變策略來使用,其選擇方式可由下式表示:
表示我們要使用的突變策略,k 表示策略的個數。關於 值的調整,
SaJADE 參考了 JADE,見下式:
o (16) m n
為一常態分布的隨機值,在第一代演化時會以 1/6 作為標準差,而 之平
均值 設為 ,使常態分布範圍剛好在 與 之間。m n 為產生優良 個體的 值之算術平均,藉由 c 值,我們可控制這些優良參數的影響力,以此 產生新的 值來決定該代用何種突變策略。