济南大学学报自然科学版
主办单位:山东省教育厅
国际刊号:1671-3559
国内刊号:37-1378/N
学术数据库优秀期刊 《中文科技期刊数据库》来源期刊
       首 页   |   期刊介绍   |   新闻公告   |   征稿要求   |   期刊订阅   |   留言板   |   联系我们   
  本站业务
  在线期刊
      最新录用
      期刊简明目录
      本刊论文精选
      过刊浏览
      论文下载排行
      论文点击排行
      
 

访问统计

访问总数:20792 人次
 
    本刊论文
基于粒子群优化与蚁群优化的云计算任务调度算法

  刘波涛,湖南文理学院 计算机科学与技术学院,湖南 常德,415000;


  基金项目:湖南省教育厅高校科研项目(12C0822)


  摘要:在云计算环境中,存在非常多的用户,因而系统处理存在非常大的任务量。为了实现系统能够对服务请求的高效执行,云计算研究的重点问题就是任务调度问题。文章提出了一种基于粒子群优化和蚁群优化的任务调度算法,在CloudSim 平台进行了仿真实验之后,发现这一算法的实时性和寻优能力很好,是有效的调度算法。


  关键词:粒子群优化;蚁群优化;云计算;任务调度


  云计算发展融合了传统计算机和网络技术,是一种商业实现。基于互联网的计算服务模式,针对一些共享可配置计算资源实现了方便、按需访问;这些资源可借助非常小的管理代价或与服务提供者的交互被快速地准备和实现按需使用[1]。目前用于求解云计算任务调度问题的算法有遗传算法、粒子群优化算法和蚁群算法。在前人研究的基础上提出一种基于粒子群优化与蚁群优化的云计算任务调度算法。


  1 云计算任务调度的设计


  粒子群优化算法是1995年Kennedy 和 Eberhart提出的,是受启发于鸟群觅食行为的的一种仿生优化算法。因为该算法简单、易实现且参数少,因而可以实现良好的连续优化和离散优化效果。蚁群算法是上世纪90年代Dorigo Macro 等人提出的,受启发于模拟蚂蚁群体觅食行为,也是一种仿生优化算法。这一算法将正反馈并行机制引进来,鲁棒性很强;分布式计算机制十分优良;很容易能结合其他算法等,在一些复杂组合优化问题的求解中被广泛应用。当然这两种算法也存在一些不足之处。本文与两种算法的优势相结合,提出基于两种算法的一种云计算任务调度算法。这一算法先是借助粒子群优化算法的快速收敛性迅速生成初始解,接下来依据调度结果生成蚁群算法的初始信息素分布,最后是借助蚁群算法来将任务调度的最优解求出来。


  2. 1 粒子群算法


  云计算任务调度问题是离散问题,而粒子群优化算法对于连续优化问题的解决比较适用。在离散版的粒子群算法中,将粒子位置向量每一位值取 0或1,粒子速度不是对连续空间中粒子飞行的速度的表示,而且表示计算粒子位置向量取值为0或1的概率。


  2.2 蚁群算法


  以云计算任务调度的任务与资源分配关系矩阵X为参照,定义 { xij} m×n 为节点集,组成一个无向完全图 G( V,E) 。通过蚁群算法从集合 { x ij} m×n 中选出一组节点{ xy1 1,xy2 2,…,xyj j,…,xyn n } , yj ∈ { 1,2,…,m} ,从而实现最小的Cmax 值。


  2.3 算法流程


  在粒子群优化和蚁群优化基础上提出的云计算任务调度算法,其基本步骤是


  这样的:


  Step1 对云计算任务调度目标函数进行定义。


  Step2 针对该调度算法,进行相关参数和算法结束条件的设定。


  Step3 随即初始化粒子群的位置和速度。


  Step4 对每个粒子的适应值进行计算,将粒子个体最优位置和群体最优位


  置找出来。


  Step5 按照式( 6) 、式( 7) 来更新粒子速度和位置。


  Step6 没有动作。


  Step7 若是已达设定迭代次数,将云计算任务调度的初始调度结果输出,并转到Step8。要不然就跳转至 Step4。www.17net.net 论文发表


  Step8 按照粒子群算法得出的初始调度结果来初始化蚁群算法的信息素进。


  Step9 随机放置若干只蚂蚁到节点上并搜索。


  Step10 每只蚂蚁按照式( 8) 进行下一节点的选择,并按照式(10) 、式


  (11)对局部信息素进行更新,将调度列表中加入所选节点。


  Step11 完成全部任务调度后,按照任务调度列表对调度结果的适应值进行


  计算,同时按照式(12)、式(13) 对全局信息素进行更新。


  2 实验与分析


  CloudSim是澳大利亚Rajkumar Buyya 博士领导团队开发出来的一个云计算仿真平台。其主要是对云环境进行模拟,针对不同的调度策略做性能测试。本文也是采用 CloudSim 平台来进行云环境的模拟,对任务调度算法进行模拟仿真。为了对本文调度算法的性能进行有效检验,分别于5个虚拟计算资源、50个子任务和 5个虚拟计算资源、500个子任务两种调度规模下,分别进行对比实验,包括粒子群优化算法( PSO)、蚁群算法( ACO) 和本文算法(PSO-ACO) [2]。在实验中,各虚拟计算资源的处理能力是{400MIPs,600MIPs,800MIPs,1000MIPs,1200MIPs};子任务长度范围是[400MI,1000MI][3]。分别对算法的参数进行设置: 本文算法的粒子群算法部分,群体规模 size = 100,c1 = c2 = 2,迭代次数为 40,蚁群算法部分,群体规模 size = 100,α = 1, β = 1,ρ = 0. 2,迭代次数为 160。粒子群算法、蚁群算法的参数与以上分别对应相同,迭代次数是 200。对各算法进行了20次重复运行。最终的实验结果见图1和图2。


  图1 总任务完成时间曲线( 5个资源,50个子任务)


  图2 总任务完成时间曲线( 5 个资源,500 个子任务)


  从以上实验结果我们能看出,本文的PSO-ACO 任务调度算法对两种算法的优点进行了有效结合。在迭代之初,PSO-ACO 任务调度的优化效果比ACO要好,且总任务完成时间比ACO调度少;PSO-ACO的调度效果要比PSO 和 ACO好,可实现最优解,总任务完成时间最小。与此同时,我们也看到,PSO-ACO 可以在较小的代数内找到的调度效果比PSO 和 ACO更好。从图中能看出,PSO的调度优化效果在迭代初期较为明显,总任务完成时间要少于ACO。然而随着迭代次数的变多,就弱化了自身的优化效果,总任务完成曲线渐渐变得平缓。这是因为PSO 存在的不足正是初期收敛速度快,后期局部缺乏搜索能力。基于两种调度规模的仿真实验,结果表明本文的调度算法使得系统处理调度问题的时间大大缩短了,总任务的完成时间也减少了,很好的实现了时间性能和优化性能效果。


  3 结 语本文主要就云计算任务调度问题进行了探究,提出了一种新的云计算任务调度法,这是基于粒子群优化和蚁群优化。在经过了仿真实验之后,可以看出这一算法的实时性和寻优能力都是很好的,作为一种调度算法是十分有效的。本文在算法方面主要只是对任务调度的时间因素加以考虑,但是在实际应用过程中往往存在比较复杂的情况以及诸多的干扰和影响因素,需要思考计算成本、节能灯方面的问题,所以还需要进一步深入研究,从而促使云计算任务的调度能够达到最佳综合性能。


  参考文献:


  [1]朱近之。智慧的云计算[M].北京:电子工业出版社,2010.


  [3]陈全,邓倩妮。云计算及关键技术[J]。 计 算 机 应 用,2009,9 ( 29) : 2562-2567.


  [5]汪定伟,王俊伟,王洪峰,等。智能优化方法[M].北京: 高等教育出版社,2007.


特别说明:本站仅协助已授权的杂志社进行在线杂志订阅,非《济南大学学报自然科学版》杂志官网,直投的朋友请联系杂志社。
版权所有 © 2009-2024《济南大学学报自然科学版》编辑部  (权威发表网)   苏ICP备20026650号-8