• 沒有找到結果。

產品組合和投料的決策問題,基本上是一個空間搜尋問題,只要基板重工決 策、基板配對決策可以求解,我們就可求出最佳的投料組合和數量決策。為發展 快速有效之搜尋演算法,本計畫在研究此問題,意外想到一個異質專案排程的解 法,並發展出一個特殊的搜尋演算法,本章特別介紹此專案排程問題和解法。

5.1 研究問題

有限資源的專案排程(project scheduling)問題可能會非常複雜,因為具有下列 二個特性。第一、任務(task)之間具有相依關(dependent relationship), 此等相 依關係通常可用一個有向非循環圖來描述 (directed acyclic graph,簡稱 DAG),

如圖5.1 所示,該專案具有 6 個任務 (task),任務間有執行順序上的限制,譬如 說,任務t2需要任務t1與任務t6都執行完畢,才能執行。第二、任務的執行具有 共用資源的特性,如圖5.2 所示,該專案所有的資源是 3 部機器,每個任務都可 用任一部機器加工。

圖5.2 3 個機器的異質系統

此 種 排 程 問 題 可 分 成 兩 個 子 問 題 : 排 序 (sequencing) 問 題 、 指 派 問 題 (matching)。排序問題是決定任務執行的先後順序,指派問題是將任務指派給機 器。這類排程問題的複雜度(complexity)很高,因為t 個任務排序最多有 t!組合,

圖5.1 DAG 任務 t1

t2 t3 t4

t5

t6

機器 1

機器 2

機器 3 高速網路

若該專案有m 個資源,則有 mt個指派組合;結合排序與指派的決策,一專案的 排程方案最多有t!

·

mt種,解空間非常龐大。

上述專案排程問題可能發生在各種領域,譬如研發專案排程、生產系統排 程、計算機系統排程。在計算機領域,一個典型的案例是異質運算系統(distributed heterogeneous computing; DHC)的排程。所謂 DHC 系統是指由多部異質機器(具 有不同運算能力的計算機) 、高速網路、通訊協定、作業系統,和程式環境所組 成的一強大運算系統。此種計算系統執行一個程式時,先將程式切割成多個子程 式,排定子程式的執行順序,並指派各子程式給不同機器處理,因為子程式間有 相依關係,而且共有資源,因此DHC 排程問題具有上述專案排程問題的特性,

以下本研究稱此專案排程問題為DHC 排程問題。

在DHC 系統中,應用程式通常分割為許多任務(task),這些任務的關係可以 被描述為有向非循環圖(DAG; directed acyclic graph),表示為 G = (T, <, E),

T={ti,i=1,...,n}代表所有任務的集合,ti為第 i 個任務,n 為任務的個數。< 代 表任兩節點的順序關係,例如: 任兩個任務

t

i

, t

k

T

,當

t

i <

t

k 意指,titk的 先行者(predecessor),tkti的後續者(successor)。所以 ti執行完畢後,tk才可以 被執行。E 代表整個圖形所有的邊(edge)或弧(arc)的集合,而每個邊或弧都附加 傳輸資料量 Di,k,代表從任務 ti 到任務 tk 所需的傳輸資料量(以位元 byte 為單 位)。圖 5.3 是一個 DAG 的釋例,例如 (1 < 3)代表任務t1與任務t3之間相連,

且任務 t1執行完成之後,才可以執行任務 t3,而任務 t1到任務 t3的傳輸資料量 D1,3為 5。該圖中也明顯說明任兩任務並不需要完全連接,例如任務t5為一個獨 立的任務。

DHC 運算系統是由一組獨立且不同型的機器由高速網路所整合的運算系 統,M 為所有機器的集合,描述為M ={mj,j=1,...,m},m 為機器的個數,mj

為第 j 個機器。在 DHC 系統中,不同機器之間的頻寬 (bandwidth)跟據其網路 (network)而有所不同,通常描述為 m×m 矩陣 Rm×m。任兩任務之間的傳輸成本 (communication time)如下所示:

圖5.3 有傳輸時間的 DAG 任務

t2 t3 t4

t1 t5

t6

2 3 6

5

上式中,H(i)為任務 i 被指派的機器,R[H(i),H(k)]為頻寬,Di,k為從任務 ti 到

本排程部問題績效指標是總完工時間(makespan of the program),目標函數如 下所示:

T = max (F

1

,…..,F

m

)

上式中,Fj為機器j 的全部完成時間(makespan),j=1,…,m。完成時間包括執行時 間(processing time)和因有優先關係而產生的等待時間(waiting time),其中等待時 間包括了機器實際閒置時間(idle time)和資料傳輸時間(communication time)。

5.2 指派的解法

本研究求解DHC 的排程與指派問題,也是採用逐步求解(serial methodology) 的解題架構。亦即先求解指派問題,再求解排序問題。如前所述,指派的決策是

定的任務順序(ordered list of tasks)、計算機器執行各任務的時間(machine list)、任 務的DAG 圖。輸出結果是將每個任務指派給機器(matching decision),並計算出 總完工時間(makespan)。首先初始化 T=0,目前排程解為空集合。依序把任務預

Input: ordered Task_list, Machine_list, DAG

Initialization: T = 0, Solution_schedule = {empty}

While(Task_list not empty)

Remove task i from head of Task_List

Machine_Assign(i) = y

else

Fx=Tx

Machine_Assign(i) = x Endfor

Endwhile;

Return Solution_Schedule = {Assign(i), for each task in Task_List}

5.3 排序的解法

表 5.1 異質專案排程之染色體表達與解讀

索引(index)

1 2 3 4 5 6

基因(gene)

t

1

t

6

t

5

t

2

t

4

t

3

適應函數是用於表達各染色體解的品質,以決定其下一世代的存活率。解的 品質越好,染色體存活率越高。產生的染色體經由派工方法DS 計算出的程式總 完工時間

T

,作為適應值(fitness value)。最小化目標式,其適應函數如下:

適應函數:

T = max (F

1

,…..,F

m

)

5.3.2 初始母體產生法

因為任務之間有執行順序限制,染色體基因不可以隨機的指派。為了產生好 的染色體,我們採用PSGA 的優點,根據問題特徵去求得 b-level 和 t-level 等數 值,以產生任務的優先值(task priority value),敘述如下。

(A)計算 b-level:

b-level為任務ti到最後一個任務的最長關鍵路徑長度,因此每個任務tib-level被DAG的所限制,因此越前面的任務所需的旅行路徑越長,其b-level通常 較高。每個任務tib-level計算為在各機器平均執行時間AvgE(ti)加上與最長 (longest)的子任務tj (child task)的b-level和傳輸時間CommTime(ti, tj )。根據DAG由 下往上計算每個任務ti的b-level,若任務ti沒有子任務tj其b-level為其平均執行時間 AvgE(ti)。b-level的計算流程如下:

相關文件