释放时间不同可中断平行机问题在线算法

⑴ 问题描述 有m个完全相同的机器(同型机)Mi(i=1,2,…,m),有n个作业Jj(j=1,2,…,n)需要加工。每个作业的释放时间rj可能不同,作业Jj可以在任意某一机器上加工,加工时间均为pj(pj>0)。同一作业在任意某一时刻只能在某一个机器上加工,同一机器在某一时刻只能加工一个作业。作业允许中断(某一作业完工或有新的作业释放,引起中断)。Online。调度的目标是加工完所有n个作业,且使得最大的作业完工时间最小化。 题目:释放时间不同可中断平行机问题在线算法 ⑵ 算法描述 每次有新作业释放,执行如下步骤: Step 1. 将当前未加工作业(未加工完的作业将其未完成部分看做新作业)按照长作业优先排序; Step 2. 计算D=max{max{pj}, ∑pj/m}; Step 3. 如果D=∑pj/m,将作业依次放入各机器[0,D]时间区间,超出部分中断后,在另外一个机器继续加工;否则,优先加工最长作业,去除该作业和对应机器,形成作业数和机器上均减1的新问题,转Step 2。 ⑶ 程序要求 ①输入数据采用随机生成和手动输入两种形式。 ②输入数据参数包括:机器数、作业数、作业信息(加工时间、释放时间)。 ③输出数据参数包括:每个作业的每一段对应机器、在该机器上加工位置、开始加工的时间、完工时间,每个作业最终的完工时间,所有作业中最大完工时间专业程序代写大学生程序代写
原文地址:https://www.cnblogs.com/java20130722/p/3207525.html