本发明涉及计算机网络通信技术领域,具体涉及一种网络编码环境下优化负载均衡的方法。
背景技术:
网络服务商都希望尽可能完全利用网络设备以便为较多的客户提供网络资源,其中负载均衡为网络资源分配的一个分支,显然网络中有一个更均衡的传输负载能够更有效地利用网络资源。网络编码是一种融合了路由和编码的信息交换技术,它的核心思想是在网络中的各个节点上对各条信道上收到的信息进行线性或者非线性的处理,然后转发给下游节点,中间节点扮演着编码器或信号处理器的角色,网络编码相比于传统的存储转发方式能够保证多播速率达到最大流最小割定理确定的理论上限,采用网络编码后的通信网络能够提高吞吐量和数据传输速率、节省能耗以及平衡网络负载。
现有技术中陆续出现了一些在上述网络编码下实现负载均衡的方法,但是现有技术中的方法都是在网络中的所有节点都进行编码操作的前提下进行的,由于编码操作具有复杂性,上述的算法无疑会消耗大量的计算时间和占用大量内存,导致网络编码成本大大增加。
技术实现要素:
本发明所要解决的技术问题在于提供一种降低网络编码成本的基于网络编码优化负载均衡方法。
为了解决上述现有技术的问题,本发明采用以下技术方案实现:
本发明网络编码环境下优化负载均衡的方法,该方法包括以下步骤:
(1)所述原始拓扑包括一个源节点和多个目的节点,通过最大流最小割定理计算原始拓扑的最大流以及原始拓扑中源节点到每个目的节点的最大流,对原始拓扑进行分解,将原始拓扑中源节点到每个目的节点的最大流不小于原始拓扑的最大流作为约束条件,满足该约束条件的蜜源能够建立基于网络编码的组播子图,将能够建立基于网络编码的组播子图的蜜源作为合法个体,否则为非法个体。
(2)以适应度最小为目标建立网络负载均衡模型;
(3)根据人工蜂群算法计算分解后拓扑的适应度,所述人工蜂群算法包括:
a、初始化人工蜂群的参数,蜜蜂总数2Np(采蜜蜂、观察蜂各Np);最大迭代次数为MAXiteration;蜜源停留最大限制搜索次数Limit;设迭代次数τ=0,记第i(i=1,…,Np)只采蜜蜂为观察蜂为
b、建立蜜源库,所述初始化规模为M的蜜源库,记为LM,此蜜源库具有M个蜜源且给每一个蜜源设置一个计数变量counti,i=1,…,M,初始值为0,首先以两点交叉方式产生M/2个蜜源,再以按位选择交叉方式产生剩余的M/2个蜜源,
所述两点交叉方式产生M/2个蜜源步骤如下:
1)设置全1二进制串个体A=(1,1,…,1);
2)随机产生一个二进制个体BR,设置产生1的概率,显然概率在0-1之间,设置临时个体temp=A,将个体temp与个体BR执行两点交叉,交叉后产生的后代设为S1,S2;将S1和S2中的合法个体计算适应度,然后添加到LM中;
3)若蜜源库LM中蜜源个数小于M/2,则转到上一步;否则结束。
所述按位选择交叉方式产生剩余的M/2个蜜源步骤如下:
1)假设二进制串个体的长度为D,设置全1二进制串A=(a1,…,aD)=(1,1,…,1);
2)随机产生一个二进制个体BR=(r1,…,rD),设置产生1的概率,显然概率在0-1之间,利用A和BR产生一个后代S=(s1,…,sD),其中:
Rand(2)为随机产生0或1。如果S是合法个体并计算其适应度,然后添加到LM中;
3)若LM中蜜源个数小于M;则转到上一步,否则结束。
c、采蜜蜂阶段,对每一只采蜜蜂的食物源进行领域搜索以随机产生一个新解,即新蜜源,若这个新解优于旧解则用新解替代旧解,且重新设置SGi=0;否则此食物源保留,且SGi=SGi+1;
d、观察蜂阶段,每一只观察蜂随机选择两只不同的采察蜂,跟随具有较优食物源的采蜜蜂,记此采蜜蜂为观察蜂对的食物源进行领域搜索以随机产生一个新解,即新蜜源,若这个新解优于旧解则用新解替代旧解,且重新设置的SGk=0;否则此食物源保留,且SGk=SGk+1;
e、侦查蜂阶段,若采蜜蜂的SGi>Limit,则采蜜蜂放弃当前食物源变为侦察蜂,此侦察蜂从蜜源库中随机选择三个互不相同的新蜜源,再从中选择count值最小的蜜源且count=count+1,侦察蜂变为采蜜蜂且SGi=0;
记录当前所有蜜蜂找到的最优值,即全局最优解Best,τ=τ+1;
若τ<MAXiteration,则转到采蜜蜂阶段;否则结束循环,输出当前最优解Best;
其中判断新解和旧解的优劣,首先检验此个体是否为合法个体,若个体为合法个体,计算其适应度;若个体为非法个体,其适应度设置为1。
所述网络负载均衡模型的目标函数为:
Minimize:
Subject to:
设原始拓扑为G=(V,E),原始拓扑包括一个源节点s和d个目的节点,V和E分别表示节点集和链路集,tk为目的节点,节点数和链路数分别表示为|V|和|E|,其中ωi为链路的带宽利用率,Gs→T为基于网络编码的组播子图,为链路最大带宽,为当前消耗带宽,此外在Gs→T中的链路还需要消耗同样的带宽Bs→T。P(s,tk)={p1(s,tk),…,pσ(s,tk)}为源节点s到目的节点tk∈T={t1,…,td}的路径集,σ为Gs→T中源节点到每一个目的节点的边分离路径的数量,γ(s,tk)为s到tk∈T的可达带宽。
分解原始拓扑时,将原始拓扑中的潜在编码节点分解为输入辅助节点集和输出辅助节点集,使得潜在编码节点的每一条输入边对应一个输入辅助节点,每一条输出边对应一个输出辅助节点,然后将输入辅助节点和输出辅助节点通过辅助链路两两连接。
所述采蜜蜂和观察蜂对食物源Xi=(xi1,...,xiD)进行领域搜索,产生新蜜源Vi'=(v’i1,...,v’iD),i=1,...,Np的公式为:
vid=xid+α(xid-xkd),d=1,...,D
其中:i=1,2,...,Np,k是1,...,Np中的任意一个数且k≠i,α和β为(0,1)之间的随机数。
本发明网络编码环境下优化负载均衡的方法在满足一定约束条件下建立基于网络编码的组播子图,即在一定约束条件下进行编码操作,使得网络平均带宽利用率达到最低。在进行网络编码时并不是所有的节点都进行编码,通过本发明只需部分节点进行编码操作也可以达到最大传输速率,即原始拓扑的最大流,由此网络传输负载更加均衡,大大减少了计算时间和空间的消耗。
附图说明
图1为本发明中人工蜂群算法的流程示意图。
图2为拓扑网络分解示意图。
图3为二进制串个体对应的拓扑网络。
图4为根据拓扑网络建立的基于网络编码的组播子图。
具体实施方式
如图1所示,本发明基于网络编码的负载均衡方法步骤如图所示,具体阐述如下:
本发明网络编码环境下优化负载均衡的方法,该方法包括以下步骤:
(1)所述原始拓扑包括一个源节点s和d个目的节点,通过最大流最小割定理计算原始拓扑的最大流以及原始拓扑中源节点到每个目的节点的最大流,对原始拓扑进行分解,将原始拓扑中源节点到每个目的节点的最大流不小于原始拓扑的最大流作为约束条件,满足该约束条件的蜜源能够建立基于网络编码的组播子图,将能够建立基于网络编码的组播子图的蜜源作为合法个体,否则为非法个体。分解原始拓扑时,将原始拓扑中的潜在编码节点分解为输入辅助节点集和输出辅助节点集,使得潜在编码节点的每一条输入边对应一个输入辅助节点,每一条输出边对应一个输出辅助节点,然后将输入辅助节点和输出辅助节点通过辅助链路连接。服务商可以根据建立的基于网络编码的组播子图用作进行数据的传输,基于网络编码的组播子图。
(2)以适应度最小为目标建立网络负载均衡模型;
所述网络负载均衡模型的目标函数为:
Minimize:
Subject to:
设原始拓扑为G=(V,E),原始拓扑包括一个源节点s和d个目的节点,V和E分别表示节点集和链路集,tk为目的节点,节点数和链路数分别表示为|V|和|E|,其中ωi为链路的带宽利用率,Gs→T为基于网络编码的组播子图,为链路最大带宽,为当前消耗带宽,此外在Gs→T中的链路还需要消耗同样的带宽Bs→T。P(s,tk)={p1(s,tk),…,pσ(s,tk)}为源节点s到目的节点tk∈T={t1,…,td}的路径集,σ为Gs→T中源节点到每一个目的节点的边分离路径的数量,γ(s,tk)为s到tk∈T的可达带宽。
(3)根据人工蜂群算法计算分解后拓扑的适应度,所述人工蜂群算法包括:
a、初始化人工蜂群的参数,蜜蜂总数2Np(采蜜蜂、观察蜂各Np);最大迭代次数为MAXiteration;蜜源停留最大限制搜索次数Limit;设迭代次数τ=0,记第i(i=1,…,Np)只采蜜蜂和观察蜂各为和
b、建立蜜源库,所述初始化规模为M的蜜源库,记为LM,此蜜源库具有M个蜜源且给每一个蜜源设置一个计数变量counti,i=1,…,M,初始值为0,首先以两点交叉方式产生M/2个蜜源,再以第二种方式产生剩余的M/2个蜜源,
两点交叉方式步骤如下:
1)设置全1二进制串个体A=(1,1,…,1);
2)随机产生一个二进制个体BR,设置产生1的概率为0.7,设置临时个体temp=A,将个体temp与个体BR执行两点交叉,交叉后产生的后代设为S1,S2;将S1和S2中的合法个体计算适应度,然后添加到LM中;
3)若蜜源库LM中蜜源个数小于M/2,则转到上一步;否则结束。
按位选择交叉方式步骤如下:
1)假设二进制串个体的长度为D,设置全1二进制串A=(a1,…,aD)=(1,1,…,1);
2)随机产生一个二进制个体BR=(r1,…,rD),设置产生1的概率为0.7,利用A和BR产生一个后代S=(s1,…,sD),其中:
Rand(2)为随机产生0或1。如果S是合法个体并计算其适应度,然后添加到LM中,
其中概率设置为0.7能够保证随机产生的二进制串个体有较大可能性为合法个体;
3)若LM中蜜源个数小于M;则转到上一步,否则结束。
c、采蜜蜂阶段,对每一只采蜜蜂的食物源进行领域搜索以随机产生一个新解,即新蜜源,若这个新解优于旧解则用新解替代旧解,且重新设置SGi=0;否则此食物源保留,且SGi=SGi+1;
d、观察蜂阶段,每一只观察蜂随机选择两只不同的采察蜂,跟随具有较优食物源的采蜜蜂,记此采蜜蜂为观察蜂对的食物源进行领域搜索以随机产生一个新解,即新蜜源,若这个新解优于旧解则用新解替代旧解,且重新设置的SGk=0;否则此食物源保留,且SGk=SGk+1;
e、侦查蜂阶段,若采蜜蜂的SGi>Limit,则采蜜蜂放弃当前食物源变为侦察蜂,此侦察蜂从蜜源库中随机选择三个互不相同的新蜜源,再从中选择count值最小的蜜源且count=count+1,侦察蜂变为采蜜蜂且SGi=0;
记录当前所有蜜蜂找到的最优值,即全局最优解Best,τ=τ+1;
若τ<MAXiteration,则转到采蜜蜂阶段;否则结束循环,输出当前最优解Best;
判断新解和旧解的优劣,首先检验此个体是否为合法个体,若个体为合法个体,计算其适应度;若个体为非法个体,其适应度设置为1。
其中,采蜜蜂和观察蜂对食物源Xi=(xi1,...,xiD)进行领域搜索,产生新蜜源Vi'=(v’i1,...,v’iD),i=1,...,Np的公式为:
vid=xid+α(xid-xkd),d=1,...,D
其中:i=1,2,...,Np,k是1,...,Np中的任意一个数且k≠i,α和β为(0,1)之间的随机数。
如图1所示,本发明中人工蜂群算法的步骤如下:
S1开始;
S2输入原始拓扑;
S3分解原始拓扑;
S4初始化蜜源库并从蜜源库中获取初始食物源,τ=0;
S5采蜜蜂阶段;
S6观察蜂阶段;
S7侦察蜂阶段;
S8记录全局最优解Best,τ=τ+1;
S9若τ<MAXiteration,则转至S5,否则输出当前最优解Best;
S10结束。
为了更好地说明原始拓扑的分解和蜜源库LM的设计,以下结合S3和附图2对原始拓扑的分解作进一步说明,结合图3以及上述蜜源库LM对蜜源库的设计作进一步说明:每一个具有u(≥2)条输入边和w(≥1)条输出边的节点叫做潜在编码节点,如图2所示,左边的原始拓扑分解为右边的拓扑,对于原始拓扑中的潜在编码节点c来说,在分解后的拓扑中具有输入辅助节点集包括u1和u2两个输入辅助节点,输出辅助节点集包括w1和w2两个输出辅助节点,每一条输入边对应一个输入辅助节点,每一个输出边对应一个输出辅助节点,然后将上述输入辅助节点u1和u2与输出辅助节点w1和w2分别用辅助链路相连,对于原始拓扑中的潜在编码节点f来说,在分解后的拓扑中具有输入辅助节点集包括u3和u4两个输入辅助节点,输出辅助节点集包括w3和w4两个输出辅助节点,每一条输入边对应一个输入辅助节点,每一个输出边对应一个输出辅助节点,然后将上述输入辅助节点u3和u4与输出辅助节点w3和w4分别用辅助链路相连,由此分解为右边的分解后的拓扑,由此分解后的图可以更清晰地展现信息在流过潜在编码节点是如何传输的。图2中的每一条辅助链路对应二进制串的每一个比特位,图2中右边分解后的拓扑对应一个二进制串“11111111”,我们称此时的二进制串个体为全1个体,用A=(1,1,…,1)表示。附图3展示了该拓扑图对应的二进制串个体,即为“01101001”。然后利用全1个体A以两种方式产生蜜源库LM,即两点交叉和按位选择交叉方式。
为了更详细地阐述基于网络编码的组播子图的建立,以下结合附图2和附图4进行详细说明。如图4,通过本发明步骤(1)中计算可知图2原始拓扑的最大流r=2,可知附图4左边对应的二进制串个体为“11101110”,通过最大流最小割定理可得到从源节点s到目的节点t1和t2的最大流为2,显然最大流满足不小于r值的条件,然后对于t1和t2各随机选择两条边分离路径,例如t1的两条边分离路径为s→a→t1和s→b→u2→w1→d→u3→w3→t1,t2的两条边分离路径为s→a→u1→w1→d→u3→w4→t2和s→b→t2。由这4条路径可建立如附图4右边所示的基于网络编码的组播子图,基于网络编码的组播子图可简写为NCM(Network coding based multicast subgraph)。
为了验证本发明的可用性和可行性,下面对本发明以及采用经典的遗传算法在解决网络负载均衡的问题上进行了仿真实验,以此对本发明基于网络编码的负载均衡方法进行进一步阐述。
经典的遗传算法包括以下步骤:确定遗传算法的运行参数以及问题的初始解、编码成染色体、确定种群、计算各染色体的适应度,通过遗传运算存优去劣,判断种群是否满足预定指标;解码染色体。
首先进行参数设定:
本发明网络编码环境下优化负载均衡的方法(以下简称为本发明)设定分解后的拓扑图的所有链路ei∈E的最大带宽当前消耗带宽设置为区间[1,50]内的随机整数,Gs→T中的所有链路还需要消耗的带宽Bs→T设为30。设置人工蜂群算法的参数:蜜源库LM规模M=50;采蜜蜂和观察蜂个数各为Np=10,则蜜蜂总数为20;蜜源停留最大限制搜索次数Limit=5;最大迭代次数MAXiteration=200。
设置经典遗传算法(以下简称为GA)的参数:交叉概率0.7;变异概率0.01;种群规模为20;最大迭代次数为200。
本发明以及经典遗传算法分别测试了14组网络拓扑,其中包括6个固定拓扑(3-copy,7-copy,15-copy,3-hybrid,7-hybrid,15-hybrid)和8个随机生成的拓扑(Rnd1-8)。各网络拓扑的参数参见表-1。
表-1
通过设定好的参数将分别进行仿真测试实验,仿真测试实验结果如表-2所示。
表-2
本发明与GA比较的性能指标如下:平均值和方差(Mean and standard deviation,SD),算法独立运行20次的最优结果的平均值和方差,此指标体现了算法的整体性能。平均计算时间(Average computational time,ACT),算法运行20次的平均花费时间,体现了算法的时间复杂度和可用性。
表2中Mean为算法输出的最优解。从表2可知无论从平均值、方差还是平均计算时间来说,本发明都优于经典算法GA。表明了本发明的可行性和可用性,可将本发明用于解决网络编码下的负载均衡问题。