先行研究では排斥率をゼロとしたが,実際はCSの排斥操作は探索の多様性を強めるこ とができる。排斥に対して適当な調整を行うことが可能であれば,よりCSの探索性能の 向上が期待できる。排斥操作に対して,まず排斥点の選点方式について改良を行った。従 来の排斥点の選点方式では探索点の中で評価値が一番悪いものを選択して排斥する。評価 値が一番悪い探索点だけ排斥を行うのであれば,探索点の探索情報によって,排斥の空間 的な多様化・集中化を実現することが難しい。排斥操作の空間的な多様化・集中化を実現 するために,今回は探索点の適応度比例eiで排斥点をルーレット選択する。評価値情報が 良い探索点は適応度が高く,排斥される可能性が小さい。評価値情報が悪い探索点は適応 度が低く,排斥される可能性が大きい。ランキングがRの探索点の適応度比例は式(4.4)で 計算する。
eR = f(xR)− f(x)best
∑m
j=2{f(xj)− f(x)best} (R=2,3, . . . ,m) (4.4) ランキングがRの点のルーレット選択の上限は式(4.5)で計算する。
SR =
∑R j=2
ej (i=2,3, . . . ,m) (4.5)
(0,1)からランダムに数値rを生成する。もし
SR < r≤ SR (4.6)
なら,xRを排斥する。
具体的な排斥する探索点を選択するステップは:
(1) m個の探索点の評価値は一番良い探索点の評価値 f1から一番悪い探索点の評価値 fm まで(f1...fm)を計算する。
(2) 評価値が一番良い探索点の評価値 f1と他のm− 1個の点の評価値の差を計算する (k2 = f2− f1...km = fm− f1)。
(3) すべての評価値差の和Tを計算する。(T =k2+k3+...km)
(4) R1= k2,R2= k2+k3,R3 =k2+k3+k4, , ,Rm−1 =k2+k3+k4+k5+...+kmを計算する
(5) S1 =R1/T,S2 =R2/T, , ,Sm−1 =Rm−1/T の探索点の適応度を計算する。
(6) 評価値が一番良い探索点を選択せず保存する。(0,1)からランダムrを生成する。
もしrの値が(0,S1)の範囲内は評価値が2番目良い点を選択する。もしrの値が (Sm−2,Sm−1)の範囲内ならば評価値が一番悪い探索点を選択する。この方法では,評 価値が悪い探索点を選択される確率が大きい。このように,探索点の良さによって 探索点を選択して排斥することができる。
そして,選択した排斥点に対して近傍生成と同じ探索戦略を使って,CSの排斥操作の 時空間の多様化・集中化を実現する。選択した排斥点に対しての具体的なβの調整則を式 (4.7),式(4.8)に示す。
βmin3 =βmin+0.8×(βmax−βmin) k kmax
(4.7)
βpa:= βmax−(βmax−βmin3)Rpa−1
m−1 (4.8)
ここで,kは探索の評価回数,βpaは排斥点に対してのパラメータβ,Rpaは排斥点xpaの評 価値の順位,kmaxは最大評価回数である。以上の調整方法で排斥操作における時空間の多 様化・集中化を実現することができると考えられる。
以下に,本研究で提案する時空間の多様化・集中化を基づく適応型Cuckoo Searchのア ルゴリズムを示す。
【時空間の多様化・集中化に基づく適応型Cuckoo Search】
Step 0:[準備]
探索点数m,ステップサイズ調整パラメータα >0,排斥確率pa ∈[0,1],最大評価 回数kmax,βmin,βmaxを定め,評価回数k=0とする。
Step 1:[初期化]
探索点の初期解xi(i = 1,2,· · · ,m)を初期配置領域S内にランダムに与え,探索点 群をX = {xi|i=1,2, . . . ,m}とする。探索点の評価値 f(xi)を求め,k :=mとする。
Step 2:[レヴィフライト]
探索点xiのパラメータβiを以下の式で設定する。
βmin2 =βmin+0.8×(βmax−βmin) k kmax βi := βmax−(βmax−βmin2)Ri−1
m−1 (i= 1,2, . . . ,m)
探索点群から参照点xp ∈Xをランダムに1つ選択し,以下の式で近傍解xˆを生成 する。
ˆ
x:= xp+αL(βi)
L(βi)= [L1(βi),L2(βi), . . . ,Ln(βi)]T 近傍解の評価値 f( ˆx)を求め,k:=k+1とする。
Step 3:[更新]
参照点を除いた探索点群から更新点xq(,xp)を選び,以下の式により更新する。
xq :=
{ xˆ f( ˆx)≤f(xq) xq otherwise
Step 4:[排斥]
排斥確率paに従い,探索点の適応度比例eiで排斥点をルーレット選択する。ランキ ングがRの探索点の適応度比例は以下の式で計算する。
eR = f(xR)− f(x)best
∑m
j=2{f(xj)− f(x)best} (R=2,3, . . . ,m) 選択した排斥点xpaは以下の操作で移動させる。
βmin3=βmin+0.8×(βmax−βmin) k kmax βpa := βmax−(βmax−βmin3)Rpa−1
m−1 xpa :=xpa+αL(βpa)
L(βpa)=[L1(βpa),L2(βpa), . . . ,Ln(βpa)]T 排斥点の評価値 f(xpa)を求め,k:= k+1とする。
Step 5:[終了判定]
k≥kmaxならば,探索を終了する。さもなければStep 2へ戻る。