• 沒有找到結果。

第二章 文獻回顧

2.1 排程問題

2.1.2 排程問題之解法

關於排程問題,在國內外均被廣泛地討論,其相關文獻很多,在學術領域被定義 為一組合最佳化問題。在過去國內外學者的研究下,已發展出許多種求解概念與方法,

基本上求解方式可簡單分為兩派,一為最佳化演算方法(Optimal Solution Algorithm),

另一為啟發式演算方法(Heuristic Algorithm)。本研究的問題型態與排課程等時間表問 題較相關,因此在排程問題之解法上將回顧時間表設計(Timetabling)問題居多。

最佳化演算法是在求解條件與限制式已知條件下,對於問題的目標求取其可行解 空間內最佳的一個解,然而此法最主要面臨的瓶頸為演算時間較長,對於大型排程問 題往往需要耗費過多的求解時間,甚至解不出可行解。在處理0-1 整數規劃的問題上,

可以分支定限法(Branch and Bound Method)代表,如表 2.3 所示。

表2.3 分枝定限法求解步驟 節點選擇

(Node Selection)

在分枝限定法過程中,可能有許多未能求得整數之分枝端點,如 何從這些未選節點當中擇一繼續進行求解工作即為節點選擇,節 點選擇機制有最佳目標搜尋(Best-Bound Search)、深度搜尋

(Depth-First Search)、廣度搜尋(Breadth-First Search)、隨機搜 尋(Random Search)等方式。

分枝

(Branch)

當處理二元變數時,最簡單的方式就是將合理解集合固定一個變 數值x,將原本問題分割為 x1 = 0 及 x1 = 1 的兩個子問題, 以 分枝樹來看,即針對x1變數產生了兩個分枝。

定限

(Bound)

對每一個子問題,找出其線性放鬆後之最佳解即為該子問題之鬆 弛解。對於整數規劃而言,通常鬆弛解即為放鬆掉整數限制後之 最佳解。

解決

(Fathoming)

當一個子問題被解決之後即可不再考慮,而分枝限定法即是透過 解決所有分枝端點找到問題最佳解,其有三種方式可以被解決:

1. 子問題為最佳解為整數解、2. 子問題為不可行解、3. 子問題 之最佳解較目前暫時最佳解(Incumbent)差。

資料來源:[33]

基於最佳演算法無法在特定時間內求得可行解的原因下,一般對於實際或大型排 程問題的處理會選擇設計適合的啟發式演算法,以尋求一可行解,雖然不盡然為最佳 解,但其以縮短時間所換取的求解效率往往更符合實務所需,對於排程問題常見的啟 發式解法有禁制搜尋法(Tabu Search, TS)[6,15]、模擬退火法(Simulated Annealing, SA)、基因演算法(Genetic Algorithm, GA)[11]等。

本研究的問題型態與排課程相關,以下詳細介紹解決方法的分類:

1. 作業研究(Operation Research, OR)

作業研究主要是利用數學做為工具來解決排程或是決策等問題。首先找出適合用 來描述問題的模型,再藉著求解數學來解決問題,有關於使用OR 方法來解決排課程 問題的研究可分為很多類。在作業研究領域的相關學者最常使用圖形著色問題(Graph Coloring Problem, GCP)來描述排課問題,分為 nodes coloring problem 與 edge coloring problem,並藉由解決 GCP 來處理排課問題[33]。GCP 是圖形中的每個節點(node)

或邊(edge)著上顏色,GCP 中的基本限制是相鄰的節點不可以著上相同的顏色。排 課問題中的課程就像是圖形中的節點,將課程的資料經過彙整後,讓互斥的課程成為 圖形中相鄰的節點。在GCP 中,節點著色就相當於為每門課程安排上課時段,每一個 顏色就表示一個時段,顏色的數目會因為上課時段而受到限制,在有限制的顏色數目 之下,為每個節點著上顏色,而相鄰的節點不可以是相同的顏色,同理邊也是,分別 如圖2.1 與圖 2.2 所示。

圖2.1 Node Coloring Problem 示意圖

2. 分群法(Cluster Methods)

Arabinda Tripathy 利用分群的觀念,將修同一門課程的學生歸為一群,藉由減少 排課過程中的變數來簡化GCP,再利用 Integer Linear Programming 的方式求解 GCP。

一般而言,分群的方法呈現了一種分解問題的形式,首先將課程先分配到不同的群集,

之後再將不同群集的課程循序指派到時間區段中,以滿足某些限制條件或最小化矛盾 限制[8]。先將課程分群後再進行演算法求解雖然使求解的搜尋空間減小許多,但分群 限制的課程亦將導致求解品質的低落[4]。

3. 啟發式演算法(Heuristic Algorithm)

過去二十年來許多啟發式演算法的發展已漸漸成熟,包括模擬退火法(Simulated Annealing, SA)、禁制搜尋法(Tabu Search, TA)、基因演算法(Genetic Algorithm, GA)與 Hybrid Approaches 都已被應用於許多排程問題中,這些方法是以一個或多個起始解作 為求解的開始,採取搜尋策略避免落入區域的最佳解中。這些求解的演算法都可以獲 得不錯的結果,但可能花費不少計算的時間成本。基於最佳演算法無法在特定時間內 求得可行解的原因下,一般對於實際或大型排程問題的處理會選擇設計適合的啟發式 演算法,以尋求一合理可行解,雖然不必然為最佳解,但以縮短時間所換取的求解效 率往往更符合實務所需。Safaai Deris[11]等學者便利用 GA 結合 CSP 來求得接近最佳 解的課表,在Safaai Deris 等人在研究當中利用 GA 仿效自然界中適者生存的原理,透 過類似物競天擇的過程以產生很接近最佳解的課表,並且在GA 的過程中利用 CSP 來 做限制控管(constraint handling)的工作,以確保每一個由 GA 所產生的可能解均符 合限制。

4. 限制規劃法

許多相關研究使用Constraint Satisfaction Programming 來處理排課或排程這一類 的問題[11,19]。Constraint Satisfaction Programming 主要的特色是可以將排程問題中的 各種限制分成硬性限制與軟性限制。所謂硬性限制是一定要遵守的限制,而軟性限制 則是盡量遵守的限制,在必要的時候可以違背軟性限制。CSP 這一類的問題通常都具 有NP-complete 的特性,此特性也與排程問題的特性相符,因此 CSP 很適合來解決排 程問題。由於近年來電腦資訊科技快速發展,有許多在過去僅止於紙上談兵的

Constraint Satisfaction Programming 相關研究,現今都可以逐步達成。近幾年更有許多 軟體廠商發展出CSP 觀念的應用軟體(Ex:ILOG OPL Studio),讓利用 CSP 來求解 排課及排程等資源分配問題成為一個新的趨勢。