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