第二章 文獻探討
2.2 區域搜尋法
2.2.4 迭代區域搜尋法 [11]
迭代區域搜尋法 (Iterated local search) 是在每一次搜尋到區域最佳解時,去 做隨機擾動 (perturbation) 並且再一次作區域搜尋,直到解有比現有最佳解好時 才會跳脫此迴圈,該篇文獻使用了貪婪禁忌搜尋 (Greedy Randomized Adaptive
Search Procedure) 與迭代區域搜尋法,藉由產生較好的合法初始解後再去作迭代 區域搜尋。
該篇文獻中針對初始解的部分提出了以下三個步驟:
(1) Build a 1-factorization
依 照 多 邊 形 法 (polygon method) 可 以 建 立 一 個 簡 單 循 環 賽 程 (simple
round-robin tournament),而建立的方法如圖 17 所示:
圖 17:多邊形法範例 [11]
圖 17 中數字代表虛擬隊伍{1,…, n},此範例 n 為 6,首先會把 1 到 n1 的虛 擬隊伍依照順時針方式放入 n1 邊形的點中,每一回合在點 l (2≤l≤n/2)的虛擬隊 伍會對上在點 n+1l 的隊伍,例如 n 為 6 時在第一回合點 3(l = 3)上的隊伍會跟點
4(6+13)的隊伍比賽,並且在每一回合中點 1 的位子會對上虛擬隊伍 n,在下一 回合時會去將 n1 邊形中的虛擬隊伍做順時針的旋轉,例如圖 17 中原先虛擬隊 伍 1 在最上面的點,但在旋轉過後會跑到圖 17 中虛擬隊伍 2 的位子。將所有虛 擬隊伍都對上其他虛擬隊伍後,就可以迅速地建立好循環賽程。
接下來會複製 1 到 n1 的比賽使得整個變成一個雙循環賽,之後依照整個賽 程各隊伍的場館連續關係,例如依照此方法隊伍 1 的賽程為 64253,雙循環賽變 成 6425364253,藉由此連續場館關係可以建立一個矩陣如圖 18 的連續場館關係 圖。
圖 18:連續場館矩陣範例 (修改自 [11])
圖 18 中(i,j)代表隊伍 i 與隊伍 j 在賽程中場館連續次數,例如隊伍 1 的賽程 安排為 64253-6-4-2-5-3,那麼從隊伍 2 移動到隊伍 5 的次數為 2,藉由此方法可 以發現隊伍 2 與隊伍 5 場館連續次數為最多的 6 次,之後安排真正的隊伍到虛擬 隊伍時,根據矩陣中的次數來判斷,真正隊伍中兩隊距離較短者就應該分配到矩
陣中次數最多的隊伍,如此可以減少總距離。
(2) Assign real teams to abstract teams
根據連續場館矩陣與真正各隊伍之間的距離去指派,隊伍之間距離近的會去 指派到連續對手矩陣中次數多的虛擬隊伍;相反的距離遠的就會去指派到連續場 館矩陣中次數少的虛擬隊伍,藉由此方式可以輕易地分配好各個隊伍。
(3) Assign stadiums to games
最後會去分配主客場的關係,首先第一回合會是用隨機的方式產生,而 2 到 n2 回合中會根據比賽隊伍 i 和 j 的連續主客場關係 ni去決定,如果隊伍 i 連續 打了兩場主場,則 ni為 2;如果隊伍 j 連續打了三場客場,則 nj為 3,其決定方 式如下:
[1]
n
i > nj隊伍 i 如果上一回合在客場比賽,則此場比賽則會在主場;如果上一場比賽 在主場,則此場比賽則會在客場。
[2]
n
i < nj隊伍 j 如果上一回合在客場比賽,則此場比賽則會在主場;如果上一場比賽 在主場,則此場比賽則會在客場。
[3]
n
i = nj如果上一回合隊伍 j 在主場比賽、隊伍 i 在客場比賽,那麼此回合會到 i 的主 場比賽;如果上一回合隊伍 j 在客場比賽、隊伍 i 在主場比賽,那麼此回合會到 j
的主場比賽。
如果非以上兩者則會隨機的到 i 或者 j 的主場比賽。
如此一來能夠相當快速的找到一個鏡像競賽旅程問題的初始解,而另外對於 鄰域的部分也提出了 Game rotation [11] 的方法,如圖 19 所示:
圖 19:Game rotation 轉換範例 [11]
首先選擇某一回合中的兩場比賽如圖 19,選擇第 1 回合隊伍 8 對上隊伍 2 和隊伍 7 對上隊伍 3, 此時我們交換這兩場比賽的關係變成隊伍 8 對上隊伍 3、
隊伍 7 對上隊伍 2。首先我們會先把第 1 回合的比賽關係改變為如圖 19 左下的關 係圖,接著到別回合中(在此範例為第 2 回合)找尋剛才被消去掉的兩場比賽,如 果順利的話可以在某一回合中找到這兩場比賽,並且替換掉原本的比賽如圖 19 右下的關係圖,完成 Game rotation [11];不順利的話,則在別的回合中補上消失 的一場比賽,然而此回合的比賽會有衝突,所以必須要消掉某個因為補上而衝突
的比賽,接著再去另外的回合中找被消掉的比賽,如此反覆下去最後就能排完整
個賽程。
該文獻初始解快速產生的方法在之後解鏡像競賽旅程問題的文獻大量被使
用,也因為這樣的方法能夠產生出好的初始解,如此一來能夠大幅度的增進區域 搜尋後的結果,這樣的方式對於鏡像競賽旅程問題能夠快速的找到好的初始解。
但沒有任何文獻將這樣的作法應用在競賽旅程問題,或許未來能夠深入研究該如 何學習這樣的方法創造一個好的競賽旅程問題初始解,這部分在本論文並沒有做 更深入的研究,但是這樣產生初始解的方式對於鏡像競賽旅程問題提供很有效率 的幫助。