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

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

这些部分不是很懂。望指点。
...全文
818 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
新手爱学习 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,这对后面任务的安排没有影响,后面的安排必须最优整体才最优。
书名:算法设计与分析 作者:王晓东 图书目录 第1章 算法引论 1.1 算法与程序 1.2 表达算法的抽象机制 1.3 描述算法 1.4 算法复杂性分析 小结 习题 第2章 递归与分治策略 2.1 速归的概念 2.2 分治法的基本思想 2.3 二分搜索技术 2.4 大整数的乘法 2.5 Strassen矩阵乘法 2.6 棋盘覆盖 2.7 合并排序 2.8 快速排序 2.9 线性时间选择 2.10 最接近点对问题 2.11 循环赛日程表 小结 习题 第3章 动态规划 3.1 矩阵连乘问题 3.2 动态规划算法的基本要素 3.3 最长公共子序列 3.4 凸多边形最优三角剖分 3.5 多边形游戏 3.6 图像压缩 3.7 电路布线 3.8 流水作业调度 3.9 0-1背包问题 3.10 最优二叉搜索树 小结 习题 第4章 贪心算法 4.1 活动安排问题 4.2 贪心算法的基本要素 4.2.1 贪心选择性质 4.2.2 最优子结构性质 4.2.3 贪心算法与动态规划算法的差异 4.3 最优装载 4.4 哈夫曼编码 4.4.1 前缀码 4.4.2 构造哈夫曼编码 4.4.3 哈夫曼算法的正确性 4.5 单源最短路径 4.5.1 算法基本思想 4.5.2 算法的正确性和计算复杂性 4.6 最小生成树 4.6.1 最小生成树性质 4 6.2 Prim算法 4.6.3 Kruskal算法 4.7 多机调度问题 4.8 贪心算法的理论基础 4.8.1 拟阵 4.8.2 带权拟阵的贪心算法 4.8.3 任务时间表问题 小结 习题 第5章 回溯法 5.1 回溯法的算法框架 5.1.1 问题的解空间 5.1.2 回溯法的基本思想 5.1.3 递归回溯 5.1.4 迭代回溯 5.1.5 子集树与排列树 5.2 装载问题 5.3 批处理作业调度 5.4 符号三角形问题 5.5 n后问题 5.6 0-1背包问题 5.7 最大团问题 5.8 图的m着色问题 5.9 旅行售货员问题 5.10 圆排列问题 5.11 电路板排列问题 5.12 连续邮资问题 5.13 回溯法的效率分析 小结 习题 第6章 分支限界法 6.1 分支限界法的基本思想 6.2 单源最短路径问题 6.3 装载问题 6.4 布线问题 6.5 0-1背包问题 6.6 最大团问题 6.7 旅行售货员问题 6.8 电路板排列问题 6.9 批处理作业调度 小结 习题 第7章 概率算法 7.1 随机数 .2 数值概率算法 7.2.1 用随机投点法计算л值 7.2.2 计算定积分 7.2.3 解非线性方程组 7.3 舍伍德算法 7.3.1 线性时间选择算法 7.3.2 跳跃表 7.4 拉斯维加斯算法 7.4.1 n后问题 7.4.2 整数因子分解 7.5 蒙特卡罗算法 7.5.1 蒙特卡罗算法的基本思想 7.5.2 主元素问题 7.5.3 素数测试 小结 习题 第8章 NP完全性理论 8.1 计算模型 8.1.1 随机存取机RAM 8.1.2 随机存取存储程序机RASP 8.1.3 RAM模型的变形与简化 8.1.4 图灵机 8.1.5 图灵机模型与RAM模型的关系 8.1.6 问题变换与计算复杂性归约 8.2 P类与NP类问题 8.2.1 非确定性图灵机 8.2.2 P类与NP类语言 8.2.3 多项式时间验证 8.3 NP完全问题 8.3.1 多项式时间变换 8.3.2 Cook定理 8.4 一些典型的NP完全问题 8.4.1 合取范式的可满足性问题 8.4.2 3元合取范式的可满足性问题 8.4.3 团问题 8.4.4 顶点覆盖问题 8.4.5 子集和问题 8.4.6 哈密顿回路问题

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