1.一种蜂窝系统密集分布用户组的D2D资源分配方法,其特征在于,所述方法包括以下步骤:
S1、基站通过接收用户终端上报的通信链路的信道属性CSI来获得D2D用户对的干扰信息,从而获得D2D用户对和蜂窝用户的分布情况;
S2、根据区域内D2D用户对的分布情况构建用户组;基于划分的用户组确定其对应的可复用的蜂窝用户资源集合;
用户组的构建过程包括:
210、初始化,建立用户组集合GP={Gk,k=1,2,…,L},令k=1;
211、在未分组的D2D用户中任取一个D2D用户,将以该D2D用户为圆心,r为半径范围内的所有D2D用户纳入用户组集合Gk;
212、遍历Gk中新增的D2D用户,继续将以其为圆心,r为半径范围内的所有D2D用户纳入用户组集合Gk;
213、重复上述步骤212),直至无新增D2D用户,如果此时仍有D2D用户未分配到用户组,则更新k:k=k+1,回到步骤211);否则,退出区域用户分组;基于划分的用户组确定其对应的可复用的蜂窝用户资源集合包括:
设置CU和D2D用户之间的距离门限δD(δD>>r),遍历蜂窝用户CU,若以其为圆心,δD为半径范围内存在D2D用户,则将该CU剔除出D2D用户所属用户组对应的可用资源集合;
S3、基于D2D用户对与蜂窝用户的距离,以及跨层干扰的限制;从对应的蜂窝用户资源集合中选择合适的蜂窝用户资源进行资源预分配,具体包括:
311、获取所有用户组集合和与之对应的蜂窝用户资源集合;
312、选择未分配的用户组Gk,判断其中D2D用户对数量与对应可复用蜂窝用户资源集Vk的蜂窝用户数量的大小;
313、若小于蜂窝用户数量,则遍历D2D用户对,在Vk内未被占用的蜂窝用户中,选择距离该D2D用户最远的蜂窝用户进行复用;遍历用户组Gk的D2D用户后,将Vk中剩余的蜂窝用户资源分配给与之相距最远的D2D用户对;
314、若大于蜂窝用户数量;则遍历Vk的蜂窝用户资源,在Gk内未分配蜂窝用户资源的D2D用户中,选择距离该蜂窝用户最远的D2D用户对进行复用;
315、判断是否存在未分配蜂窝用户资源的用户组,若有则返回步骤311,否则退出资源预分配过程;
S4、基于跨层干扰的限制和共层干扰的影响,采用混合蛙跳算法进一步调整各用户组集内D2D用户对复用蜂窝用户资源的情况,在限制系统干扰的情况下多次迭代以实现最大化系统吞吐量,具体包括:
410、计算当前迭代的每个D2D用户对的适应度值,采用混合蛙跳算法选择出全局适应度值最优的D2D用户对复用向量;
所述每个D2D用户对的适应度值包括:其中,fj表示DPj的适应度值,DPj表示第j个D2D用户对;Hi表示CUi到基站的信道增益,CUi表示第i个蜂窝用户;Hj表示DPj到基站的信道增益,Hj,i表示DPj的发送端到CUi的接收端基站的信道增益,Hi,j表示CUi到DPj的接收端的信道增益,n为用户组内没有复用蜂窝用户资源的D2D用户对数量,β为惩罚项因子,且β>0;
411、分别对所有用户组内适应度值最优的D2D用户对复用向量和组内其余D2D用户对复用向量进行更新,表示为:
Zb'=ω*Zb+rs*(Zg‑Zb+Zr1‑Zr2);
Zj’=ω*Zj+rs*(Zb‑Zj+Zbe‑Zj);
其中,Zb'表示用户组内更新后的适应度值最优的D2D用户对的复用向量;Zb表示用户组内更新前的适应度值最优的D2D用户对的复用向量;Zj’为对应DPj更新后的D2D用户对复用向量,DPj表示第j个D2D用户对;Zj表示待更新的DPj的复用向量,Zr1和Zr2是当前用户组内随机选择的两个DP复用向量,且j≠r1≠r2,Zbe是组内随机选择的适应度值大于Zj的D2D用户对复用向量,rs表示DP复用向量的复用指示标识置0的概率,rs为[0,1]上的随机数;ω为更新权重因子,表示D2D用户对复用向量中的复用标识置0的概率;
412、对于更新后的复用向量,判断同一用户组内是否为多个用户对复用同一个蜂窝用户资源,若是,则只复用该用户组内适应度值最大的D2D用户对,并更新该适应度值最大的D2D用户对和其余D2D用户对的复用向量;
413、判断各用户组是否满足越界限制,即判断蜂窝用户是否满足最小传输速率的跨层干扰限制以及D2D用户对是否满足最小传输速率的共层干扰限制;若不满足,则返回步骤S3,否则进行下一步骤;
414、判断当前迭代的所有D2D用户对复用向量的适应度值之和是否大于上一次迭代的适应度值之和,若大于,则按照当前迭代的用户组复用向量进行资源复用,否则,继续返回步骤410进行下一次迭代,直到达到迭代次数的上限,按照最后一次迭代的用户组复用向量进行资源复用;其中,以资源预分配后的用户组的复用向量作为初始迭代复用向量。
2.根据权利要求1所述的一种蜂窝系统密集分布用户组的D2D资源分配方法,其特征在于,所述步骤S313或/和步骤314中还包括D2D用户对选择复用一个蜂窝用户资源后,如果系统不能满足该蜂窝用户的最小数据传输速率,则用户组Gk放弃复用该蜂窝用户资源;如果系统不能满足该D2D用户对的最小数据传输速率,则D2D用户对放弃复用该蜂窝用户资源,且后续不再尝试复用其它蜂窝用户资源。
3.根据权利要求1所述的一种蜂窝系统密集分布用户组的D2D资源分配方法,其特征在于,更新权重因子的计算公式如下:
其中,ω表示D2D用户对复用向量中的复用标识置0的概率,fb表示当前用户组内最优的适应度值,fw为当前用户组内最差的适应度值;fj为当前待更新的D2D用户对复用向量对应的适应度值,rand为[0,1]上的随机值。
4.一种蜂窝系统密集分布用户组的D2D资源分配装置,其特征在于,包括:资源获取模块,用于根据用户终端上报的通信链路的信道属性CSI来获得D2D用户对的干扰信息,从而获得D2D用户对和蜂窝用户的分布情况;根据区域内D2D用户对的分布情况构建用户组;基于划分的用户组确定其对应的可复用的蜂窝用户资源集合;
用户组的构建过程包括:
210、初始化,建立用户组集合GP={Gk,k=1,2,…,L},令k=1;
211、在未分组的D2D用户中任取一个D2D用户,将以该D2D用户为圆心,r为半径范围内的所有D2D用户纳入用户组集合Gk;
212、遍历Gk中新增的D2D用户,继续将以其为圆心,r为半径范围内的所有D2D用户纳入用户组集合Gk;
213、重复上述步骤212),直至无新增D2D用户,如果此时仍有D2D用户未分配到用户组,则更新k:k=k+1,回到步骤211);否则,退出区域用户分组;基于划分的用户组确定其对应的可复用的蜂窝用户资源集合包括:
设置CU和D2D用户之间的距离门限δD(δD>>r),遍历蜂窝用户CU,若以其为圆心,δD为半径范围内存在D2D用户,则将该CU剔除出D2D用户所属用户组对应的可用资源集合;
D2D预分配模块,用于根据D2D用户对与蜂窝用户的距离,以及跨层干扰的限制对D2D用户对分配蜂窝用户资源;
资源预分配的过程具体包括:
311、获取所有用户组集合和与之对应的蜂窝用户资源集合;
312、选择未分配的用户组Gk,判断其中D2D用户对数量与对应可复用蜂窝用户资源集Vk的蜂窝用户数量的大小;
313、若小于蜂窝用户数量,则遍历D2D用户对,在Vk内未被占用的蜂窝用户中,选择距离该D2D用户最远的蜂窝用户进行复用;遍历用户组Gk的D2D用户后,将Vk中剩余的蜂窝用户资源分配给与之相距最远的D2D用户对;
314、若大于蜂窝用户数量;则遍历Vk的蜂窝用户资源,在Gk内未分配蜂窝用户资源的D2D用户中,选择距离该蜂窝用户最远的D2D用户对进行复用;
315、判断是否存在未分配蜂窝用户资源的用户组,若有则返回步骤311,否则退出资源预分配过程;
D2D配置模块,对预分配的资源进行优化,采用混合蛙跳算法进一步调整各用户组集内D2D用户对复用蜂窝用户资源的情况,具体包括:
410、计算当前迭代的每个D2D用户对的适应度值,采用混合蛙跳算法选择出全局适应度值最优的D2D用户对复用向量;
所述每个D2D用户对的适应度值包括:其中,fj表示DPj的适应度值,DPj表示第j个D2D用户对;Hi表示CUi到基站的信道增益,CUi表示第i个蜂窝用户;Hj表示DPj到基站的信道增益,Hj,i表示DPj的发送端到CUi的接收端基站的信道增益,Hi,j表示CUi到DPj的接收端的信道增益,n为用户组内没有复用蜂窝用户资源的D2D用户对数量,β为惩罚项因子,且β>0;
411、分别对所有用户组内适应度值最优的D2D用户对复用向量和组内其余D2D用户对复用向量进行更新,表示为:
Zb'=ω*Zb+rs*(Zg‑Zb+Zr1‑Zr2);
Zj’=ω*Zj+rs*(Zb‑Zj+Zbe‑Zj);
其中,Zb'表示用户组内更新后的适应度值最优的D2D用户对的复用向量;Zb表示用户组内更新前的适应度值最优的D2D用户对的复用向量;Zj’为对应DPj更新后的D2D用户对复用向量,DPj表示第j个D2D用户对;Zj表示待更新的DPj的复用向量,Zr1和Zr2是当前用户组内随机选择的两个DP复用向量,且j≠r1≠r2,Zbe是组内随机选择的适应度值大于Zj的D2D用户对复用向量,rs表示DP复用向量的复用指示标识置0的概率,rs为[0,1]上的随机数;ω为更新权重因子,表示D2D用户对复用向量中的复用标识置0的概率;
412、对于更新后的复用向量,判断同一用户组内是否为多个用户对复用同一个蜂窝用户资源,若是,则只复用该用户组内适应度值最大的D2D用户对,并更新该适应度值最大的D2D用户对和其余D2D用户对的复用向量;
413、判断各用户组是否满足越界限制,即判断蜂窝用户是否满足最小传输速率的跨层干扰限制以及D2D用户对是否满足最小传输速率的共层干扰限制;若不满足,则返回步骤S3,否则进行下一步骤;
414、判断当前迭代的所有D2D用户对复用向量的适应度值之和是否大于上一次迭代的适应度值之和,若大于,则按照当前迭代的用户组复用向量进行资源复用,否则,继续返回步骤410进行下一次迭代,直到达到迭代次数的上限,按照最后一次迭代的用户组复用向量进行资源复用;其中,以资源预分配后的用户组的复用向量作为初始迭代复用向量。