2.2 貪婪隨機自適應搜尋法(GRASP)
2.2.1 GRASP 應用於船席調配問題
2.2.1.1 搜尋子問題可行解之方法
在介紹方法前需要先了解以下四個名詞:
1. 節點(node): 在矩形時空圖的 xy 帄面定義出船 n 的到達時間 x=𝑎𝑛,以及整 個船席調配作業的結束時間 x=T,再將目前的每個矩形的長寬邊緣延伸,所 有延伸線段產生的交點,就稱為節點,如下圖 2-4 所示:
圖 2-4 節點示意圖,資料來源: Lee, D.H., Chen, J.H., & Cao, J.X. (2010)
2. 洞(Hole): 在矩形時空圖中沒有被船隻矩形佔據的空間,如下圖 6 所示。
3. 邊緣(Edge): 洞的邊緣線段
4. 頂點(Vertex): 為邊緣中的每個轉彎處,如下圖 6 所示,頂點是節點中的特殊 情形。
16
圖 2-5 頂點及洞的示意圖,資料來源: Lee, D.H., Chen, J.H., & Cao, J.X. (2010)
搜尋子問題可行解的方法流程如下:
1.輸入已知的資料
輸入欲排入的船 n 之前的 n-1 艘船的時空矩形,並定義出船 n 到港的時間𝑎𝑛, 以及整個作業時間的的結束點 T、船席長度 S、船 n 的大小𝑠𝑖。
2.將節點轉換成向量
找出𝑎𝑛和 T 之間的每個節點。並以每個節點為座標中心點並依其四個象限 的性質,給予一個向量,若該象限為洞則記為 1,若不為洞則記為 0。如下 圖 7,點 F 的向量依第 1、2、3、4 象限標記,可記為 [0,0,1,0]。
給予所有節點向量之後,可依其向量內 0 的數量將分成五個類別如下:
Class0: [0,0,0,0]
Class1: [1,0,0,0]、[0,1,0,0]、[0,0,1,0]、[0,0,0,1]
Class2: [1,1,0,0]、[1,0,1,0]、[1,0,0,1]、[0,1,1,0]、
[0,1,0,1]、[0,0,1,1]
Class3: [1,1,1,0]、[1,1,0,1]、[1,0,1,1]、[0,1,1,1]
Class4: [1,1,1,1]
17
圖 2-6 點 F 的四個象限示意圖,資料來源: Lee, D.H., Chen, J.H., & Cao, J.X. (2010)
3.統合向量
接著按照以下方法把每個類別的向量都統合到 Class1,因為向量中每個 1 都 表示矩形可以停靠的位置,全部轉換成 class1 可以方便判斷所有可能的停靠 方式。
(1) 將 class2 中的[1,0,1,0]拆分成兩個向量,[1,0,0,0]及 [0,0,1,0]。
(2) 將 class2 中的[0,1,0,1]拆分成兩個向量,[0,1,0,0]及 [0,0,0,1]。
(3) 將 class1 中的[1,0,0,0]及[0,0,0,1]放進集合𝒞1中
(4) 將所有 Class3 中的節點放進集合𝒞3中,並𝒞3中的每個節點如下表方式 延伸一條有向線段。
表 2 -2 𝒞3中的節點之延伸線段方式
延伸方向 向量類型 左 [0,1,1,1]
下 [1,0,1,1]
上 [1,1,0,1]
左 [1,1,1,0]
為和其他𝒞3中的節點之延伸線段產生交點如下圖 8 所示。點 U 及為節點之 延伸線段與節點之延伸線段產生的交點,點 R、T 則為節點的延伸線段和洞 的邊緣產生的交點,此類交點也是船可能停靠的位置。將所有節點的延伸線 段和洞的邊緣產生的交點放入集合ℐ1中。並將所有節點與節點之延伸線段產
18
生的交點放入集合中ℐ2中。
以下表 2-3 之方式更新節點來源,更新ℐ1及ℐ2中的節點。
表 2 -3 更新ℐ1及ℐ2中的節點向量之方法,資料來源: Lee, D.H., Chen, J.H., & Cao, J.X. (2010)
集合ℐ1 集合ℐ2
節點來源為下列 向量與洞的邊緣 的交點
更新後之向量 節點來源為下列
兩個向量之延伸 線段的交點
更新後之向量
[0,1,1,1] [0,0,0,1]
[1,0,1,1] [1,0,0,0] [1,0,1,1][1,1,1,0] [1,0,0,0]
[1,1,0,1] [0,0,0,1] [1,1,0,1][0,1,1,1] [0,0,0,1]
[1,1,1,0] [1,0,0,0]
圖 2-7 𝒞3 中的節點之延伸線段產生之交點示意圖,資料來源: Lee, D.H., Chen, J.H., & Cao, J.X.
(2010)
4.可行性分析
將𝒞1∪ ℐ1∪ ℐ2中的節點進行可行性分析,如下圖 9 所示,i 為船 n 的時空矩 形,矩形 i 左邊兩個頂點依靠在每個 Class1 中的節點,並剔除不可行的狀況,
如狀況(c)和(e),而(h)中若 H-U 長度小於矩形的高度,則矩形可以靠到最左 邊。
19
圖 2-8 可行性分析示意圖,資料來源: Lee, D.H., Chen, J.H., & Cao, J.X. (2010)
20
並依照這個機率對每個位置進行輪盤式選擇法(roulette wheel selection),
及機率越大越容易選中,而成本越大機率越小。
(5) 重複以上步驟直到 Ves_seq 中的船都被指派完為止。