欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年最优流水作业调度问题-流水作业调度问题.docx

    • 资源ID:81542735       资源大小:12.89KB        全文页数:5页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年最优流水作业调度问题-流水作业调度问题.docx

    2023年最优流水作业调度问题:流水作业调度问题 最优流水作业调度问题 摘要 本文给出了双机流水作业调度的Johnson算法,并结合POJ上的一道题目详述了该算法的详细编程实现和应用。 关键词: 双机流水作业调度 Johnson算法 正文 流水作业是并行处理技术领域的一项关键技术,它是以专业化为基础,将不同处理对象的同一施工工序交给专业处理部件执行,各处理部件在统一安排支配下,依次在各个作业面上完成指定的操作。流水作业调度问题是一个特别重要的问题,其干脆关系到计算机处理器的工作效率。然而由于牵扯到数据相关、资源相关、限制相关等很多问题,最优流水作业调度问题处理起来特别困难。已经证明,当机器数(或称工序数)大于等于3时, 流水作业调度问题是一个NP-hard问题(e.g分布式任务调度)。粗糙地说,即该问题至少在目前基本上没有可能找到多项式时间的算法。只有当机器数为2时,该问题可有多项式时间的算法(机器数为1时该问题是平凡的)。 我们先给出流水作业调度的定义: 设有 n 个作业,每一个作业 i 均被分解为 m 项任务: Ti1,Ti2, ,Tim(1in,故共有n×m个任务), 要把这些任务支配到m台机器上进行加工。 假如任务的支配满意下列3个条件, 则称该支配为流水作业调度: 1. 每个作业 i 的第 j 项任务Tij (1in,1jm) 只能支配在机器Pj上进行加工; 2. 作业 i 的第 j 项任务Tij(1in,2jm)的起先加工时间均支配在第j1项任务 Ti,j1加工完毕之后,任何一个作业的任务必需依次完成,前一项任务完成之后才能起先着手下一项任务; 3. 任何一台机器在任何一个时刻最多只能担当一项任务。 最优流水作业调度是指: 设任务Tij在机器Pj上进行加工须要的时间为tij。 假如全部的tij (1in,1jm)均已给出, 要找出一种支配任务的方法, 使得完成这 n 个作业的加工时间为最少。 这个支配称之为最优流水作业调度。 前面已经说过,当m3时该问题是NP问题,这里我们只给出m=2时时间困难度在多项式以内的Johnson算法。 求解流水作业调度问题的Johnson算法详细描述如下: 1) 设ai和b i (0i 号,处理时间,设备号)组成的三元组表d。其中,处理时间是指每个作业所包含的两个任务中时间较少的处理时间。 设n=4, a0,a1,a2,a3 =(3,4,8,10)和 b0,b1,b2,b3 =(6,2,9,15)的作业0的三元组为(0,3,0),作业1的三元组为(1,2,1)。 如图(a)所示。 2) 对三元组表按处理时间排序,得到排序后的三元组表d。如图(b)所示。 3) 对三元组表的每一项di(0i 是作业号。假如di设备号为1,则将作业 i 置于 c 的左端末尾,否则置于 c 的右端末尾。如图(c)所示,由两端向中间存放。 a) 三元组表 b) 按处理时间排序 c) 最优作业排列 (0,2,3,1) d) 最优调度方案 该算法是如此经典以至于ACM界已经有该算法的题目,下面是北大PKU POJ 第2751题Saving Endeavour(我校的BOJ上也有,不过是从POJ上照搬过来的): 有2台机器,n件任务,必需先在S1上做,再在S2上做。任务之间先做后做随意。求最早的完工时间。 双机调度问题Johnson算法简析: 1) 把作业按工序加工时间分成两个子集,第一个集合中在S1上做的时间比在S2上少,其 它的作业放到其次个集合。先完成第一个集合里面的作业,再完成其次个集合里的作业。 2) 对于第一个集合,其中的作业依次是按在S1上的时间的不减排列;对于其次个集合, 其中的作业依次是按在S2上的时间的不增排列。 Johnson算法的时间取决于对作业集合的排序,因此,在最怀状况下算法的时间困难度为O(nlogn),所需的空间困难度为O(n)。 c语言代码如下: #include #include #include using namespace std; const int MAXN=10005; struct TNode int s1,s2; wsMAXN; int topf,tops; int n; bool operator if (x.s1=y.s2) return true; if (x.s1=x.s2&&y.s1>=y.s2) return x.s2>y.s2; return false; int max(int x,int y) return x>y?x:y; void Work() sort(ws,ws+n); int i,t1=0,t2=0; for (i=0;i t1+=ws.s1; t2=max(t1,t2)+ws.s2; printf("%dn",t2); void Read() int i; while (scanf("%d",&n)&&n) for (i=0;i scanf("%d%d",&ws.s1,&ws.s2); Work(); int main() Read(); return 1;

    注意事项

    本文(2023年最优流水作业调度问题-流水作业调度问题.docx)为本站会员(l***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开