发明内容
技术问题:本发明的目的是提供一种在多QoS约束下基于蜂群优化的网络流量调度方法,实现多QoS约束下流量调度,通过本方法可以实现多QoS约束下流量高利用率、低消耗的流量调度,流量达到负载均衡。
技术方案:本发明的方法采用基于多目标人工蜂群优化算法设计网络流量调度方案,实现多QoS约束下流量调度。通过流量的采集和分析,得出多QoS约束对流量调度的影响,建立流量调度多目标优化函数,将多约束转化成了多目标优化问题,利用多目标优化建立流量调度的数学模型,根据数学模型,采用基于多目标人工蜂群优化算法通过不断迭代,获取调度方案Pareto解集。本发明结合 Pareto排序机制、拥挤距离改进适应度函数,采用Boltzmann策略进行解的选择,该策略可使算法的全局搜索能力更好,种群的多样性也能够得到提高。利用外部档案记录已经找到的Pareto解,并利用全局信息指导蜂群的邻域搜索,使找到的 Pareto最优解均匀地分布在真实Pareto最优前端上。根据实际情况分析各目标的重要程度,选择最佳调度方案,实现多QoS约束下的流量调度。
本发明的多服务质量约束下基于蜂群优化的网络流量调度方法包含以下的具体步骤:
初始场景设置:
步骤1)设置网络环境参数:
该参数包括网络中主机的数量以及每个主机需要访问的流量;
网络中可访问的服务器数量,每个服务器所承受的负载流量能力;
网络中的主机到达目的服务器的时延、流量比重与带宽百分比以及跳数;
多QoS约束下基于蜂群优化的网络流量调度:
步骤2)对网络流量采集与分析,分析多QoS约束对流量调度的影响,主要考虑的多QoS约束有主机到服务器的时延、流量比重与带宽百分比、跳数;建立流量调度多目标优化函数,包括时延函数、流量均衡函数、跳数函数,将多约束转化成了多目标优化问题,利用多目标优化建立流量调度的数学模型;
步骤3)根据所述数学模型,初始化多目标人工蜂群优化算法参数,结合 Pareto排序机制、拥挤距离改进适应度函数,采用Boltzmann策略进行解的选择,利用外部档案记录已经找到的Pareto解,并利用全局信息指导蜂群的邻域搜索,使找到的Pareto最优解均匀地分布在真实Pareto最优前端上;通过不断迭代,获取调度方案Pareto前端解集;
步骤4)根据实际情况分析各目标的重要程度,选择最佳调度方案;
步骤5)控制服务器端将最佳调度方案结果发送给每个主机;
步骤6)各主机在收到命令后,将根据最佳调度方案访问目的网络服务器。
其中:
步骤3)中,使找到的Pareto最优解均匀地分布在真实Pareto最优前端上;将其归纳为以下几个必要的步骤:
3.1.)初始化种群,设定蜜源蜜量参数limit以及最大迭代次数maxcycle,设cycle=0,外部档案集合M为空集,按照初始化公式随机生成2N个蜜源,构成规模为2N的初始种群P0;
3.2.)对Pcycle利用快速非支配排序法得到非劣前端集F=(F1,F2,...Fm);
3.3.)将非劣前端依次加入一个容量为N的空集H,如果加入Fi(0<i<m)时,H 内个体超过N个,则将Fi的每个元素按拥挤密度升序排列,依次加入H内直至被填满;
3.4.)将F1加入外部档案中,若满足cycle达到maxcycle,算法结束,外部档案中的解就是要得到的Pareto解集,否则Pcycle+1=H,转3.5);
3.5.)选取外部档案中拥挤距离最大的个体作为人工蜂群的全局信息,令 Pcycle+1中的蜜源为雇佣蜂蜜源,Pcycle+1中的每只雇佣蜂在全局信息的指引下对相应蜜源进行一次邻域搜索,采用贪婪机制选取蜜源,更新外部档案;待雇佣蜂搜索完毕通过摇摆舞传达观察蜂,观察蜂通过蜜源适应度值比较当前蜜源对其的吸引度,用Boltzmann选择策略选择一个雇佣蜂蜜源,并在全局信息指引下进行邻域搜索,采用贪婪机制选取蜜源,更新外部档案;
3.6.)所有观察蜂选择并搜索完毕后,将当代种群中没有更新的蜜源蜜量减1,若蜜源蜜量小于limit并且不在当前种群的非支配解集中则放弃该蜜源,该蜜源雇佣蜂变成侦查蜂,并随机产生新的蜜源加入Pcycle+1中;
3.7.)cycle=cycle+1,跳转至3.2)。
步骤4)中所述的根据实际情况分析各目标的重要程度选择最佳调度方案的方法将其归纳为以下几点:
4.1.)当实际情况主要考虑流量调度的实时性时,增加时延函数的重要程度,选取时延函数值最小的调度方案,以保证数据传输的实时性;
4.2.)当实际情况主要考虑流量调度的流量负载均衡时,增加流量均衡函数的重要程度,选取流量均衡函数值最小的调度方案,以保证网络每个服务器负载均衡;
4.3.)当实际情况主要考虑流量调度的距离时,增加跳数函数的重要程度,选取跳数函数值最小的调度方案,以保证数据传输距离最小;
4.4.)当实际情况同时考虑多个目标时,综合增加其函数的重要程度,综合选取多个目标函数值相对较小的调度方案。
有益效果:多QoS约束下基于蜂群优化的网络流量调度方法首先从实际方面考虑,方案通过流量的采集和分析,得出多QoS约束对流量调度的影响,建立流量调度多目标优化函数,利用多目标优化解决流量调度问题,可以得到多个非劣调度方案,当目标函数重要程度发生变化时,无需重新求解,只需在多个非劣调度方案中选择对应的最优解,降低了调度问题的难度。采用基于多目标人工蜂群优化算法求解多目标优化方案,通过不断迭代,获取调度方案Pareto解集。多目标人工蜂群优化算法是一种模拟蜜蜂群体的寻优算法,算法的控制参数少、易于实现、计算方便,该算法的突出优点是每次迭代过程中都进行全局和局部搜索,大大增加了找到最优解的概率,并在较大程度上避免了局部最优,增强了全局收敛性。本发明结合Pareto排序机制、拥挤距离改进适应度函数,采用Boltzmann 策略进行解的选择,该策略可使算法的全局搜索能力更好,种群的多样性也能够得到提高。利用外部档案记录已经找到的Pareto解,并利用全局信息指导蜂群的邻域搜索,使找到的Pareto最优解均匀地分布在真实Pareto最优前端上。根据实际情况分析各目标的重要程度,选择最佳调度方案,实现多QoS约束下的流量调度。
具体实施方式
图1是通过流量的采集与分析,得出多QoS约束对流量调度的影响,主要考虑的多QoS约束有主机到服务器时延、流量比重与带宽百分比、以及跳数,建立流量调度多目标优化函数,采用多目标优化设计流量调度的数学模型,流量调度的主要目标是使在调度中时延最短,流量最均衡,经过跳数最少。
对于决策空间x=(x1,x2,x3)分别对应(时延,流量比重与带宽百分比,跳数)则目标函数f1(x),f2(x),f3(x)分别代表调度中的时延函数,流量均衡函数,跳数函数。
记n为网络主机的数量,m为可访问的服务器的数量,向量Ei{E1,E2...En}为调度向量,其中Ei(i∈[1,n])取值为0或者1,Ei取值为1则第i个主机调度向服务器,取0则不调度。分析可得每个服务器具有一个调度向量,共有m个调度向量,可表示为{E11,E21....En1}...{E1m,E2m...Enm}。
流量调度数学模型为:
min y=f(x)=(f1(x),f2(x),f3(x))
上述式中Tik、Bik、Hik分别代表第i个主机调度到第k台服务器的时延、带宽、跳数。Fi为第i个主机需要的流量大小,为Aik平均值,N为调度到服务器上主机的个数,Lk为可访问的服务器k所能承载的网络流量。
流量调度模型是一个多目标优化问题,待优化的多个目标之间往往存在冲突和无法比较,当目标函数处于冲突状态时,就不会存在使所有目标函数同时达到最小值的最优解,可以寻求非劣解。多目标人工蜂群优化算法是模拟蜜蜂群体的寻优算法,算法的控制参数少、易于实现、计算方便,该算法的突出优点是每次迭代过程中都进行全局和局部搜索,大大增加了找到最优解的概率,并在较大程度上避免了局部最优,增强了全局收敛性,是多目标问题求解最优解集的一种有效算法。
多目标人工蜂群优化算法受启发于蜜蜂的觅食行为来解决优化问题,蜜蜂寻找食物源的活动即为寻找最优解的行为。其中有三种角色:雇佣蜂、观察蜂以及侦察蜂,两种最为基本的行为模型:为食物源招募蜜蜂采蜜和放弃某个蜜源。蜜源就是优化问题中解空间的点,蜜源质量对应优化问题的适应度,适应度值高的蜜源质量较优。本发明结合Pareto排序机制、拥挤距离改进适应度函数,采用 Boltzmann策略进行解的选择,该策略可使算法的全局搜索能力更好,种群的多样性也能够得到提高。利用外部档案记录已经找到的Pareto解,并利用全局信息指导蜂群的邻域搜索,使找到的Pareto最优解均匀地分布在真实Pareto最优前端上。根据实际情况分析各目标的重要程度,确定最佳调度方案。
将其归纳为以下几个必要的步骤:
1.初始化种群,设定蜜源蜜量参数limit以及最大迭代次数maxcycle,设 cycle=0,外部档案集合M为空集,按照初始化公式随机生成2N个蜜源,构成规模为2N的初始种群P0;
2.对Pcycle利用快速非支配排序法得到非劣前端集F=(F1,F2,...Fm)。
3.将非劣前端依次加入一个容量为N的空集H,如果加入Fi(0<i<m)时,H内个体超过N个,则将Fi的每个元素按拥挤密度升序排列,依次加入H直至被填满。
4.将F1加入外部档案中,若满足cycle达到maxcycle,算法结束,外部档案中的解就是要得到的Pareto解集。否则Pcycle+1=H,转5;
5.选取外部档案中拥挤距离最大的个体作为人工蜂群的全局信息。令Pcycle+1中的蜜源为雇佣蜂蜜源,Pcycle+1中的每只雇佣蜂在全局信息的指引下对相应蜜源进行一次邻域搜索,采用贪婪机制选取蜜源,更新外部档案。待雇佣蜂搜索完毕通过摇摆舞传达观察蜂,观察蜂通过蜜源适应度值比较当前蜜源对其的吸引度,用Boltzmann选择策略选择一个雇佣蜂蜜源,并在全局信息指引下进行邻域搜索,采用贪婪机制选取蜜源,更新外部档案;
6.所有观察蜂选择并搜索完毕后,将当代种群中没有更新的蜜源蜜量减1,若蜜源蜜量小于limit并且不在当前种群的非支配解集中则放弃该蜜源,该蜜源雇佣蜂变成侦查蜂,并随机产生新的蜜源加入Pcycle+1中;
7.cycle=cycle+1,跳转至2。
以上步骤中所涉及的一些关键操作定义如下:
初始化蜜源公式:Xij=(Xij)min+rand(0,1)((Xij)max-(Xij)min)
Xij为蜜源i的第j个位置,(Xij)max和(Xij)min是Xij的上、下限,rand(0,1)为一个随机数,取值范围为(0,1)。
Pareto支配:设定fi(x),i=1,2,...k为解的各子目标对应的目标函数值,如果满足而且那么解x1支配解x2,记为x1<x2。
快速非支配排序法:假设种群为P,则该算法需要计算P中的每个个体p的两个参数Np和Sp,其中Np为种群中支配个体p的个体数,Sp为种群中被个体p 支配的个体集合。算法的主要步骤为:(1)找到种群中所有Np=0的个体,并保存在当前集合F1中;(2)对于当前集合F1中的每个个体i,其所支配的个体集合为Si,遍历Si中的每个个体m,执行Nm=Nm-1,如果Nm=0则个体m保存在集合H中;(3)记F1中得到的个体为第一个非支配层的个体,并以H作为当前集合,重复上述操作,直到整个种群被分级。
拥挤距离:在同一个Pareto前端上的两个相邻点之间的欧几里得距离。
id表示i点的拥挤度,表示i+1点的第j个目标函数值,表示i-1点的第j个目标函数值。
全局信息指导蜂群邻域搜索公式:
NewXij=(1-rand(0,1))*Xij+rand(0,1)*GBest1j
Xij为蜜源i的第j个位置,rand(0,1)为一个随机数,取值范围为(0,1),GBest1j代表全局最优解。
Boltzmann策略:引入自适应机制来调节搜索过程的选择压力。
fiti为解i的适应度值,c为循环次数,T为一个参数可控制选择的压力, T0=100。
适应度函数:fit(xi)=s(xi)+d(xi) xi∈S
s(xi)表示xi解支配强度,d(xi)表示xi的拥挤距离。
s(xi)=(1-L/g)+1/g(g是xi的等级层次,L=1/2)
采用多目标人工蜂群优化算法得到的Pareto解并存于外部档案中,如图2,外部档案中的解就是流量调度的非劣解,其所获得调度方案是一组pareto最优解集,在具体的调度中,需要根据实际情况分析各目标的重要程度,选择最佳调度方案。
将其方法归纳为以下几点:
1.当实际情况主要考虑流量调度的实时性时,增加时延函数的重要程度,选取时延函数值最小的调度方案,以保证数据传输的实时性;
2.当实际情况主要考虑流量调度的流量负载均衡时,增加流量均衡函数的重要程度,选取流量均衡函数值最小的调度方案,以保证网络每个服务器负载均衡;
3.当实际情况主要考虑流量调度的距离时,增加跳数函数的重要程度,选取跳数函数值最小的调度方案,以保证数据传输距离最小;
4.当实际情况同时考虑多个目标时,综合增加其函数的重要程度,综合选取多个目标函数值相对较小的调度方案。
基于蜂群优化的网络流量调度方法在最大程度上实现流量均衡的目的并且得到最佳的调度方案,控制服务器根据这个最佳调度方案对整个网络进行流量调度,网络中主机将根据调度结果进行流量调度,如图3,完成整个流量调度过程。
方案首先进行初始场景设置,具体如下:
初始场景设置:
步骤1)设置网络环境参数:
该参数包括网络中主机的数量以及每个主机需要访问的流量;
网络中可访问的服务器数量,每个服务器所承受的负载流量能力;
网络中的主机到达目的服务器的时延、流量比重与带宽百分比以及跳数;
多QoS约束下基于蜂群优化的网络流量调度:
步骤2)对网络流量采集与分析,分析多QoS约束对流量调度的影响,主要考虑的多QoS约束有主机到服务器的时延、流量比重与带宽百分比、跳数;建立流量调度多目标优化函数,包括时延函数、流量均衡函数、跳数函数,将多约束转化成了多目标优化问题,利用多目标优化建立流量调度的数学模型;
步骤3)根据所述数学模型,初始化多目标人工蜂群优化算法参数,结合 Pareto排序机制、拥挤距离改进适应度函数,采用Boltzmann策略进行解的选择,利用外部档案记录已经找到的Pareto解,并利用全局信息指导蜂群的邻域搜索,使找到的Pareto最优解均匀地分布在真实Pareto最优前端上;通过不断迭代,获取调度方案Pareto前端解集;
步骤4)根据实际情况分析各目标的重要程度,选择最佳调度方案;
步骤5)控制服务器端将最佳调度方案结果发送给每个主机;
步骤6)各主机在收到命令后,将根据最佳调度方案访问目的网络服务器。