CN115617510A - 一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统 - Google Patents
一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统 Download PDFInfo
- Publication number
- CN115617510A CN115617510A CN202211189870.9A CN202211189870A CN115617510A CN 115617510 A CN115617510 A CN 115617510A CN 202211189870 A CN202211189870 A CN 202211189870A CN 115617510 A CN115617510 A CN 115617510A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- pheromone
- genetic
- server
- ant
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 233
- 239000003016 pheromone Substances 0.000 title claims abstract description 122
- 230000002068 genetic effect Effects 0.000 title claims abstract description 106
- 238000000034 method Methods 0.000 title claims abstract description 56
- 241000257303 Hymenoptera Species 0.000 claims abstract description 32
- 230000003044 adaptive effect Effects 0.000 claims abstract description 30
- 239000011159 matrix material Substances 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims abstract description 24
- 238000013507 mapping Methods 0.000 claims abstract description 11
- 238000013178 mathematical model Methods 0.000 claims abstract description 6
- 108090000623 proteins and genes Proteins 0.000 claims description 34
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000035772 mutation Effects 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 7
- 238000005457 optimization Methods 0.000 claims description 5
- 238000012804 iterative process Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 45
- 230000008901 benefit Effects 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009401 outcrossing Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000005309 stochastic process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统,该方法包括将动态负载均衡问题映射到数学模型中,利用遗传算法,设置目标函数的适应性函数,确认算法是否达到最大进化次数或算法迭代退出条件,并将获得的解转换为蚁群算法的初始信息素;初始化蚁群算法的各种参数,并在第一次迭代过程中初始化蚂蚁种群;在一次迭代过程中先启用新蚂蚁,遍历完系统中所有节点,并检查是否用完蚂蚁种群的所有蚂蚁,没用完就重复步骤,用完就更新信息素矩阵,达到退出条件就输出最优解并退出算法。本发明通过对现有的遗传算法和蚁群算法的改进和结合,在蚁群算法部分引入信息素调节规则来动态处理服务器负载,提高了服务器集群资源利用率。
Description
技术领域
本发明涉及服务器处理技术领域,尤其涉及一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统。
背景技术
从第三次工业革命以来,人类越来越离不开网络。据2022年2月25日,第49次《中国互联网网络发展状况统计报告》显示,截至2021年12月,我国网民规模达10.32亿,互联网普及率达73%,我国网民人均每周上网时间达到28.5个小时,而上网就离不开服务器,服务器的作用是:一、对终端的请求进行响应并处理。二是存储并运行所有的服务。当访问压力达到一台服务器的上限时,服务器集群作为解决办法开始出现。集群可以通过负载均衡算法,将访问压力分给多台服务器同时处理,避免部分服务器任务太重,造成损失,使用负载均衡算法可以有效提高服务器集群的工作上限。
发明内容
为了克服现有技术中相关产品的不足,本发明提出一种基于信息素遗传蚁群算法的服务器动态均衡方法,解决现存的遗传、蚁群算法处理负载均衡过程中负载率过大的问题。
本发明提供了一种基于信息素遗传蚁群算法的服务器动态均衡方法,包括:如下步骤:
S1:初始化参数,并将动态负载均衡问题映射到数学模型中,利用遗传算法,设置目标函数的适应性函数,以及生成初始化种群,确认算法是否达到最大进化次数或算法迭代退出条件,若没有则计算个体的适应性函数符合度并分别进行交叉操作、变异操作、遗传操作,生成新种群;直到达到最大进化次数或算法迭代退出条件,并将获得的解转换为蚁群算法的初始信息素;
S2:初始化蚁群算法的各种参数,并在第一次迭代过程中初始化蚂蚁种群;在一次迭代过程中先启用新蚂蚁,遍历完系统中所有节点,并检查是否用完蚂蚁种群的所有蚂蚁,没用完就重复步骤,用完就更新信息素矩阵,检查算法是否达到退出条件,没有就重复初始化蚂蚁种群,达到退出条件就输出最优解并退出算法。
在本发明的某些实施方公式中,步骤S1具体包括:
对动态负载均衡问题进行数学建模,将其各项指标映射到信息素调节遗传蚁群算法中;
使用遗传算法,将问题的参数转换为个体的基因码,采用十进制的编码方式,每个对服务器的请求均包括两个部分,一个为任务的序号,另一个为任务完成需要的时间及任务传输所需要的时间,并将编码的结果转换成一维表格;
设置目标函数的适应性函数,适应性函数为服务器的负载在任务区间内的单调递减函数。
在本发明的某些实施方公式中,步骤S1还包括:
执行选择操作,通过轮盘赌算法来选择父代,通过选择操作把符合适应性函数的父代基因编码遗传给子代,以及通过交叉操作来为种群产生新的基因型的子代,所述交叉操作为循环交叉;
交叉操作结束后,为了获取正确的交叉结果需要将种群分为两个不同的子种群,防止同一个个体进行交叉操作,没有操作的基因序列进行对调来产生新的子代;
将在父代基因序列中的常数以0.005的概率进行变异成其他的常数;
在种群达到固定的进化次数后作为终止条件,算法结束时,在遗传算法中取得的最符合适应性函数的个体解,将其解码还原成相应的参数,包括任务集合、服务器集群、任务传输时间矩阵以及任务计算矩阵,并作为蚁群算法的初始信息素。
在本发明的某些实施方公式中,还包括:
步骤S3:引入信息素调节规则ANT_ROLE,服务器在迭代过程中出现了负载过重现象时,通过信息素调节规则ANT_ROLE使对应服务器的信息素浓度下降,在下一次迭代中,降低任务被分配给这台服务器的概率。
本发明还提供了一种应用于上述任一项所述基于信息素遗传蚁群算法的服务器动态均衡方法的系统,包括:
遗传算法处理模块:用于初始化参数,并将动态负载均衡问题映射到数学模型中,利用遗传算法,设置目标函数的适应性函数,以及生成初始化种群,确认算法是否达到最大进化次数或算法迭代退出条件,若没有则计算个体的适应性函数符合度并分别进行交叉操作、变异操作、遗传操作,生成新种群;直到达到最大进化次数或算法迭代退出条件,并将获得的解转换为蚁群算法的初始信息素;
蚁群算法处理模块:用于初始化蚁群算法的各种参数,并在第一次迭代过程中初始化蚂蚁种群;在一次迭代过程中先启用新蚂蚁,遍历完系统中所有节点,并检查是否用完蚂蚁种群的所有蚂蚁,没用完就重复步骤,用完就更新信息素矩阵,检查算法是否达到退出条件,没有就重复初始化蚂蚁种群,达到退出条件就输出最优解并退出算法。
在本发明的某些实施方公式中,所述遗传算法处理模块具体用于:
对动态负载均衡问题进行数学建模,将其各项指标映射到信息素调节遗传蚁群算法中;
使用遗传算法,将问题的参数转换为个体的基因码,采用十进制的编码方式,每个对服务器的请求均包括两个部分,一个为任务的序号,另一个为任务完成需要的时间及任务传输所需要的时间,并将编码的结果转换成一维表格;
设置目标函数的适应性函数,适应性函数为服务器的负载在任务区间内的单调递减函数。
在本发明的某些实施方公式中,所述遗传算法处理模块还用于:
执行选择操作,通过轮盘赌算法来选择父代,通过选择操作把符合适应性函数的父代基因编码遗传给子代,以及通过交叉操作来为种群产生新的基因型的子代,所述交叉操作为循环交叉;
交叉操作结束后,为了获取正确的交叉结果需要将种群分为两个不同的子种群,防止同一个个体进行交叉操作,没有操作的基因序列进行对调来产生新的子代;
将在父代基因序列中的常数以0.005的概率进行变异成其他的常数;
在种群达到固定的进化次数后作为终止条件,算法结束时,在遗传算法中取得的最符合适应性函数的个体解,将其解码还原成相应的参数,包括任务集合、服务器集群、任务传输时间矩阵以及任务计算矩阵,并作为蚁群算法的初始信息素。
在本发明的某些实施方公式中,还包括:
信息素调节模块:用于引入信息素调节规则ANT_ROLE,服务器在迭代过程中出现了负载过重现象时,通过信息素调节规则ANT_ROLE使对应服务器的信息素浓度下降,在下一次迭代中,降低任务被分配给这台服务器的概率。
与现有技术相比,本发明有以下优点:
1、本算法通过在遗传算法部分使用混合交叉操作,由于单点交叉操作和两点交叉操作在实际使用时会造成有些任务没有交叉运算,而有些任务被运算了多次,浪费了计算资源。而混合交叉操作能使系统中大多数符合适应性规则的个体的基因型能均匀混合,提高了系统的可用性和可靠性。
2、本算法根据需要遗传算法和蚁群算法的收敛速度来选择结束遗传算法时间,并得到遗传算法的较优解通过解码引入到蚁群算法中,两种算法的融合得到的信息素调节遗传蚁群算法的任务完成时间结果比其他对比算法更低。在任务数的增多的同时,信息素调节遗传蚁群算法收敛速度的优势相对于其他算法来说越来越显著。
3、本算法通过引入信息素调节规则ANT_ROLE,服务器在迭代过程中出现了负载过重现象,通过信息素调节规则ANT_ROLE使得这台服务器的信息素浓度下降,在下一次迭代中,任务被分配给这台服务器的概率变小。对于引入信息素调节规则ANT_ROLE,使引入信息素调节规则ANT_ROLE算法相对于不引入信息素调节规则ANT_ROLE算法的服务器平均负载系数下降了0.5-0.75,在任务完成时间没有大幅度上升的情况下,服务器负载得到了大致均衡,体现了算法改进的重要性和必要性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述基于信息素遗传蚁群算法的服务器动态均衡方法的流程示意图;
图2为两种算法融合时间图;
图3为各算法执行不同任务数的任务完成时间图;
图4为在不同任务数下,是否引入信息素调节规则的服务器平均负载图;
图5为在不同任务数下,各算法的服务器平均负载图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例。本发明可以以许多不同的形公式来实现,并不限于本发明实施例所描述的实施例,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
参阅图1所示,所述基于信息素遗传蚁群算法的服务器动态均衡方法包括如下步骤:
S1:初始化参数,设置目标函数的适应性函数;生成初始的种群;达到最大进化次数或迭代退出条件;计算个体的适应性函数符合度;交叉操作、变异操作、遗传操作;生成新种群。
S2:转换为蚁群算法的初始信息素;初始化蚁群算法各参数;初始化蚂蚁种群;启动新蚂蚁;遍历所有节点;算法用完种群中的所有蚂蚁;更新信息素矩阵;达到算法退出条件,输出最优解。
具体来说,本发明实施例首先对动态负载均衡问题进行数学建模,将其各项指标映射到信息素调节遗传蚁群算法中,例如,当前需求一种动态负载分配策略,能将n个任务分配给m个服务器,并使得任务完成时间最短。同时应对服务器状态进行评估。
定义任务集合表示在当前队列中有n个任务,任务完成时间由TI表示,服务器集群是表示服务器集群中有m个服务器,服务器的性能由TIOS表示;任务传输时间矩阵t={tij|tij≥0,1≤i≤n,1≤i≤m},其中tij表示任务Fi传输到服务器Mj所需要的时间,任务计算矩阵e={eij|eij≥0,1≤i≤n,1≤≤i≤m},其中eij表示将任务在服务器Mj上计算所需要的时间;
据此,可以得到公式(1)
tij=sizei/bandwidthj (1)
公式(1)中sizei表示任务Fi的数据大小,bandwidthj表示服务器Mj的数据传输速率。
eij=lengthi/TIOSj (2)
公式(2)中lengthi表示计算任务Fi所需要的时间,TIOSj表示服务器Mj的计算性能。
n个任务在m个服务器上运行所需要时间为E,E是一个n×m的矩阵,故有公式(3)。
Eij=tij+eij (3)
公式(3)中Eij表示任务Fi在服务器Mj运行所需要的时间,其中tij表示将任务Fi传输到服务器Mj所需要的时间。并由公式(3)可知,服务器计算所分配的任务时间为Ej,又因为服务器计算任务是并发进行的,所有任务完成所需要的时间是数组E中的最大值,用Emax表示,则有公式(4)。
公式(4)中Taskj表示在服务器Mj上执行的任务集合。
相应的,本发明实施例选择使用遗传算法对问题进行处理,使用遗传算法来解决问题,首先要做的就是将问题的参数转换为个体的基因码(这个转换的过程就是编码)。
对于负载均衡问题的优化设计,本发明实施例采取十进制的编码方公式来对其进行设计,每个对服务器的请求包括两个部分,一个是任务的序号Fi,另一个是任务完成需要的时间eij和任务传输所需要的时间tij。
例如,有五个服务器,十个任务,故其具体的编码方公式见表1所示。
表1一维编码
5(2,1) | 3(14,3) | 2(3,15) | 1(11,9) | 7(21,11) | 10(3,7) | 9(7,9) | 8(8,5) | 6(3,14) | 4(1,1) |
本发明实施例相较于二维编码的方公式,采用了一维表格,即表1所示,对于对此后的交叉和变异遗传操作来说更为便利。
因为所求为min(Emax),所以需要将任务完成时间和服务器的负载相关联起来,本发明实施例采用的是如果完成一个任务需要的单位时间eij为2,传输任务所需要的单位时间tij为1,那么服务器的负载增加3,那么对种群中个体来说,其适应性函数就为服务器的负载在任务区间类的单调递减函数,也就是负载越小,个体的适应性越高,呈负相关性。依据目标函数,本发明实施例采用的适应性函数为公式(5)所示。
选择操作的意义就是把符合适应性函数的父代基因编码遗传给子代,或者是通过交叉操作来为种群产生新的基因型的子代。选择操作是建立在种群中的个体的适应性上。
本发明实施例在此选择了轮盘赌算法来选择父代,若种群中的某个个体X,它符合适应性函数程度的程度为Fit(x),那么它被选择为父代的概率为公式(6)所示。
通过JavaScript的random()来随机生成区间在{0,1}中的随机数,来选择出调度方案。
在选择操作完成之后,就可以使用交叉算子来产生子代的基因型。由于单点交叉操作在实际使用时会造成有些任务没有交叉运算,而有些任务被运算了多次,因此,本发明实施例使用了循环交叉来进行操作。
例如选择函数从种群中选出两个子代A和B,他们的基因型为:
A:8,6,3,7,4,2,9,10,1,5
B:7,2,4,9,1,3,5,6,10,8
在父代A中随机选择一个点为起点,假设使用基因序列8作为起点,那么由于相对应的父代B的基因序列为7,那么A中下一个循环起点为基因序列7,则:
A′:8,-,-,7,-,-,-,-,-,-
B′:7,-,-,9,-,-,-,-,-,-
又因为父代A的基因序列7,在父代B中所对应的基因序列为9,那么A中下一个循环起点为基因序列9,则:
A′:8,-,-,7,-,-,9,-,-,-
B′:7,-,-,9,-,-,5,-,-,-
以此类推,直到循环结束。结束条件为到达基因序列的末端,就是需要再次选择父代A的基因序列8:
A′:8,-,-,7,-,-,9,-,-,5
B′:7,-,-,9,-,-,5,-,-,8
至此,循环交叉结束,基因序列1,2,3,4,6,10没有进行操作。为了获取正确的交叉结果需要将种群分为两个不同的子种群,防止同一个个体进行交叉操作。没有操作的基因序列进行对调来产生新的子代,故产生的子代基因序列为:
A′:8,2,4,7,1,3,9,6,10,5
B′:7,6,3,9,4,2,5,10,1,8
本发明实施例所采取的变异操作是将在父代基因序列中的常数以0.()()5的概率进行变异成其他的常数。本发明实施例在种群达到固定的进化次数后为终止条件,算法结束时,使用最符合适应性函数的个体所代表的解作为蚁群算法的初始信息素,去获得整个负载均衡问题的最优解。
将其还原后,并使用蚁群算法的信息素矩阵进行如下公式计算要增加的信息素浓度为公式(7)所示。
公式(7)中为最优解的目标函数值,也就是最小的任务处理时间,为蚂蚁留下的信息素浓度增加量。将增加的信息素浓度增加至遗传算法中取得的最符合适应性函数的个体解的任务编号所对应的服务器编号上,其他解将不产生信息素浓度的改变。
在蚁群算法中,启发函数与信息素矩阵最为重要。在服务器负载动态均衡优化设计问题中,本发明实施例根据服务器的计算能力,网络传输速率以及任务完成时间来初始化启发函数,得到公式(8)。
在确定启发函数和初始化信息素矩阵后,根据公式(5-9)来计算任务Fi选择服务器Mj的概率值公式(9)所示。
公式(9)中,α为启发因子,表现蚂蚁受启发信息影响对任务的选择;β为信息素的启发因子,表示蚂蚁受路径上残留信息素影响对任务的选择。
q只蚂蚁在矩阵中随机进行任务调度时,也是用轮盘赌算法来决定有哪一台具体的服务器去执行哪个一个具体的任务,由公式(9)来具体计算任务Fi选择服务器Mj的概率值。由于概率值总是在区间[0,1]中间,根据公式(10)将任务Fi分配给服务器Mj来完成。
蚂蚁每次走过路径都会留下信息素,为了使信息素浓度因为迭代次数过多使得启发信息的影响率变小,在为每只蚂蚁都分配任务后,利用公式(11)来更新路径中残留的信息素浓度。
τij(t+1)=(1-ρ)τij(t)+Δτix(t) (11)
这是利用蚁群算法创始人Dorigo M提出的模型,其中ρ∈(0,1),其表示信息挥发因子,表示信息素的持久率,也就是说其值越大,以前迭代选择路径对未来迭代选择路径的影响就越大,1-ρ表示信息素浓度的残留率,τij(t)是当前迭代环境中,蚂蚁寻找路径时的信息素增量,Δτix(t)是初始信息素浓度,为公式(7)中的τij。
在一只蚂蚁完成其任务分配后,进行局部的信息素更新,以便同次迭代中后续蚂蚁寻找最优路径,其更新公式为公式(12)。
公式(12)中D1为常数,clockij表示任务Fi在服务器Mj上的完成时间。
在同次迭代中所有蚂蚁都完成任务分配,获得这次迭代的最优解。并更新信息素到信息素矩阵中,其更新公式为公式(13)。
公式(13)中D2为常数,bestclockij表示在这次迭代,最优解中任务Fi在服务器Mj上的完成时间。
由于遗传算法能全局快速搜索,能快速产生一个较优解空间,但是在算法后期,遗传算法收敛速度较慢。同时,蚁群算法前期信息素累积速度不足,使得算法前期速度较慢。于是将两种算法进行融合,取长补短,将遗传算法的较优解转化为蚁群算法的信息素累积。这样操作使得信息素调节遗传蚁群算法运行速度更快,解的精度也会更高。
基于该特性,什么时候取出遗传算法的较优解,本发明实施例为了将取出遗传算法的较优解的时间控制在区间[t2,t3]之间,通过设置遗传算法的Tmax迭代次数和Tmin迭代次数,使遗传算法的迭代次数控制在[Tmin,Tmax]之间,避免遗传算法和蚁群算法的劣化。
在实际的应用场景中,由于每台服务器的CPU时钟频率,磁盘I/O速率,数据传输速率以及内存大小都不一样,很可能导致有的服务器性能高于其他服务器几倍。出现这种状况,可能会导致大量的任务集中在这几台高性能的服务器上运行,导致其服务队列过长,同时使得其他性能较差的服务器出现空闲。这样会导致资源的利用率不足,更使得任务完成时间增加。
基于此,本发明实施例引入信息素调节规则ANT_ROLE,定义公式(14)。
其中Ej是服务器在蚁群算法中的上次运行时间,Eavg是服务器的平均运行时间。公式为(15)。
这样,蚁群算法在局部和全局信息素更新时,如果有一任务被分配给这台服务器,那么通过公式(16)来进行信息素调整。
τij(t+1)=((1-ρ)τij(t)+Δτij(t))*ANTROLE (16)
如果没有选择该服务器,那就通过公式(17)来重新调整。
τij(t+1)=τij(t)*ANTROLE (17)
即:如果服务器在前面的迭代中出现了负载过重现象,这台服务器的Ej就是比其他服务器的Ej的大,通过公式(14),使得这台服务器的ANTROLE变小;而通过公式(17)使得这台服务器的信息素浓度下降,在下一次迭代中,任务被分配给这台服务器的概率变小。
则称这类随机过程为离散马尔科夫链。马尔科夫链有无后效性的特点,即当前状态只与前一状态有关,而与其他状态无关。
将信息素遗传蚁群算法看作成在离散状态下的随机数列,将每一次迭代结果看做出状态,当前的迭代状态只依赖上一次迭代结果,与以往的迭代结果无关,因此可以使用马尔科夫链来证明算法收敛。
假设总体状态空间为算法中每一次迭代结果对应马尔科夫链中的一个状态,结果趋近于最优解的过程对应马尔科夫链模型的状态转移。标记每个、是否包含最优解。由遗传算法和蚁群算法收敛性可知,只要状态包含了当前最优解,在以后的转移过程中将不断逼近包含最优解的状态。最终得到证明公式(19)。
即信息素遗传蚁群算法以能概率1收敛到全局最优解。
其中Eavg为一次迭代过程中服务器的平均运行时间,Emax为这次迭代过程中,运行时间最长的服务器,Emin为运行时间最短的服务器。
如图2所示,由于遗传算法能全局快速搜索,能快速产生一个较优解空间,但是在算法后期,遗传算法收敛速度较慢。同时,蚁群算法前期信息素累积速度不足,使得算法前期速度较慢。将两种算法进行融合,取长补短,将遗传算法的较优解转化为蚁群算法的信息素累积。这样操作使得信息素调节遗传蚁群算法运行速度更快,解的精度也会更高。
为了将取出遗传算法的较优解的时间控制在区间[t2,t3]之间,本发明实施例通过设置遗传算法的Tmax迭代次数和Tmin迭代次数,使遗传算法的迭代次数控制在[Tmin,Tmax]之间,避免遗传算法和蚁群算法的劣化。
如图3所示,横坐标为每组实验中的任务数,纵坐标表示各组任务在分别轮询算法、标准遗传算法,标准蚁群算法及信息素调节遗传蚁群算法的任务完成时间。由图3-5可知,信息素调节遗传蚁群算法的任务完成时间结果比其他对比算法更低。在任务数的增多的同时,信息素调节遗传蚁群算法收敛速度的优势相对于其他算法来说越来越显著。
如图4所示,对于引入信息素调节规则ANT_ROLE,使得本发明实施例的算法的服务器平均负载系数下降了0.5-0.75,在任务完成时间没有大幅度上升的情况下,服务器负载得到了大致均衡,体现了算法改进的重要性和必要性。
如图5所示,轮询算法与蚁群算法在完成任务时由于没有充分考虑各台服务器的负载能力,其负载相对来说较高,遗传算法对此做出了一定的改善,不引入信息素调节规则的融合算法完成任务服务器的平均负载情况与遗传算法相对类似,引入信息素调节规则的融合算法完成任务时,服务器的平均负载情况有了较大幅度的改善,说明引入信息素调节规则是十分有效的。
相较于现有技术,本发明实施例所述基于信息素遗传蚁群算法的服务器动态均衡方法具有如下优点:
1、本算法通过在遗传算法部分使用混合交叉操作,由于单点交叉操作和两点交叉操作在实际使用时会造成有些任务没有交叉运算,而有些任务被运算了多次,浪费了计算资源。而混合交叉操作能使系统中大多数符合适应性规则的个体的基因型能均匀混合,提高了系统的可用性和可靠性。
2、本算法根据需要遗传算法和蚁群算法的收敛速度来选择结束遗传算法时间,并得到遗传算法的较优解通过解码引入到蚁群算法中,两种算法的融合得到的信息素调节遗传蚁群算法的任务完成时间结果比其他对比算法更低。在任务数的增多的同时,信息素调节遗传蚁群算法收敛速度的优势相对于其他算法来说越来越显著。
3、本算法通过引入信息素调节规则ANT_ROLE,服务器在迭代过程中出现了负载过重现象,通过信息素调节规则ANT_ROLE使得这台服务器的信息素浓度下降,在下一次迭代中,任务被分配给这台服务器的概率变小。对于引入信息素调节规则ANT_ROLE,使引入信息素调节规则ANT_ROLE算法相对于不引入信息素调节规则ANT_ROLE算法的服务器平均负载系数下降了0.5-0.75,在任务完成时间没有大幅度上升的情况下,服务器负载得到了大致均衡,体现了算法改进的重要性和必要性。
在上述实施例的基础上,本发明还提供了一种基于信息素遗传蚁群算法的服务器动态均衡系统,包括:
遗传算法处理模块:用于初始化参数,并将动态负载均衡问题映射到数学模型中,利用遗传算法,设置目标函数的适应性函数,以及生成初始化种群,确认算法是否达到最大进化次数或算法迭代退出条件,若没有则计算个体的适应性函数符合度并分别进行交叉操作、变异操作、遗传操作,生成新种群;直到达到最大进化次数或算法迭代退出条件,并将获得的解转换为蚁群算法的初始信息素。
蚁群算法处理模块:用于初始化蚁群算法的各种参数,并在第一次迭代过程中初始化蚂蚁种群;在一次迭代过程中先启用新蚂蚁,遍历完系统中所有节点,并检查是否用完蚂蚁种群的所有蚂蚁,没用完就重复步骤,用完就更新信息素矩阵,检查算法是否达到退出条件,没有就重复初始化蚂蚁种群,达到退出条件就输出最优解并退出算法。
信息素调节模块:用于引入信息素调节规则ANT_ROLE,服务器在迭代过程中出现了负载过重现象时,通过信息素调节规则ANT_ROLE使对应服务器的信息素浓度下降,在下一次迭代中,降低任务被分配给这台服务器的概率。
在本发明的某些实施方公式中,所述遗传算法处理模块具体用于:对动态负载均衡问题进行数学建模,将其各项指标映射到信息素调节遗传蚁群算法中;使用遗传算法,将问题的参数转换为个体的基因码,采用十进制的编码方式,每个对服务器的请求均包括两个部分,一个为任务的序号,另一个为任务完成需要的时间及任务传输所需要的时间,并将编码的结果转换成一维表格;设置目标函数的适应性函数,适应性函数为服务器的负载在任务区间内的单调递减函数。
所述遗传算法处理模块还用于:执行选择操作,通过轮盘赌算法来选择父代,通过选择操作把符合适应性函数的父代基因编码遗传给子代,以及通过交叉操作来为种群产生新的基因型的子代,所述交叉操作为循环交叉;交叉操作结束后,为了获取正确的交叉结果需要将种群分为两个不同的子种群,防止同一个个体进行交叉操作,没有操作的基因序列进行对调来产生新的子代;将在父代基因序列中的常数以0.005的概率进行变异成其他的常数;在种群达到固定的进化次数后作为终止条件,算法结束时,在遗传算法中取得的最符合适应性函数的个体解,将其解码还原成相应的参数,包括任务集合、服务器集群、任务传输时间矩阵以及任务计算矩阵,并作为蚁群算法的初始信息素。
本发明实施例所述的基于信息素遗传蚁群算法的服务器动态均衡系统可执行上述实施例所提供的基于信息素遗传蚁群算法的服务器动态均衡方法,所述基于信息素遗传蚁群算法的服务器动态均衡系统具备上述实施例所述基于信息素遗传蚁群算法的服务器动态均衡方法相应的功能步骤以及有益效果,具体请参阅上述名称方法的实施例,本发明实施例在此不再赘述。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。以上仅为本发明的实施例,但并不限制本发明的专利范围,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方公式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。
Claims (8)
1.一种基于信息素遗传蚁群算法的服务器动态均衡方法,其特征在于,包括如下步骤:
S1:初始化参数,并将动态负载均衡问题映射到数学模型中,利用遗传算法,设置目标函数的适应性函数,以及生成初始化种群,确认算法是否达到最大进化次数或算法迭代退出条件,若没有则计算个体的适应性函数符合度并分别进行交叉操作、变异操作、遗传操作,生成新种群;直到达到最大进化次数或算法迭代退出条件,并将获得的解转换为蚁群算法的初始信息素;
S2:初始化蚁群算法的各种参数,并在第一次迭代过程中初始化蚂蚁种群;在一次迭代过程中先启用新蚂蚁,遍历完系统中所有节点,并检查是否用完蚂蚁种群的所有蚂蚁,没用完就重复步骤,用完就更新信息素矩阵,检查算法是否达到退出条件,没有就重复初始化蚂蚁种群,达到退出条件就输出最优解并退出算法。
2.根据权利要求1所述的基于信息素遗传蚁群算法的服务器动态均衡方法,其特征在于,步骤S1具体包括:
对动态负载均衡问题进行数学建模,将其各项指标映射到信息素调节遗传蚁群算法中;
使用遗传算法,将问题的参数转换为个体的基因码,采用十进制的编码方式,每个对服务器的请求均包括两个部分,一个为任务的序号,另一个为任务完成需要的时间及任务传输所需要的时间,并将编码的结果转换成一维表格;
设置目标函数的适应性函数,适应性函数为服务器的负载在任务区间内的单调递减函数。
3.根据权利要求1所述的基于信息素遗传蚁群算法的服务器动态均衡方法,其特征在于,步骤S1还包括:
执行选择操作,通过轮盘赌算法来选择父代,通过选择操作把符合适应性函数的父代基因编码遗传给子代,以及通过交叉操作来为种群产生新的基因型的子代,所述交叉操作为循环交叉;
交叉操作结束后,为了获取正确的交叉结果需要将种群分为两个不同的子种群,防止同一个个体进行交叉操作,没有操作的基因序列进行对调来产生新的子代;
将在父代基因序列中的常数以0.005的概率进行变异成其他的常数;
在种群达到固定的进化次数后作为终止条件,算法结束时,在遗传算法中取得的最符合适应性函数的个体解,将其解码还原成相应的参数,包括任务集合、服务器集群、任务传输时间矩阵以及任务计算矩阵,并作为蚁群算法的初始信息素。
4.根据权利要求1所述的基于信息素遗传蚁群算法的服务器动态均衡方法,其特征在于,还包括:
步骤S3:引入信息素调节规则ANT_ROLE,服务器在迭代过程中出现了负载过重现象时,通过信息素调节规则ANT_ROLE使对应服务器的信息素浓度下降,在下一次迭代中,降低任务被分配给这台服务器的概率。
5.一种应用于权利要求1-4任一项所述基于信息素遗传蚁群算法的服务器动态均衡方法的系统,其特征在于,包括:
遗传算法处理模块:用于初始化参数,并将动态负载均衡问题映射到数学模型中,利用遗传算法,设置目标函数的适应性函数,以及生成初始化种群,确认算法是否达到最大进化次数或算法迭代退出条件,若没有则计算个体的适应性函数符合度并分别进行交叉操作、变异操作、遗传操作,生成新种群;直到达到最大进化次数或算法迭代退出条件,并将获得的解转换为蚁群算法的初始信息素;
蚁群算法处理模块:用于初始化蚁群算法的各种参数,并在第一次迭代过程中初始化蚂蚁种群;在一次迭代过程中先启用新蚂蚁,遍历完系统中所有节点,并检查是否用完蚂蚁种群的所有蚂蚁,没用完就重复步骤,用完就更新信息素矩阵,检查算法是否达到退出条件,没有就重复初始化蚂蚁种群,达到退出条件就输出最优解并退出算法。
6.根据权利要求5所述的基于信息素遗传蚁群算法的服务器动态均衡系统,其特征在于,所述遗传算法处理模块具体用于:
对动态负载均衡问题进行数学建模,将其各项指标映射到信息素调节遗传蚁群算法中;
使用遗传算法,将问题的参数转换为个体的基因码,采用十进制的编码方式,每个对服务器的请求均包括两个部分,一个为任务的序号,另一个为任务完成需要的时间及任务传输所需要的时间,并将编码的结果转换成一维表格;
设置目标函数的适应性函数,适应性函数为服务器的负载在任务区间内的单调递减函数。
7.根据权利要求5所述的基于信息素遗传蚁群算法的服务器动态均衡系统,其特征在于,所述遗传算法处理模块还用于:
执行选择操作,通过轮盘赌算法来选择父代,通过选择操作把符合适应性函数的父代基因编码遗传给子代,以及通过交叉操作来为种群产生新的基因型的子代,所述交叉操作为循环交叉;
交叉操作结束后,为了获取正确的交叉结果需要将种群分为两个不同的子种群,防止同一个个体进行交叉操作,没有操作的基因序列进行对调来产生新的子代;
将在父代基因序列中的常数以0.005的概率进行变异成其他的常数;
在种群达到固定的进化次数后作为终止条件,算法结束时,在遗传算法中取得的最符合适应性函数的个体解,将其解码还原成相应的参数,包括任务集合、服务器集群、任务传输时间矩阵以及任务计算矩阵,并作为蚁群算法的初始信息素。
8.根据权利要求5所述的基于信息素遗传蚁群算法的服务器动态均衡系统,其特征在于,还包括:
信息素调节模块:用于引入信息素调节规则ANT_ROLE,服务器在迭代过程中出现了负载过重现象时,通过信息素调节规则ANT_ROLE使对应服务器的信息素浓度下降,在下一次迭代中,降低任务被分配给这台服务器的概率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211189870.9A CN115617510A (zh) | 2022-09-28 | 2022-09-28 | 一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211189870.9A CN115617510A (zh) | 2022-09-28 | 2022-09-28 | 一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617510A true CN115617510A (zh) | 2023-01-17 |
Family
ID=84860726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211189870.9A Pending CN115617510A (zh) | 2022-09-28 | 2022-09-28 | 一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617510A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056089A (zh) * | 2023-10-11 | 2023-11-14 | 创瑞技术有限公司 | 一种服务动态分配系统及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345657A (zh) * | 2013-04-02 | 2013-10-09 | 江苏大学 | 云计算环境下基于遗传和蚁群的任务调度方法 |
CN105527965A (zh) * | 2016-01-04 | 2016-04-27 | 江苏理工学院 | 基于遗传蚁群算法的路径规划方法及系统 |
CN105530707A (zh) * | 2015-12-21 | 2016-04-27 | 东南大学 | 一种异构融合场景中基于混合优化的资源分配方法 |
CN105704255A (zh) * | 2016-04-29 | 2016-06-22 | 浙江理工大学 | 一种基于遗传算法的服务器负载均衡方法 |
CN108573326A (zh) * | 2018-04-17 | 2018-09-25 | 武汉理工大学 | 基于遗传蚁群混合算法的视频服务器选址方法 |
CN110298589A (zh) * | 2019-07-01 | 2019-10-01 | 河海大学常州校区 | 基于遗传-蚁群融合算法的动态服务资源调度方法 |
CN111860754A (zh) * | 2020-07-15 | 2020-10-30 | 无锡弘宜智能科技有限公司 | 基于蚁群以及遗传算法的agv调度方法 |
CN114185635A (zh) * | 2020-09-14 | 2022-03-15 | 福州慧美丰科技有限公司 | 一种基于遗传蚁群融合算法改进负载均衡的方法 |
-
2022
- 2022-09-28 CN CN202211189870.9A patent/CN115617510A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345657A (zh) * | 2013-04-02 | 2013-10-09 | 江苏大学 | 云计算环境下基于遗传和蚁群的任务调度方法 |
CN105530707A (zh) * | 2015-12-21 | 2016-04-27 | 东南大学 | 一种异构融合场景中基于混合优化的资源分配方法 |
CN105527965A (zh) * | 2016-01-04 | 2016-04-27 | 江苏理工学院 | 基于遗传蚁群算法的路径规划方法及系统 |
CN105704255A (zh) * | 2016-04-29 | 2016-06-22 | 浙江理工大学 | 一种基于遗传算法的服务器负载均衡方法 |
CN108573326A (zh) * | 2018-04-17 | 2018-09-25 | 武汉理工大学 | 基于遗传蚁群混合算法的视频服务器选址方法 |
CN110298589A (zh) * | 2019-07-01 | 2019-10-01 | 河海大学常州校区 | 基于遗传-蚁群融合算法的动态服务资源调度方法 |
CN111860754A (zh) * | 2020-07-15 | 2020-10-30 | 无锡弘宜智能科技有限公司 | 基于蚁群以及遗传算法的agv调度方法 |
CN114185635A (zh) * | 2020-09-14 | 2022-03-15 | 福州慧美丰科技有限公司 | 一种基于遗传蚁群融合算法改进负载均衡的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056089A (zh) * | 2023-10-11 | 2023-11-14 | 创瑞技术有限公司 | 一种服务动态分配系统及方法 |
CN117056089B (zh) * | 2023-10-11 | 2024-02-06 | 创瑞技术有限公司 | 一种服务动态分配系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113242568B (zh) | 一种不确定网络环境中的任务卸载和资源分配方法 | |
CN108920280B (zh) | 一种单用户场景下的移动边缘计算任务卸载方法 | |
CN112882815B (zh) | 基于深度强化学习的多用户边缘计算优化调度方法 | |
CN111222665B (zh) | 基于偏好nsga-ⅲ算法的云制造服务组合优化选择方法 | |
CN111325356A (zh) | 一种基于演化计算的神经网络搜索分布式训练系统及训练方法 | |
CN107679750A (zh) | 一种基于自适应系数遗传算法的云制造服务资源匹配方法 | |
CN113821318B (zh) | 一种物联网跨域子任务组合协同计算方法及系统 | |
CN110008023B (zh) | 基于遗传算法的云计算系统预算约束随机任务调度方法 | |
CN115480876A (zh) | 基于蚁群算法优化的云计算任务调度方法及系统 | |
CN108055292B (zh) | 一种虚拟机向物理机映射的优化方法 | |
CN109298930B (zh) | 一种基于多目标优化的云工作流调度方法及装置 | |
CN114490057A (zh) | 一种基于深度强化学习的mec已卸载任务资源分配方法 | |
CN111694664A (zh) | 一种边缘服务器的计算卸载分配方法 | |
CN115617510A (zh) | 一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统 | |
CN115421885B (zh) | 一种分布式多目标云任务的调度方法、装置及云服务系统 | |
CN117155942A (zh) | 一种微服务动态自适应客户端负载均衡方法及系统 | |
CN114461386A (zh) | 任务分配方法及任务分配装置 | |
CN116339932A (zh) | 资源调度方法、装置和服务器 | |
CN112199172A (zh) | 一种面向异构多核处理器的混合式任务调度方法 | |
CN112799843B (zh) | 一种基于边缘计算的在线自适应服务配置优化方法及装置 | |
CN117850999A (zh) | 一种基于图神经网络的异构计算平台任务调度方法 | |
CN110928648B (zh) | 融合启发式和智能计算的云工作流分段在线调度优化方法 | |
CN117436627A (zh) | 任务分配方法、装置、终端设备及介质 | |
CN115129447A (zh) | 一种工业互联网中计及条件风险价值的边缘计算任务卸载方法及计算机设备 | |
CN112711473A (zh) | 基于混合计算模式的云计算QoS保障调度优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230117 |