算法分析第八次作业答案(卜东波)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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题:

相关文档
最新文档