得到仍旧是最优解
用a[1]替换b[1],得到仍旧是最优解.
假设对于k,存在最优解A包含算法前k步选择的基站位置,
{[1][2]
A={a[1],a[2],…,a[k]}∪B,
其中a[1],a[2],…,a[k]覆盖了距离d
1,d2,…,d j的房子. 那么,B是
=*
L{d j+1,d j+2,…,d n}的最优解,否则若有关于L的更优解B,用B*替换B就得到A*,且|A*|<|A|,与A的最优性矛盾. 根据归纳基础,存在L的最优解B’={a[k+1],…,},|B’| = |B|. 于是A’={a[1],a[2],…,a[k]}∪B’ ={a[1],a[2],…,a[k],a[k+1],…}
也是最优解. 命题对k+1也为真.
根据归纳法命题对任何k成立.
3
464.6
最小等待时间按加工时间从小到大对作业排序使得)12按加工时间从小到大对作业排序,使得t (i ) ≤t (i +1),i = 1, 2, … , n −1. 按照标号从小到大的次序安排所有的作业. 时间为O (n log n ).
证明
. OPT =(i , i , …,i ,若存在逆序i , i i k . 交换i j 与i k ,得到解OPT 1. 那么总的等待时间之差是因此0))(()()(1≤−−=−j k t t OPT Time OPT Time j k i i OPT 1也是最优解.
至多n (n −1)/2次交换,去除所有的逆序,就可以使得OPT 变到贪心法的解.
4
49
4.9 进程测试
. 取第一个进程的截止时间作为第一把进程按截止时间排序取第个进程的截止时间作为第
个测试点, 然后顺序检查能够被这个点测试的进程(开始时
间小于等于测试点),直到找到下一个不能被测试到的进程等直个
为止. 取这个进程的截止时间作为下一个测试点. …,直到检
查完所有的进程为止
证明按照步数归纳即可. 伪码略.
时间W(n)=O(n log n)
t1t2t3
51⎧≤++32112243x x x 5.1 求解⎩⎨为非负整数321,,x x x 34个.
(0,0,0), (0,0,1), (0,0,2), (0,0,3), (0,0,4), (0,0,5), (0,0,6),(010)
(011)(012)(013)(014)(0,1,0), (0,1,1), (0,1,2), (0,1,3), (0,1,4)(0,2,0), (0,2,1), (0,2,2)
(030)
(0,3,0),(1,0,0), (1,0,1), (1,0,2), (1,0,3), (1,0,4)(1,1,0), (1,1,1), (1,1,2)(,,),
(,,),(,,)(1,2,0),
(2,0,0), (2,0,1), (2,0,2), (2,0,3)()
()(
)()(2,1,0), (2,1,1)
(3,0,0), (3,0,1)
6(4,0,0)
525.2
配件选择问题回朔法:按照价格从小到大对零件排序. 设解向量为, x i =j 表示第i 号零件由j 号供应商供货. 1≤x ≤m . j 结点表示已经选择了前k 号零件的供应商, 约束条件:选择了下一个零件后总价格不超过120.约束条件:选择了下个零件后总价格不超过120. 代价函数为
∑n k ∑+===+k j jl m l i ix w w
i 1,...2,11}
{min 其中w jl 表示第l 个供应商j 号零件的重量. 树省略解为<3123>价值为119
7
树省略,解为<3,1,2,3>, 总重量为31,价值为119.
53L i
5.3 Latin方
,x2,…,x12>, 有24 个Latin方.
>24
解向量为1
<2,1,4,3,…>: 4个<2,3,4,1,…>: 2个,,,,个,,,,个
<2,4,1,3,…>: 2<3,1,4,2,…>: 2
<3,4,1,2,…>: 4个<3,4,2,1,…>: 2个
<4123>:2<4312>:2
<4,1,2,3,…>: 2个<4,3,1,2,…>: 2个
<4,3,2,1,…>: 4个