• 沒有找到結果。

第一章 緒論

1.1 研究動機

1.1.2 鏡像競賽旅程問題

因為競賽旅程問題求解所需要的時間相當長,為了縮小搜尋範圍進而衍生出 了鏡像競賽旅程問題 (Mirrored Traveling Tournament Problem),問題的表述幾乎 完全相同,有 n 個隊伍,並且希望將他們排在一個 2(n­1)回合的賽程當中,隊伍

背景知識 1.2

1.2.1 啟發式演算法

啟發式演算法 (Metaheuristic) 為一個迭代 (iterative) 過程,該過程藉由智能 地結合不同的概念引導其他經驗法則去探索 (exploration)、開發 (exploitation) 搜 索空間。本篇論文使用啟發式演算法來解競賽旅程問題,其中會使用模擬退火法 與變動鄰域搜尋法。

模擬退火法的目的是希望能夠跳脫區域最佳解,當搜尋到適應函數 (fitness

value) 更好時,會將原先的解替換成搜尋到的解;但是當搜尋到的解 j 適應函數 較解 i 差時,則使用以下式子當作機率去選擇:

exp⁡(

f(i)⁡-⁡f(j)

T ) > rand [0,1) (2) f(i)為解 i 的適應函數,T 為溫度,利用迭代的方式將溫度降低,溫度越低會 讓適應函數差距較大的解不容易被選擇,藉由此方式迭代搜尋,另外在模擬退火 法中有升溫的機制,溫度提升能讓適應函數較差的解被選到的機率上升。

變動鄰域搜尋法利用依序改變鄰域函式的方式去搜尋,因為某個鄰域函式搜 尋到的區域最佳解未必為其他鄰域函式的區域最佳解,因此當某個鄰域函式卡在 其區域最佳解時,會替換成另外一種鄰域函式去搜尋。

1.2.2 多目標最佳化問題

多目標最佳化問題如下:

Minimize/Maximize F(x) = (f1(x), ..., fm(x))T (3) Subject to x   (4)

Ω 為決策空間 (decision variable space),Rm為目標空間域 (objective space ),

F:Ω → R

m 由 m 個實數目標函式所組成。要如何決定解的好壞?在此以最小化 的問題為例,兩個屬於 Rm的向量 u = (u1, u2, ..., um) 和 v = (v1, v2, ..., vm),如果對 所有的 i = 1, ... , m 使得 ui ≤ v,並且至少存在一個 j 屬於 {1, ... , m} 使得 ui j < vj那麼我們可以說 u 凌越 (dominate) v。以圖 1 為例,解 x 凌越虛線區域中所有的 解。

圖 1:凌越關係

求解多目標問題大致可分為三種方法,合併函式法1 (aggregation function)、

階層法2 (lexicographical) 和柏拉圖最佳化 (pareto optimal),目前以柏拉圖最佳最 化常被使用。如果找不到一個 x

  使得 F(x)凌越 F(x

*),則點 x*

  為柏拉圖

1 合併函式法:需要給定一個明確的函式將多個目標值合併成單一目標。

2 階層法:需要指定目標間的優先權,並依照優先次序最佳化每個目標。

最佳。令 PS 為所有柏拉圖最佳解的集合,PF 為所有柏拉圖最佳化之目標向量集 合,則 PS 與 PF 之定義式如下:

PS = {x

*   | ! x  , F(x) dominates F(x*)} (5)

PF = {(x)  R

m | x

 PS} (6)

演化式演算法為一種群體式搜尋演算法,而柏拉圖最佳化是期望找到多個最 佳解,因此演化式演算法成為柏拉圖最佳求解多目標問題的一種有效方法。近年 來著名多目標演化式演算法有:NSGA II [2]、SPEA2 [3]、MOEA/D [4] 等等。

本問題在絕大部分的文獻中只討論單目標,然而在本論文中將此問題發展為 多目標問題,並且使用多目標演化式演算法來做搜尋,本論文考慮以下兩個目 標:

f

1 = Total Traveling Distance (旅行總距離) (7)

f

2 = Longest Distance Traveled (最長旅行距離) (8)

1.2.3 限制處理機制

限制處理的目的在於找到解 (𝑥⃗) 能夠最佳化目標函式 f(𝑥⃗),並滿足競賽旅程

問題的兩個限制。

競賽旅程問題常見的作法是使用懲罰函數的方式,將懲罰值(本論文以 ρ 代表) 乘上兩種限制的違反量後加上旅行總距離,因為不合法解加上懲罰函數後,其適 應函數可能會大於合法解的適應函數,如此一來合法解適應函數會優於不合法解,

合法解就會被選到。另外本論文也會利用策略震盪 (strategic oscillation) 的方法 來調整

ρ,如此一來可能會對搜尋效能有所幫助。

