释放时间不同可中断平行机问题在线算法
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++程序代写
有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++程序代写
相关文章推荐
- 释放时间不同可中断平行机问题在线算法
- 释放时间不同可中断平行机问题在线算法
- 释放时间不同可中断平行机问题在线算法
- 释放时间不同可中断平行机问题在线算法
- 释放时间不同可中断平行机问题在线算法
- 最大子列和问题的四种不同时间复杂度的算法实现
- 设n个不同的整数排好序后存于T[1..n]中,若存在一个下标i(1≤ i ≤ n),使得T[i]=i。试设计一个有效算法找到这个下标,要求算法在最坏情形下的计算时间为O(log n)
- 四种不同算法求解0-1背包问题
- /MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题
- 最大间隙问题。给定 n 个实数,求这n个实数在数轴上相邻2个数之间的最大差值,设计解最大间隙问题的线性时间算法。
- 时间序列的算法ARMA算法的参数设定的问题
- 算法探究:线性时间选择问题
- 时间复杂度一定的算法1s内能处理的问题规模上限
- 第一周:最大子列和问题-算法4:在线处理(作业)
- 算法_动态规划_最长单调递增子序列问题(O(nlogn)的时间复杂度)
- 中断占据CPU时间的计算问题
- 在线人数统计,解决了关闭浏览器窗口,释放session的问题
- javascript动画、运动算法详细解释与分析 (二、javascript动画 时间精度问题)
- 又发现FF的两处不同eval和scope释放问题...
- 算法探究:线性时间选择问题