王宏志, 姜方達, 周明月
(長春工業大學 計算機科學與工程學院, 長春 130012)
隨著無線通信技術的快速發展, 人們對無線服務的需求量日益增加, 對服務性能的要求也不斷提高, 使得無線電頻譜資源變得日益緊缺. 認知無線電[1]能不斷感知周圍的通信環境, 利用智能技術學習并分析環境信息, 通過無線電知識表達語言實時改變內部通信參數以適應環境的變化, 從而實現任何地點、 任何時間的高可靠傳輸及對頻譜資源的高效利用. 目前, 對頻譜檢測、 分配、 切換方面的研究主要包括博弈論、 圖論著色、 進化算法等. 隨著群智能算法的發展, 粒子群優化算法(PSO)、 魚群算法、 蟻群算法等得到廣泛應用. 文獻[2-4]將PSO用于解決最大化認知無線電系統的吞吐量問題, 提高了吞吐量, 但系統的公平性較差; 文獻[5-6]應用二進制粒子群優化算法優化系統效益, 獲得了預期結果; 文獻[7-8]應用離散粒子群優化(discrete particle swarm optimization, DPSO)算法和隨機漂移粒子群優化(random drift particle swarm optimization, RDPSO)算法, 結合圖著色理論優化認知無線網絡(CRN)的公平性和實用性, 公平性得到明顯提高, 但耗時較大.
用二進制粒子群優化算法優化系統效益, 整體效益雖然提高了, 但收斂速度降低了, 易陷入局部最優. 將DPSO算法與改進DPSO算法用于無線通信中的功率分配, 可提高收斂速度和搜索能力, 但參數權重設置對搜索效率和算法收斂性都有較大影響. 基于此, 本文提出一種新的粒子群優化算法, 在計算出適應度值后加入篩選過程, 并通過引入蒸發因子修改粒子群的記憶形式. 在滿足主用戶(PU)的干擾功率閾值、 次用戶(SU)傳輸速率和次用戶的信干噪比(SINR)需求的前提下, 實現認知系統次用戶發射功率的最小化.

(1)
其中:hij表示SU-Txj與SU-Rxi之間的通道增益;pj表示SU-Txj的發射功率;Ip=p0gi, 表示由PU-Tx到SU-Txi引起的干擾,p0為PU-Tx的發射功率,gi為PU-Tx與SU-Rxi之間的信道增益;N0表示信道上的背景噪聲, 假設噪聲是獨立隨機變量CN(0,N0). 次用戶的傳輸速率表示為Ri=log2(1+γi), 其中:Ri表示次用戶的傳輸速率;γi表示次用戶的SINR. 在提高通信質量的同時加快傳輸速率, 以實現更快、 更精準的信息傳輸, 即Ri≥Rmin, 其中:Ri表示次用戶的傳輸速率;Rmin表示最低傳輸速率.
在滿足主用戶的干擾功率門限、 次用戶的總傳輸速率上限以及次用戶的SINR要求前提下, 使認知系統的次用戶發射功率最小化. 目標函數及約束條件如下:
(2)
當PSO用于求解約束優化問題時, 需根據約束條件設置相應的懲罰函數[9]. 約束優化問題:
(3)
假設x*∈X={x∈n|hi(x)≤0,i=1,2,…,p},hi(x*)≤0,i=1,2,…,p.
定義上述優化問題的懲罰函數為F(x,M)=g(x)+Φp(x), 其中:Φ是大于零的懲罰因子;p(x)是懲罰項. 上述約束定義如下:
(4)
(5)

