发明内容
针对上述问题,本发明提出了一种基于粒子群算法的多模终端选择目标网络的方法,并通过以下技术方案予以实现:
一种基于粒子群算法的多模终端选择目标网络的方法,包括以下步骤:
S1:多模终端将其在每种无线网络中的服务质量值发送给基站;
S2:基站接收到所述各服务质量值,调用粒子群算法,为每个多模终端选择目标网络,所述粒子群算法包括以下步骤:
S21:对目标网络和每个粒子进行初始化参数设置,并设定算法迭代总次数;
S22:利用所述服务质量值计算粒子当前位置的适应度值;
S23:根据所述适应度值更新每个粒子迄今为止搜索到的最优位置以及整个粒子群迄今为止搜索到的最优位置;
S24:根据步骤S23的结果,更新每个粒子当前的飞行速度和位置;
S25:判断是否达到设定的最大迭代次数;若不是,则返回S22;若是,则输出适应度值最大的粒子的位置矢量,并结束。
所述初始化参数的设置包括:
对参与选择的全部多模终端和所有不同模式的目标网络进行顺序编号,并设置多模终端和目标网络的总数分别为I个和J种;
设置每个粒子当前位置矢量的维度与多模终端数I相同,且所述位置矢量的每一位元素编号与所述多模终端编号相同;
对粒子位置矢量的每一位元素进行编码,所述编码代表的数值与目标网络数J相同;
随机生成每个粒子的初始飞行速度;
设置初始权重以及最终权重。
所述顺序编号采用自然数;所述编码采用二进制编码。
所述步骤S22包括以下步骤:
S221:设置每个多模终端服务质量值的最低门限,设置每种目标网络能容纳多模终端数量的最大值;
S222:通过以下方式确定每个粒子当前位置的适应度值:
如果粒子位置矢量的编码所对应的可选目标网络中,有任何一个多模终端的服务质量值低于其最低门限,或者任何一种目标网络中的多模终端数量超过其容量最大值时,则该粒子当前位置的适应度为0;
如果粒子位置矢量的编码所对应的可选目标网络中,所有多模终端的服务质量值都高于其最低门限,并且每种网络中的多模终端数量都不大于设定的目标网络容量的最大值时,则设置每个粒子当前位置的适应度值为全部多模终端的服务质量值的平均值。
所述步骤S23包括以下步骤:
S231:每当完成一次迭代搜索过程后,将当前每个粒子位置矢量xa的适应度值和之前记录的每个粒子搜索到的最优位置xphest的适应度值进行比较;若xa的适应度值大于之前记录的每个粒子的最优位置xphest的适应度值,则将当前粒子的位置xa更新为迄今为止搜索到的最优位置xphest;反之,每个粒子迄今为止搜索到的最优位置xphest保持不变;
S232:每当完成一次迭代搜索过程,并且更新每个粒子迄今为止搜索到的最优位置xphest以后,将所有的粒子迄今为止搜索到的最优位置xphest的适应度值进行相互比较,从中选出适应度值最大的那个粒子,该粒子的位置矢量记为xa,将该粒子的适应度值和之前记录的整个粒子群搜索到的最优位置xgbest的适应度值进行比较;若位置矢量为xa的粒子的适应度值大于整个粒子群搜索到的最优位置xgbest的适应度值,则将xgbest更新为xa,并将其作为整个粒子群迄今为止搜索到的最优位置;反之,xgbest保持不变。
所述步骤S24包括以下步骤:
S241:计算惯性权重;
S242:更新粒子飞行速度;
S243:利用步骤S242更新后的粒子飞行速度,使用Sigmoid函数更新参数s;
S244:利用步骤S243的参数s,对粒子的位置进行更新。
所述步骤S242进一步包括设置速度的最大值。
所述步骤S25进一步包括将输出适应度最高粒子的位置矢量进行解码。
本发明克服了以往传统遗传算法只能求得局部最优解的缺陷,采用能够避免早熟收敛的粒子群算法,且该粒子群算法采用0、1二进制编码,不仅能够寻找到全局最优解,从而有效提高移动通信网络中多模终端的平均服务质量,还大大提高了算法运行速度,减少了算法运行时间,因此,本发明具有很好的推广应用前景。
具体实施方式
下面对于本发明所提出的一种基于粒子群算法的多模终端选择目标网络的方法,结合附图和实施例详细说明。
实施例1:
本发明提供了一种基于粒子群算法的多模终端选择目标网络的方法,包括以下步骤:
S1:多模终端将其在每种无线网络中的服务质量值发送给基站;
S2:基站接收到所述各服务质量值,调用粒子群算法,为每个多模终端选择目标网络,所述粒子群算法包括以下步骤:
S21:对目标网络和每个粒子进行初始化参数设置,并设定算法迭代总次数;
S22:利用所述服务质量值计算粒子当前位置的适应度值;
S23:根据所述适应度值更新每个粒子迄今为止搜索到的最优位置以及整个粒子群迄今为止搜索到的最优位置;
S24:根据步骤S23的结果,更新每个粒子当前的飞行速度和位置;
S25:判断是否达到设定的最大迭代次数;若不是,则返回S22;若是,则输出适应度值最大的粒子的位置矢量,并结束。
所述初始化参数的设置包括:
对参与选择的全部多模终端和所有不同模式的目标网络进行顺序编号,并设置多模终端和目标网络的总数分别为I个和J种;
设置每个粒子当前位置矢量的维度与多模终端数I相同,且所述位置矢量的每一位元素编号与所述多模终端编号相同;
对粒子位置矢量的每一位元素进行编码,所述编码代表的数值与目标网络数J相同;
随机生成每个粒子的初始飞行速度;
设置初始权重以及最终权重。
所述顺序编号采用自然数;所述编码采用二进制编码。
所述步骤S22包括以下步骤:
S221:设置每个多模终端服务质量值的最低门限,设置每种目标网络能容纳多模终端数量的最大值;
S222:通过以下方式确定每个粒子当前位置的适应度值:
如果粒子位置矢量的编码所对应的可选目标网络中,有任何一个多模终端的服务质量值低于其最低门限,或者任何一种目标网络中的多模终端数量超过其容量最大值时,则该粒子当前位置的适应度为0;
如果粒子位置矢量的编码所对应的可选目标网络中,所有多模终端的服务质量值都高于其最低门限,并且每种网络中的多模终端数量都不大于设定的目标网络容量的最大值时,则设置每个粒子当前位置的适应度值为全部多模终端的服务质量值的平均值。
所述步骤S23包括以下步骤:
S231:每当完成一次迭代搜索过程后,将当前每个粒子位置矢量xa的适应度值和之前记录的每个粒子搜索到的最优位置xphest的适应度值进行比较;若xa的适应度值大于之前记录的每个粒子的最优位置xphest的适应度值,则将当前粒子的位置xa更新为迄今为止搜索到的最优位置xphest;反之,每个粒子迄今为止搜索到的最优位置xphest保持不变;
S232:每当完成一次迭代搜索过程,并且更新每个粒子迄今为止搜索到的最优位置xphest以后,将所有的粒子迄今为止搜索到的最优位置xphest的适应度值进行相互比较,从中选出适应度值最大的那个粒子,该粒子的位置矢量记为xa,将该粒子的适应度值和之前记录的整个粒子群搜索到的最优位置xgbest的适应度值进行比较;若位置矢量为xa的粒子的适应度值大于整个粒子群搜索到的最优位置xgbest的适应度值,则将xgbest更新为xa,并将其作为整个粒子群迄今为止搜索到的最优位置;反之,xgbest保持不变。
所述步骤S24包括以下步骤:
S241:计算惯性权重;
S242:更新粒子飞行速度;
S243:利用步骤S242更新后的粒子飞行速度,使用Sigmoid函数更新参数s;
S244:利用步骤S243的参数s,对粒子的位置进行更新。
所述步骤S242进一步包括设置速度的最大值。
所述步骤S25进一步包括将输出适应度最高粒子的位置矢量进行解码。
实施例2:
本实施例具体描述基站是如何根据多模终端在每种网络中的服务质量值,再基于本发明的粒子群算法来分配最优化的目标网络。
如图1所示,详细的介绍了该粒子群算法在多模终端选择目标网络时的实现步骤:
S21:对目标网络和每个粒子进行初始化参数设置,并设定算法迭代总次数;具体包括以下操作:
采用自然数i和j分别对参与选择的全部多模终端和所有不同模式的目标网络进行顺序编号,并设置多模终端和目标网络的总数分别为I个和J种;
设置每个粒子当前位置矢量的维度与多模终端数I相同,且位置矢量的每一位元素编号与多模终端编号相同;
设置粒子位置矢量的每一位元素均为二进制编码,二进制编码代表的最大自然数值与可供选择的目标网络数J相同,这样每个粒子当前位置矢量的每一位元素就可以表示基站为一个多模终端选择的目标网络;
随机生成每个粒子的初始飞行速度;并在每次完成空间搜索后,都分别对每个粒子的飞行速度进行更新,用以更新下一代粒子的位置矢量,以加快算法的收敛速度;
设置初始权重以及最终权重,以便应用随时间线性减少的惯性权重使本发明中的粒子群算法更快的找到全局最优解。
在本实施例中,采用自然数顺序编号以及二进制编码是为了后续解码方便。且在步骤S21操作前,所有多模终端先将其在每种无线网络中的服务质量值发送给基站,基站接收到所述各服务质量值,调用粒子群算法,为每个多模终端选择目标网络,该信息作为基站为每个多模终端分配目标网络的依据。
S22:利用所述服务质量值计算每个粒子当前位置的适应度值;当所有粒子完成一次空间搜索的操作后,基站要计算当代粒子位置矢量的适应度;该步骤S22包括下列操作:
设置每个多模终端的服务质量值的最低门限,再设置每种目标网络容纳多模终端数量的最大值;
如果粒子位置矢量的二进制编码所对应的可选目标网络中有任何一个多模终端的服务质量值低于其最低门限,或者任何一种目标网络中的终端数量超过其容量最大值时,则该粒子的当代位置的适应度为0;
如果粒子位置矢量的二进制编码所对应的可选目标网络中的所有多模终端的服务质量值都高于其最低门限,并且每种网络中的多模终端数量都不大于设定的目标网络容量的最大值时,则设置每个粒子当代位置的适应度值为全部多模终端的服务质量值的平均值;
每个粒子当代位置的适应度值V的计算公式为:
其中,i和I分别为多模终端的序号和总数量,v
i为第i个多模终端的服务质量值。
如果这个粒子当代的适应度值比较大,那么粒子在后续迭代过程中向该位置附近靠拢的机会也比较大。
S23:根据所述适应度值更新每个粒子迄今为止搜索到的最优位置xphest以及整个粒子群迄今为止搜索到的最优位置xgbest;在粒子群迭代过程中,每个粒子在每一代都会有不同的位置,通过将每个粒子在不同代的适应度值进行比较,就会得出迄今为止每个粒子搜索到的最优位置,记为xphest,该位置会影响粒子在后续迭代过程中向着这一位置附近靠拢,以便获得更好位置;将所有粒子迄今为止搜索到的最优位置的适应度值进行比较,即可得出适应度值最高的粒子的位置,将其记作迄今为止整个粒子群搜索到的最优位置xgbest,该位置会影响粒子群中所有的粒子向着这一整个粒子群迄今为止搜索到的最优位置靠拢,以便发现全局最优位置;该步骤S23包括下列操作:
每当完成一次迭代搜索过程后,将当前每个粒子位置矢量xa的适应度值和之前记录的每个粒子搜索到的最优位置xphest的适应度值进行比较;若xa的适应度值大于之前记录的每个粒子的最优位置xphest的适应度值,则将当前粒子的位置xa更新为迄今为止搜索到的最优位置xphest;反之,每个粒子迄今为止搜索到的最优位置xphest保持不变;
每当完成一次迭代搜索过程,并且更新每个粒子迄今为止搜索到的最优位置xphest以后,将所有的粒子迄今为止搜索到的最优位置xphest的适应度值进行相互比较,从中选出适应度值最大的那个粒子,该粒子的位置矢量记为xa,将该粒子的适应度值和之前记录的整个粒子群搜索到的最优位置xgbest的适应度值进行比较;若位置矢量为xa的粒子的适应度值大于整个粒子群搜索到的最优位置xgbest的适应度值,则将xgbest更新为xa,并将其作为整个粒子群迄今为止搜索到的最优位置;反之,xgbest保持不变;
这两个最优变量可以使粒子朝着全局最优解的方向靠近。
S24:根据步骤S23的结果,更新每个粒子当前的飞行速度和位置;其包括下列操作:
设计惯性权重w;本发明中的粒子群算法属于离散粒子群优化算法,离散粒子群算法在更新粒子速度的时候涉及到一个参数,即惯性权重w;w不是一个定值,而是一个随时间线性减少的函数;
函数形式为
其中wmax为初始权重,wmin为最终权重,kmax为最大迭代次数,k为当前迭代次数。惯性权重w起着权衡局部最优能力和全局最优能力的作用;当惯性权重小于0.8时,如果粒子群算法能找到全局最优解的话,那么它所经历的搜索时间是很短的,即所有粒子趋向于快速汇集在一起;如果该最优解是在初始搜索空间内,粒子群算法将会很容易找到,否则它会找不到全局最优;当惯性权重大于1.2时,这时的粒子群算法会需要更多的迭代来达到全局最优,且更有可能找不到全局最优解;当惯性权重适中时,粒子群算法将会有更大的机会找到全局最优解,但迭代次数也会比第一种情况要多;根据这些情况,惯性权重w设计为一个随时间线性减少的函数,使得粒子群算法在刚开始时倾向于开掘,然后转向于开拓,从而在局部区域调整解;
更新粒子飞行速度;由于粒子群算法中没有实际的机制来控制粒子速度,所以有必要对速度的最大值进行限制,当速度超过这个阈值时,设其为vmax,此外,速度vi最小取值为vmin,粒子速度的更新公式为
其中,
代表第k+1代粒子速度,
代表第k代粒子速度,w为所述惯性权重,c
1和c
2为学习因子,也称加速因子,其使粒子具有自我总结和向群体中优秀个体学习的能力,从而向自己的历史最优点以及群体内历史最优点靠近,r
1和r
2为[0,1]之间的随机数,这两个参数是用来保持群体的多样性的,
为截止到第k代为止每个粒子搜索到的最优位置,
为截止到第k代为止整个粒子群搜索到的最优位置,
为第k代粒子的位置;
使用Sigmoid函数更新参数s;Sigmoid函数是神经网络中常用的一种模糊函数,其表达式为:
Sigmoid函数是一个值域在(0,1)范围内的连续函数,当粒子速度
取[-6,6]时,阈值s的取值范围为[0.0025,0.9975];对粒子速度更新完毕以后,将更新后的粒子速度代入Sigmoid函数,就可以得到更新后的参数s,该参数影响接下来粒子位置的更新;
其中ρ为[0,1]之间的随机数,若ρ小于所述更新的s参数,则粒子位置更新为1;否则,粒子位置更新为0。
S25:判断是否达到设定的最大迭代次数;若不是,则返回S22;若是,则输出适应度值最大的粒子的位置矢量,并结束。
本发明中决定最终目标网络分配结果的因素有两个,即多模终端在无线网络中的服务质量值,以及每种无线网络所能允许的最大多模终端数量;本发明中根据这两个因素得到每个多模终端的最优目标网络分配方案。
实施例3:
本实施例通过设定具体的数值来实现实施例2中的方案,其中,所述目标网络为四种,所述多模终端为40到50个,所有多模终端均在这四种目标网络的覆盖范围之内,且每个多模终端能自由切换到这四种目标网络中的任意一种,每种目标网络能够同时容纳运行的多模终端最大数为19;在本实施例中,每个多模终端在每种目标网络中的服务质量值都随机分布在0到1之间,每个多模终端的最小服务质量值为0.18,为了方便说明,本实施例仅给出了前八个多模终端的服务质量值:
|
终端1 |
终端2 |
终端3 |
终端4 |
终端5 |
终端6 |
终端7 |
终端8 |
网络A |
0.1877 |
0.8523 |
0.2159 |
0.1488 |
0.5693 |
0.2530 |
0.8918 |
0.1239 |
网络B |
0.5419 |
0.7887 |
0.5801 |
0.2258 |
0.4897 |
0.8521 |
0.0460 |
0.2414 |
网络C |
0.0456 |
0.7544 |
0.1214 |
0.7855 |
0.5359 |
0.1510 |
0.2587 |
0.5893 |
网络D |
0.7778 |
0.3978 |
0.9145 |
0.4861 |
0.2550 |
0.9832 |
0.1783 |
0.0157 |
粒子群算法中的其他参数如下表所示:
参数 |
c1 |
c2 |
vmax |
vmin |
wmax |
wmin |
kmax |
取值 |
2 |
2 |
6 |
-6 |
1.5 |
0.2 |
100 |
根据上述设置的参数,在计算机上应用matlab,对40个多模终端和50个多模终端在四种不同的目标网络中应用本发明方法进行了最优目标网络的分配,图2和图3分别显示了在40部多模终端和50部多模终端的情况下,采用本发明方法与传统的遗传算法在平均服务质量上的比较,从图2和图3可以看出,传统遗传算法传统遗传算法迭代10次左右就陷入了早期收敛,优化性能不再变化,而本发明方法迭代40次左右时才开始逐渐收敛,搜索到更优的分配方案,平均服务质量值大概提高了7个百分点。而且,随着系统内的多模终端数量的增长,平均服务质量值将提高更多;因此,本发明方法的实施例试验结果是成功的,实现了发明目的。
由以上实施例可以看出,本发明克服了以往传统遗传算法只能求得局部最优解的缺陷,采用能够避免早熟收敛的粒子群算法,且该粒子群算法采用0、1二进制编码,不仅能够寻找到全局最优解,从而有效提高移动通信网络中多模终端的平均服务质量,还大大提高了算法运行速度,减少了算法运行时间,因此,本发明具有很好的推广应用前景。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。