算法分析第八次作业答案(卜东波)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法第八次作业答案
第1题:
第八次作业第一题
1、设叶子结点为s,s 为叶子结点说明图中所有与s 有路径相通的结点已经都被访问到,即前面已经访问的结点已经覆盖了叶子节点s 联结的所有边;又所有分支结点之间的边肯定得到完全覆盖(因为输出为所有分支结点),所以输出覆盖了所有边。
2、将FDS 树的顶点访问序列写出来,例如:
V1→V2→V3→V4→V5→V6→V7→V8→V9→V10→V11 设其中的叶子结点为V4,V9,V11 将访问序列从叶子节点处分开,为 V1→V2→V3→V4
V5→V6→V7→V8→V9 V10→V11
对每个序列间隔着取两点之间的边,为 V1----V2 V3----V4
V5----V6 V7----V8 V9 V10----V11
设所取的这些边的个数为c ,边的集合为A,输出的总的点数为v,可以看出v ≤2c(取所取边的两端点,其中包括所有的输出点和部分叶子节点)。从所取边的两端点观察,A 中的所有边没有重合的端点,最小顶点覆盖(点个数v*)一定会覆盖这些边,所以至少包含A 中的个边的至少一个端点,则c ≤v*。所以v ≤2v*。
第2题: 第3题:
考虑T 的任意序列三元组,如果这些三元组不与之前新增的三元组冲突,则将他们新增。令M 表示该算法返回的集合,M ’表示最优三维匹配。于是M 的大小最少为M ’的三分之一。
因为,每一组三元组(a,b,c)∈M ’至少与M 中的一组三元组相交(否则可以用贪心算法将(a,b,c)新增到M 中)。M 中的一组三元组,最多仅可以与M ’中的三组三元组冲突,因为M ’中的边是不相交的。所以M ’中的边数最多为M 中的三倍。
第4题:
答:将问题转化为以下线性规划问题:
1
m in
n
i
i
i w x
=∑
约束条件:01
1,2,...i x for all i n
≤≤=
:1
1,2,...
i j
i i a B x for all
j n ∈≥=∑
令X 为此问题的解, 1
n
LP i
i
i w w x
==∑为最优值
取{}|1/i i H
a x
b =≥
1) H 是一个击中集
证明:因为有
:1
1,2,...i j
i i a B x for all
j n ∈≥=∑
,而对任意的j
B 至
多只有b 个元素,所以至少有一个i j a B ∈使得
1/i x b ≥,即H 和任意
j
B 有交集
2) H 中元素的总权不超过最小可能的b 倍
证明:
()1
i i n
i i i i i LP a H
a H
i w H
w w bx b w x bw ∈∈==≤
≤=∑
∑
∑
设最优击中集为S ,如果i
a S
∈,则i x =1,否则
i
x =0;显然这些x 满足
约束条件,有()1
i n
LP i
i
i i a S
w w x
w w S =∈≤=
=∑∑
,所以()()w H bw S ≤
第5题:
(1)算法如下:
①若i a B >则将i a 从A 中剔除;
②对A 中的元素按从小到大排序得12{,,,}l A a a a =……;
③对A 中的元素进行累加直到1
j
i i a B =>∑,其中1
1
j i i a B -=≤∑且j a B ≤;
④若1
1
12
j i i a B
-=≥
∑则集合121{,,,}j a a a -……即为所求,否则{}j a 为所求;
(2)算法证明:
若i a B >则i a 不会出现在任何可行解中,故删除A 中大于B 的元素不影响整个求解过程,因最优解集合C 的元素总和不大于B 则由上述算法求得的集合的元素总和不小于最优解集合C 的元素总和的1/2。 (3)算法复杂度:
该算法的时间消耗主要用于集合A中元素的排序,(如堆排序),故运行时间不超过(log)
O n n。
第6题: