基于蚁群算法的云计算资源调度分析
2017-03-22刘霜
刘霜
摘 要当前,云计算资源调度中常用的算法包括遗传算法、蚁群算法、粒子群算法以及综合优化算法等。不同算法所关注的角度存在一定的差异,遗传算法和粒子群算法主要从资源调度的效率方面进行优化,而蚁群算法则是从云计算资源调度的计算成本方面进行考虑。论文讨论了基于优化蚁群算法的云计算资源调度,在兼顾任务效率的基础上,能够进一步降低计算成本。
【关键词】云计算 资源调度 蚁群算法
1 云计算资源调度
云计算资源调度主要是对某个时间点或者时间段内如何向用户进行资源分配的决策过程。资源是根据单个或者多个优化目标进行分配的,其中,目标包括了任务的效率、成本等方面的问题。云计算中的不同应用程序所需要的资源不同,加上云计算本身的异构性以及动态性的特点,导致云计算资源调度问题成为了一个非常复杂的多目标优化问题。而作为良好的资源调度策略,不仅需要进一步提高计算的效率,同时还应该控制调度成本,实现对资源的最大化利用。另外,云计算资源管理还需要利用有限的物理资源,为更多的用户提供多样化的服务,同时满足不同类型用户在计算效率、成本等服务质量方面的差异化要求。2基于蚁群算法的云计算资源调度
蚁群算法是以中用于寻求最优解决方案的机率型技术,其最早是由Marco Dorigo于1992年在其博士论文中引入,主要借鉴了蚂蚁在寻找食物过程中发现路径的行为。蚂蚁在路径上前进时能够根据前面蚂蚁所留下的分泌物选择路径,其选择一条路径的概率与该路径上分泌物的强度成正比。因此,大量蚂蚁构成的群体行为实际上构成了一种学习信息的反馈现象,即选择某一条路径的蚂蚁越多,后面的蚂蚁则继续选择该路径的可能性更大。蚂蚁个体之间通过这种信息寻求最短的目标路径。在云计算环境下,可以将资源调度问题看作一个多项式复杂程度的非确定性问题。从解决这类问题的角度来看,蚁群优化算法很适合解决资源调度的问题,传统的蚁群算法通常只能在效率和成本兼顾一面,对此本文提出了一种新的优化蚁群算法。
2.1 算法设计
建立子任务与虚拟节点分配矩阵X,定义节点Xij,其中i(1,2,…,n),j(1,2,…,m)为节点集合,构成了一个没有方向的完全图G(V,E)。通过优化蚁群算法能够获取一个适用于资源调度方案使F得值达到最小。
2.1.1 初始化信息素
在初始化算法的阶段,为了确保蚂蚁能够很好地进行路径寻优,需要將所有路径的信息素的初始值设置为最大,完成信息素的初始化。
2.1.2 路径选择
在各个节点上都分布着若干只蚂蚁进行最优解的搜索,则第k只蚂蚁在t时刻选择节点Xij的概率为:
(1)
(2)
τij(t)代表了t时刻,蚂蚁在Xij节点位置所残留的信息素;φij(t)代表了蚂蚁的启发信息。α和β非别表示残留信息素和启发信息的相对重要性。tabk(k=1,2,L,m)代表第k只蚂蚁行走的禁忌表,即不会选择的路径,如果t时刻,第k只蚂蚁选择节点Xij,则就会被加入到禁忌表中。
2.1.3 信息素更新
在每次循环之后都需要对该次循环中的最优解或者局部最优解的信息素进行更新,从而确保找到全局最优解能够有更高的效率,按照下面的公式对信息素进行更新:
(3)
(4)
其中,Fbest就表示了全局最优解的值,通过对信息素的更新,能够进一步提高算法的效率,缩短计算所需要的时间。
2.2 算法流程
根据上面的分析,确定了基于蚁群算法的云计算资源调度的具体流程:
Step1:确定算法的适应度函数;
Step2:设置算法的各类指标参数和算法结束条件,参数需要确保合理性,以保证算法效率;
Step3:设定完成之后初始化算法的信息素,并将蚂蚁在各个节点进行随机分布,进行路径搜索;
Step4:每次完成一轮搜索之后,从其中选择当前的最优解,然后更新信息素;
Step5:继续进行搜索,如果满足之前设置的结束条件,则确定当前获取的最优解为算法的全局最优解,如果不满足算法结束条件,则跳转到Step4。
3 仿真分析
为了对算法的可行性和有效性进行验证,选择CloudSim平台对算法进行仿真分析。在实际仿真过程中,将初始条件c,d设置为0.5,其余参数的值设置为1,在仿真中采用50个虚拟机节点,50个任务,每个任务被分割为范围为[10,60]的子任务,蚂蚁群的规模设置为50,实验循环次数为30次,实验终止的条件为达到最大迭代次数。在完全相同的实验条件下,采用本文所设计蚁群优化算法和标准蚁群算法进行对比。
通过对实验结果进行分析发现,本文所设计的蚁群优化算法能够在总体完成时间较少的基础上减低计算成本,而不是以牺牲计算成本来提高计算效率,或则以牺牲计算效率来降低计算成本。因此,本文所设计的蚁群优化算法在云计算资源调度中能够同时兼顾计算效率和计算成本,实现较好的资源调度效果。
4 结语
由于云计算环境本身的特性,其资源调度面临大量的计算,如何进行合理的资源调度,提高资源调度的效率,并控制资源调度成本,成为当前云计算资源调度研究的重要内容。就目前来看,云计算资源调度的算法较多,但是各类算法考虑的方向不同,如何同时兼顾计算效率和计算成本,实现双方的协调,而不是以牺牲效率或者牺牲成本来提升效率或者控制成本,对云计算资源调度提出了挑战。对此,论文提出了一种基于蚁群算法的优化资源调度算法,通过在CloudSim平台对论文所设计的算法进行仿真分析,验证了该算法能够在有效降低成本的基础上确保云计算资源调度的效率,并且算法具有可行性和有效性。
参考文献
[1]王芳,李美安,段卫军.基于动态自适应蚁群算法的云计算任务调度[J].计算机应用,2013(11):3160-3162+3196.
[2]张雨,李芳,周涛.云计算环境下基于遗传蚁群算法的任务调度研究[J].计算机工程与应用,2014(06):51-55.
作者单位
山东理工大学 山东省淄博市 255000