Step1:初始化N台机器、M个任务和50个种群个体,并将其初始结果保存到文件,保证改进的遗传算法和传统的遗传算法以及Min-Min算法是在同一环境下进行比较。
Step2:选择运算。按照轮盘赌算法根据个体的适应度比例从50个个体中重新选择50个个体。
Step3:交叉运算。本算法中采用全种群交叉,且个体之间采用多点交叉,产生50个新的个体。
Step4:变异运算。采用自适应变异算子对个体进行变异,产生新的50个个体。
Step5:选择。从以上操作中所产生的150个个体中,按照精英保留策略选择50个最优的个体,保存到初始群体中。
Step6:模拟退火局部优化。对(5)中产生的初始群体的每个个体再应用模拟退火算法,并将产生的新的50个个体作为下一代的初始群体。
Step7:迭代。重复以上(2)、(3)、(4)、(5)、(6)过程800次。
4实验仿真及结果分析
4.1 仿真环境介绍及主要参数介绍
本实验所采用的操作系统为Win7 Home Basic,内存大小为2GB,处理器型号是AMD APU E350,处理器频率为1.6GHz,磁盘容量为320GB。算法设计采用Code::Blocks 10.05编译器,编程语言为C++语言,仿真结果图由Matlab绘制而成。
本论文中采用的实例为N台机器,M个任务,因此需要首先初始化N台机器的计算能力以及M个任务的数据量。基本遗传算法主要有下述4个运行参数:M:群体大小,即群体中个体的数量,取为50。T:遗传运算的终止进化代数,取为800。Pc:交叉概率,0.5。Pm:变异概率,取为 0.1和0.9。
4.2 仿真结果分析
GSA与GA对比结果图如图1所示,由图1可以看出随着迭代次数的增加,任务的完成时间逐渐收敛于某一固定值,因此用遗传算法解决任务调度问题达到了预期的效果,证明了采用遗传算法解决任务调度问题的可行性。同时在相同的环境下,GSA表现出了较好的效果,其收敛速度明显优于GA,而且在迭代早期就表现出了良好的算法性能。 基于遗传算法的云计算任务调度研究(4):http://www.751com.cn/jisuanji/lunwen_3470.html