CN105187488A - 一种基于遗传算法实现mas负载均衡的方法 - Google Patents
一种基于遗传算法实现mas负载均衡的方法 Download PDFInfo
- Publication number
- CN105187488A CN105187488A CN201510474005.2A CN201510474005A CN105187488A CN 105187488 A CN105187488 A CN 105187488A CN 201510474005 A CN201510474005 A CN 201510474005A CN 105187488 A CN105187488 A CN 105187488A
- Authority
- CN
- China
- Prior art keywords
- load
- node
- task
- mas
- fitness
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于遗传算法实现MAS负载均衡的方法,在待分配任务和节点之间建立基于遗传算法的负载均衡器,以此实现MAS各节点的负载均衡;其中,MAS中所有的待分配任务的详细信息都要发送到负载均衡器。同时,负载均衡器收集各个节点的负载情况,以此作出有效的任务调度。同时在分配的过程中,对每个节点设置负载阈值,当前负载大于阈值的时候,停止向该节点分配任务,这样可以缩小搜索空间并以此加快任务分配效率。
Description
技术领域
本发明涉及一种基于遗传算法实现MAS(MultiAgentSystem,多智能体***)负载均衡的方法,属于分布式***负载均衡技术领域。
背景技术
多智能体***是多个智能体组成的集合,它的目标是将大而复杂的***建设成小的、彼此互相通信和协调的,易于管理的***。通过智能体的合作来完成任务的求解,实现多智能体***的关键是多个智能体之间的通信和协调。
当***越来越大,***节点随之增多的时候,不得不考虑负载均衡的问题。如何使MAS任务的分配执行达到最优或接近最优,整体效率较高,这是本发明将要研究的问题。
负载均衡是一种能够通过恰当的任务分配来进行资源优化利用,实施并行运算,提高处理机吞吐量和缩短执行任务时间的技术。一般分为静态负载均衡和动态负载均衡。通常情况下,静态负载均衡算法都没有考虑***的动态变化情况,往往会表现出任务分配的不均衡性。
动态负载均衡是指根据目标***上负载的变化,动态地进行任务分配。动态负载均衡中的任务调度可分为集中式调度和分布式调度两大类,集中式调度由一个任务调度器负责搜集***负载信息,并由它来决定负载均衡调度方案。集中式调度实现简单,但在节点数较多或大规模并行分布式***中,由于处理能力和通信的受限的原因,任务调度器成为***瓶颈。分布式调度解决了集中式调度所存在的问题,但随着节点数目和任务数目的增加,分配效率也随之下降。
张玉芳在《基于负载权值的负载均衡算法》中为解决服务器集群负载分配不均的问题,综合考虑节点负载和节点性能信息,提出了基于负载权值的动态反馈负载均衡算法。利用负载权值选择分配负载的节点集合,保证性能高的节点分配到较多的负载;引入负载差值计算节点分配负载的概率,使得负载的分布更加均匀;通过负载增量及负载修正保持***的稳定性。使用OPNET仿真软件进行测试,结果表明该算法能有效提高负载均衡效率,有较好的负载均衡效果。但是使用修正负载增量来抵消节点完成任务对负载造成的影响,有一定的滞后性。另外,均衡效率虽然有了一定的提高,但与理论上存在差距。
曹兰在《遗传算法在负载均衡***中的应用研究》将并行分布式***中广泛使用的遗传算法应用到增值业务计费***即负载均衡***的设计中,并根据增值业务计费***的具体特点,对遗传算法作了适当的改进,提高了后台服务器CPU的利用率,从而改善***性能。但在分配的过程中,没有为节点设置负载阈值,可能会出现节点过载。
发明内容
发明目的:针对现有技术存在的缺陷,本发明的目的在于提供一种基于遗传算法实现MAS负载均衡的方法。在待分配任务和节点之间建立基于遗传算法的负载均衡器,以此实现MAS各节点的负载均衡。其中,MAS中所有的待分配任务的详细信息都要发送到负载均衡器。同时,负载均衡器收集各个节点的负载情况,以此作出有效的任务调度。
同时在分配的过程中,对每个节点设置负载阈值,当前负载大于阈值的时候,停止向该节点分配任务,这样可以缩小搜索空间并以此加快任务分配效率。
技术方案:一种基于遗传算法实现MAS负载均衡的方法,包括如下步骤:步骤一、建立分配模型
在MAS中,存在有多个Agent,Agent之间协同完成某项任务。同时***中几个Agent自发建立一个***节点,每个节点就是一个管理Agent,每个管理Agent分配任务到执行任务的Agent,节点上的Agent受节点的管理。整个***存在多个节点,节点间相对独立,并没统一的管理中心。
每个节点可以接受***分配的任务,当节点接受任务后,会指派底层Agent执行任务。如果没有负载均衡器,可能会出现个别节点负载过大或者个别节点负载过轻,因而就需要考虑节点负载。具体如下:
Load(i)=x(i)(1)
Load(i)为各个节点的负载值,其值的大小衡量节点所处的状态,即空载、轻载、重载或超载。
Sum(load)表现为整个***所有节点(假设***节点总数为n)的负载量。
Average(load)表现为***的平均负载,等同于***负载。
V(i)=Load(i)-Average(load)(4)
V(i)为负载偏差。
R(i)为负载偏差率,取值为0-1之间,表现为节点的负载均衡性能。
步骤二、染色体定义
遗传算法的运算对象是表示个体的符号串,所以必须把变量编码为一种符号串用二进制整数来表示。
将节点的编号通过二进制数表示,然后将总的任务序列中每个任务对应的站点用站点的序号的二进制整数表示,总的任务序列对应的站点二进制整数序列即为个体的基因型。
假设有节点x1,x2,x3,六个任务分别为t1,t2,t3,t4,t5,t6。在此节点有3个,即最大的节点序号为3,所以用6组2位(若节点总数为n,将n转化为二进制数,即位数)无符号二进制整数来表示,将它们连接在一起所组成的12位无符号二进制数就形成了个体的基因型,表示一个可行解。
例如,基因型X=101110011011所对应的表现型是:x=[2,3,2,1,2,3]。即t1分配到节点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负载均衡实现流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
MAS为分布式***,***由多个节点组成。如附图1假设在MAS中有7个节点,出现了15个待分配任务,要让15个待分配任务分配到MAS节点中并保证***各节点负载均衡。测试中在待分配任务和***节点之间加入了基于遗传算法的负载均衡器,如附图3所示,不仅提高了分配效率,而且实现了***各节点动态负载均衡。
步骤一、根据MAS的结构建立分配模型
MAS为分布式结构,其中存在有多个节点,为了方便描述,这里前面已经假设有7个节点,每个节点的负载情况用
Load(i)=x(i)(1)
表示,当某个节点接受任务后,该节点将任务分发到节点上的Agent。Agent的能力是有限,同时执行任务需要一定的时间,如果节点负载过大,就会使节点某些功能运行缓慢。x(i)表现为节点中忙碌的Agent与节点上Agent总数的比值。
表现为整个***,所有节点(假设***节点总数为n)的负载量。
表现为***的平均负载,等同于***负载。
V(i)=Load(i)-Average(load)(4)
为负载偏差。
负载偏差率,取值为0-1之间,表现为节点的负载均衡性能。
步骤二、染色体定义
正如步骤一所述,MAS中包含7个节点,出现了15个待分配任务,每个任务所需要的执行代价也有所不同。可用T1、T2一直到T15代表待分配任务,用N1、N2、…N7表示MAS中的7个节点。因此染色体可以用15组三位二进制数来表示。如图2所示
染色体总长度为任务总数15,一共有15组三位二进制数。具体含义,第一个三位二进制数为110,代表任务T1分配到第六个节点;第二个三位二进制数为101,代表任务T2分配到第五个节点;第三个三位二进制数为001,代表任务T3分配到第一个节点,依次类推。
步骤三、群体初始化
设置遗传算法群体为40,随机产生40个初始串结构数据,每个串结构数据称为一个个体,40个个体构成了—个群体。遗传算法以这40个串结构数据作为初始点开始迭代。
步骤四、适应度计算
遗传算法中以个体适应度的大小来评定个体的优劣程度,从而决定其遗传机会的大小。本例中,目标函数取非负值,并且以求函数最大值为优化目标,故可设个体的适应度为
Fitness(i)=1-R(i)(6)
该值越大,表明该节点的适应度越好,所谓染色体的适应值为minFitness(i),染色体适应度越好,越有可能遗传到下一代。对应的分配方案被选中的概率越高。
步骤五、选择运算
选择操作采用典型的轮盘赌方法,即将每个染色体的适应度相加,得到一个总的适应度,每个染色体占有一个槽,第一个染色体的槽的范围为0到它的适应值,以后每个染色体的槽的范围为上一个染色体的槽的上界到这个值自身的适应值。例如,有3个染色体,他们的适应值分别为0.3、0.7和0.5,那么它们所占的槽分别(0-0.3)、(0.3-1.0)和(1.0-1.5)。在0到总适应值中随机取一个数,当这个数落到某个染色体所占的槽时,这个染色体被选入下一代。如此依次选取染色体,直到种群数目为止。
步骤六、交叉运算
交叉是结合来自父代交配种群中的信息产生的新个体。交叉操作是遗传算法中最主要的遗传操作。通过交叉操作可以得到新一代个体,新个体组合了其父辈个体的特性。交叉体现了信息交换的思想。
步骤七、变异运算
变异是根据变异概率翻转自带某个位的值,一般变异的概率为很小的数,在0到0.05之间。
步骤八、缩小搜索空间
对每个节点设置负载阈值,当前负载大于阈值的时候,停止向该节点分配任务,这样可以加快任务分配效率。负载均衡器可以实时读取MAS节点的负载情况见附图4,如果负载超过阈值,在遗传算法的过程中不再分配该节点任务,缩小搜索空间,依次提高执行效率。
MAS中的负载均衡器获取待分配任务的信息后,通过以上步骤经过规定的代数遗传后获取分配方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (3)
1.一种基于遗传算法实现MAS负载均衡的方法,其特征在于,包括如下步骤:
步骤一、建立分配模型
在MAS中,存在有多个Agent,Agent之间协同完成某项任务;同时***中几个Agent自发建立一个***节点,节点上的Agent受节点的管理;
每个节点可以接受***分配的任务,当节点接受任务后,会指派底层Agent执行任务,那么节点负载的计算公式如下:
Load(i)=x(i)(1)
Load(i)为各个节点的负载值,其值的大小衡量节点所处的状态,即空载、轻载、重载或超载;
Sum(load)表现为整个***所有节点(假设***节点总数为n)的负载量;
Average(load)表现为***的平均负载,等同于***负载;
V(i)=Load(i)-Average(load)(4)
V(i)为负载偏差;
R(i)为负载偏差率,取值为0-1之间,表现为节点的负载均衡性能;
步骤二、染色体定义
遗传算法的运算对象是表示个体的符号串,所以必须把变量编码为一种符号串用二进制整数来表示;
将节点的编号通过二进制数表示,然后将总的任务序列中每个任务对应节点序号的二进制整数表示,总的任务序列对应的节点二进制整数序列即为个体的基因型;
步骤三、群体初始化
遗传算法是对群体进行的进化操作,需要给其准备一些表示起始搜索点的初始群体数据,以及设置群体的规模。
步骤四、适应度计算
通过节点的负载偏差R(i)计算染色体的适应度,染色体适应度越好,越有可能遗传到下一代。对应的分配方案被选中的概率越高;
步骤五、选择运算
选择运算把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中,选择操作采用典型的轮盘赌方法;
步骤六、交叉运算
步骤七、变异运算
步骤八、缩小搜索空间
设定节点负载的阈值,当当前负载大于阈值的时候,可以暂时不分配任务到该节点,依此减小了搜索的范围;
经过设定的代数遗传后,按照前面染色体定义的方案,反向解码,得到最终的分配方案,使得各个节点负载均衡。
2.如权利要求1所述的基于遗传算法实现MAS负载均衡的方法,其特征在于,个体的适应度为Fitness(i)=1-R(i)。
3.如权利要求1所述的基于遗传算法实现MAS负载均衡的方法,其特征在于,选择操作采用轮盘赌方法,即将每个染色体的适应度相加,得到一个总的适应度,每个染色体占有一个槽,第一个染色体的槽的范围为0到它的适应值,以后每个染色体的槽的范围为上一个染色体的槽的上界到这个值自身的适应值。在0到总适应值中随机取一个数,当这个数落到某个染色体所占的槽时,这个染色体被选入下一代;如此依次选取染色体,直到种群数目为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510474005.2A CN105187488A (zh) | 2015-08-05 | 2015-08-05 | 一种基于遗传算法实现mas负载均衡的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510474005.2A CN105187488A (zh) | 2015-08-05 | 2015-08-05 | 一种基于遗传算法实现mas负载均衡的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105187488A true CN105187488A (zh) | 2015-12-23 |
Family
ID=54909328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510474005.2A Pending CN105187488A (zh) | 2015-08-05 | 2015-08-05 | 一种基于遗传算法实现mas负载均衡的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105187488A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893145A (zh) * | 2016-03-24 | 2016-08-24 | 海信集团有限公司 | 一种基于遗传算法的任务调度方法及装置 |
CN108632158A (zh) * | 2017-03-16 | 2018-10-09 | 哈尔滨英赛克信息技术有限公司 | 一种sdn网络的多控制器负载均衡交换机迁移方法 |
CN113722112A (zh) * | 2021-11-03 | 2021-11-30 | 武汉元鼎创天信息科技有限公司 | 一种服务资源负载均衡处理方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014042A (zh) * | 2009-09-08 | 2011-04-13 | 中兴通讯股份有限公司 | 一种Web负载均衡方法、网格服务器及*** |
CN102063339A (zh) * | 2010-12-21 | 2011-05-18 | 北京高森明晨信息科技有限公司 | 基于云计算***的资源负载均衡的方法和设备 |
CN104517141A (zh) * | 2014-12-27 | 2015-04-15 | 西安电子科技大学 | 基于负载平衡与粒子群算法的射频识别网络布局方法 |
-
2015
- 2015-08-05 CN CN201510474005.2A patent/CN105187488A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014042A (zh) * | 2009-09-08 | 2011-04-13 | 中兴通讯股份有限公司 | 一种Web负载均衡方法、网格服务器及*** |
CN102063339A (zh) * | 2010-12-21 | 2011-05-18 | 北京高森明晨信息科技有限公司 | 基于云计算***的资源负载均衡的方法和设备 |
CN104517141A (zh) * | 2014-12-27 | 2015-04-15 | 西安电子科技大学 | 基于负载平衡与粒子群算法的射频识别网络布局方法 |
Non-Patent Citations (1)
Title |
---|
曹兰等: ""遗传算法在负载均衡***中的应用研究"", 《四川理工学院学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893145A (zh) * | 2016-03-24 | 2016-08-24 | 海信集团有限公司 | 一种基于遗传算法的任务调度方法及装置 |
CN108632158A (zh) * | 2017-03-16 | 2018-10-09 | 哈尔滨英赛克信息技术有限公司 | 一种sdn网络的多控制器负载均衡交换机迁移方法 |
CN113722112A (zh) * | 2021-11-03 | 2021-11-30 | 武汉元鼎创天信息科技有限公司 | 一种服务资源负载均衡处理方法及*** |
CN113722112B (zh) * | 2021-11-03 | 2022-01-11 | 武汉元鼎创天信息科技有限公司 | 一种服务资源负载均衡处理方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210133534A1 (en) | Cloud task scheduling method based on phagocytosis-based hybrid particle swarm optimization and genetic algorithm | |
CN105900393B (zh) | 用于sdn中分布式流量工程的流行为驱动的动态分区 | |
CN112817728B (zh) | 任务调度方法、网络设备和存储介质 | |
CN111831415B (zh) | 一种多队列多集群的任务调度方法及*** | |
CN111813500B (zh) | 一种多目标云工作流调度方法及装置 | |
CN104899100A (zh) | 一种用于云***的资源调度方法 | |
CN103595654B (zh) | 基于多核CPU的HQoS实现方法、装置及网络设备 | |
Wei et al. | Research on cloud design resources scheduling based on genetic algorithm | |
Patni et al. | Load balancing strategies for grid computing | |
CN106998340B (zh) | 一种板卡资源的负载均衡方法及装置 | |
CN105187488A (zh) | 一种基于遗传算法实现mas负载均衡的方法 | |
Cruz-Chávez et al. | Hybrid micro genetic multi-population algorithm with collective communication for the job shop scheduling problem | |
Khodar et al. | New scheduling approach for virtual machine resources in cloud computing based on genetic algorithm | |
CN116050540A (zh) | 一种基于联合双维度用户调度的自适应联邦边缘学习方法 | |
CN112187535A (zh) | 雾计算环境下服务器部署方法及装置 | |
CN114217944A (zh) | 一种神经网络的针对模型并行的动态负载均衡方法 | |
WO2017148296A1 (zh) | 一种应用归属服务集群的分配方法和装置 | |
CN113157431B (zh) | 一种针对边缘网络应用环境的计算任务副本分发方法 | |
CN109889573B (zh) | 混合云中基于ngsa多目标的副本放置方法 | |
CN114980216B (zh) | 基于移动边缘计算的依赖型任务卸载***及方法 | |
CN115550373A (zh) | 基于云平台管控的联合试验任务环境负载均衡建模方法 | |
CN113407336B (zh) | 基于禁忌搜索优化算法的全比较数据分发方法 | |
CN104270321A (zh) | 一种网络负载均衡方法及*** | |
Gamal et al. | Mapping and scheduling for non-uniform arrival of virtual network function (VNF) requests | |
Lee et al. | A dynamic load balancing approach using genetic algorithm in distributed systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151223 |
|
RJ01 | Rejection of invention patent application after publication |