• 沒有找到結果。

第 3 章 排序優化問題的仿水流優化演算法

3.2 WFA4SP 的演算流程

TSP 是最典型的排序優化問題。推銷員必須拜訪一定數目的城市,每個城市 僅能經過一次。而城市間的距離各有不同,求解目標在找出拜訪各個城市的最佳 順序使繞行的距離最短。排序問題要求所有物件皆必須排入序列中,且物件不可 重覆出現在不同順位上,且一個順位只能有一個物件。在

N 個物件的排序問題中,

整個解空間有

N!個可行解。WFA4SP 的演算程序須確保解在合理解區域內。

WFA4SP 的演化程序如圖 3-1 所示。初始設定包含水流總質量、分流股數上限、

水流合併相似度、水流質量蒸發率、總水流數上限、和水氣飽和度等參數。水流 演化以一股水流開始,並以隨機方式決定其初始位置

X ,和其母水流位置

1 1

X

~

後開 始流動。

水流流動時依解空間的變化,可分出數股支流進行搜尋。分流支數依水流演 化過程解品質的變化率來決定。當目前水流位置的解較母水流好,就保持原方向 流動搜尋。若解較母水流差,則分出較多子水流進行多方搜尋。分流時會依目標 函數值優劣分配子水流的質量。目標值越好的子水流可分到的質量較多,以供後 續持續搜尋;反之目標值較差的水流分到較少質量,但可在後續演化過程和其他 水流合併,或是蒸發至大氣中經由降水重啟新的搜尋。

水流移步或分流後,須檢查水流位置是否鄰近,當兩條以上的水流位置鄰接 時保留目標值較好的一股水流,合併其餘水流質量進入下一代次水流演化。匯流 演算後各水流進行蒸發作業。地面所有水流都將散失一部份的質量於大氣中,若 水流蒸發後的質量低於所設定的下限,則該水流全數蒸散後消失。大氣聚積水氣 至飽和時,即進行降水作業,將水氣依現有水流的質量比例作分配,以供下一代 次的水流演化使用。

執行一代次水流演化作業後,檢查是否符合停止條件。若是則完成水流演化,

以迄今最佳解作為求解最終結果。否則以現有水流再次由分流作業開始進行下一 代次水流演化程序。

圖3-1. 仿水流優化演算法演化流程圖

基於上述求解的流程規劃,WFA4SP 演化流程的四項主要作業是:

1. 分流移步作業

水流可依原有方向維持單一水流或分流成多股子水流流動,因此分流移步作 業前須先決定分流數。先依目前水流的目標函數值相對於其母水流的改善率決定 分流數後,依目前水流速度設定各子水流的位置。若分流數是1 則維持單一水流 流動。計算各子水流位置的目標函數值後依比例分配各子水流質量,更新水流集

act Flows

Iteration 思 思 開 演

產產產演產產蒐產 定產演定定定定定

參參

計思產產計蒐計計 善善蒐善定產產善

支參

善定支產決決定決

以定定以以計思支 產流定定善流

進進進產進進 各產產各開各各定

執進執產進進 指定計指指指產產

為為為為為流產產 思 思 演 演

產產定定水參各水 於於於於

[指 指 支 產 所 所 指 定 決 決 定 決 度 ] [else]

[else]

[於 於 於 流 產 善 大 大 大 大 大 ] [else]

[大 大 達 演 達 達 ]

[指 指 產 產 所 執 進 所 所 善 產 進 進 ] [else]

[產 產 定 定 水 於 為 水 ] [else]

合。

2. 匯流作業

檢驗水流集合的各水流位置,將位置鄰近的水流進行合併。多股水流合併時 質量守恆,保留目標值最好的一股水流,將其餘水流的質量併入該水流。

3. 蒸發作業

將所有水流蒸發部份質量到大氣中,使水能跳脫地理空間的限制,以接續的 降水作業移動到不同區域。蒸發後若水流質量小於設定的下限,則將該水流質量 全數散發於大氣中。

4. 降水作業

大氣中的水氣含量達到飽和時,即啟動降水作業。降水可使轉為氣態的水份 在新的區域落下形成水流,進行不同區域的流動搜尋。

接下來說明本研究研擬的WFA4SP 的演算細節,內容包含初始參數設定程序 以及分流、匯流、蒸發、降水等四個作業流程細節。首先定義使用的數學符號:

q:變數個數,即問題的維度(dimension)。

( )u

b :變數

h h的上界值,在排序問題中此值為常數qh

= 1 K , 2 , ,

q

( )l

b :變數

h h的下界值,在排序問題中此值為常數1,h

= 1 K , 2 , ,

q

t :當下水流演化的代次。

α

t :在代次 t 時,水流的不分流門檻值,是一個以目標函數值改善率衡量的門 檻,

0 <

tα

≤ 1

M :水流總質量。

0

N :代次t 的水流股數。

t

n :分流的子水流數上限。

η:總水流數上限。

γ :每代次水氣蒸發比例,

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 =

[ x

i1

x

i2K

x

iq

]

X :目前搜尋到的最佳解,即最佳的水流位置向量。

opt

Xi

:參考水流i即時強制降水的水流位置向量,

X

i=

[ x

i1

x

i2K

x

iq

]

X

~i

:分流出水流i的母水流位置向量,

X

~i =

[ x

~i1~

x

i2K

x

~iq

]

V :水流

i i的速度向量,

V

i =

[ v

i1

v

i2K

v

iq

]

M :水流

i i的質量。

( ) X

i

f

:水流i位置向量代表的解的目標函數值。

n :水流

i i分流出的子水流數,1≤

n

i

n

U :水流

ik i分出的子水流 k 的位置向量,

U

ik =

[ u

ik1

u

ik2K

u

ikq

]

Y :水流

ik i分出的子水流 k 的速度向量,

Y

ik =

[ y

ik1

y

ik2K

y

ikq

]

w :水流

ik i分出的子水流 k 的質量。

以下各節將詳述WFA4SP 演算中各作業的運算程序。

相關文件