要解释订购技巧,如COMP3121/9101/3821/9801
Lecture Notes; More on Dynamic Programming (DP); LiC: Aleks Ignjatovic; School of Computer Science and Engineering; The University of New South Wales; Sydney,Australia中所述:
我们想证明我们可以按weight + strength
升序重新排列任何合法的盒子堆叠。为此,我们需要显示任何连续对,其中
(1) strength(b_i+1) + weight(b_i+1) < strength(b_i) + weight(b_i)
可以合法地交换
,因为这样我们就可以进行冒泡排序了。换句话说,那
(2) (Sum j=1...i−1 of weight(b_j)) + weight(b_i+1) < strength(b_i)
原始的合法塔楼有
(3) (Sum j=1...i−1 of weight(b_j)) + weight(b_i) ≤ strength(b_i+1)
在两面都添加weight(b_i+1)
(4) (Sum j=1...i−1 of weight(b_j)) + weight(b_i) + weight(b_i+1) ≤ strength(b_i+1) + weight(b_i+1)
用(1)代替右侧
(Sum j=1...i−1 of weight(b_j)) + weight(b_i) + weight(b_i+1) ≤ strength(b_i) + weight(b_i)
取消weight(b_i)
:
(Sum j=1...i−1 of weight(b_j)) + weight(b_i+1) ≤ strength(b_i)
,
“明显”攻击是规范的间接证明:给定存在解决方案,则首先假设贪婪方法不是解决方案。从那里工作到矛盾。
所以...我们给了一系列N
的盒子;我们将按照您的问题陈述中的贪婪顺序为它们编号。
合法堆叠是其中所有2 <= i <= n
的
sum(w(j=i to n)) <= s(i-i)<br>
也就是说,第i-1个盒子可以支撑所有盒子的重量。
鉴于存在合法堆叠,请假设您的贪婪堆叠是不合法的。这告诉您,某些权重条件i
不能满足上述权重条件,但对于不同的盒子顺序,可以满足 的要求。从那个工作到关于贪婪盒子排序的矛盾。
本文链接:https://www.f2er.com/2938129.html