除了懲罰函數的做法,另外本論文也使用ϵ-constraint 的方式,用此種方式與 使用懲罰函數的方式比較,並找到一種較為適合此問題的機制。此種方法會將違 反兩種限制的違反量限定在可接受的範圍,在一開始的搜尋中會因為可接受的範 圍廣而搜尋到許多適應函數很好的不合法解,但可接受的違反量因為代數上升而 降低,如此一來能將違反量過多的不合法解去除,慢慢地搜尋到合法解。

研究目的與貢獻 1.3

本論文利用啟發式演算法來解競賽旅程問題,跟過去的方法不同的是,本論 文將此問題發展為多目標最佳化問題,其目標函式分為以下兩者:

(1) 旅行總距離:所有隊伍旅行距離總和。

(2) 最長旅行距離:所有隊伍中旅行距離最長的距離。

將此問題發展為多目標最佳化問題後,可以讓使用者依照自己的需求去選擇 較合適的解,如此一來能讓此問題更加生活化。

本論文藉由群體式搜尋以及改良現有的鄰域函式,讓搜尋的效能不會因為從 單目標最佳化問題轉換為多目標最佳化問題而下降。

本論文研究範疇:

(1) 比較變動鄰域函式與隨機鄰域函式在競賽旅程問題上的優劣。

(2) 測試鄰域函式順序是否影響變動鄰域函式效能。

(3) 改良文獻中提出的鄰域函式。

(4) 將競賽旅程問題發展為多目標最佳化問題。

(5) 比較懲罰函數與 ϵ-constraint 用於競賽旅程問題的優劣。

本論文提出了兩種新的鄰域,在搜尋的時間與效能上有所提升,但是並沒有 更新現有的單目標最佳解。此外本論文將此問題發展為多目標最佳化問題,讓使 用者在使用上不會侷限於旅行總距離,而是能夠考慮到各個隊伍的公平性,並且 提出了目前找到的多目標最佳化解,讓此問題能夠往多目標最佳化的方向繼續發 展。

第二章 文獻探討

在競賽旅程問題中最常使用區域搜尋法如:模擬退火法 [5][6]、禁忌搜尋法

(Tabu Search) [7]…等方法來排賽程,而在區域搜尋法中最重要的即為鄰域,以下 幾種鄰域最常被使用:

常見鄰域函式 2.1

(1) SwapHomes [5]

選擇兩個隊伍 Ti和 Tj交換賽程中兩個隊伍比賽的主客場關係,例如選擇隊伍

2 和 4,在 R5時兩隊要到 T2的主場去比賽,而在 R8時則是要到 T4主場比賽,做 完 SwapHomes 之後 R5會到 T4主場,而 R8則會到 T2主場比賽,如圖 2 和圖 3 所 示,灰色標記表示要替換的場次,負號代表客場比賽。

圖 2:SwapHomes 轉換前範例 [5]

圖 3:SwapHomes 轉換後範例 [5]

(2) SwapRounds [5]

選擇兩回合 Rk和 Rl交換賽程中兩回合的所有比賽,如圖 4 和圖 5 所示,灰 色標記表示要替換的場次。

圖 4:SwapRounds 轉換前範例 [5]

圖 5:SwapRounds 轉換後範例 [5]

(3) SwapTeams [5]

選擇兩個隊伍 Ti和 Tj交換賽程中除了彼此隊伍以外的所有比賽,例如選擇隊 伍 2 和 5,則會把 T2中除了 5 和-5 以外的所有比賽跟 T5中除了 2 和-2 的所有 比賽交換,交換之後要去修改賽程中其他的比賽,因為替換之後的對手也會不同,

所以對手也必須要調整賽程,如圖 7 中第 2 回合,隊伍 2 和隊伍 5 的賽程交換後,

會導致隊伍 1 跟隊伍 3 的賽程衝突,因此要將此兩場比賽做調整,讓整個回合的 隊伍都不會衝突。SwapTeams 範例如圖 6 和圖 7 所示,灰色標記表示要替換的場 次。

圖 6:SwapTeams 轉換前範例 [5]

圖 7:SwapTeams 轉換後範例 [5]

(4) PartialSwapRounds [5]

選擇一支隊伍 Ti以及兩回合 Rk和 Rl,交換隊伍 Ti中在 Rk和 Rl的比賽,之後 動態的去修改,如圖 9 中第 2 回合,當隊伍 2 的兩個回合比賽交換後,因為交換 過來的-6 會與隊伍 4 的 6 衝突,因此要將隊伍 4 的兩個回合 6 與-4 交換,當交換 後再有衝突時再去其他隊伍做交換,直到沒有衝突為止。PartialSwapRounds 範例 如圖 8 和圖 9 所示,灰色標記表示要替換的場次。

圖 8:PartialSwapRounds 轉換前範例 [5]

圖 9:PartialSwapRounds 轉換後範例[5]

(5) PartialSwapTeams [5]

選擇兩支隊伍 Ti和 Tj以及某一回合 Rk,交換隊伍 Ti和 Tj在 Rk中的比賽,如 圖 10 中選擇隊伍 2 和隊伍 4,交換在回合 9 中兩個隊伍的比賽,首先將這兩場比 賽互換後,修改因為此互換而衝突的所有回合,此步驟需要依序的去搜尋。如圖

