第三章 架構及方法介紹
3.1 方法步驟說明
我們所提出的頻道分配演算法假設知道每個節點的傳輸功率,根據傳播路徑 耗損模型計算每個節點接受到的信號強度,以貪婪演算法(Greedy Algorithm)依照 網路中干擾的影響程度以 link-by-link 的方式依序決定出每一個連結所使用的頻 道。
我們首先定義 S 為網路中節點的集合,k 表示不同的頻道,T 表示所有可使 用的頻道個數,NIC 表示每個節點的網路介面個數,(i, j)為網路中從節點 i 至節 點 j 的連結,Na為環境中的背景雜訊。
RSS(i, j)表示根據傳播路徑耗損模型求得使用連結(i, j)傳輸時,節點 j 所接收 到來自節點 i 的信號強度。由於我們採用 link-by-link 的方式分配頻道,所以必須 先決定出連結的頻道分配順序。對每一個頻道 k,我們定義 Uk為使用頻道 k 的最 大可能干擾強度矩陣,Mk為頻道 k 中遭受最大可能干擾下的 SIR 值矩陣。對連 結(i, j)而言,Mk(i, j)與 Uk(i, j)值分別為假設所有其它尚未分配頻道的連結均使用 頻道 k 的情況下,連結(i, j)使用頻道 k 所遭受的信號干擾強度值與此時的 SIR 值。
我們另外定義 Lk為頻道 k 的最小可能干擾強度矩陣,Nk為頻道 k 中遭受最小可 能干擾下的 SIR 值矩陣。對連結(i, j)而言,Nk(i, j)與 Lk(i, j)表示連結(i, j)使用頻道 k 傳輸而遭受最小可能的干擾,此值只考慮目前網路中已確定使用頻道 k 的連結 對連結(i, j)傳輸的影響。注意 Mk (i, j)與 Mk (j, i)不一定相同,但連結(i, j)與連結(j, i)使用的是同一頻道,因我們考慮兩者在傳輸時受到干擾最大的情況,因此取這
兩者較低者計算。同理 Nk(i, j) 也取這兩者較低者計算。 其中α為 Physical Topology 中的所有連結數,β為已分配頻道的連結數。假設連 結(i, j)的 Ck(i, j)值最高,則表示連結(i, j)選擇頻道 k 時確定所受到的干擾程度與 所導致的這種問題,我們限制每個節點可使用的頻道數為 min(T, 2NIC–1)。這 樣可以保證所有 Physical Topology 中的相鄰節點間均有共用的頻道。
圖 3.1 為節點的位置與 Physical Topology 的範例,每一格為 1m。假設每個 節點安裝 2 個網路介面,全部可用頻道共有 4 個(我們限制每個節點僅使用前三 個頻道),傳輸半徑為 4m。我們以此範例詳細說明頻道分配的方法。
3
2 4
5 0
1
圖 3.1 方法說明範例之 Physical Topology
具體的頻道分配方法分為下列幾個步驟:
1. 根據傳播路徑耗損模型求出每個節點接收所有其它節點信號的接收功率 值。從傳播路徑耗損模型中可知接收功率與距離的平方成反比(見 3.2 的函式 Initial 第 1-2 行)。則由算式(2.2)可以求出連結(i, j)的 RSSi,j,其中 d 為 i, j 兩 點間的距離,如表 3.1。
表 3.1 節點間的接收信號強度值
RSS(i, j) 0 1 2 3 4 5
0 0.07692c 0.07692c
1 0.5c
2 0.07692c 0.0625c 0.125c
3 0.07692c 0.0625c 0.11111c 0.125c
4 0.5c 0.11111c
5 0.125c 0.125c
表 3.1 為個節點間的接收信號強度值。因為傳輸半徑為 4m,因此接收信號
強度大於等於 0.0625c 才能互相通訊。
行),如表 3.3。由於所有頻道初始的值都相同,因此僅列出頻道 M1(i, j)的內
表 3.4 頻道 1 的 N1矩陣
N1(i, j) 0 1 2 3 4 5
0 769.231 769.231
1 5000
2 769.231 625 1250
3 769.231 625 1111.11 1250
4 5000 1111.11
5 1250 1250
3. 根據式(3.1)計算出 Ck(i, j) (見 3.2 的函式 SIR_CA 第 2 行)。從所有 C 矩陣中 找出值最大的元素(見 3.2 的函式 SIR_CA 第 3-7 行)。假設此元素為 Ck(i, j),
表示在所有尚未分配頻道的連結中,連結(i, j)選擇使用頻道 k 會有最佳的預 期 SIR 值。我們因此將頻道 k 配置至連結(i, j)。表 3.5 所示的是 C1(i, j)的內 容。由於所有頻道初始的值都相同,因此其它 k 頻道的 Ck(i, j)值與 C1(i, j) 一樣。在此範例中,能夠發現連結(1,4)在頻道 1、頻道 2、與頻道 3 都具有 最高的 SIR 值 2.55736。
表 3.5 頻道 1 的 C1矩陣
C1(i, j) 0 1 2 3 4 5
0 0.34434 0.21515
1 2.55736
2 0.34434 0.16803 0.56356
3 0.21515 0.16803 0.19012 0.40393
4 2.55736 0.19012
5 0.56356 0.40393
4. 令(i, j)為選出的連結,k 為選出的頻道。確認 i 與 j 均有可用(尚未分配頻道)
的介面以配置頻道 k (見 3.2 的函式 SIR_CA 第 8-30 行)。若 i 或 j 已沒有足 夠的網路介面可供頻道 k 配置,則將 Mk(i, j)設為極小,表示連結(i, j)不能配 置頻道 k。然後回到步驟 3,重新選擇新的頻道與連結。在此範例中,節點 1 與節點 4 均有可用的介面,因此確定將頻道 1 分配給連結(1,4)。
5. 分配頻道 k 後,更新 Lk矩陣(見 3.2 的函式 SIR_CA 第 32-33 行)。當連結(i, j) 確定選擇頻道 k 後,在網路中所有其它連結配置頻道 k 時,都確定會受到 i 或 j 的傳輸干擾,因此我們根據(3.5)式更新。
S y x RSS RSS
y x L y x
Lk( , ) k( , )( i,y j,y) , (3.5)
因為確認頻道 1 分配給連結(1, 4),因此將 L1矩陣根據(3.5)式更新為表 3.6。
表 3.6 頻道 1 的 L1矩陣
L1(i, j) 0 1 2 3 4 5
0 0.03589c 0.17003c
1
2 0.05451c 0.17003c 0.05680c
3 0.05451c 0.03589c 0.5001c 0.05680c
4 0.17003c
5 0.03589c 0.17003c
6. 若分配完頻道 k 後,i 或 j 已無未分配頻道的網路介面,則對部份的其它頻 道 l k 更新 Ml與 Ul矩陣(見 3.2 的函式 SIR_CA 第 34-38 行)。假設 i 已無網 路介面可配置其它頻道,且令 P 為 i 的所有介面已配置到的頻道集合,則對
其他尚未分配頻道的連結而言,如配置頻道 l P 絕對不會受到 i 的傳輸干 擾,所以 Ul更新為
S y x RSS y
x U y x
UlP( , ) lP( , ) i,y , (3.6)
然後再根據式(3.4)更新 Ml矩陣。
3
2 4
5 0
1 Ch 1
Ch 2 Ch 3
圖 3.3 網路卡介面分配完畢之更新矩陣範例
假設當頻道分配至圖 3.3 時,由於每個節點只有兩個網路介面,此時節點 5 已經分配頻道 2 與頻道 3,因此可以保證節點 5 絕對不會在頻道 1 對其他連 結造成干擾,因此根據式(3.6)更新 U1矩陣與式(3.4)更新 M1矩陣。更新後的 U 矩陣與 M 矩陣的內容分別如表 3.7 到表 3.12 所示。
表 3.7 頻道 1 的更新 U1矩陣
U1(i, j) 0 1 2 3 4 5
0 0.09839c 0.23253c
1
2 0.13144c 0.24696c
3 0.13144c 0.11282c 0.54992c
4 0.19835c
5
表 3.8 頻道 2 的更新 U2矩陣
U2(i, j) 0 1 2 3 4 5
0 0.22339c 0.35754c
1
2 0.17144c 0.37196c
3 0.17144c 0.23782c 0.58440 c
4 0.32335c
5
表 3.9 頻道 3 的更新 U3矩陣
U3(i, j) 0 1 2 3 4 5
0 0.22339c 0.35754c
1
2 0.17144c 0.37196c
3 0.17144c 0.23782c 0.58440 c
4 0.32335c
5
表 3.10 頻道 1 的更新 M1矩陣
M1(i, j) 0 1 2 3 4 5
0 0.78179 0.33080
1
2 0.58526 0.25308
3 0.58526 0.554 0.20205
4 0.56019
5
表 3.11 頻道 2 的更新 M2矩陣
M2 (i, j) 0 1 2 3 4 5
0 0.34434 0.21515
1
2 0.44870 0.16803
3 0.44870 0.26281 0.19013
4 0.34363
5
表 3.12 頻道 3 的更新 M3矩陣
M3(i, j) 0 1 2 3 4 5
0 0.34434 0.21515
1
2 0.44870 0.16803
3 0.44870 0.26281 0.19013
4 0.34363
5
比較表 3.2 與表 3.7 的內容能夠發現,更新後節點 2,3,4 之間的 U1(i, j)值均比 更新前的值少了 RSS(5, j)。
7. 確認連結是否分配完畢,若尚未分配完則回到步驟 3。
假設網路中有m條連結,全部可用頻道為k個,所有節點數目為n個。上述步 驟需要搜尋在每個頻道中每條連結的Ck(i, j)矩陣,因此演算法的時間複雜度為 O(mkn2)。