白宇,郎百和,王冰鑫
(長春理工大學 電子信息工程學院,長春 130022)
隨著各種智能終端數量爆炸性的增長以及大數據、云計算、物聯網等新興互聯網技術的大規(guī)模發(fā)展和覆蓋,傳統蜂窩網絡中匱乏的頻譜資源無法滿足用戶需求,終端直通通信(Deviceto-Device,D2D)應運而生,它允許兩個臨近的用戶不經過基站直接通信,這種技術能夠改善現有蜂窩網絡的通信質量,提高頻譜利用率,具有潛在的提高系統性能和提升用戶體驗的前景,從而受到研究人員的廣泛關注[1]。
D2D通信提供了更方便、更靈活且更高效的傳輸模式,但隨之而產生的由于資源復用帶來的同頻干擾問題,不僅會影響各用戶滿意度,同時也會給整個系統的穩(wěn)定性帶來考驗。因此,如何合理的分配資源[2]、配置D2D用戶及蜂窩用戶的發(fā)射功率[3]、保證用戶服務質量(Quality of Service,Qos)來優(yōu)化吞吐量[4]、功耗、能效等系統指標成為D2D通信的關鍵問題和研究熱點。
對于上述問題及優(yōu)化指標,本文重點針對功率控制及資源分配開展研究。Doppler等人[5]在保證蜂窩優(yōu)先通信的基礎上,分析了在不同約束條件下,如發(fā)射功率限制和能效限制等的系統吞吐量表現。陶靜,朱琦[6]在NOMA條件下(Non-Orthogonal Multiple Access),采用 KM 算法為D2D用戶分配信道,然后運用KKT最優(yōu)約束條件導出功率分配方案,在保證蜂窩用戶服務質量的前提下最大化了總能量效率。Asmaa Abdallah等人[7]提出了一種分布式功率控制方案,并對其采用基于隨機幾何的數學工具進行建模,通過使用D2D鏈路和基站的距離相關的路徑損耗參數(包括估計誤差裕度)來補償大規(guī)模路徑損耗效應,提高了D2D用戶覆蓋率。
目前,也有很多研究人員受啟發(fā)式算法的影響,將各種仿生算法引入到D2D通信中,Chengcheng Yang[8]將遺傳算法應用于資源分配問題中,首先通過在D2D用戶和蜂窩用戶發(fā)射功率可行區(qū)間內搜索最優(yōu)功率分配,再利用遺傳算法在整個網絡范圍內獲得近似最優(yōu)匹配為用戶分配頻譜資源,雖然提高了吞吐量,但算法復雜度較高。
Mengmeng Ru[9]在文獻[8]的基礎上,將頻譜資源分配問題與功率分配問題轉化成混合整數非線性規(guī)劃問題(Mixed Integer Nonlinear Program?ming,MINLP),提出一種混沌遺傳算法與圖著色法相結合的方式,優(yōu)化了系統容量,同時也降低了算法復雜度。
對于粒子群算法的應用,劉輝、夏威等人[10]在所提算法中,先為D2D用戶分配頻譜資源,再對D2D和蜂窩用戶的發(fā)射功率采用粒子群算法尋優(yōu),在保證了用戶公平性的基礎上,提升了系統吞吐量。Jun Xu等人[11]將資源分配與功率分配建模為一個聯合問題,分別用二進制粒子群算法及標準粒子群算法解決上述所形成的MIN?LP問題,大大提升了系統吞吐量。然而上述文獻中所應用的啟發(fā)式算法易陷入局部最優(yōu),且個別算法復雜度過高。因此針對上述缺陷,本文對資源分配和功率配置兩個問題,采用兩步解決的方式,首先應用匈牙利算法將信道分配問題轉化為0-1最優(yōu)指派問題,得到信道分配方案,然后,將風驅動算法[12-13]應用于D2D用戶及蜂窩用戶發(fā)射功率的調整,以提升系統整體吞吐量。
本文考慮單小區(qū)單基站蜂窩網絡環(huán)境下,采用underlay工作模式,D2D用戶通信復用蜂窩上行鏈路頻譜資源,以基站Bs為圓心,半徑為R=500 m的圓內,涵蓋著N個蜂窩用戶,M個D2D用戶,且M≤N。其中,所有用戶分布在Bs半徑25 m以外以保證通訊能夠建立,蜂窩用戶CUE和D2D發(fā)射端D2DT在小區(qū)內隨機生成,D2D接收端D2DR以對應的D2D發(fā)射端為圓心半徑r=25 m內隨機生成以保證D2D用戶間可以正常通信。為避免干擾過大可能引起的通信中斷[14],規(guī)定每條蜂窩信道只能被一對D2D復用,每對D2D也只能復用一條信道。另假定基站可以預先通過上行鏈路獲得信道狀態(tài)信息(Channel State Information,CSI)。
圖1 D2D通信及干擾示意圖
D2D用戶復用小區(qū)中蜂窩用戶資源時會產生同頻干擾,如圖1所示,D2D發(fā)射端D2DT1與D2D接收端D2DR1構成一對D2D用戶,并復用蜂窩用戶CUE1上行鏈路資源,此時,D2DT1會在基站處產生干擾,同時CUE1會對D2D用戶接收端D2DR1產生干擾。于是蜂窩用戶CUEi在基站處的信干噪比(Signal to Interference plus Noise Ra?tio,SINR)為:
式中,PC,i表示蜂窩用戶i的發(fā)射功率;N0表示在接收端所收到的噪聲;PD,j表示第j個D2D用戶發(fā)射端的發(fā)射功率。另外,本文中另設G表示用戶與基站的信道增益,g表示用戶與用戶之間的信道增益。因此在上式中,Gi,B表示蜂窩用戶i與基站Bs的信道增益,gj,B表示第j對D2D的發(fā)射端與基站Bs之間的信道增益。xi,j定義為信道資源復用因子,其取值為0或1,用來指示信道的一對一復用,即:
信道增益G或g表示式如下:
式中,pathloss表示鏈路收發(fā)端的路徑損耗;shad?owfade表示陰影衰落。第j對D2D接收端處的信干噪比為:
式中,gs,r與gi,r分別表示D2D對間發(fā)射端與接收端的信道增益和蜂窩用戶i與復用其鏈路通信的D2D用戶接收端信道增益。
由香農定理可推得,當D2D對j復用蜂窩用戶i時,二者吞吐量分別為:
式中,TC和TD分別代表共用資源的蜂窩用戶和D2D用戶的吞吐量;B為鏈路帶寬。則系統總吞吐量表示如下:
基于上述公式,以系統總吞吐量最大為目標的問題可以轉化為如下優(yōu)化問題:
約束條件(9)、(10)限制蜂窩用戶和D2D用戶的發(fā)射功率不能超過各自的發(fā)射功率最大值。式(11)保證了每對 D2D 用戶只能復用一條蜂窩信道,且不同D2D對不能復用同一蜂窩信道,以確保系統干擾可控。式(12)和式(13)要求蜂窩用戶和D2D用戶的信干噪比應大于對應的SINR閾值和來保證用戶的QoS。
基于上述分析,帶限制條件的系統總吞吐量最大的優(yōu)化問題為混合整數非線性優(yōu)化問題(MINLP)。這一類問題很難實現全局最優(yōu),是一種NP-Hard問題,相對于傳統解決方案,應用啟發(fā)式算法解決此類問題有其天然的優(yōu)勢,如全局搜索能力強,速度快等優(yōu)點。本文先應用基于在整個系統中蜂窩用戶與復用其信道的D2D對平均距離最大的匈牙利算法解決資源分配問題,再應用風驅動算法對蜂窩用戶及D2D用戶的發(fā)射功率進行優(yōu)化,以達到對系統總體吞吐量的優(yōu)化。
匈牙利算法最初是由匈牙利數學家D.Konig所提出的定理,其在該定理中證明了“矩陣中獨立0元素的最多個數等于能覆蓋所有0元素”。后來由W.W.Kuhn在求解0-1指派問題時引用該結論并改進,仍稱為“匈牙利算法”。所謂0-1指派問題,即指派M個個體完成N項任務使效率最大化。延伸到本文的資源分配問題,即為M對D2D分配N個蜂窩信道,以期降低由于引入D2D給系統帶來的干擾。由此本文提出一種基于匈牙利算法的資源分配優(yōu)化方案,即基于所有D2D用戶到蜂窩用戶平均距離最大的配對原則進行資源分配。
首先遍歷得到系統中每對D2D到每個CUE的通信距離矩陣D=di,j,其中D為N×M維矩陣,di,j表示第j對D2D的接收端到第i個蜂窩用戶的距離。再令S=si,j表示資源復用指示矩陣,且同為N×M維矩陣,其中si,j含義如下:
因此本文中基于所有D2D用戶到蜂窩用戶平均距離最大的資源分配算法轉化為如下優(yōu)化問題:
考慮到匈牙利算法的應用條件,要求效率矩陣中所有元素為正且優(yōu)化方向為極小,因此上述模型改寫為:
上述限制條件中式(17)、式(18)、式(19)保證了系統中D2D對與蜂窩用戶的匹配關系是一對一的,且不同D2D用戶對不允許復用同一條蜂窩信道。對上述模型應用匈牙利算法,即將基于所有D2D用戶到蜂窩用戶平均距離最大的配對問題轉化為對資源復用指示矩陣的0-1指派問題,得出最優(yōu)資源復用策略。匈牙利具體算法步驟如下:
(1)先將效率矩陣中每行元素減去對應行的最小元素,再將得到的矩陣每列減去對應列的最小元素,使每行每列都出現0元素,生成矩陣E1。若M<N,則將效率矩陣添加(N-M)列,使效率矩陣行、列數相等再進行上述操作。
(2)用最少的直線數u覆蓋步驟(1),得到矩陣中所有0元素,得到矩陣E2。
(3)判斷若u=N,則停止運行,得到最優(yōu)資源復用指示矩陣E2=si,j,若u<N,則繼續(xù)執(zhí)行步驟(4)。
(4)當u<N時,從矩陣E2中未被直線覆蓋的數字中找到最小值w,再將未被覆蓋的元素減去w,然后將直線交點處的元素加上w,剩余被直線覆蓋的元素保持不變,得到矩陣E3。
(5)找出E3中所有獨立0元素,并令其為1,其他元素置為0,得到一個僅含0、1元素的矩陣E4=si,j,最終得到資源復用指示矩陣si,j。
通過上述步驟得到的資源復用指示矩陣si,j等同于第一章中的xi,j,此處更換符號是為了更準確的說明算法應用。
在蜂窩系統中引入D2D通信勢必會對整個系統產生干擾,傳統的固定功率控制方案無法達到對系統干擾的控制,因此合理地對蜂窩用戶發(fā)射功率Pc和D2D用戶發(fā)射功率Pd進行靈活控制能有效的抑制干擾。本文應用風驅動算法對Pc、Pd進行聯合控制。
風驅動算法是基于對大氣中簡化的空氣質點受力運動模型模擬的一種迭代啟發(fā)式算法,其最早由Bayraktar Z以及Wener D H博士等人提出,算法核心研究了空氣質點在大氣中主要受到摩擦力、重力、氣壓梯度力、科里奧利力的作用,應用牛頓第二定律結合理想氣體狀態(tài)公式,推導得出空氣質點在迭代過程中的速度、位置更新方程,并結合壓力值(即適應度值)對每次迭代中每個質點的位置優(yōu)劣進行排序,從而得到全局最優(yōu)值。
空氣質點的速度更新公式為:
空氣質點的位置更新公式為:
更新速度的邊界條件限制如下:
其中,TC和TD分別對應上文中的公式(5)和公式(6),fitness表示個體壓力值,即適應度函數值。
風驅動優(yōu)化算法流程圖如圖2所示。
因此,應用風驅動算法對Pc、Pd尋優(yōu)的步驟如下:
(1)設置算法各個參數α、g、RT、c的值以及位置和速度的邊界條件。
(2)初始化種群中各質點速度、位置即初始化蜂窩用戶和D2D用戶功率,在限制條件(9)及(10)允許范圍內隨機為Pc、Pd賦初值。
(3)根據公式(23)計算各質點壓力值并按升序排列,記錄當前種群最優(yōu)值為xgbest。
(4)根據式(20)更新各質點速度并判斷速度值是否越界,若越界,則置與速度邊界。
(5)根據式(21)更新各質點位置并判斷位置是否越界,若越界,則置于位置邊界。
(6)計算更新后的各質點適應度值并排序,更新當前種群最優(yōu)值xgbest。
(7)判斷是否達到最大迭代次數,若達到最大迭代次數,算法結束,輸出全局最優(yōu)值xgbest,得到系統中總吞吐量,否則返回步驟(3)繼續(xù)迭代。
圖2 風驅動算法流程圖
為了驗證所提算法的優(yōu)勢及可行性,本文應用單小區(qū)單基站作為仿真場景,利用Matlab軟件對所提算法進行仿真分析,為便于敘述,將本文所提算法記為HWDO,作為對比的隨機接入算法記為Random、常規(guī)風驅動算法記為WDO。其中,風驅動算法中種群大小設置為20,迭代次數設置為500次,系數RT值設置為3,重力加速度常數g設置為0.2,α和常數c都設置為0.4,速度邊界設置為0.3。其它仿真參數具體如表1所示。
表1 其它仿真參數
表1給出了蜂窩小區(qū)系統各參數設置,仿真參數的設置基于表1中各參數數值,其中D2D用戶對數5~15表示11組仿真數據。
如圖3所示,本文對比了D2D用戶對數從5增加到15時,不同方案對系統總吞吐量的優(yōu)化表現,圖中數據為50次仿真結果的均值。當系統中D2D用戶數增多時,三種算法下的系統吞吐量都有所增加,但是增長速度隨著D2D用戶增多而趨于平緩,這是由于當系統中引入的D2D用戶增加時,雖然系統總吞吐量有所提升,但由于同時引入了干擾且D2D用戶的備選蜂窩信道減少,導致部分D2D用戶與蜂窩用戶的匹配靈活度下降,從而導致增長速度放緩。應用了常規(guī)WDO算法進行功率控制后,可以看出系統總吞吐量有明顯提升,提升幅度在9%左右,而在其基礎上應用的HWDO算法,即先用匈牙利算法優(yōu)化信道,再對功率進行WDO算法尋優(yōu)的方案在常規(guī)WDO算法基礎上使系統吞吐量提升了約7%左右,顯然優(yōu)于前兩種算法,因此相較于Random算法及WDO算法,HWDO算法有著更好的性能。
圖3 三種方案下系統吞吐量隨D2D用戶數對比
圖4 蜂窩用戶平均SINR變化趨勢
圖4所示為三種不同方案下,蜂窩用戶平均SINR值隨著系統內D2D用戶對增多的變化情況??紤]蜂窩用戶的SINR在一定程度上可以代表蜂窩用戶的QoS,SINR值越大,用戶滿意度越高。從圖中看出,三種算法下的蜂窩用戶SINR均值都有波動。其中,Random算法波動最大,且蜂窩用戶SINR均值整體呈大幅下降趨勢,且當D2D用戶對增長到12個以上時,由于沒有相應控制干擾的策略導致SINR平均值降到5以下,即無法正常通信。WDO算法下的蜂窩用戶平均SINR值整體也呈下降趨勢,但由于加入了功率控制策略使得干擾得到有效控制,蜂窩用戶SINR均值要明顯高于Random算法。由于HWDO算法在WDO算法基礎上利用匈牙利算法事先為D2D用戶分配信道,優(yōu)化了D2D用戶對與蜂窩用戶的匹配,然后再利用WDO算法對Pc、Pd進行聯合優(yōu)化,使得整個系統通信環(huán)境得到大幅度改善,表現在結果圖中則可以看出應用HWDO算法令整個系統中蜂窩用戶平均SINR值要高于其他兩種算法,且波動幅度也小于其他兩種算法。
對于在蜂窩小區(qū)引入D2D通信所帶來的問題,本文應用匈牙利算法與風驅動算法結合來優(yōu)化信道選擇以及功率控制。在滿足蜂窩用戶QoS的基礎上,結合預先得知的信道狀態(tài)信息,先優(yōu)化D2D用戶對與蜂窩用戶的匹配,再利用迭代啟發(fā)式風驅動算法為蜂窩用戶和D2D用戶進行功率的動態(tài)調整。通過對比驗證,仿真結果表明上述所提HWDO算法相較于Random算法及WDO算法系統吞吐量分別平均提升了16%和7%左右,并且HWDO算法的應用相比于其他兩種算法使得蜂窩用戶平均SINR穩(wěn)定在較高水平,隨D2D用戶增加波動較小。綜上,本文所提算法顯著提升了系統吞吐量的同時,保證了蜂窩用戶的通信質量。