一种基于遗传算法实现MAS负载均衡的方法技术

技术编号:12566680 阅读:82 留言:0更新日期:2015-12-23 10:18
本发明专利技术公开了一种基于遗传算法实现MAS负载均衡的方法,在待分配任务和节点之间建立基于遗传算法的负载均衡器,以此实现MAS各节点的负载均衡;其中,MAS中所有的待分配任务的详细信息都要发送到负载均衡器。同时,负载均衡器收集各个节点的负载情况,以此作出有效的任务调度。同时在分配的过程中,对每个节点设置负载阈值,当前负载大于阈值的时候,停止向该节点分配任务,这样可以缩小搜索空间并以此加快任务分配效率。

【技术实现步骤摘要】

本专利技术涉及一种基于遗传算法实现MAS (Multi Agent System,多智能体系统)负 载均衡的方法,属于分布式系统负载均衡

技术介绍
多智能体系统是多个智能体组成的集合,它的目标是将大而复杂的系统建设成小 的、彼此互相通信和协调的,易于管理的系统。通过智能体的合作来完成任务的求解,实现 多智能体系统的关键是多个智能体之间的通信和协调。当系统越来越大,系统节点随之增多的时候,不得不考虑负载均衡的问题。如何使 MAS任务的分配执行达到最优或接近最优,整体效率较高,这是本专利技术将要研究的问题。 负载均衡是一种能够通过恰当的任务分配来进行资源优化利用,实施并行运算, 提高处理机吞吐量和缩短执行任务时间的技术。一般分为静态负载均衡和动态负载均衡。 通常情况下,静态负载均衡算法都没有考虑系统的动态变化情况,往往会表现出任务分配 的不均衡性。 动态负载均衡是指根据目标系统上负载的变化,动态地进行任务分配。动态负载 均衡中的任务调度可分为集中式调度和分布式调度两大类,集中式调度由一个任务调度 器负责搜集系统负载信息,并由它来决定负载均衡调度方案。集中式调度实现简单,但在 节点数较多或大规模并行分布式系统中,由于处理能力和通信的受限的原因,任务调度器 成为系统瓶颈。分布式调度解决了集中式调度所存在的问题,但随着节点数目和任务数目 的增加,分配效率也随之下降。 张玉芳在《基于负载权值的负载均衡算法》中为解决服务器集群负载分配不均的 问题,综合考虑节点负载和节点性能信息,提出了基于负载权值的动态反馈负载均衡算法。 利用负载权值选择分配负载的节点集合,保证性能高的节点分配到较多的负载;引入负载 差值计算节点分配负载的概率,使得负载的分布更加均匀;通过负载增量及负载修正保持 系统的稳定性。使用0PNET仿真软件进行测试,结果表明该算法能有效提高负载均衡效率, 有较好的负载均衡效果。但是使用修正负载增量来抵消节点完成任务对负载造成的影响, 有一定的滞后性。另外,均衡效率虽然有了一定的提高,但与理论上存在差距。 曹兰在《遗传算法在负载均衡系统中的应用研究》将并行分布式系统中广泛使用 的遗传算法应用到增值业务计费系统即负载均衡系统的设计中,并根据增值业务计费系 统的具体特点,对遗传算法作了适当的改进,提高了后台服务器CPU的利用率,从而改善 系统性能。但在分配的过程中,没有为节点设置负载阈值,可能会出现节点过载。
技术实现思路
专利技术目的:针对现有技术存在的缺陷,本专利技术的目的在于提供一种基于遗传算法 实现MAS负载均衡的方法。在待分配任务和节点之间建立基于遗传算法的负载均衡器,以 此实现MAS各节点的负载均衡。其中,MAS中所有的待分配任务的详细信息都要发送到负 载均衡器。同时,负载均衡器收集各个节点的负载情况,以此作出有效的任务调度。同时在分配的过程中,对每个节点设置负载阈值,当前负载大于阈值的时候,停止 向该节点分配任务,这样可以缩小搜索空间并以此加快任务分配效率。 技术方案:一种基于遗传算法实现MAS负载均衡的方法,包括如下步骤:步骤一、 建立分配模型 在MAS中,存在有多个Agent,Agent之间协同完成某项任务。同时系统中几个 Agent自发建立一个系统节点,每个节点就是一个管理Agent,每个管理Agent分配任务到 执行任务的Agent,节点上的Agent受节点的管理。整个系统存在多个节点,节点间相对独 立,并没统一的管理中心。 每个节点可以接受系统分配的任务,当节点接受任务后,会指派底层Agent执行 任务。如果没有负载均衡器,可能会出现个别节点负载过大或者个别节点负载过轻,因而就 需要考虑节点负载。具体如下: Load(i) =x(i) (1) Load(i)为各个节点的负载值,其值的大小衡量节点所处的状态,即空载、轻载、重 载或超载。P) Sum(l〇ad)表现为整个系统所有节点(假设系统节点总数为n)的负载量。_ Average(load)表现为系统的平均负载,等同于系统负载。 V(i) =Load(i)-Average(load) (4)V(i)为负载偏差。〇) R(i)为负载偏差率,取值为0-1之间,表现为节点的负载均衡性能。 步骤二、染色体定义 遗传算法的运算对象是表示个体的符号串,所以必须把变量编码为一种符号串用 二进制整数来表示。 将节点的编号通过二进制数表示,然后将总的任务序列中每个任务对应的站点用 站点的序号的^进制整数表不,总的任务序列对应的站点^进制整数序列即为个体的基因 型。 假设有节点xl,x2, x3,六个任务分别为tl,t2, t3, t4, t5, t6。在此节点有3个, 即最大的节点序号为3,所以用6组2位(若节点总数为n,将n转化为二进制数,即位数) 无符号二进制整数来表示,将它们连接在一起所组成的12位无符号二进制数就形成了个 体的基因型,表示一个可行解。 例如,基因型X= 10 11 10 01 10 11所对应的表现型是:x= 。 即tl分配到节点2, t2分配到节点3, t3分配到节点2, t4分配到节点1,t5分配到节点2, t6分配到节点3。 步骤三、群体初始化 遗传算法是对群体进行的进化操作,需要给其淮备一些表示起始搜索点的初始群 体数据,设置群体的规模(对于适应值函数比较复杂的情况,群体规模与基因长度之比应 当保持在1. 5以上)。步骤二中基因长度为12,以此群体规模的大小选取为20,即群体由 20个个体组成,每个个体可通过随机方法产生。 步骤四、适应度计算 通过节点的负载偏差R(i)计算染色体的适应度,染色体适应度越好,越有可能遗 传到下一代。对应的分配方案被选中的概率越高。 步骤五、选择运算 选择运算(或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型 遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代群体中。 本专利技术选择操作采用典型的轮盘赌方法。 步骤六、交叉运算 交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某两 个个体之间的部分染色体。 步骤七、变异运算 变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进行 改变,它也是产生新个体的一种操作方法。 步骤八、缩小搜索空间 设定节点负载的阈值,当当前负载大于阈值的时候,可以暂时不分配任务到该节 点,依此减小了搜索的范围。 经过设定的代数遗传后,按照前面染色体定义的方案,反向解码,得到最终的分配 方案,使得各个节点负载均衡。 本专利技术的有益之处在于: 对MAS系统中加入基于遗传算法的负载均衡器,利用其概念清晰、搜索速度快、易 于实现的优点求解负载均衡是一项非常好的选择。设计的任务均衡器能够有效的解决MAS 系统在任务分配时出现的负载不均衡问题。该方法提高了实现负载均衡的效率,同时减少 了节点间的通讯量。【附图说明】 图1为MAS系统分布式体系结构图; 图2为染色体定义的原理图; 图3为基于遗传算法的负载均衡器应用说明【具体实施方式】原理图; 图4为基于遗传算法实现MAS负载均衡实现流程图。【具体实施方式】 下面结合具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术 而不用于限当前第1页1&本文档来自技高网
...

【技术保护点】
一种基于遗传算法实现MAS负载均衡的方法,其特征在于,包括如下步骤:步骤一、建立分配模型在MAS中,存在有多个Agent,Agent之间协同完成某项任务;同时系统中几个Agent自发建立一个系统节点,节点上的Agent受节点的管理;每个节点可以接受系统分配的任务,当节点接受任务后,会指派底层Agent执行任务,那么节点负载的计算公式如下:Load(i)=x(i)        (1)Load(i)为各个节点的负载值,其值的大小衡量节点所处的状态,即空载、轻载、重载或超载;Sum(load)=Σi=1nLoad(i)---(2)]]>Sum(load)表现为整个系统所有节点(假设系统节点总数为n)的负载量;Average(load)=Sum(load)n---(3)]]>Average(load)表现为系统的平均负载,等同于系统负载;V(i)=Load(i)‑Average(load)       (4)V(i)为负载偏差;R(i)=V(i)2Sum(load)---(5)]]>R(i)为负载偏差率,取值为0‑1之间,表现为节点的负载均衡性能;步骤二、染色体定义遗传算法的运算对象是表示个体的符号串,所以必须把变量编码为一种符号串用二进制整数来表示;将节点的编号通过二进制数表示,然后将总的任务序列中每个任务对应节点序号的二进制整数表示,总的任务序列对应的节点二进制整数序列即为个体的基因型;步骤三、群体初始化遗传算法是对群体进行的进化操作,需要给其准备一些表示起始搜索点的初始群体数据,以及设置群体的规模。步骤四、适应度计算通过节点的负载偏差R(i)计算染色体的适应度,染色体适应度越好,越有可能遗传到下一代。对应的分配方案被选中的概率越高;步骤五、选择运算选择运算把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中,选择操作采用典型的轮盘赌方法;步骤六、交叉运算步骤七、变异运算步骤八、缩小搜索空间设定节点负载的阈值,当当前负载大于阈值的时候,可以暂时不分配任务到该节点,依此减小了搜索的范围;经过设定的代数遗传后,按照前面染色体定义的方案,反向解码,得到最终的分配方案,使得各个节点负载均衡。...

【技术特征摘要】

【专利技术属性】
技术研发人员:翟江涛赵东见唐雨
申请(专利权)人:江苏科技大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1