10 中第 3 回合在第 9 回合交換後,隊伍 4 中到隊伍 1 的主場(-1)會出現兩次,那 麼就會將衝突的第 3 回合中隊伍 2 和隊伍 4 的比賽去做交換,其餘衝突的比賽以 此類推,最後再將有交換過的回合修改成正確的賽程,如圖 11 除了隊伍 2 和隊 伍 4 以外的賽程,灰色標記表示全部要替換的場次。

圖 10:PartialSwapTeams 轉換前範例 [5]

圖 11:PartialSwapTeams 轉換後範例 [5]

(6) Lookahead PartialSwapTeams [6]

此種方法會先偵測在 PartialSwapTeams [5]的過程中是否會重複使用到相同 的隊伍但場館相反,如圖 12 中隊伍 2 在第 5 回合與第 9 回合會將隊伍 5 重複使 用:

圖 12:PartialSwapTeams 交換順序範例(修改自 [6] )

seq 為 PartialSwapTeams [5] 交換的順序,此次 PartialSwapTeams [5] 需要交 換十次,此方法會依照順序找最快重複使用的隊伍,如圖 12 中第 5 與第 9 回合 交換的隊伍 5,接著對隊伍 2 中的這兩場比賽作 SwapHomes [5],之後再做

PartialSwapTeams [5],如此一來將會對替換次數有所改善,如圖 13 所示:

圖 13:PartialSwapTeams 改良後交換順序範例(修改自 [6] )

使用此作法可以省下五個交換的步驟,對於時間和效能上能有所提升,但因 為這樣的改良方式必須要先判斷交換之間是否有重複使用到的解。因為每一次搜 尋都需要偵測,所以會導致搜尋的時間加長,雖然成功的話替換次數會減少,但 如果沒有搜尋到就會浪費時間,為了避免掉這樣的浪費,本論文採用其他方式作 改良,而不會以事先偵測的方式改良。

區域搜尋法 2.2

2.2.1 模擬退火法 [5] [7] [8]

模擬退火法的特性是試圖跳脫區域最佳解,在該篇文獻中對於目標函式並非 單純的加總,如式(9)所示:

𝐶(S)= {

cost

(

S

)

S is feasible

cost(S)

2

+[ρ×f

(

nbv

(

S

))

]

2

S⁡is infeasible

(9)

C 為新的目標函式,S 為賽程,cost 為原本的目標函式(旅行總距離),ρ 為懲

罰值,nbv 為限制違反的數量,f 為一個次線性函式 (sublinear function),在文獻 中的 f(v)為1 + (√𝑣 ln 𝑣) 2⁄ ,該文獻認為在違反量多的不合法解中,多違反一次並

沒有很大的差別,因此利用此函式讓違反量不會因為違反次數上升而讓

ρ 成長過

快。

另外

ρ 的部分用策略震盪的方式去調整,依照當下找到解的合法性去調整 ρ,

如果是合法則會降低

ρ,如此一來可以往不合法的解去搜尋;如果解為不合法,

則會調高

ρ,如此一來可以往合法的解去搜尋。本論文將學習這種方式來做策略

升溫 (reheat) 則是在搜尋一段時間後增加溫度,如此一來可以跳脫區域最佳 解,因為當溫度很低時模擬退火法會因為其特性而較難跳脫區域最佳解。

文獻 [5] 提出五個相當有用的鄰域,並且也因為利用策略震盪和升溫的機制 找到相當好的解,但是在時間上花費相當的久,這是本篇論文值得改善的地方。

本篇論文將採用文獻 [5] 提出的模擬退火法方式,但是對於搜尋的方式將有所改 變,將原先使用 First-improving 的方式改成使用 Best-improving,另外也針對該文 獻所提出的五個鄰域做改良,藉由以上方式讓效能有所提升。

文獻 [7] 分析模擬退火法的初始解去做分析,提出了如式(10)的式子:

Eval⁡=⁡TTD⁡+⁡ ∑di⁡=⁡1ITDi+1i (10)

E

val為評估成本,TTD 為旅行距離總和,ITDi代表第 i 回合到 i+1 回合的旅行 距離,該文獻的目的是希望能夠在每一回合都找到評估成本最低的解,因此會使 用前瞻程序(look-ahead procedure)的方式搜尋 Eval,如圖 14 所示,首先從回合 0 產生了回合 1 的兩個可行賽程之後,對回合 1 去作搜尋並產生四個可能的解,接

E

val為評估成本,TTD 為旅行距離總和,ITDi代表第 i 回合到 i+1 回合的旅行 距離,該文獻的目的是希望能夠在每一回合都找到評估成本最低的解,因此會使 用前瞻程序(look-ahead procedure)的方式搜尋 Eval,如圖 14 所示,首先從回合 0 產生了回合 1 的兩個可行賽程之後,對回合 1 去作搜尋並產生四個可能的解,接

相關文件