• 沒有找到結果。

基於粒子群最佳化之位置推薦方法

第三章 本論文提出之演算法

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<

h

04: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 For

08:If Λ∅

//Calculate the moving distance from the current location

l

hto each location

l

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

i

15: If

f pb

( )i <

f gb  

then

//update the global best position 16:

gb

=

pb

i

17: 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: Until

n MAX ITERATIONS

_ 25:

ˆl

=

gb

//Output the location

ˆl

with the minimum moving distance 26:End if

27: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 位置推薦演算法之虛擬碼

相關文件