最优时间表问题.ppt

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最优时间表问题 问题描述 一台精密仪器的工作时间为 n 个时间单位。与仪器工作时间同步进行若干仪器维修程序。一旦启动维修程序,仪器必须进入维修程序。如果只有一个维修程序启动,则必须进入该维修程序。如果在同一时刻有多个维修程序,可任选进入其中的一个维修程序。维修程序必须从头开始,不能从中间插入。一个维修程序从第s个时间单位开始,持续 t个时间单位,则该维修程序在第s+t-1个时间单位结束。为了提高仪器使用率,希望安排尽可能少的维修时间。 输入文件示例 输出文件示例 input.txt output.txt 15 6 11 1 2 1 6 4 11 8 5 8 1 11 5 问题分析 最优子结构性质 设( R(t0,T0) , R(t1,T1), … R(tm,Tn)) 是所给最优时间表问题的一个最优解,即不存在tj,使tm+Tntj, 则( R(t0,T0) , R(t1,T1), … R(tm-1,Tn-1))是ttm的最优时间表问题的一个最优解. 反证法,显而易见. 递归关系 设S(i)表示执行R(ti,Tj) 后用于维修的最少时间。则Min S(i) = Min S (i-1) +T(Ri) 简单的说,就是要求在所给的维修集合中选出某一极大相容维修子集合,使其所用时间最少。 对所有维修的起始时间进行排序。(t0,t1,…,tk)(titj,ij)。R(tk,T)表示起始时间为tk,执行时间为T的维修。 算法描述 建立一个n位长的数组S,每位表示一个时间。对任意维修R(tk,T)(tk+Tn),它要么进行,要么不进行。 R(tk,T)要进行,则要么k=0,要么在tk-1到tk之间某点tx有某个维修完成。令S(tk+T-1)=S(tx)+T,表示执行R(tk,T)后所用的维修时间。则可求出所有执行R(tk,T)后的维修时间并求的最小值。以此类推,即可求出所有可能极大相容子集的最少维修时间。 算法时间复杂性: 算法的时间复杂性与工作时间的范围n及维修数k及起分布有关。 n+k=O(n,k)n×k,一般情况下,O(n,k)=n+k.

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档