算法与设计第3章详解.ppt

对于一个具体的问题,如何知道是否可用贪心算法解决此问题,以及能否得到问题的最优解?这个问题很难给予肯定的回答。 但是,从许多可以用贪心算法求解的问题中看到这类问题一般具有两个重要的性质:贪心选择性质和最优子结构性质。 对于一个具体问题,要确定它是否具有贪心选择的性质,必须证明每一步所作的贪心选择最终能够导致问题的最优解。 通常首先证明问题的一个整体最优解是从贪心选择开始的,而且作了贪心选择后,原问题简化为一个规模更小的类似子问题。 然后,用数学归纳法证明,通过每一步作贪心选择,最终可得到问题的一个整体最优解。 证明贪心选择后的问题简化为规模更小的类似子问题的关键在于利用该问题的最优子结构性质。 当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。 问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。 定理3.1 如果p1/wl≥ p2/w2 …pn/wn。则算法GREEDY-KNAPSACK对于给定的背包问题实例生成一个最优解。 证明:设X=(x1,…,xn)是GREEDY-KNAPSACK所生成的解。如果所有的xi等于1,显然这个解就是最优解。于是,设j是使xj≠ 1的最小下标。由算法可知,对于1≤ij,xi=1;对于j<i≤n,xi=0。对于j,0≤xj<1。 设i在SI中在t到t+1时刻被调度,在SJ中则在t’到t’+1时刻被调度。

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档