您的位置:首页 > 其它

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

2013-07-08 22:13 211 查看
⑴ 问题描述

有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。

⑶ 程序要求

①输入数据采用随机生成和手动输入两种形式。

②输入数据参数包括:机器数、作业数、作业信息(加工时间、释放时间)。

③输出数据参数包括:每个作业的每一段对应机器、在该机器上加工位置、开始加工的时间、完工时间,每个作业最终的完工时间,所有作业中最大完工时间专业程序代写c++程序代写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: