带有限期及作业排序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
带有限期及作业排序

带有限期的作业排序? ??? 问题的描述: ??? 带有期限的作业排序要解决的是操作系统中单机、无资源约束且每个作业可在等量的时间内完成的作业调度问题。把这个问题形式化描述为:   ①要在一台机器上处理n个作业,每个作业可以在单位时间内完成   ②每个作业i都有一个期限值di,di0   ③当作业在它规定的期限值前完成,就可以获得的效益pi,pi0   问题求解的目标是:问题的可行解是这n个作业的一个子集合J。J中的每个作业都能在各自的截止期限前完成后,产生一个作业效益之和 。我们的目标就是找到一个子集J,J中的每个作业都能在各自的截止期限前完成,并且使得作业效益值的和最大。这个作业的一个子集合J就是所求的最优解。      带有期限的作业排序的一个例子: ????例3.2 n=4,(p1,p2,p3,p4)=(100,10,15,20),(d1,d2,d3,d4)=(2,1,2,1)。这个问题的最优解为第7个,所允许的处理顺序是:先处理作业4,在处理作业1。在时间0开始处理作业4而在时间2完成对作业1的处理。 ??????????? 可行解 ??????? 处理顺序 ??????? ?效益值 ??????? 1 ???{1} ????????????? 1 ????????? ???100 ??????? 2 ???{2} ???????????? ?2 ???????????? 10 ??????? 3 ???{3} ????????????? 3 ???????????? 15 ??????? 4 ???{4} ?????????? ???4 ????????? ???20 ??????? 5 ???{1,2} ???????? ?2,1?????????? ?110 ??????? 6 ???{1,3} ?????? 1,3或3,1??????? ?115 ??????? 7 ???{1,4} ????????? 4,1 ???????? ??120 ??????? 8 ???{2,3} ????????? 2,3 ????? ?????25 ??????? 9 ???{3,4}?????????? 4,3 ?????????? 35 带有期限的作业排序贪心算法度量标准的选取: 我们的目标是作业效益值的和最大,因此首先把目标函数作为度量标准。首先把作业按照它们的效益值作一个非增次序的排序。以例3.2来说,作业根据效益值排序后为作业1、4、3、2。求解时首先把作业1计入J,由于作业1的期限值是2,所以J={1}是一个可行解。接下来计入作业4。由于作业4的期限值是1而作业1的期限值是2,可以先完成作业4后再完成作业1,所以J={1, 4}是一个可行的解。然后考虑作业3,但是作业3的期限值是2,计入J后就没有办法保证J中的每一个作业都在期限值内完成,因此计入作业3后不能构成一个可行解。同理计入2后也不能构成一个可行解。由分析可知,把目标函数作为度量标准能够得到问题的最优解。   ??? 作业排序算法的概略描述: ??? 算法3.3? ??? procedure GREEDY-JOB(D,J,n) //作业按照p1≥p2≥…≥pn的次序输入,它们的期限值D(i) ≥1, 1≤i≤n, n≥1。J是在它们的截止期限前完成的作业集合。 ??? J←{1} ??? For i←2 to n do ????? If J∪{i}的所有作业都能在它们的截止期限前完成 ?????? Then J←J∪{i} ????? Endif ??? Repeat ??? End GREEDY-JOB ??? 在这个概略的算法中需要解决的关键是如何判断作业i并入J后仍然能够保证J中的所有作业都能够在它们的截止期限前完成。在做这个判断之前先看两个定理。 ??? 定理3.2:算法3.3所描述的贪心方法对于作业排序问题总是得到一个最优解。 ??? 定理3.3:设J是k个作业的集合,б=i1i2…ik是J中作业的一种排列,它使得di1≤di2≤…≤dik。J是一个可行解,当且仅当J中的作业可以按照б的次序而又不违反任何一个期限的情况来处理。 ??? 这两个定理的证明留给读者自行证明。可以参看(《计算机算法基础》(第二版)——余祥宣 崔国华 邹海明著)。   保证J中的所有作业在它们的截止期限前完成的判断分析: ??? 可定义一个数组J,它存放纳入集合J中的作业。假设已经处理了i-1个作业,并且有k个作业已经计入数组J中,分别是J(1), J(2), …, J(k),且有D(J(1))≤D(J(2)) ≤…≤D(J(k))。注意D(J(r))(1≤r≤k)表示计入数组J中的作业r(也就是J(r)表示的那个作业)的期限值。因为已经处理了i-1个作业,所以现

文档评论(0)

liwenhua00 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档