• 沒有找到結果。

第 2 章 啟發式演算法及排序優化問題文獻探討

2.2 物件排序優化問題

在物件排序優化問題中,當物件的排列不同時,即是一個不同的解且有不同 的目標值。此種類型問題以旅行推銷員問題(TSP)最具一般性及代表性。TSP 最早 是由Hassler Whitney 於 1934 年所提出。推銷員需拜訪若干個城市,且每個城市僅 能經過一次,最後回到原出發點(Flood, 1956)。TSP 的求解目標是能求得最短路徑。

TSP 已被證明屬於 NP-complete 的問題(Karp, 1972)。問題定義雖簡單,但解空間大 小隨城市數呈冪次增長,無法在多項式時間的複雜度下搜尋所有可行解以獲得全 域最佳解(global optima)。以 20 個城市的 TSP 為例,其解空間將超過 1018。 2.2.1 TSP 類型

TSP 的研究發展迄今,基於原有的問題定義下延伸出數種不同類型的題型:

(1) 對稱型旅行推銷員問題(Symmetric traveling salesman problem, TSP)

是最為一般所探討的TSP。兩城市間往返的距離成本皆相同,因此路徑迴 圈反轉後的總距離成本亦和原路徑相同。

(2) 漢彌爾頓迴圈問題(Hamiltonian cycle problem, HCP)

漢彌爾頓迴圈問題屬於數學中的圖論問題。在已知的路徑圖(Graph)上找出 一條迴圈經過每個頂點(Vertex)一次並回到起點。此問題為 NP-complete 型的問 題。HCP 是 TSP 的特殊案例。

(3) 非對稱型旅行推銷員問題(Asymmetric traveling salesman problem, ATSP) 非對稱型TSP 由 TSP 延伸而來,不同處在於兩城市間考量實際距離之外 的成本。往返的距離成本不同,使距離成本矩陣呈不對稱關係。

(4) 優先順序旅行推銷員問題(Sequential ordering problem, SOP)

此問題是ATSP 的延伸問題,由 ATSP 中加入優先順序的限制。亦即當兩 城市間有優先順序限制時,則必定須先拜訪特定一個城市才能拜訪下一個。

(5) 具載貨量限制的車輛途程問題(Capacitated vehicle routing problem, CVRP) 在車輛有裝載限制下及貨運點需求量已知情況下,數輛車從運輸網路上同 一個物流中心(depot)出發,通過其他每個貨運點恰好一次,再回到原出發點,

使得總運送成本最小。

2.2.2 GA 求解方式

使用GA 求解典型物件排序問題的 TSP 時,常採用整數排序編碼法

(Permutation)。並使用針對排序問題而設計的交配法來進行演化,使得新產生的解 不會違反排序問題物件不得重覆出現的基本限制。常用的交配法有部份相映交配 法(Partial-mapped Crossover, PMX)、順序對映交配法(Order Crossover, OX)、循環對 映交配法(Cycle Crossover)、位置為基交配法(Position-based Crossover)、順序為基

交配法(Order-based Crossover)……等。近年來亦有學者針對 TSP 特性開發出新的 啟發式交配法,例如GSX 和 GX:

(1) Greedy Subtour Crossover (GSX)

GSX 交配法是 Sengoku 和 Yoshihara (1998) 所提出,此種交配法是截取兩條親 代染色體中一部份的子序列合併成子代。舉例來說,兩條親代染色體分別是

[

48213675

]

1 =

p

p

2 =

[

23478651

]

,如圖2-2 所示。演算初始先由

p 中隨機選

1

定一個物件,假設是位置

a

1 =5的物件3。將物件 3 指定為子代

c 的染色體中同一

1

位置(位置

a )的物件。找出物件 3 在親代

1

p 的位置

2

a

2 =2。找出親代

p 位置

1

a

1 −1 的物件1,如果物件 1 尚未排入子代染色體的話,則排入子代染色體的物件 3 之前;

也就是位置

a

1 −1處。若物件1 已排入子代則停止往前搜尋。由親代

p 的位置

2 a2

+ 1

找到物件4。若物件 4 尚未排入子代染色體,則排入子代染色體的物件 3 之後,也 就是位置a2

+ 1

處。若物件4 已排入則往後搜尋。如此由親代

p 先往前再由親代

1

p

2

往後依序指定二親代的部份序列到子代,直到無法排入為止。往前後指定都停止 後,將剩下未排入的物件隨機排入未指定的基因值。第二條子代染色體仍以最初 選定的物件,依親代

p 往後、

1

p 往前方式指定染色體的基因值。圖 2-2(b)展示子

2

c 的基因指定結果。

2

圖2-2. GSX 示意

(2) Greedy Crossover (GX)

GX 交配法是 Yang (1997)專為求解 TSP 而提出的啟發式交配法。GX 法在交配 時會比對兩條親代染色體中是否有相同的城市鏈結,並且會參照TSP 中的距離成 本矩陣,找出距離成本較短的城市鏈結建構出子代。例如兩條親代染色體分別為

[

14253876

]

1 =

p

p

2 =

[

17826435

]

。決定第一條子代染色體的演算初始先隨機 選定一個物件,假設此例為物件4。先檢查選定的物件 4 在兩條親代染色體中前後 接鄰的物件,亦即

p 的

1

{ }

1,2

p 的

2

{ }

6 ,是否有相同物件。若沒有相同物件則從,3 兩染色體物件4 起始向右的兩鏈結(此例是 42 和 4 )中選擇距離較短的鏈結3

4 8 2 1 3 6 7 5

2 3 4 7 8 6 5 1

8 2 1 3 4 7

6 5

(a)

4 8 2 1 3 6 7 5

2 3 4 7 8 6 5 1

1 2 3 6 7 5 4 8

(b)

C

2

C

1

P

1

P

2

P

1

P

2

1 2 3 4 5 6 7 8

位置

1 2 3 4 5 6 7 8

位置

設定子代染色體的基因值。假設此例 4 是距離較短者,則第一條子代染色體第3 一和第二基因值設成4 和 3。接著比對物件 3 在兩條染色體中前後接鄰的物件,亦 即比對

{ }

5,8

{ }

4 。因兩條親代染色體中物件 5 都和物件 3 接鄰,因此將物件 5,5 排入物件3 之後。再比對物件 5 在兩條染色體中前後接鄰的物件。因物件 3 已排 入子代中所以必須從接鄰的物件集合中剔除,亦即比對

{ }

2 和

{}

1 。兩集合中沒有相

同的物件,因此由物件5 起始向右的兩鏈結 35 和 15 中先剔除已排入子代的物 件所形成的鏈結,亦即剔除 5 ,再將剩下的鏈結所對應的未排入物件,此為物3 件1,排入子代中。若兩鏈結皆被剔除,則由剩下尚未排入子代的物件中任選一個 物件排入子代染色體序列。

第二條子代染色體和第一條染色體產生方式大致相同。唯一不同處在於當目 前檢查的物件在兩條親代染色體中沒有相同的接鄰物件時,是從兩親代染色體中 目前檢查物件起始向左的兩鏈結裡選擇距離較短的鏈結,再將鏈結所對應的未排 入物件排入子代序列中。交配完成後的染色體依序列循環特性,將序列第一順位 調整為物件1。

相關文件