第三章 本論文提出之演算法
3.2 基於粒子群最佳化之位置推薦方法設計
3.2.2 基於粒子群最佳化之位置推薦方法
圖 3-5、粒子群演算法示意圖
粒子群演算法的演算方式由圖 3-5 所示,粒子的初始位置為 1,而原本 要朝向 2 移動,但透過適應值(fitness value)的計算會先朝向區域最佳解的 3 前進,之後會受到全域最佳解的影響往 4 前進,最後到達 5。
3.2.2 基於粒子群最佳化之位置推薦方法
本小節將會敘述基於粒子群最佳化之位置推薦演算法(PSO-LR)的設計 概念,由圖 3-6 可得知,原先 D2D 用戶位置是受到干擾之情況,若 D2D 用戶根據 LR 演算法所提供的位置移動,如圖 3-7,D2D 用戶便可改善系 統容, D2D 用戶與基地台的距離相當的靠近,D2D 用戶將受到來自於基
1
2 2
3 2 4 2 5 2
地台的干擾,使得 D2D 系統容量受到嚴重的影響,因此 D2D 用戶向基地 台通知需要位置推薦並且提出階段性系統的提升要求,根據 PSO-LR 演算 法的計算後,將會請 D2D 用戶移動到 PSO-LR 演算法推薦的位置,來達 成系統容量的提升。
圖 3-6、文獻[5]未使用 LR 演算法
圖 3-7、使用後 LR 演算法
由於本方法是基於粒子群最佳化來設計的位置推薦演算法,所以我們 必須先設計出符合我們需求的適應值,我們的主要需求是推薦距離越短越 好,但是其推薦後的系統容量是越高越好,所以依照我們的需求設計出如 (式 3-8)所示的適應值函數:
1
2 _ 2 _ 2 _ 2 _ g
( )( ) ,
( )
0,
fit D D particle move D D after D D before D D tar et move
w C d C C C
f d elsewhere
(式 3-8)其中
w
fit為適應值權重;C
D D particle2 _ 為粒子所在位置之系統容量;d
move為需 要移動的距離;C
D D before2 _ 為假設 D2D 移動後的系統容量;C
D D after2 _ 為 D2D 移動前的系統容量;C
D D t2 _ arget為移動後可增加的系統容量目標值。本研究的目標是降低移動成本為主要出發點, PSO-LR 演算法是特別 針給 D2D 用戶使用的,希望 D2D 用戶依循著 PSO-LR 演算法提供的位置 推薦來移動,讓用戶以最低的移動成本達到最佳的服務品質,所以我們設 計出位置推薦成本函數,如(式 3-9)所示:
1
cost( cost, ave ave ave, , , ave) cost( ave ave) ave ave
LR w c r t d w c r t d
(式 3-9)其中
d
ave表示為平均推薦距離;w
cost表示為成本權重;c
ave表示為系統容 量成長率;r
ave表示為資源利用提升率;t
ave:平均一千次之計算時間;由於 我們希望成本函數越低越好,我們把c
ave及r
ave越高越好的指標以倒數的方 式乘上t
ave及d
ave越低越好的指標,透過這些數值來客觀的分析我們移動之 後所需要花費多少成本,可以得出我們 PSO-LR 的推薦方法所帶來的優勢。在此我們可以將問題簡化為ˆl F l
, ,
的方程式,其中ˆl
代表為PS0-LR 演算法推薦位置; l代表為 D2D 用戶目前所在位置; 代表為 D2D 用
戶目前的系統容量; 代表為 D2D 用戶要求要提升的系統容量,以下為 PSO-LR 演算法的說明。
首先,我們在模擬環境之中設置了 m 個座標點,在此我們對於每一個 座標點先行計算出系統容量並且記錄在資料庫中,當 D2D 用戶提出增加 系統容量的需求之後,根據 D2D 用戶提出要求對應出資料庫中所符合條 件的系統容量,接下來在這些符合條件的系統容量計算出與 D2D 用戶的 距離,最後使用粒子群演算法來挑選出成本最低、推薦距離最短的位置給 D2D 用戶,來達到提升系統容量降低計算時間的目的,圖 3-8 為位置推薦 演算法流程圖而圖 3-9 為位置推薦演算法之虛擬碼。
開始
初始化粒子群的隨 機位置和速度
以(式3-8)尋找符合 推薦距離短且達到 目標系統容量的粒
子
根據(式3-6及式3-7) 更新粒子的位置以
及速度
到達設定之疊代次數 取代當前D2D Pair位置
結束
是否比當前的
區域最佳解位置(pb)與全域最佳 解位置(gb)好
否
是 是
否
圖 3-8、PSO 位置推薦演算法之流程圖
Algorithm: PSO location recommendation algorithm (LR) 01:Construct and initialize the capacity map {(
l
1,
1), (l
2,
2), ..., (l
m,
m)}02:D2Dℎ informs the serving BS of (𝑙ℎ,𝜑ℎ)→(𝜑ℎ,𝜓ℎ ) // 𝑙ℎ: Current D2Dℎ location
// 𝜑ℎ: Evaluated capacity of the current location // 𝜓ℎ : Desired capacity level
03:If
h<
h04:For k = 1 : m 05: Export (
l
k,
k)06: Set Λ as the set of {(
l
*k,
k*)} in which
k≥
h //
k*is adequate to the desired capacity level 07:End For08:If Λ∅
//Calculate the moving distance from the current location
l
hto each locationl
k*in Λ,d
h k,09: Initialize particles swarm optimization //initialize all particles
10: Repeat
11: For each particle i in S do
// Construct and initialize the particle S={(
x
1,pb
1), (x
2,pb
2), ..., (x
i,pb
i)}12: If
f x
( )i <f pb
( )i then//update the particle’s best position by Fitness Eq.(3-8) 13:
pb
i=x
i15: If
f pb
( )i <f gb
then//update the global best position 16:
gb
=pb
i17: End If 18: End For
19: For each particle i in S do //update particle’s velocity and position 20: For each dimension d in D do Eq.(3-6) and (3-7)
21: End For 22: End For
23:
n
n
1 //advance iteration 24: Untiln MAX ITERATIONS
_ 25:ˆl
=gb
//Output the location
ˆl
with the minimum moving distance 26:End if27:Else Λ
O// The search results is null 28:Return
l
h// Keep staying in the current location 29:Return
ˆl
// Go to the new location
ˆl
30:End if 31:End
圖 3-9、PSO 位置推薦演算法之虛擬碼