CN112084035B - 一种基于蚁群算法的任务调度方法及系统 - Google Patents
一种基于蚁群算法的任务调度方法及系统 Download PDFInfo
- Publication number
- CN112084035B CN112084035B CN202010993439.4A CN202010993439A CN112084035B CN 112084035 B CN112084035 B CN 112084035B CN 202010993439 A CN202010993439 A CN 202010993439A CN 112084035 B CN112084035 B CN 112084035B
- Authority
- CN
- China
- Prior art keywords
- ant colony
- pheromone
- path
- virtual machine
- colony algorithm
- 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.)
- Active
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 107
- 238000000034 method Methods 0.000 title claims abstract description 35
- 239000003016 pheromone Substances 0.000 claims description 96
- 241000257303 Hymenoptera Species 0.000 claims description 22
- 230000004913 activation Effects 0.000 claims description 16
- 238000010276 construction Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 9
- 238000013528 artificial neural network Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 7
- 238000004088 simulation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000009024 positive feedback mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于蚁群算法的任务调度方法及系统,方法包括:确定虚拟机执行任务的成本约束函数以及时间约束函数;根据所述成本约束函数以及所述时间约束函数构建目标函数;初始化蚁群算法的参数,确定改进后的蚁群算法;根据所述改进后的蚁群算法计算所述目标函数的最优解,所述最优解表示任务调度结果。本发明通过构造任务成本与时间的约束函数,再通过改进的蚁群算法计算其最优解,可以快速、准确的进行任务调度。
Description
技术领域
本发明涉及计算机任务调度技术领域,特别是涉及一种基于蚁群算法的任务调度方法及系统。
背景技术
云服务技术的不断更新,促进了互联网和物联网的发展,云计算系统的存在,客户无需部署复杂的基础设施就可以轻松地访问云服务。然而,随着云计算技术的迅速普及以及云服务领域的不断扩大,云数据中心的计算资源与任务也随之扩大,这给云计算的发展带来一个新的问题,即云计算中的任务调度问题。该问题的实质就是如何将用户提交的任务高效的分配到云环境中的各个资源上执行,使得在满足网络安全服务质量需求的情况下实现系统资源的高效利用和负载均衡。
传统研究任务调度问题的算法有很多,蚁群算法及其混合算法在应用到云计算中的任务调度问题中,均取得了不错的成果。但是蚁群算法有很多参数,如若采取的参数不合适,任务调度问题的结果也会得到影响。
发明内容
本发明的目的是提供一种基于蚁群算法的任务调度方法及系统,以快速、准确的进行任务调度。
为实现上述目的,本发明提供了如下方案:
一种基于蚁群算法的任务调度方法,包括:
确定虚拟机执行任务的成本约束函数以及时间约束函数;
根据所述成本约束函数以及所述时间约束函数构建目标函数;
初始化蚁群算法的参数,确定改进后的蚁群算法;
根据所述改进后的蚁群算法计算所述目标函数的最优解,所述最优解表示任务调度结果。
可选地,确定虚拟机执行任务的成本约束函数,具体包括:
根据每个虚拟机并行执行任务的成本确定虚拟机执行任务的成本约束函数。
可选地,确定虚拟机执行任务的时间约束函数,具体包括:
根据每个虚拟机上任务的运行时间确定虚拟机执行任务的时间约束函数。
可选地,所述初始化蚁群算法的参数,确定改进后的蚁群算法,具体包括:
根据虚拟机的处理能力与虚拟机的平均计算能力初始化蚁群算法中的信息素初始值;
根据蚁群算法中的迭代次数、预设迭代次数上限、种群中蚂蚁数量的最大值和最小值构造神经网络激活函数;
根据所述激活函数初始化蚁群的种群数量;所述蚁群包括多个种群;
计算蚂蚁使用预设参数值的概率;
根据所述概率初始化蚁群算法中的信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数;
根据初始化好的参数确定改进后的蚁群算法;所述初始化好的参数包括:信息素初始值、蚁群的种群数量、信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数。
可选地,所述根据所述改进后的蚁群算法计算所述目标函数的最优解,具体包括:
根据蚁群算法中的伪随机转移规则,利用初始化好的信息素的相对重要程度和初始化好的启发式因子的相对重要程度构造种群中每个蚂蚁的路径;
根据局部更新规则,利用初始化好的信息素初始值和初始化好的信息素挥发系数局部更新所述路径上的信息素;
判断当前种群中的蚂蚁是否都走完路径;
若否,则重新构造路径;
若是,则根据局部更新后的最短路径上的信息素和所述初始化好的信息素挥发系数对路径上的信息素进行全局更新;
判断当前迭代次数是否达到预设迭代次数上限;
若否,则重新构造路径;
若是,则获取当前种群全局更新后的最短路径;
从所有种群的最短路径中获取蚁群的最短路径,所述蚁群的最短路径为所述目标函数的最优解。
一种基于蚁群算法的任务调度系统,包括:
确定模块,用于确定虚拟机执行任务的成本约束函数以及时间约束函数;
目标函数构建模块,用于根据所述成本约束函数以及所述时间约束函数构建目标函数;
初始化模块,用于初始化蚁群算法的参数,确定改进后的蚁群算法;
计算模块,用于根据所述改进后的蚁群算法计算所述目标函数的最优解,所述最优解表示任务调度结果。
可选地,所述确定模块包括:
第一确定单元,用于根据每个虚拟机并行执行任务的成本确定虚拟机执行任务的成本约束函数。
可选地,所述确定模块包括:
第二确定单元,用于根据每个虚拟机上任务的运行时间确定虚拟机执行任务的时间约束函数。
可选地,所述初始化模块包括:
第一初始化单元,用于根据虚拟机的处理能力与虚拟机的平均计算能力初始化蚁群算法中的信息素初始值;
激活函数构造单元,用于根据蚁群算法中的迭代次数、预设迭代次数上限、种群中蚂蚁数量的最大值和最小值构造神经网络激活函数;
第二初始化单元,用于根据所述激活函数初始化蚁群的种群数量;所述蚁群包括多个种群;
概率计算单元,用于计算蚂蚁使用预设参数值的概率;
第三初始化单元,用于根据所述概率初始化蚁群算法中的信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数;
第三确定单元,用于根据初始化好的参数确定改进后的蚁群算法;所述初始化好的参数包括:信息素初始值、蚁群的种群数量、信息素的相对重要程度、启发可选地,所述计算模块包括:
第一路径构造单元,用于根据蚁群算法中的伪随机转移规则,利用初始化好的信息素的相对重要程度和初始化好的启发式因子的相对重要程度构造种群中每个蚂蚁的路径;
局部更新单元,用于根据局部更新规则,利用初始化好的信息素初始值和初始化好的信息素挥发系数局部更新所述路径上的信息素;
第一判断单元,用于判断当前种群中的蚂蚁是否都走完路径;
第二路径构造单元,用于当当前种群中的蚂蚁没有都走完路径时,重新构造路径;
全局更新单元,用于当当前种群中的蚂蚁都走完路径时,根据局部更新后的最短路径上的信息素和所述初始化好的信息素挥发系数对路径上的信息素进行全局更新;
第二判断单元,用于判断当前迭代次数是否达到预设迭代次数上限;
第三路径构造单元,用于当当前迭代次数没有达到预设迭代次数上限时,重新构造路径;
第一路径获取单元,用于当当前迭代次数达到预设迭代次数上限时,获取当前种群全局更新后的最短路径;
第二路径获取单元,用于从所有种群的最短路径中获取蚁群的最短路径,所述蚁群的最短路径为所述目标函数的最优解。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开了一种基于蚁群算法的任务调度方法及系统,方法包括:确定虚拟机执行任务的成本约束函数以及时间约束函数;根据所述成本约束函数以及所述时间约束函数构建目标函数;初始化蚁群算法的参数,确定改进后的蚁群算法;根据所述改进后的蚁群算法计算所述目标函数的最优解,所述最优解表示任务调度结果。本发明通过构造任务成本与时间的约束函数,再通过改进的蚁群算法计算其最优解,可以快速、准确的进行任务调度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的基于蚁群算法的任务调度方法的流程图;
图2为本发明实施例1提供的改进的蚁群算法的流程图;
图3为本发明实施例1提供的基于蚁群算法的任务调度方法的原理图;
图4为本发明实施例2提供的基于蚁群算法的任务调度系统的系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于蚁群算法的任务调度方法及系统,以快速、准确的进行任务调度。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例1提供的基于蚁群算法的任务调度方法的流程图,如图1所示,方法包括:
步骤101:确定虚拟机执行任务的成本约束函数以及时间约束函数。具体为:根据每个虚拟机并行执行任务的成本确定虚拟机执行任务的成本约束函数。根据每个虚拟机上任务的运行时间确定虚拟机执行任务的时间约束函数。
步骤102:根据所述成本约束函数以及所述时间约束函数构建目标函数。
步骤103:初始化蚁群算法的参数,确定改进后的蚁群算法。
在本实施例中,步骤103具体包括:
步骤1031:根据虚拟机的处理能力与虚拟机的平均计算能力初始化蚁群算法中的信息素初始值。
步骤1032:根据蚁群算法中的迭代次数、预设迭代次数上限、种群中蚂蚁数量的最大值和最小值构造神经网络激活函数。
步骤1033:根据所述激活函数初始化蚁群的种群数量;所述蚁群包括多个种群。
步骤1034:计算蚂蚁使用预设参数值的概率。
步骤1035:根据所述概率初始化蚁群算法中的信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数。
步骤1036:根据初始化好的参数确定改进后的蚁群算法;所述初始化好的参数包括:信息素初始值、蚁群的种群数量、信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数。
步骤104:根据所述改进后的蚁群算法计算所述目标函数的最优解,所述最优解表示任务调度结果。
在本实施例中,步骤104具体包括:
步骤1041:根据蚁群算法中的伪随机转移规则,利用初始化好的信息素的相对重要程度和初始化好的启发式因子的相对重要程度构造种群中每个蚂蚁的路径。
步骤1042:根据局部更新规则,利用初始化好的信息素初始值和初始化好的信息素挥发系数局部更新所述路径上的信息素。
步骤1043:判断当前种群中的蚂蚁是否都走完路径。
步骤1044:若否,则重新构造路径。
步骤1045:若是,则根据局部更新后的最短路径上的信息素和所述初始化好的信息素挥发系数对路径上的信息素进行全局更新。
步骤1046:判断当前迭代次数是否达到预设迭代次数上限;
步骤1047:若否,则重新构造路径。
步骤1048:若是,则获取当前种群全局更新后的最短路径。
步骤1049:从所有种群的最短路径中获取蚁群的最短路径,所述蚁群的最短路径为所述目标函数的最优解。
下面对本发明进行详细介绍:
步骤1:建立云计算任务调度模型
步骤1.1:定义任务个数为m个,虚拟机个数为n个,任务集合为T,虚拟机集合为VM。虚拟机上的任务匹配关系用矩阵M表示(mmn表示第m个任务与第n个虚拟机的分配关系):
任务的期望执行时间用矩阵ET表示:
其中etij为任务执行时间,tlength_i为任务的长度,vmcomp_i为虚拟机的处理能力,vmcomp_i=vmmips_j*vmmpenum_j,vmmips_j为虚拟机计算能力,vmmpenum_j为中央处理器的数量。
任务的传输时间用矩阵Er表示:
其中erij为传输时间,tinputfilesize_i为数据量大小,vmbw_j为虚拟机j的带宽。
单个任务完成时间为执行时间etij与传输时间erij之和。
虚拟机j上完成所有任务的时间之和用vmcompletetime_j表示,
最后一个虚拟机的执行时间用C_Time(m)表示,C_Time(m)=max(vmcomplete_n),n的取值范围为[1,n]。
完成所有子任务的成本用TotalCost(I)表示,UCostn为虚拟机nj的单位成本。
步骤1.2:定义任务调度过程中的时间约束函数
时间约束函数为:
C_Time为每个虚拟机上任务运行时间,C_Timemin为最好的虚拟机上任务运行时间,C_Timemax为最差的虚拟机上任务运行时间,其中:
步骤1.3:定义任务调度过程中的成本约束函数
成本约束函数为:
C_Cost为每个虚拟机上并行执行任务的成本,Total Costmin为某个虚拟机上并行执行任务的最低成本,Total Costmax为个虚拟机上并行执行任务的最高成本,其中:
Total Costmin=C_Timemin*MIN(U Costj)
Total Costmax=C_Timemax*MAX(U Costj)
步骤1.4:根据成本约束函数以及时间约束函数用线性加权和法构造出目标函数L,L=w1Timesf+w2C_Cost。
其中,w1为时间权重因子,w2为成本权重因子,w1+w2=1,二者可根据实际需求进行动态调整,例如令w1为0,即目标函数只与成本有关,或者两个因子同样重要,或者忽略成本,优化目标若选择最终完成时间,则w1=w2=0.5。
步骤2:改进蚁群算法,计算目标函数最优解
步骤2.1:初始化参数τ0、Vmavgcomp、M、α、β和ρ。
任务与虚拟机路径上的信息素初始值用τ0表示,τ0=vmcomp_j/vmavgcomp。
虚拟机的平均计算能力用Vmavgcomp表示,
蚁群的种群数量用M表示,引入一个神经网络激活函数来调整参数M:
其中,Cmax为迭代的上限,C为当前迭代次数,P为可以动态调整的参数,表示参数随C的不同值变化的速度,Max为初始种群数量中的最大值,Min为初始种群数量中的最小值。
ρ为信息素挥发系数,α和β分别为搜索经验的相对重要程度和距离的相对重要程度。α、β和ρ的选择是基于算法执行过程中根据其有效性计算出的概率。每个参数的值变量单独确定。以下为某一参数的初始化过程:
设m为某个参数的多个值变量,例如令m=4(令α等于1、2、5或10,β等于1、2、5或10)。在开始时,所有参数值的概率都是以相同方式选择的:pi=1/m,在每迭代一次中,每个参数值的有效性被估计为使用该值的蚂蚁的平均标准值。
其中,ni为使用第i个参数值的若干蚂蚁,fij为使用第i个参数值的第j个蚂蚁的标准值。考虑最优化问题的求解,选择平均标准值最小的参数值变量,其使用概率增加了:
其中N为算法过去几代的数目,C为常数,一般为2。所有其它参数值变量的概率降低了:
得出用作平均标准值最小的参数值的概率阈值,其概率不都等于零。如果任何概率达到阈值,则该参数值将停止在最佳值上面,相同参数的所有值变量的概率之和等于1。参数值变量选择的概率分布随时间变化,表示特定参数值的效率。
步骤2.2选择下一个虚拟机的概率即为每个蚂蚁构建路径
根据蚁群算法的伪随机转移规则为每个蚂蚁构建路径:
其中,q为一个[0,1]范围内的随机数,q0为参数,表示探索新解与参考经验之间的权重,q0∈(0,1),ηij为启发函数,表示选择当前的虚拟机的概率,etij为虚拟机j上任务i的执行时间。在不考虑loadj的情况下,期望执行时间etij与ηij成反比。loadj为虚拟机负载函数,loadj=1-(Ej-Eavg)/∑J∈vmEJ,Eavg为所有虚拟机的平均执行时间,Ej与loadj成反比,Ej大loadj小说明虚拟机j的负载较大,导致ηij值较小,即选其执行任务的概率较小,若Ej较小loadj较大,说明虚拟机j的负载较小,导致ηij值较大,即选其执行任务的概率较大,从而可以动态调节虚拟机负载。
选择的虚拟机集合用allowedk表示,τij(t)表示映射路径上的信息素量。
步骤2.3信息素局部更新
当蚂蚁完成所有任务与虚拟机匹配后,局部更新映射路径上的信息素,更新规则为:
τij(t+1)=(1-ρ)τij(t)+ρΔτij(t)
其中ρ为信息素挥发因子,ρ越大表示信息素挥发越快,1-ρ为信息素残留程度,ρ取值范围为(0,1],ρ越大,之前求到的经验解对真实解的选择影响程度越小,Δτij(t)为映射路径上的信息素量,表达式为:
Tk(t)为第k只蚂蚁在第t次迭代寻解,L为一次寻解完成后目标函数的值。
步骤2.4信息素全局更新
所有蚂蚁完成一次迭代后得到最优匹配方案,对比以前获得的方案,得到目前最优的全局匹配方案。之后更新其任务与虚拟机间的映射路径上的信息素,更新规则为:
τij(t+1)=(1-ρ1)τij(t)+ρ1Δτij(t)
其中Lbest为截止目前迭代目标函数的最优解。
步骤3:在云仿真平台(Cloudsim)中测试改进后的蚁群算法,计算出任务调度模型中得出的时间或成本,同传统的蚁群算法和粒子群优化算法比较。采用CloudSim平台来模拟云环境,对任务调度算法进行模拟仿真。过程如下:
初始化GridSim库。
创建数据中心。在CloudSim仿真平台中,一个数据中心由一个或多个Machine组成,一个Machine是由一个或多个PEs或CPUs组成。
创建代理Broker。CloudSim中的DataCenterBroker类用于模拟一个代理,负责根据服务质量需求在线协商任务与资源的分配策略。
分别创建虚拟机和云任务,通过在DataCenterBroker类中添加一个实现自定义调度算法的方法来对该类进行扩展,从而完成对试验的调度算法的模拟。
启动仿真,得出仿真统计结果。
图2为本发明实施例1提供的改进的蚁群算法的流程图。如图2所示,算法开始后,首先根据自适应机制对需要的参数值进行初始化,包括挥发系数,搜索经验的相对重要程度系数与距离的相对重要程度系数,使用公式计算信息素以及虚拟机的平均计算能力,使用激活函数初始化种群数量。初始化完成后,为每个蚂蚁构造解。下一步进行局部信息素更新并判断任务是否达到最优,如果达到最优,更新最优分配和最短完成的路径并且判断是否完成任务,如果没有,回到开始重新构造解;如果有,进行全局信息素更新并判断是否迭代完成,迭代完成就获得最优解了,若迭代没有完成,回到开始重新构造解,直到获得最优。
图3为本发明实施例1提供的基于蚁群算法的任务调度方法的原理图。用户将任务传送调度中心上,在该过程中根据设计的任务调度模型,将任务以任务集的形式保存到一个队列当中,在队列中存在着各种优先级,优先级高的的先进行传输,传输完毕后,调度中心会根据任务匹配原则与虚拟机节点进行匹配。
实施例2
图4为本发明实施例2提供的基于蚁群算法的任务调度系统的系统框图,如图4所示,系统包括:
确定模块201,用于确定虚拟机执行任务的成本约束函数以及时间约束函数。
目标函数构建模块202,用于根据所述成本约束函数以及所述时间约束函数构建目标函数。
初始化模块203,用于初始化蚁群算法的参数,确定改进后的蚁群算法。
计算模块204,用于根据所述改进后的蚁群算法计算所述目标函数的最优解,所述最优解表示任务调度结果。
在本实施例中,确定模块201包括:
第一确定单元2011,用于根据每个虚拟机并行执行任务的成本确定虚拟机执行任务的成本约束函数。
第二确定单元2012,用于根据每个虚拟机上任务的运行时间确定虚拟机执行任务的时间约束函数。
在本实施例中,初始化模块203包括:
第一初始化单元2031,用于根据虚拟机的处理能力与虚拟机的平均计算能力初始化蚁群算法中的信息素初始值。
激活函数构造单元2032,用于根据蚁群算法中的迭代次数、预设迭代次数上限、种群中蚂蚁数量的最大值和最小值构造神经网络激活函数。
第二初始化单元2033,用于根据所述激活函数初始化蚁群的种群数量;所述蚁群包括多个种群。
概率计算单元2034,用于计算蚂蚁使用预设参数值的概率。
第三初始化单元2035,用于根据所述概率初始化蚁群算法中的信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数。
第三确定单元2036,用于根据初始化好的参数确定改进后的蚁群算法;所述初始化好的参数包括:信息素初始值、蚁群的种群数量、信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数。
在本实施例,计算模块204包括:
第一路径构造单元2041,用于根据蚁群算法中的伪随机转移规则,利用初始化好的信息素的相对重要程度和初始化好的启发式因子的相对重要程度构造种群中每个蚂蚁的路径。
局部更新单元2042,用于根据局部更新规则,利用初始化好的信息素初始值和初始化好的信息素挥发系数局部更新所述路径上的信息素。
第一判断单元2043,用于判断当前种群中的蚂蚁是否都走完路径。
第二路径构造单元2044,用于当当前种群中的蚂蚁没有都走完路径时,重新构造路径。
全局更新单元2045,用于当当前种群中的蚂蚁都走完路径时,根据局部更新后的最短路径上的信息素和所述初始化好的信息素挥发系数对路径上的信息素进行全局更新。
第二判断单元2046,用于判断当前迭代次数是否达到预设迭代次数上限。
第三路径构造单元2047,用于当当前迭代次数没有达到预设迭代次数上限时,重新构造路径。
第一路径获取单元2048,用于当当前迭代次数达到预设迭代次数上限时,获取当前种群全局更新后的最短路径。
第二路径获取单元2049,用于从所有种群的最短路径中获取蚁群的最短路径,所述蚁群的最短路径为所述目标函数的最优解。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
(1)在任务调度模型方面,传统的蚁群算法,对时间和成本的定义是独立的。而本发明中对成本和时间进行同时进行约束,用线性加权和法构造出时间与成本的目标函数,通过权重来动态的调整目标,在计算任务调度问题会更加便利。
(2)蚁群算法参数值的选择对求解过程和算法的有效性有很大影响,目前经过广泛的实验研究表明,算法的实验参数只能进行微调,例如在TSP问题(旅行商问题)中,使用蚁群算法,采用固定变量的方法,对算法的参数值进行求解,但只能求解出一个范围,而不是一个精确的参数值,算法的最佳参数值是无法准确的被确定下来。本发明使用自适应机制对算法参数值进行初始化,根据算法执行过程中其有效性计算出的概率来选择参数值,根据概率是否达到阈值,来确定最后的参数,从根本上解决了蚁群算法的参数不确定性问题。
(3)由于蚁群算法具有正反馈机制,蚂蚁最终可以找到最短路径,主要是依赖信息素在最短路径上的积累,所以信息素的设置的多与少以及信息素的挥发系数设置都会影响最后的搜索结果。本发明采用虚拟机的处理能力与虚拟机的平均计算能力的比值进行初始化信息素初始值,采用自适应参数机制来调整信息素的挥发系数,使算法快速收敛,迅速达到最优化的目的。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种基于蚁群算法的任务调度方法,其特征在于,包括:
确定虚拟机执行任务的成本约束函数以及时间约束函数;
根据所述成本约束函数以及所述时间约束函数构建目标函数;
初始化蚁群算法的参数,确定改进后的蚁群算法,具体包括:
根据虚拟机的处理能力与虚拟机的平均计算能力初始化蚁群算法中的信息素初始值;
根据蚁群算法中的迭代次数、预设迭代次数上限、种群中蚂蚁数量的最大值和最小值构造神经网络激活函数,其中蚁群的种群数量用M表示,引入一个神经网络激活函数来调整参数M:
其中,Cmax为迭代的上限,C为当前迭代次数,P为可以动态调整的参数,表示参数随C的不同值变化的速度,Max为初始种群数量中的最大值,Min为初始种群数量中的最小值,ρ为信息素挥发系数;
根据所述激活函数初始化蚁群的种群数量;所述蚁群包括多个种群;
计算蚂蚁使用预设参数值的概率;
根据所述概率初始化蚁群算法中的信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数;
根据初始化好的参数确定改进后的蚁群算法;所述初始化好的参数包括:信息素初始值、蚁群的种群数量、信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数;
根据所述改进后的蚁群算法计算所述目标函数的最优解,所述最优解表示任务调度结果。
2.根据权利要求1所述的任务调度方法,其特征在于,确定虚拟机执行任务的成本约束函数,具体包括:
根据每个虚拟机并行执行任务的成本确定虚拟机执行任务的成本约束函数。
3.根据权利要求1所述的任务调度方法,其特征在于,确定虚拟机执行任务的时间约束函数,具体包括:
根据每个虚拟机上任务的运行时间确定虚拟机执行任务的时间约束函数。
4.根据权利要求1所述的任务调度方法,其特征在于,所述根据所述改进后的蚁群算法计算所述目标函数的最优解,具体包括:
根据蚁群算法中的伪随机转移规则,利用初始化好的信息素的相对重要程度和初始化好的启发式因子的相对重要程度构造种群中每个蚂蚁的路径;
根据局部更新规则,利用初始化好的信息素初始值和初始化好的信息素挥发系数局部更新所述路径上的信息素;
判断当前种群中的蚂蚁是否都走完路径;
若否,则重新构造路径;
若是,则根据局部更新后的最短路径上的信息素和所述初始化好的信息素挥发系数对路径上的信息素进行全局更新;
判断当前迭代次数是否达到预设迭代次数上限;
若是,则获取当前种群全局更新后的最短路径;
从所有种群的最短路径中获取蚁群的最短路径,所述蚁群的最短路径为所述目标函数的最优解。
5.一种基于蚁群算法的任务调度系统,其特征在于,包括:
确定模块,用于确定虚拟机执行任务的成本约束函数以及时间约束函数;
目标函数构建模块,用于根据所述成本约束函数以及所述时间约束函数构建目标函数;
初始化模块,用于初始化蚁群算法的参数,确定改进后的蚁群算法,所述初始化模块包括:
第一初始化单元,用于根据虚拟机的处理能力与虚拟机的平均计算能力初始化蚁群算法中的信息素初始值;
激活函数构造单元,用于根据蚁群算法中的迭代次数、预设迭代次数上限、种群中蚂蚁数量的最大值和最小值构造神经网络激活函数:
其中,Cmax为迭代的上限,C为当前迭代次数,P为可以动态调整的参数,表示参数随C的不同值变化的速度,Max为初始种群数量中的最大值,Min为初始种群数量中的最小值,ρ为信息素挥发系数;
第二初始化单元,用于根据所述激活函数初始化蚁群的种群数量;所述蚁群包括多个种群;
概率计算单元,用于计算蚂蚁使用预设参数值的概率;
第三初始化单元,用于根据所述概率初始化蚁群算法中的信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数;
第三确定单元,用于根据初始化好的参数确定改进后的蚁群算法;所述初始化好的参数包括:信息素初始值、蚁群的种群数量、信息素的相对重要程度、启发式因子的相对重要程度和信息素挥发系数;
计算模块,用于根据所述改进后的蚁群算法计算所述目标函数的最优解,所述最优解表示任务调度结果。
6.根据权利要求5所述的任务调度系统,其特征在于,所述确定模块包括:
第一确定单元,用于根据每个虚拟机并行执行任务的成本确定虚拟机执行任务的成本约束函数。
7.根据权利要求5所述的任务调度系统,其特征在于,所述确定模块包括:
第二确定单元,用于根据每个虚拟机上任务的运行时间确定虚拟机执行任务的时间约束函数。
8.根据权利要求5所述的任务调度系统,其特征在于,所述计算模块包括:
第一路径构造单元,用于根据蚁群算法中的伪随机转移规则,利用初始化好的信息素的相对重要程度和初始化好的启发式因子的相对重要程度构造种群中每个蚂蚁的路径;
局部更新单元,用于根据局部更新规则,利用初始化好的信息素初始值和初始化好的信息素挥发系数局部更新所述路径上的信息素;
第一判断单元,用于判断当前种群中的蚂蚁是否都走完路径;
第二路径构造单元,用于当当前种群中的蚂蚁没有都走完路径时,重新构造路径;
全局更新单元,用于当当前种群中的蚂蚁都走完路径时,根据局部更新后的最短路径上的信息素和所述初始化好的信息素挥发系数对路径上的信息素进行全局更新;
第二判断单元,用于判断当前迭代次数是否达到预设迭代次数上限;
第三路径构造单元,用于当当前迭代次数没有达到预设迭代次数上限时,重新构造路径;
第一路径获取单元,用于当当前迭代次数达到预设迭代次数上限时,获取当前种群全局更新后的最短路径;
第二路径获取单元,用于从所有种群的最短路径中获取蚁群的最短路径,所述蚁群的最短路径为所述目标函数的最优解。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993439.4A CN112084035B (zh) | 2020-09-21 | 2020-09-21 | 一种基于蚁群算法的任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993439.4A CN112084035B (zh) | 2020-09-21 | 2020-09-21 | 一种基于蚁群算法的任务调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084035A CN112084035A (zh) | 2020-12-15 |
CN112084035B true CN112084035B (zh) | 2024-04-30 |
Family
ID=73739281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010993439.4A Active CN112084035B (zh) | 2020-09-21 | 2020-09-21 | 一种基于蚁群算法的任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084035B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112947591A (zh) * | 2021-03-19 | 2021-06-11 | 北京航空航天大学 | 基于改进蚁群算法的路径规划方法、装置、介质及无人机 |
CN113127206B (zh) * | 2021-04-30 | 2022-03-11 | 东北大学秦皇岛分校 | 一种基于改进蚁群算法的云环境任务调度方法 |
CN117319505B (zh) * | 2023-11-30 | 2024-02-06 | 天勰力(山东)卫星技术有限公司 | 一种面向软件定义卫星共享网络的星上任务抢单系统 |
CN117933667A (zh) * | 2024-03-21 | 2024-04-26 | 广州疆海科技有限公司 | 虚拟电厂的资源调度方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799888A (zh) * | 2010-01-22 | 2010-08-11 | 浙江大学 | 基于仿生智能蚁群算法的工业软测量方法 |
CN108234617A (zh) * | 2017-12-26 | 2018-06-29 | 国家电网公司 | 一种面向电力系统混合云模式下的资源动态调度方法 |
WO2019135703A1 (en) * | 2018-01-08 | 2019-07-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Process placement in a cloud environment based on automatically optimized placement policies and process execution profiles |
CN110362379A (zh) * | 2019-06-10 | 2019-10-22 | 南京理工大学 | 基于改进蚁群算法的虚拟机调度方法 |
CN111240796A (zh) * | 2019-12-30 | 2020-06-05 | 浙江工业大学 | 一种基于改进mmas的负载均衡调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776612A (zh) * | 2018-04-11 | 2018-11-09 | 深圳大学 | 一种云计算任务分配方法、装置、设备及存储介质 |
-
2020
- 2020-09-21 CN CN202010993439.4A patent/CN112084035B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799888A (zh) * | 2010-01-22 | 2010-08-11 | 浙江大学 | 基于仿生智能蚁群算法的工业软测量方法 |
CN108234617A (zh) * | 2017-12-26 | 2018-06-29 | 国家电网公司 | 一种面向电力系统混合云模式下的资源动态调度方法 |
WO2019135703A1 (en) * | 2018-01-08 | 2019-07-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Process placement in a cloud environment based on automatically optimized placement policies and process execution profiles |
CN110362379A (zh) * | 2019-06-10 | 2019-10-22 | 南京理工大学 | 基于改进蚁群算法的虚拟机调度方法 |
CN111240796A (zh) * | 2019-12-30 | 2020-06-05 | 浙江工业大学 | 一种基于改进mmas的负载均衡调度方法 |
Non-Patent Citations (5)
Title |
---|
一种基于改进蚁群算法的多目标优化云计算任务调度策略;葛君伟等;《微电子学与计算机》;第34卷(第11期);摘要和第1-6节 * |
基于种群熵的改进自适应蚁群算法;王正初;李军;;计算机应用;20061228(第S2期);全文 * |
基于蚁群算法的云任务调度研究;王云松;孙佳林;龚跃;;长春理工大学学报(自然科学版)(01);全文 * |
多目标优化的多种群混合行为二元蚁群算法;叶青;熊伟清;李纲;;计算机工程与应用;20110611(第17期);全文 * |
改进的蚁群算法在机器人路径规划上的应用;张晓莉;杨亚新;谢永成;;计算机工程与应用;20191018(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112084035A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112084035B (zh) | 一种基于蚁群算法的任务调度方法及系统 | |
US11188382B2 (en) | Cloud computing task allocation method and device, apparatus, and storage medium | |
CN110688219B (zh) | 基于反向混沌布谷鸟搜索的自适应权重负载均衡算法 | |
Ragmani et al. | An improved hybrid fuzzy-ant colony algorithm applied to load balancing in cloud computing environment | |
Kaur et al. | Deep‐Q learning‐based heterogeneous earliest finish time scheduling algorithm for scientific workflows in cloud | |
Mechalikh et al. | PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments | |
EP2208146A1 (en) | Discovering optimal system configurations using decentralized probability based active sampling | |
Swarup et al. | Task scheduling in cloud using deep reinforcement learning | |
CN113794748B (zh) | 一种性能感知的服务功能链智能部署方法及装置 | |
CN113141317A (zh) | 流媒体服务器负载均衡方法、系统、计算机设备、终端 | |
CN115480876A (zh) | 基于蚁群算法优化的云计算任务调度方法及系统 | |
CN113347027B (zh) | 一种面向网络虚拟孪生的虚拟实例放置方法 | |
CN114564312A (zh) | 一种基于自适应深度神经网络的云边端协同计算方法 | |
CN111240796A (zh) | 一种基于改进mmas的负载均衡调度方法 | |
CN112732444A (zh) | 一种面向分布式机器学习的数据划分方法 | |
Salehnia et al. | SDN-based optimal task scheduling method in Fog-IoT network using combination of AO and WOA | |
CN107608781A (zh) | 一种负载预测方法、装置以及网元 | |
Shefu et al. | Fruit fly optimization algorithm for network-aware web service composition in the cloud | |
CN113543160A (zh) | 5g切片资源配置方法、装置、计算设备及计算机存储介质 | |
CN116033026A (zh) | 一种资源调度方法 | |
Bensalem et al. | Towards optimal serverless function scaling in edge computing network | |
Jagadish et al. | Task scheduling algorithms in fog computing: a comparison and analysis | |
Tahmasebi-Pouya et al. | A reinforcement learning-based load balancing algorithm for fog computing | |
WO2020094213A1 (en) | Network resource allocation | |
CN112328355B (zh) | 一种针对长寿命容器的自适应最优内存预留估计方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |