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

新手爱学习 2013-09-23 11:40:58
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))。这就证明了流水作业调度问题具有最优子结构的性质。?
二者相等为什么说明具有最优子结构性质?

这些部分不是很懂。望指点。
...全文
733 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
新手爱学习 2013-09-24
引用 6 楼 shuyechengying 的回复:
[quote=引用 5 楼 u012019214 的回复:] [quote=引用 4 楼 shuyechengying 的回复:] [quote=引用 2 楼 u012019214 的回复:] [quote=引用 1 楼 shuyechengying 的回复:] 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’)的最优解。 即有最有子结构。 麻烦您再看看。 [/quote] 这里最好说π(1)和π'的组合调度小于π[/quote] 恩,谢谢!再请教您一下。 证明中描述成π(1)和π'的组合调度小于 π ,就是为了强调,并证明最优解包含子结构的最优解,是么?[/quote] 因为假设的是π这个完整调度安排是最优的,用反证法证明它包含子结构的最优解,你必须提出另一个完整调度来和π比较,而π(1)+π'才是完整的。[/quote] 非常谢谢您!清除了。 结贴。
  • 打赏
  • 举报
回复
shuyechengying 2013-09-24
引用 5 楼 u012019214 的回复:
[quote=引用 4 楼 shuyechengying 的回复:] [quote=引用 2 楼 u012019214 的回复:] [quote=引用 1 楼 shuyechengying 的回复:] 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’)的最优解。 即有最有子结构。 麻烦您再看看。 [/quote] 这里最好说π(1)和π'的组合调度小于π[/quote] 恩,谢谢!再请教您一下。 证明中描述成π(1)和π'的组合调度小于 π ,就是为了强调,并证明最优解包含子结构的最优解,是么?[/quote] 因为假设的是π这个完整调度安排是最优的,用反证法证明它包含子结构的最优解,你必须提出另一个完整调度来和π比较,而π(1)+π'才是完整的。
  • 打赏
  • 举报
回复
新手爱学习 2013-09-24
引用 4 楼 shuyechengying 的回复:
[quote=引用 2 楼 u012019214 的回复:] [quote=引用 1 楼 shuyechengying 的回复:] 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’)的最优解。 即有最有子结构。 麻烦您再看看。 [/quote] 这里最好说π(1)和π'的组合调度小于π[/quote] 恩,谢谢!再请教您一下。 证明中描述成π(1)和π'的组合调度小于 π ,就是为了强调,并证明最优解包含子结构的最优解,是么?
  • 打赏
  • 举报
回复
shuyechengying 2013-09-23
引用 2 楼 u012019214 的回复:
[quote=引用 1 楼 shuyechengying 的回复:] 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’)的最优解。 即有最有子结构。 麻烦您再看看。 [/quote] 这里最好说π(1)和π'的组合调度小于π
  • 打赏
  • 举报
回复
shuyechengying 2013-09-23
则存在另一个序列 π',起调度时间小于π 。 是什么意思
  • 打赏
  • 举报
回复
新手爱学习 2013-09-23
引用 1 楼 shuyechengying 的回复:
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’)的最优解。 即有最有子结构。 麻烦您再看看。
  • 打赏
  • 举报
回复
shuyechengying 2013-09-23
1. T'是剩下任务的一种调度,它用时自然不能小于最优调度。 2. 3.是反证法,如果剩下的任务不是最优调度(即如果T’>T(S,bπ(1))),则π(1),π'(2),…,π'(n)要优于π调度,这有我们假设π调度矛盾,所以T’=T(S,bπ(1)),即剩下的任务也必须以最优调度才行。 实际上这是分成两个决策过程,先安排任务1,这对后面任务的安排没有影响,后面的安排必须最优整体才最优。
  • 打赏
  • 举报
回复
相关推荐
发帖
数据结构与算法

3.2w+

社区成员

数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
帖子事件
创建了帖子
2013-09-23 11:40
社区公告
暂无公告