第 3 章 排序優化問題的仿水流優化演算法
3.2 WFA4SP 的演算流程
TSP 是最典型的排序優化問題。推銷員必須拜訪一定數目的城市,每個城市 僅能經過一次。而城市間的距離各有不同,求解目標在找出拜訪各個城市的最佳 順序使繞行的距離最短。排序問題要求所有物件皆必須排入序列中,且物件不可 重覆出現在不同順位上,且一個順位只能有一個物件。在
N 個物件的排序問題中,
整個解空間有
N!個可行解。WFA4SP 的演算程序須確保解在合理解區域內。
WFA4SP 的演化程序如圖 3-1 所示。初始設定包含水流總質量、分流股數上限、
水流合併相似度、水流質量蒸發率、總水流數上限、和水氣飽和度等參數。水流 演化以一股水流開始,並以隨機方式決定其初始位置
X ,和其母水流位置
1 1X
~
後開 始流動。水流流動時依解空間的變化,可分出數股支流進行搜尋。分流支數依水流演 化過程解品質的變化率來決定。當目前水流位置的解較母水流好,就保持原方向 流動搜尋。若解較母水流差,則分出較多子水流進行多方搜尋。分流時會依目標 函數值優劣分配子水流的質量。目標值越好的子水流可分到的質量較多,以供後 續持續搜尋;反之目標值較差的水流分到較少質量,但可在後續演化過程和其他 水流合併,或是蒸發至大氣中經由降水重啟新的搜尋。
水流移步或分流後,須檢查水流位置是否鄰近,當兩條以上的水流位置鄰接 時保留目標值較好的一股水流,合併其餘水流質量進入下一代次水流演化。匯流 演算後各水流進行蒸發作業。地面所有水流都將散失一部份的質量於大氣中,若 水流蒸發後的質量低於所設定的下限,則該水流全數蒸散後消失。大氣聚積水氣 至飽和時,即進行降水作業,將水氣依現有水流的質量比例作分配,以供下一代 次的水流演化使用。
執行一代次水流演化作業後,檢查是否符合停止條件。若是則完成水流演化,
以迄今最佳解作為求解最終結果。否則以現有水流再次由分流作業開始進行下一 代次水流演化程序。
圖3-1. 仿水流優化演算法演化流程圖
基於上述求解的流程規劃,WFA4SP 演化流程的四項主要作業是:
1. 分流移步作業
水流可依原有方向維持單一水流或分流成多股子水流流動,因此分流移步作 業前須先決定分流數。先依目前水流的目標函數值相對於其母水流的改善率決定 分流數後,依目前水流速度設定各子水流的位置。若分流數是1 則維持單一水流 流動。計算各子水流位置的目標函數值後依比例分配各子水流質量,更新水流集
act Flows
Iteration 思 思 開 演
產產產演產產蒐產 定產演定定定定定
參參
計思產產計蒐計計 善善蒐善定產產善
支參
善定支產決決定決 度
以定定以以計思支 產流定定善流
進進進產進進 各產產各開各各定 定
執進執產進進 指定計指指指產產
為為為為為流產產 思 思 演 演
產產定定水參各水 於於於於
[指 指 支 產 所 所 指 定 決 決 定 決 度 ] [else]
[else]
[於 於 於 流 產 善 大 大 大 大 大 ] [else]
[大 大 達 演 達 達 ]
[指 指 產 產 所 執 進 所 所 善 產 進 進 ] [else]
[產 產 定 定 水 於 為 水 ] [else]
合。
2. 匯流作業
檢驗水流集合的各水流位置,將位置鄰近的水流進行合併。多股水流合併時 質量守恆,保留目標值最好的一股水流,將其餘水流的質量併入該水流。
3. 蒸發作業
將所有水流蒸發部份質量到大氣中,使水能跳脫地理空間的限制,以接續的 降水作業移動到不同區域。蒸發後若水流質量小於設定的下限,則將該水流質量 全數散發於大氣中。
4. 降水作業
大氣中的水氣含量達到飽和時,即啟動降水作業。降水可使轉為氣態的水份 在新的區域落下形成水流,進行不同區域的流動搜尋。
接下來說明本研究研擬的WFA4SP 的演算細節,內容包含初始參數設定程序 以及分流、匯流、蒸發、降水等四個作業流程細節。首先定義使用的數學符號:
q:變數個數,即問題的維度(dimension)。
( )u
b :變數
h h的上界值,在排序問題中此值為常數q,h= 1 K , 2 , ,
q。( )l
b :變數
h h的下界值,在排序問題中此值為常數1,h= 1 K , 2 , ,
q。t :當下水流演化的代次。
α
t :在代次 t 時,水流的不分流門檻值,是一個以目標函數值改善率衡量的門 檻,
0 <
tα≤ 1
。M :水流總質量。
0N :代次t 的水流股數。
tn :分流的子水流數上限。
η:總水流數上限。
γ :每代次水氣蒸發比例,
0 <
γ≤ 1
。β
:水流合併作業依據的兩位置向量相似度;兩水流的位置向量相似度達此 值時可合併,0 <
β≤ 1
。ρ :水氣飽和值,是水氣質量佔總質量的比值,達此值時須執行降水作業,
1 0 <
ρ≤
。σ
:當代次大氣中的水氣含量,0 ≤
σ≤
M0。Ω
:當代次所有水流的編號集合,Ω={
1 K,2, ,N
t}
。X:當代次所有水流所代表的解集合(位置向量集合),
X
={ X
1,X
2,K,X
Nt}
。X :水流
i i的位置向量,X
i =[ xi1x
i2Kx
iq]
。
X :目前搜尋到的最佳解,即最佳的水流位置向量。
optXi
′
:參考水流i即時強制降水的水流位置向量,X
i′=[ x
i′1x
i′2Kx
iq′]
。X
~i:分流出水流i的母水流位置向量,
X
~i =[ x
~i1~x
i2Kx
~iq]
。V :水流
i i的速度向量,V
i =[ vi1v
i2Kv
iq]
。
M :水流
i i的質量。
( ) X
if
:水流i位置向量代表的解的目標函數值。n :水流
i i分流出的子水流數,1≤n
i ≤n
。U :水流
ik i分出的子水流 k 的位置向量,U
ik =[ uik1u
ik2Ku
ikq]
。
Y :水流
ik i分出的子水流 k 的速度向量,Y
ik =[ yik1y
ik2Ky
ikq]
。
w :水流
ik i分出的子水流 k 的質量。以下各節將詳述WFA4SP 演算中各作業的運算程序。