第二章 文獻探討
2.5 塔布搜尋法(Tabu Search)
問題(Path Assignment)、流線型排程(Flowshop Scheduling)、零工式排程
(Jobshop Scheduling)、旅行者問題(TSP)與流線型製造單元排程問題(Flowshop
Manufacturing Cell Scheduling)等方面皆可利用塔布搜尋法快速求解。其搜尋方式 表(Tabu List)、破禁準則(Aspiration Criterion)與結束準則(Stopping Criterion),其 基本元素介紹如下。
1. 初始解(Starting Solution)
即進行塔布搜尋法時,作為最一開始搜尋起點的解,稱為初始解,一般而言 可透過其他已知巨集啟發式演算法取得。
2. 鄰近解(Neighbor Solution)
對於任意可行的初始解,鄰近起始解的可行解皆稱為鄰近解。而鄰近解的定
→k}為較佳解,則移步即為{i, j}。
4. 塔布列表(Tabu List)
為塔布搜尋的記憶機制,紀錄每次由一組目前解移動至另一組解的移步,在 塔布列表中的移步,被禁止當作可行解,其目的在於禁止找尋在塔布列表中的移 步,避免重新搜尋上一步或之前的解,造成迴圈的發生,陷入區域解中。而塔布 列表的長度,不能為無限的長度,這樣會造成所有可行的移步皆在塔布列表中,
學者 Glover 建議,塔布列表長度為 7 或√𝑛,但可以針對不同的問題,調整其塔 布列表的長度。對於塔布列表內的移步,每搜尋到一個移步即會更新塔布列表,
並採取先進先出的方式,以便當塔布列表已經填滿時,會將最先進入的移步,解 除在塔布列表中的限制,更新塔布列表。如圖 2.3 所示。
1 2
第一次移步,加入移步(1, 2)
1 2 3 4
第二次移步,加入移步(3, 4)
3 4 5 6
第三次移步,加入移步(5, 6),移除移步(1, 2) 圖 2.3 塔布列表運作方式
5. 破禁準則(Aspiration Criterion)
透過塔布列表的設計,可以避免搜尋陷入迴圈與區域最佳解中,可是在搜尋 過程中,某些在塔布列中的移步,可以產生很好的可行解,但因為被塔布列表所
限制,以至於我們不能採取此組可行解,為了避免這種情況發生,故設定條件,
使得移步可以跳脫塔布列表,往更好的可行解方向搜尋。例如:塔布名單中有 {{1,2},{4,5},{3,7}},若移步{4,5}為此鄰近解中的最優解,且大於目前最佳解 時,就符合破禁準則,解除此移步之限制,使其成為可接受的解。而破禁準則一 般而言可分成三類。
(1) 最小限制的破禁原則
當所有移步均被列入塔布列表中,且其它移步破禁準則也不符合時,可 採取此方式,即將最先進入的移步解除在塔布列表的限制。
(2) 目標值改善破禁原則
其原則為此移步的可行解所產生的目標值優於最佳解時,即可將此移步 解除限制,接受此移步。
(3) 固定搜尋方向
假設只往某一固定方向進行搜尋,在此方向,即使移步在塔布列表內,
能可接受此移步,不受塔布列表限制。
6. 結束準則(Stopping Criterion)
即整個演算法的停止條件。一般而言,可分成三種結束準則。
(1) 搜尋計算次數達到設計者所設定之總次數。
(2) 無法更新最佳解之次數,達到設計者所設定之次數。
(3) 扣除在塔布列表中的可行解,其他可行的鄰近解為空集合。
2.5.2 塔布搜尋法應用於生產排程
求解生產排程的方法有許多種方式,常見可分成兩種,一為利用數學方法求 解最佳化,例如線性規劃法(Linear Programming)、動態規劃法(Dynamic
Programming)、分枝界限法(Branch and Bound)等其他數學方式。另一種則為利用 巨集啟發式演算法求解近似解,例如基因演算法(Genetic algorithm)、塔布搜尋法 法(Tabu Search)等其他已知巨集啟發式演算法。對於簡易的生產排程問題,可透
過數學方式建構數學模式求解最佳解,然而,實際的生產環境,需考慮的條件相
Grabowski & Wodecki (2004) Tabu search Makespan
針對流線型生產的一些特 性,建構一快速求解的布
搜尋法
Hendizadeh et al. (2008) Tabu search Makespan
塔布搜尋為基礎的演算
Xu et al. (2010) Tabu search Dudate-based
使用於單一機台的排程,
透過資源的利用控制加工 時間