第三章 提出方法與討論
3.2 分群與邊界點頻譜資源分配
3.2.2 邊界點頻譜資源分配
3.2.2.1 最佳化頻譜資源分配介紹
在最佳化頻譜資源分配演算法中,我們考慮其所有頻譜分配的可能,並從其中找出 最好的分配方式,我們會針對每一點的每個頻譜去考慮”配置”或”不配置”,如圖十七,
我們會先從點 1 開始考慮,考慮點 1 頻譜所有的分配可能,並且限制點 1 的鄰居不可以 配與相同的頻譜,接著再針對每一種可能分別去考慮點 2 可以分配的可能詳細的實例以 及 pseudo code 如下。
圖十七、最佳化頻譜資源分配實例。
30
Parameter :
N : total number of AP
temp solution : temp total allocated channel number for optimal
Initial:
temp solution = -1
Main()
Coloring_OPT(Node 0)
Coloring_OPT(Node i)
If(Node i< total number of nodes) - Find the power set S of Node i S = { S1,S2,}
- For each set S i
Record the all Node’s channel
Set S be allocated i
Disable Si neighbor's channel
Coloring_OPT(i+1)
Recovery the neighbor’s channel
Else
- If(this solution better than temp solution)
temp solution = this solution
31
3.2.2.2 啟發式邊界點頻譜資源分配介紹
我們對於我們的邊界點頻譜資源分配設計了一啟發式邊界點頻譜資源分配,我們會 根據三個數值來決定要將頻譜配置給哪一個點,第一為干擾值(interference),干擾值表 示使用相同頻譜的鄰居數量,如圖十八點 3 的鄰居為點 0 與點 2,而這兩點皆可以使用 頻譜 0,所以對於點 3 頻譜 0 的干擾值即為 2,我們一開始會選擇最小頻譜干擾值的點 去配置頻譜給他。
圖十八、干擾值定義
而當干擾值相同的情況我們會去考慮剩餘頻譜數(saturation degree),如圖十九 點 0 與點 3 的頻譜 0 干擾值皆為 1 此情況之下,就會選擇剩餘頻譜數較少的點 3 進行分 配,我們希望能夠讓頻譜資源快沒的點能夠先拿到頻譜但又不會導致過多的鄰居不能使 用同一頻譜。
32
圖十九、餘頻譜數實例
而當剩餘頻譜數也相同時我們將去考慮公帄性,我們定義一公帄值(satisfaction ratio) 為無線感知網路基地台被分配的頻譜資源數去除以無線感知網路基地台底下使用者對 於頻譜之需求數的變異數,我們考慮若將某頻譜資源分給某點能使此公帄值最低則分配 出此頻譜,最後若上述三個條件皆相同,我們則會隨機選一點的頻譜資源分配。
圖二十、邊界點頻譜資源分配流程圖
33
我們會將上述的分配頻譜分配方法做兩個階段圖二十,在第一個階段我們會依據每 點上的需求數做為其分配資源的上限,若其被分配的頻譜資源已經與其所提出需求數相 同那麼在第一個階段我們將不會再分配其他資源給此點,第一階段會在可不超出需求數 之前提下可分配頻譜資源皆被分配出去後結束需求數被滿足的點會先將其先暫時 block,
接著第二階段會將暫時被 block 的頻譜恢復並將這些剩餘的頻譜資源依據干擾值與剩餘 頻譜數兩個來分配第一階段結束後剩下的頻譜資源,會這樣做的原因在於我們希望將頻 譜資源優先分配給有需求的點,接著再將有剩餘的頻譜資源盡量分配出去,下面為我們 啟發式邊界點頻譜資源分配的 pseudo code。
Parameter:
R(v):number of request in node v
Main:
Phase1 algorithm
Recovery tmpBlock Node Phase2 algorithm
34
Phase1 algorithm
While(can allocate channel)
Choose Node v have min interference value
if(min interference equal)
- Choose Node v have min saturation degree - if(min saturation degree equal)
Choose Node v cause min satisfaction ratio variance
if(min satisfaction ratio variance equal)
Random choose Node v
AllocateResource Phase1 (Node v)
AllocateResourcePhase1(Node v)
Choose available channel CH of v which has min interference
Allocate CH to Node v
If(R(v)==number of allocated channel of v) - tempBlock Node v
For(all Node) // Block neighbor’s CH
if(Node u are Node v neighbor) - block Node u CH
Phase2 algorithm
While(can allocate channel)
Choose Node v have min interference value
if(min interference equal)
- Choose Node v have min saturation degree - if(min saturation degree equal)
Random choose Node v
AllocateResource Phase2 (Node v)
AllocateResourcePhase2(Node v)
Choose available channel CH of v which has min interference
Allocate CH to Node v
For(all Node) // Block neighbor’s CH
if(Node u are Node v neighbor) - block Node u CH
35
3.2.2.3 時間複雜度分析
對於我們的邊界頻譜資源分配最佳化演算法,因為我們考慮其所有可能性,會找出 所有可能的頻譜資源分配方法,所以我們以下列方式來找出時間複雜度。首先假設我們 有 N 個點對於每點的可用頻譜數為C1, C2… CN,對於每個點我們都考慮可用頻譜的所有 可能性也就是其 power set 對於點 1 來說其可能性即有2C1種可能,因此時間複雜度將不 大於2C1∗ 2C2∗ … ∗ 2CN = 2 Ni=1Ci 因此複雜度為:O(2 Ni=1Ci)。
而啟發式演算法因為我們每次選擇一個點的某一條頻譜資源作分配,最鑿情況則必 須挑選 Ni=1Ci ∗ N次,即代表對於每個點的每條頻譜資源都要挑選,因此複雜度為 O( Ni=1Ci ∗ N)。
啟發式演算法 O( Ni=1Ci ∗ N) 最佳化演算法 O(2 Ni=1Ci)
表三、頻譜資源分配演算法時間複雜度比較
36