傳統的 TAP 問題中,大多都是針對系統成本最小化(Cost-minimization task assignment problem,CMin-TAP)或是針對系統可靠度最大化(Reliability-maximization task assignment problem,RMax-TAP)來做探討,較少有論文有提出針對最小化系統成 本和最大化系統可靠度一起來做探討(Cost-Reliability Analysis task assignment problem,
CRA-TAP)。在本研究中會針對不同類型的 TAP 問題來一一做探討。
圖 2:TAP 問題分類圖
6 2.1.1. 成本最小化之 TAP
過去提出來解決 CMin-TAP 的方法可以大致分為精確演算法(exact algorithms)[5-7]
與次經驗法則演算法[8-10]兩大類。精確演算法是利用數學規劃(mathematical
programming)尋找問題的絕對最佳解,例如 Kafil and Ahmad [5]提出用 A*演算法可以保 證求取問題絕對最佳解,使用 A*演算法可以減少搜尋的空間並且較快速的找到 TAP 的 最佳解。但是仍然不能使用在大型的問題上面,因為會花費太多的時間。Ernstet al. [6] 則 是利用整數線性規劃 (integer linear programming) 來求解問題,但是同樣的使用於大型 TAP 問題上,也無法在合理的時間內獲得最佳解。Hagin et al. [7] 則是利用分支界限法 (branch and bound) 來解決 TAP。雖然使用精確演算法可以找到 TAP 的最佳解,但是當 問題變大的時候,無法在有效時間內找到最佳解。所以使用次經驗法則演算法的目的就 是希望可以在有限的時間內找到趨近於最佳解的答案,它的特點是利用一些簡單的經驗 法則,從一個隨機的初始解出發,反覆推求下一個更好的答案。目前已經提出解決 TAP 的次經驗法則演算法包括 Hamam and Hindi [8]提出利用模擬退火演算法(simulated annealing,SA)去解決 TAP 問題,在這篇論文當中有整理出幾個常見的 TAP 數學模式,
並且針對不同的限制條件也有相關的說明。Tripathi et al.[9] 提出使用基因演算法
(genetic algorithms,GA)去解決多個模組的 TAP 問題,所謂多個模組的意思就是說一 個模組可能代表的就是一個應用程式,而每個應用程式則包含一個或數個的子工作,此 篇論文採用 GA 去找出這些模組的最佳工作分配。Hou etal. [9] 提出利用 GA 去解決 TAP 問題,此論文最大的特點就是他的工作之間是有先後次序的,一定要先完成某些工作才 可以執行下一個工作。此篇論文最大的挑戰就是在進行 GA 時如何保持其合理的解答。
Bicking, F., Conrard, B[10] 利用分支界限法(branch and bound)求解多資源生產排程,目 標是在最短時間內完成所有工作,需有明確的起始與結束點且所有工作的處理可靠度都 一樣。張克誠[11]也是利用 branch and bound(分枝界限法)來做災後搶修設計工作人力指 派最佳化之研究,在單一出發點且維修人員的交率都一樣與需在限定時間內完成任務的 限制下,去如何達到最小的人力成本的派工。T Zheng[12]則是利用 Ant Colony Algorithm 去計算何時在最短時間內完成所有任務,但需符合只有一個出發點且所有機器人的處理 能力都相同的限制。Zhigang Lu[13]也是利 Ant Colony Algorithm 在電力系統查修派工上,
在滿足其時間與的任務沒有優先順序的特性下,找出最小的運輸成本,優點是決定變數
7 2.1.2. 可靠度最大化之 TAP
可靠度最大化(Reliability-maximization task assignment problem)是透過最佳化工作 分配方式,將工作分配到可以使系統可靠度最高的單位(人員)上去執行或是選擇可靠度 最佳的路徑去做運算(工作分派)以達滿整體任務可靠度最高。
Shatz et al.[13] 是以執行時間長短來調整系統的相關可靠度,此篇論文當中的處理 器及網路連線可靠度都不是一個固定的數字,而是會透過工作執行時間的長短來計算其 可靠度。在此篇論文當中主要是利用啟發式演算法去求取 TAP 問題的近似最佳解。Wang and Shatz [14] 也是採用隨著處理器和通訊網路的執行時間的不同,而有不同的可靠度 模式。並且提出使用 A*演算法去求取 TAP 問題的解答。Lin and Chen [15]則是採用尋找 MFST(minimum file spanning tree)並且使用 FREA(fast reliability evaluation algorithm;
FREA)來求取系統可靠度。Chin-Ching Chiu [4] 1.使用一個基於蟻行可靠度導向工作分派 方法,在計算在分散式工作指派可靠度問題。所提出的演算法是利用蟻行演算選取一個 具有系統最大或趨近最大可靠度之程式及檔案指派之集合,其任務沒有優點順序的問題。
R.Seethalakshmi,S.Savichandran〔17〕在論文當中則假設每個處理器有相同的失敗率以及 每個通訊網路線的失敗率也是相同的,再根據此失敗率去計算整個系統的可靠。所有的 處理器的處理能力都一樣,不能變動且是單一起點、任務沒有優點順序的問題。
8 points Program)
X X X X X X X X
9
2.1.4.3. Ant Colony Algorithm
1992 由 Marco Dorigo 在其博士論文中所提出來 蟻群優化演算法是模仿螞蟻覓
10