基于遗传算法求解网络负载均衡问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于遗传算法求解网络负载均衡问题
摘要:基于整数规划的多限制条件下流量分布优化数学模型,提出一种基于遗传算法的优化算法求解MPLS网络负载均衡问题。

算法采用自然数编码,自适应的交叉变异算子,并融入启发式信息有效地提高了搜索效率。

仿真实验结果证明算法是有效的,显著改善了传统SPF路由算法易于导致的网络流量分布不均衡的状况。

关键字:负载均衡;多协议标签交换;遗传算法
1 引言
随着Internet的快速发展和业务量的不断提高,基于网络的数据访问流量迅速增长,特别是对数据中心、大型企业以及门户网站等的访问,其访问流量甚至达到了10Gb/s的级别;同时,服务器网站借助HTTP、FTP、SMTP等应用程序,为访问者提供了越来越丰富的内容和信息,服务器逐渐被数据淹没;另外,大部分网站(尤其电子商务等网站)都需要提供不间断24小时服务,任何服务中断或通信中的关键数据丢失都会造成直接的商业损失。

所有这些都对应用服务提出了高性能和高可靠性的需求。

这要求网络运营商必须有效地提高现有的网络资源的利用率以满足日益增长的业务量需求,并实现利益的最大化。

流量工程的主要目的就是优化资源利用率,提高网络性能,增加网络的顽健性,负载均衡时其中的重要功能。

[1]
传统的Internet路由协议采用基于目标的最短路径选路方式,常常导致网络上的流量分布不均衡,使得网络上有些链路因为过负荷产生拥塞现象,而另一些链路资源却处于闲置状态。

[1]多协议标签交换(MPLS)技术是综合了三层路由的灵活性以及二层交换的流量管理能力的产物。

MPLS的显示路由技术(ER)允许源完全控制数据在网络中的传输路径,可以在传送分组之前即预先建立一定的约束的标签交换路径(LSP),因此可以综合考虑全局业务流量需求,网络拓扑与链路特征,建立优化的LSP,达到均衡网络流量分配的目的。

下面先给出基于整数规划的多限制条件下流量分布优化数学模型。

这里以均衡网络业务量,减少拥塞为目的的主要原因在于如果网络拥塞减少了,相应的分组丢失率,传输延时都会降低,网络总吞吐量会增加。

该问题是NP-hard问题,本文设计了一种基于遗传算法的优化算法来求解计算复杂度高的负载均衡优化问题,并对算法进行了分析与仿真,仿真结果表明本文的算法是行之有效的,达到了均衡流量分布,尽可能地避免瓶颈链路出现的目的。

2 负载均衡问题建模
用G=(V,E,C)抽象描述网络拓扑。

V是网络节点的集合,E是网络链路的集合。

参数C则是E 和V的容量和其他一些约束条件限制。

用集合K表示网络中的LSP请求。

对任意k∈K,用三元组(s k,t k,λk)表示,其中s k ,t k分别为入口节点和出口节点,λk表示(s k ,t k)业务流
表示LSP,k是否经由链路(i,j),(i,j)∈E,h k为LSP的跳数限制。

的带宽需求。

X k
ij
优化的目标是使最大链路利用率最小化,这样可以使业务流向相对轻载的链路链接转移,使得由于流量分布不均衡造成拥塞的可能性降到最低。

[2]另一方面,在最大链路利用率最小化的同时,相应的,链路的剩余带宽得到最大化,因而网络对将来达到的连接请求具有较高的接纳能力,而不需要对已存的连接进行重路由。

网络流量分布优化问题的数学模型描述如下,C ij表示链路(i,j)的容量,a表示网络中的最大链路利用率。

