第二章 相關研究
2.2 排程演算法
2.2.5 Hungarian
2.2.4 Modified Largest Weighted Delay First (MLWDF)
MLWDF (Modified Largest Weighted Delay First)[9],是針對 QoS 不同 資料需求所提出的排程改良演算法。此演算法參考了 Proportional Fair 以平均 傳輸速率為基礎,再加入封包延遲限制、封包遺失機率、封包延遲時間等考量。 間間隔(Transmission Time Interval, TTI)的瞬時傳輸速率,𝑅𝑘是使用者 k 的平均傳輸速率, 𝑘是使用者 k 的封包延遲時間, 𝑘是使用者 k 的封包傳輸最大
2.2.5 Hungarian
匈牙利演算法[10]最初是用來尋找一個最佳二分圖匹配(optimum matching
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
16
of a bipartite graph),它也可以用來解決圖論中的分配問題。它使用迭代法 對行與列進行計算,從中找到一個擁有總和為最大(或最小)的完整配置。所欲 解的問題必須為一方陣,若非方陣,則須假設虛擬行(列),並令其元素為零。詳 細解法步驟如下:
【Step 1】在矩陣左邊填入使用者(A 到 E),矩陣上方填入通道(W 到 Z), 中間元素為對應值(如花費值、優先權值等)。
圖 2 - 4 Hungarian 演算法步驟圖Ⅰ
【Step 2】確保矩陣為方陣,所以如有需要,必須補行或列。下圖因為不是 方陣,故在最後增加一行,且該行的元素值需設為矩陣的最大值。接著找出各列 之最小值。
圖 2 - 5 Hungarian 演算法步驟圖Ⅱ
【Step 3】在每列中,減去該列之最小值。接著從方陣中,找出每行的最小 值。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
17
圖 2 - 6 Hungarian 演算法步驟圖Ⅲ
【Step 4】在每行中,減去該行之最小值。接著從方陣中,找出值為 0 的元 素。
圖 2 - 7 Hungarian 演算法步驟圖Ⅳ
【Step 5】找出最少的線條(縱線或橫線)且包含最多的元素 0。如下圖,
最少需使用四條直線(一條縱線及三條橫線)可以包含全部元素 0。如果最少直 線數等於列數(或行數),則跳至步驟 9。
圖 2 - 8 Hungarian 演算法步驟圖Ⅴ
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
18
【Step 6】在未被直線包含的元素中,找出最小值。上圖最小值為 1。再將 上圖被直線包覆的元素,加上此最小值。如果元素被直線包覆兩次,則需加上此 最小值兩次。
圖 2 - 9 Hungarian 演算法步驟圖Ⅵ
【Step 7】將方陣中所有元素,減去上步驟提及的最小值。
圖 2 - 10 Hungarian 演算法步驟圖Ⅶ
【Step 8】如同步驟 5,再次找出最少的直線包覆最多的元素 0。如果直線 數不等於列數(或行數),則跳至步驟 6 重覆之後步驟,直到找出包覆元素 0 的 最少直線數等於列數(或行數)。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
19
圖 2 - 11 Hungarian 演算法步驟圖Ⅷ-1
圖 2 - 12 Hungarian 演算法步驟圖Ⅷ-2
【Step 9】當找出最少直線數等於列數時,找出元素 0,且此元素 0 之該行 與該列只有其值為 0。如下圖標記圓圈之元素 0,該行該列只有其為 0。
圖 2 - 13 Hungarian 演算法步驟圖Ⅸ
【Step 10】將上步驟之標記圓圈的元素,對應到起始的矩陣,則該元素對
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
20
應之 UE 與通道即為所求。
圖 2 - 14 Hungarian 演算法步驟圖Ⅹ
在限制條件的前提下,每位用戶最終只能配置一個通道,且不允許重複配置,
但其缺點是,擁有較佳通道品質的使用者,可能會因長期佔有通道,反而使擁有 較差通道品質的使用者,長期等待資源而餓死(starvation)。
關於匈牙利演算法的複雜度計算,因為該演算法為啟發式演算法(heuristic algorithm),隨著矩陣不同,無法每次都將其複雜度完全精確計算出來,其計算 次數約為(11K3+12K2+31K) / 6,其中 K 為方陣的大小。基於上述,可以推算出 匈牙利演算法時間複雜度的上界為O(K3),空間複雜度的上界為O(K2)。