PSO算法源于對鳥類捕食行為的研究. 在PSO算法中, 每個優化問題的解都是搜索空間中的一只鳥, 稱為粒子. 在算法運行過程中, 粒子不斷使用自己的當前位置和自己的歷史最優位置(個體最優值)與種群歷史最優位置(群體最優值)進行比較, 然后將結果作為調整其速度和位置的依據[10]. 將種群中每個粒子的狀態代入適應度函數, 進行多次迭代最終可使粒子達到最佳位置, 即得到優化問題的最優解. 假設在D維搜索空間中有一個含有n個粒子的種群X={X1,X2,…,Xn},D維搜索空間中每個粒子的位置用D維向量表示. 根據目標函數可計算出每個粒子相對應的適應度值. 同時, 每個粒子也代表一個潛在的問題解決方案. 每個粒子的速度和位置可表示為Vi=(Vi1,Vi2,…,ViD)T和Xi=(Xi1,Xi2,…,XiD)T, 個體最優位置和群體最優位置可表示為Qi=(Qi1,Qi2,…,QiD)T和Qg=(Qg1,Qg2,…,QgD)T. 在每次迭代過程中, 粒子通過個體最優值和群體最優值更新自身的速度和位置, 即
其中:ω為慣性權重;d=1,2,…,D;i=1,2,…,n;k表示當前迭代次數;Vid表示粒子的速度;c1和c2是非負常數, 稱為學習因子;r1和r2是分布于[0,1]內的隨機數. 為防止粒子的盲目搜索, 一般建議將其位置和速度限制在一定的區間[-Xmax,Xmax],[-Vmax,Vmax]內.
參考文獻[11-14], 基于PSO的認知無線電系統的功率分配算法步驟如下:
2) 根據適應度值的計算公式求得個體最優值Qi=(Qi1,Qi2,…,QiD)T和全局最優值Qg=(Qg1,Qg2,…,QgD)T, 其中D表示認知用戶的數量;
3) 根據式(6),(7)更新粒子的位置和速度;
4) 更新個體最優值和全局最優值;
5) 當運行到預先設定的最大迭代次數tmax時, 算法結束, 導出當前時刻粒子種群的全局最優值和適應度值; 如果未達到最大迭代次數, 則返回步驟2).
粒子群優化算法是一種隨機概率搜索算法, 具有記憶性, 粒子種群的最佳位置可被記憶并傳遞給其他粒子; 調整參數少, 結構簡單易于實現. 但PSO算法缺乏速度動態調整, 有易陷入局部最優、 收斂精度不高、 后期收斂速度慢等缺點. 針對上述缺點, 本文對該算法進行改進. 在PSO算法的初始化階段會產生大量的隨機粒子, 由于粒子隨機分布, 一些粒子在計算相應的適應值時會有較大偏差, 從而導致收斂速度下降. 本文采用基于適應度值比例的選擇策略對適應度值進行篩選, 個體適應度值越小, 被選中的概率越大. 基于適應度值比例選擇策略計算公式為
(8)
其中:εi為個體被選中的概率;Fbi為個體i的適應度值.
篩選完成后, 本文引入蒸發系數對粒子群記憶更新過程進行改進. 基本粒子群記憶的更新形式為
(9)
引入蒸發系數, 使粒子逐漸遺忘自身的記憶, 以適應動態環境. 改進后的粒子記憶更新形式為
(10)
其中ρ為蒸發系數, 由粒子群個體、 社會學習能力(c1和c2)根據Ebbinghaus記憶遺忘曲線[15]加權求得, 計算公式為ρ=0.56[(αc1+βc2)/(c1+c2)]0.06, 其中α和β是分布于[0,1]區間的隨機數. 本文改進算法流程如圖1所示.

圖1 改進算法流程Fig.1 Flow chart of improved algorithm

圖2 次用戶發射功率與迭代次數的關系Fig.2 Relationship between secondary users’ transmission power and iterations

圖3 次用戶SINR與迭代次數的關系Fig.3 Relationship between secondary users’ SINR and iterations

圖4 次用戶傳輸速率與迭代次數的關系Fig.4 Relationship between secondary users’ transmission rate and iterations
下面對改進算法進行仿真實驗, 選擇Lagrange乘子(LAG)算法、 PSO算法和蒸發因子粒子群優化(LTPSO)算法進行對比實驗. 所有的仿真實驗均在Windows 7系統下通過MATLAB 2014a軟件實現, 參數設置: 次用戶數量為3, 主用戶數量為1, 主用戶能承受的干擾功率閾值Ith=1.5 mW, 次用戶的SINR需求為5.5~6.5 dB, 次用戶的Capacity需求為2.0~2.5, 粒子群大小為100, 粒子群維度為3, 迭代次數為50.
圖2為不同算法下次用戶發射功率與迭代次數的關系曲線. 由圖2可見: PSO算法比LAG算法獲得的發射功率更小, PSO算法優于傳統的LAG算法; 改進的粒子群優化算法得到的功率明顯小于其他兩種算法, 在保證各系統都正常通信的情形下, 更好地實現了發射功率最小化的目標.
圖3為不同算法下次用戶SINR與迭代次數的關系曲線. 由圖3可見: 次用戶的SINR需求為5.5~6.5 dB, 當SINR=5.5 dB時, LAG算法下次用戶不能滿足自身需求; 當SINR>6.0 dB時, 只有LTPSO算法才能穩定通信, PSO算法與LAG算法均未達到所要求的SINR; 改進的粒子群算法不僅得到了更小的發射功率, 同時達到了所要求的SINR. 圖4為不同算法下次用戶傳輸速率與迭代次數的關系曲線. 由圖4可見, 改進的粒子群優化算法得到的傳輸速率明顯高于其他兩種算法, 在保證通信可靠性的同時, 也使實時性維持在一個較高的水平.
綜上所述, 本文對粒子群優化算法進行改進, 得到了優化后的粒子群算法. 實驗結果表明, 改進后的算法所消耗的功率最小, 信噪比也達到了規定值, 提高了通信的可靠性, 同時優化所得的系統容量也是最大的. 相對于PSO算法和LAG算法, 改進后的粒子群優化算法性能最優.