优化目标:
min a (1) 约束条件:
∑∈E j i j X ),(:k ij - ∑∈E i j j X ),(:k ij = 0 , k ∈K,i ≠s k ,t k (2)
∑∈E j i j X ),(:k ij - ∑∈E i j j X ),(:k ij = 1 , k ∈K,i=s k (3)
∑∈E j i j X ),(:k ij - ∑∈E i j j X ),(:k ij = -1 , k ∈K,i=t k (4)
X K k k ⋅∑∈λk ij ≤ C ij ⋅a , (i,j)∈E (5)
∑∈E j i X ),(k ij ≤ h k , k ∈K (6) X k
ij ∈ {0,1} , a ≤0 (7)
其中式(1)以使最大链路利用率最小化的优化目标,以此实现负载均衡;式(2)~(7)是限制条件;式(2)是对中间节点的限制,流入的流量应等于流出的流量;式(3)和(4)
分别是对入口和出口节点的流量限制[3];式(5)是链路上的最大负载限制;式(6)是对入
口至出口节点的路径跳数限制;式(7)是对X k
ij 的整数限制,限制为单路径路由,以及对
a 的非负限制。

这里将对应终端节点对(s k ,t k ,λk )的所有满足约束条件的路由组成的集合称为第k 条LSP 的可行路由集Q k ,Q k ={q k 1,...q j k ,...q k N k },k ∈K ,N k 为第k 条LSP 的可行路由数目。

则上述优化问题即要求解优化路由集P=(p 1,...p k ,...p |K|),p k ∈Q k ,满足式(1)优化目标。

用l 表示链路(i ,j ),设
δk kl P = {
,l LSPk ,1,0K k E ∈∈经过链路如果否则 (8) 则链路负载)(l p γ和利用率)(l a p 可分别式(9)和(10)计算得出。

)(l p γ=k K k P kl k λδ
∑=||1 (9)
)(l a p =())(/1l C p l λ⨯ (10) 上述优化问题本质上是从每一个多选择域(Q k )中选择正确的变量(p k ),即多选择指派问题,它是NP-hard 问题[4]。

目前还没有找到求得最优解的多项式算法,工程中一般倾向于综合考虑算法效率和优化结果,寻求问题的满意解。

上述优化问题的特点是搜索空间大,我们基于全局搜索能力强的遗传算法进行求解。

3 算法求解
遗传算法(Genetic Algorithm,GA )是由美国密执安大学的Holland 教授于1969年提出,后经由De Jong 于1975年、Goldberg 于1989年等归纳总结所形成的一类模拟进化算法
(Simulated Evolutionary Algorithm,SEA ),是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法[5]。

在应用遗传算法时,需要确定以下要素:(1)染
色体的编码方法。

如何由染色体的编码体现问题的解。

(2)表示个体适应度的评价函数。

适应度高的个体有更大的概率遗传到下一代群体。

(3)如何产生初始群体?(4)确定遗传算子,即如何进行选择、交叉和变异等遗传操作并产生下一代群体。

(5)确定运行参数,包括群体规模popSize ,终止进化代数maxGen ,交叉概率p m 。

3.1 染色体编码
首先将各LSP 可行路由集中的每一条路由从1开始进行编号,从每一个可行路由集中选取的路由编号排列即为原问题的一个可行解(一条染色体)。

例如,第1对入口/出口节点对(s 1,t 1,λ1)选择的路由编号为y1,第2对入口/出口节点对(s 2,t 2,λ2)选择的路由编号为y 2,...,第|K|对入口/出口节点对(s |k|,t |k|,λ|k|)选择的路由编号为y |K|,则(y 1,y 2,...,y i ,...,y |K|)构成了一条染色体,其中y i 对应LSP i 的可行路由集Qi 中的路由q i
y i 。

算法中染色体采用自然数编码方式,其编码长度是确定的,等于LSP 总数,于总的可行路由数目无关。

同时,染色体的各基因位无顺序关系,基因位相互之间无必然联系,使得遗传算子的设计很灵活,任意交叉操作,以及在基因位的取值范围内进行变异的操作都不会导致无效染色体的出现,可以保证进行遗传算子操作都不会导致无效染色体的出现,可以保证进行遗传算子操作后得到的编码仍然是一个可行解,避免了无效空间中进行搜索,提高了算法效率。

3.2 初始群体的产生
通常的办法是采用均匀随机的选择策略。

可行路由集Qi 的最大路由编号为Ni ,则初始群体中的每一个个体(y 1,y 2,...,y |K|)中的y i 是通过产生从1到N i 的一个随机数来确定的。

此方法简单通用,但是却无法保证群体的全局性和稀疏性。

这里采用如下基于划分搜索空间的改进方法:首先在解空间均匀产生若干个区域,然后再在每个小区域内随机产生可行解构成初始群体。

具体做法如下:先产生一个1到|K|间的随机整数k,选定第k 条LSP 的路由,其他的LSP 路由仍作为搜索变量,则可将解空间均匀划分为N k 个子空间。

如果群体规模为popSize ,则在每一个子空间中至少选择|popSize/N k |个样本。

这样可以扩大GA 初始群体的多样性,减小了陷入局部最小解得可能性。

3.3 适应度函数
因为式(1)是一个求最小值问题,因此选取如下适应度函数,al 可利用式(10)计算。

F (Y )=))(max (1l E l a -∈ (11)
3.4 选择操作
我们采用比例选择法结合最优个体保存策略。

在该办法中,各个个体的选择概率与其适应度值成比例。

设群体规模大小popSize ,个体i 的适应度为F i ,则个体i 被选中的概率为
ps i =11-=⎪⎪⎭⎫ ⎝⎛∑popSize i i i F F (12)
由于这两种方法是基于概率选择,存在统计误差。

因此结合最优保存策略,保证当前适应度最好的个体能够进化到下一代,不被遗传操作的随机性破坏掉,保证算法的收敛性。

在设计交叉算子和变异算子的时候,需要考虑两个原则:(1)不要太多地破坏群体中表示优良性状的优良模式,以保证算法的收敛性;(2)能够有效地产生出一些新的个体模式,保持群体的多样性,避免陷入局部最优解。

根据这两个原则,如果交叉,变异概率根据个体适应度做自适应变化,则能够较好地达到上述两个目的[6]。

p c ,p m 计算方法如式(13)和(14)所示。

其中,F max 是当前群体中最大的个体适应度值,F -
是平均个体适应度值,F 为某个体
适应度值,且0<k1,k2,k3,k4≤1。

为了保证群体多样性,适应度差的个体能够以较大概率进行重组和变异,这里取k1=k2=1,k3=k4=0.5。

这种随适应度自适应变化的交叉变异算子一方面能够保持群体整体朝适应度高的方向进化,提高算法收敛效率,另一方面,当群体中的个体过于趋于一致的时候,增大交叉、变异概率、避免早熟。

p
c =


⎧≥
-
-
<
F
F
F
F
F
F
k
F
F
k
),
/(
)
(max
max
1
,2
(13)
p m =


⎧≥
-
-
<
F
F
F
F
F
F
k
F
F
k
),
/(
)
(max
max
3
,4
(14)
另外一个问题是:如何确定交叉点和变异点的位置?为了提高算法的收敛速度,并且增强局部寻优能力,我们利用一些启发式信息来帮助确定。

因为优化目标是均衡网络业务流量,使最大链路利用率最小化,因此只有最大利用率链路上的负载发生改变,才能改善解的性能。

设要交配的两个父串:A=(p1,p2,...p|k|)和B=(q1,q2,...q|k|),计算F(A)>F(B),选取其中较大的一
个,若两者相等任取一个,这里不妨设F(A)>F(B),在所有的a A()l中找出具有最大链路利用率的链路编号l,并进而求出对l上的负载贡献最小的LSP编号i,将其作为交叉点。

同理可以确定变异点。

这里选取负载贡献最小的LSP编号的原因是可以尽可能小地影响其他链路的负载情况。

4 算法的实现
为了实现直观的效果,分别对新算法和传统算法作对比。

其中对新算法记为NGA(Nature Genetic Algorithm),将简单的传统算法记为SGA(Simple Genetic Algorithm)。

设网络结构如图1所示。

对其进行计算机仿真。

性能指标为最大链路利用率。

设LSP的跳数限制最大为6跳,需要优化的LSP终端节点对及相应的流量约束如表1所示,个链路的容量均为155
图1 网络结构示意图
LSP入口/出口节点AN AL AH BM CM 流量要求32 40 27 33 34
LSP入口/出口节点DI DM DN HI MH 流量要求48 25 21 15 31。

相关文档
最新文档