1.基于非支配排序和猫头鹰搜索的多工作流调度方法,其特征在于,包括以下步骤:
步骤1、获取具有截止期限和预算约束的多个工作流,根据工作流的截止期限为该工作流所属的任务分配子截止期限,按照所述子截止期限将所有任务排序,形成任务调度序列,采用所述任务调度序列初始化种群形成待处理种群;初始化迭代次数;
步骤2、计算所述待处理种群中粒子对应的调度方案的适应度,所述适应度由工作流的总完工时间、执行成本及能耗表示;采用非支配排序遗传nsga-ii算法,计算种群中所有粒子的密度,并根据所述适应度和密度对待处理种群中所有粒子进行非支配排序得到不同的非支配层,其中最高非支配层即为非支配前沿解集;
步骤3、当所述迭代次数为1时,由所述非支配前沿解集内所有满足所述截止期限和预算约束的非支配前沿解构成外部档案集;否则,利用待处理种群的所述非支配前沿解集与外部档案集中的所有粒子进行比较,更新外部档案集;当所述外部档案集不为空时,选择所述外部档案集中密度最高的解作为全局最优引导解;当所述外部档案集为空时,则选择所述非支配前沿解集中密度最高的解作为全局最优引导解;
步骤4、当所述迭代次数达到设定阈值时,输出所述外部档案集中所有粒子对应的调度方案;否则,采用nsga-ii算法的精英解保留策略,遍历所述非支配层,形成大小相同的较优种群及较差种群,采用nsga-ii算法更新所述较优种群,采用猫头鹰搜索算法根据所述全局最优引导解更新所述较差种群;
步骤5、将所述较优种群与较差种群合并形成整合种群,以所述整合种群更新所述待处理种群;所述迭代次数自加1,执行步骤2。
2.根据权利要求1所述的方法,其特征在于,所述步骤2中根据所述适应度将种群中所有粒子进行非支配排序得到不同的非支配层,所述非支配排序采用粒子间两两比较的方式,比较过程中,如果两个粒子中仅有一个为可行解,则选择为可行解的粒子;如果两个粒子均为可行解或非可行解,则选择非支配粒子;
所述非支配粒子为不被其他粒子支配的粒子,即若粒子xi支配粒子xj则粒子xi为非支配粒子;所述粒子xi支配粒子xj需要至少满足下列情况之一:
粒子xi的总完工时间、执行成本和能耗均分别优于粒子xj的总完工时间、执行成本和能耗;粒子xi的总完工时间、执行成本和能耗三个指标中存在一个指标与粒子xj的相应指标的取值相同,另外两个指标则分别优于粒子xj的相应指标;粒子xi的总完工时间、执行成本和能耗三个指标中存在两个指标均与粒子xj的相应指标的取值相同,另外一个指标则优于粒子xj的相应指标。
3.根据权利要求2所述的方法,其特征在于,所述步骤4中的猫头鹰搜索算法为基于混沌序列的猫头鹰搜索算法,采用所述基于混沌序列的猫头鹰搜索算法根据所述全局最优引导解更新所述较差种群的过程包括以下步骤:
步骤4.1、对较差种群p2中的每个粒子
步骤4.2、根据强度变化量,更新较差种群p2中的每个粒子
其中,βmin和βmax分别表示步长参数β取值的上、下界;
步骤4.3、对更新后的较差种群p2进行非支配排序得到非支配前沿解集,在非支配前沿解集的每个粒子xs附近区域进行局部搜索,寻找更优解,具体步骤如下:
步骤4.3.1、初始化混沌局部搜索循环次数k为1;
步骤4.3.2、初始化混沌局部搜索的维度值d为随机整数,且0≤d<|t|,其中t为前粒子的任务集合;
步骤4.3.3、根据任务td的可用资源数量,采用公式(2)计算当前粒子中任务td所对应的第d维元素xd的新混沌变量值xdnew:
其中,|ard|为任务td的可用资源集合ard中总的资源数,将新的混沌变量值xdnew对应的调度方案保存为新粒子cxk;
步骤4.3.4、若循环次数k小于设定的阈值,则k自加1,执行步骤4.3.2;若循环次数k大于或等于设定的阈值,则分别计算所有新粒子的适应度,并求出其中的最优解cx*,选择cx*与原粒子xs中的非支配粒子更新原粒子xs。
4.根据权利要求1所述的方法,其特征在于,所述步骤2中计算所述待处理种群中粒子对应的调度方案的适应度,所述适应度中的总完工时间计算过程包括以下步骤:
步骤2.1、采用公式(3)计算粒子中任务的开始执行时间:
其中,ti为粒子的任务集合t中的第i个任务,tentry为工作流入口子任务;
步骤2.2、采用公式(4)计算粒子中任务的完工时间:
ft(ti)=st(ti)+et(ti)+tt(ti)+soft(ti)(4)
其中,et(ti)为任务ti的执行时间,tt(ti)为任务ti的输入文件的读取时间,soft(ti)为任务ti执行所需软件的加载时间;
步骤2.3、粒子的总完工时间makespan的计算公式为: