首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

动态规划 流水线作业调度的最优子构造证明不明白

2013-09-28 
动态规划 流水线作业调度的最优子结构证明不明白1、问题描述:n个作业{1,2,…,n}要在由2台机器M1和M2组成的流

动态规划 流水线作业调度的最优子结构证明不明白
1、问题描述:    

     n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。
     2、问题分析

     直观上,一个最优调度应使机器M1没有空闲时间,且机器M2的空闲时间最少。在一般情况下,机器M2上会有机器空闲和作业积压2种情况。设全部作业的集合为N={1,2,…,n}。S是N的作业子集。在一般情况下,机器M1开始加工S中作业时,机器M2还在加工其他作业,要等时间t后才可利用。将这种情况下完成S中作业所需的最短时间记为T(S,t)。流水作业调度问题的最优值为T(N,0)。    

     设π是所给n个流水作业的一个最优调度,它所需的加工时间为 aπ(1)+T’。其中T’是在机器M2的等待时间为bπ(1)时,安排作业π(2),…,π(n)所需的时间。

      记S=N-{π(1)},则有T’=T(S,bπ(1))。

      证明:事实上,由T的定义知T’>=T(S,bπ(1))。若T’>T(S,bπ(1)),设π’是作业集S在机器M2的等待时间为bπ(1)情况下的一个最优调度。则π(1),π'(2),…,π'(n)是N的一个调度,且该调度所需的时间为aπ(1)+T(S,bπ(1))<aπ(1)+T’。这与π是N的最优调度矛盾。故T’<=T(S,bπ(1))。从而T’=T(S,bπ(1))。这就证明了流水作业调度问题具有最优子结构的性质。

1. 由T的定义知T’>=T(S,bπ(1))。
看定义而这好像是相等啊?怎么得出T’>=T(S,bπ(1))?
2.若T’>T(S,bπ(1)),设π’是作业集S在机器M2的等待时间为bπ(1)情况下的一个最优调度
为什么? 
3.T’=T(S,bπ(1))。这就证明了流水作业调度问题具有最优子结构的性质。?
二者相等为什么说明具有最优子结构性质?

这些部分不是很懂。望指点。
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

1. T'是剩下任务的一种调度,它用时自然不能小于最优调度。
2. 3.是反证法,如果剩下的任务不是最优调度(即如果T’>T(S,bπ(1))),则π(1),π'(2),…,π'(n)要优于π调度,这有我们假设π调度矛盾,所以T’=T(S,bπ(1)),即剩下的任务也必须以最优调度才行。
实际上这是分成两个决策过程,先安排任务1,这对后面任务的安排没有影响,后面的安排必须最优整体才最优。


谢谢回复!我顺一下思路你看对么?

题目定义T(S,t)为最优解。
当存在一个最优序列π时,设流水线处理时间为 aπ(1)+T’。 这个问题中 T’就是要处理的子问题。
如果T’具有最优解,即满足最优子结构的性质。 因此下面的问题围绕证明T’有最优解展开。
即正 T’ = T(S,bπ(1))。
因为T(S,bπ(1))为子问题的最优解,则 T’一定是 大于等于T(S,bπ(1))。要证T’ = T(S,bπ(1))只需
证T’ <= T(S,bπ(1)) 即可,随即使用反证法。 假设 T’> T(S,bπ(1)) ,因为 T’这个问题中π是一个最优调度序列,如果T’> T(S,bπ(1))  则存在另一个序列 π',起调度时间小于π 。这与已知π为最优调度序列矛盾。
因此命题得证。 T’ = T(S,bπ(1)) 则说明待解决问题  aπ(1)+T’ 包含子问题(T’)的最优解。
即有最有子结构。

麻烦您再看看。


这里最好说π(1)和π'的组合调度小于π


恩,谢谢!再请教您一下。 
证明中描述成π(1)和π'的组合调度小于 π ,就是为了强调,并证明最优解包含子结构的最优解,是么?

因为假设的是π这个完整调度安排是最优的,用反证法证明它包含子结构的最优解,你必须提出另一个完整调度来和π比较,而π(1)+π'才是完整的。

热点排行