回忆一下今年CSCI5320的期末试题,方便以后的同学参考。期末考主要是题量太大了,满分50分的试卷最后两道大题15分全空了。
→
\rightarrow
→ 题1:给出FPT和Kernelization的定义(4分)
解:参照讲义
→
\rightarrow
→ 题2:给出三种设计FPT算法的常用方法(6分)
解:参照讲义
→
\rightarrow
→ 题3:给定了一个图,求这个图里有多少个不同的MST(5分)
解:直接Prim或者其他算法时间不够用。考试我花了5分钟画了几个,放弃了。算出来是16个。
最快的应该是应用“red” rule,对于一个cycle,当中最大权值且唯一的边最终不会落到解集里,这样的边可以先删掉。大致可以删掉五六条边。
剩下的图里总共有12条边,10个点,所以还得删掉3条边。
简化的图里有3个cycle,1)两条边最大且相等(2种删除方案) 2)两条边最大且相等(2种删除方案) 3)四条边最大且相等(4种删除方案),所以总共有
2
×
2
×
4
=
16
2\times 2\times 4=16
2×2×4=16种。
→
\rightarrow
→ 题4:设计一个FPT算法使得
k
k
k顶点覆盖的复杂度低于
O
(
2
k
)
O(2^k)
O(2k)(5分)
解:习题原题,没什么好说的,就是考虑
P
3
P_3
P3 path构造bounded search tree,然后用斐波那契数列算通项公式。
→
\rightarrow
→ 题5:给出5个和Dominating Set相关的parameterized problem。(5分)
解:凑了5个相关的,考完就忘了。
→
\rightarrow
→ 题6:设计一个FPT算法判断一个cubic graph是否存在
k
k
k个点的点集
V
′
V'
V′,使得
G
[
V
′
]
G[V']
G[V′]是一颗树,并且树内部的节点度都是
3
3
3。(5分)
解:用random separation,随机染色。解集
S
S
S大小为
k
k
k全染成红色,邻居
N
(
S
)
N(S)
N(S)全染成蓝色则构成一个good separation。那么这个可以在多项式时间内找到解(只要检查一下红色component是否包含满足条件的tree即可)。再套上概率
2
4
k
t
O
(
l
o
g
(
t
)
)
l
o
g
n
2^{4k}t^{O(log(t))}log n
24ktO(log(t))logn去随机化,得到一个解。
→
\rightarrow
→ 题7:证明下述问题是w[1]-hard:“给定一个
k
k
k独立集,寻找一个大小比
k
k
k大的独立集”。(5分)
解:类似习题,因为
k
k
k独立集是w[1]-hard,如果原问题不是w[1]-hard,我们可以将
k
=
k
−
1
k=k-1
k=k−1,不断缩小,最终
k
=
1
k=1
k=1的时候随意返回一个点,从而
k
k
k独立集不是w[1]-hard。
→
\rightarrow
→ 题8:没来得及看题 orz… (5分)
解:完全没印象
→
\rightarrow
→ 题9:题意不太确定,大概是“给定一个图,随意的给每个顶点染上1到
t
t
t颜色,是否存在
k
k
k个点的点集
V
′
V'
V′,使得
G
−
V
′
G-V'
G−V′中不存在alternate path”。证明这个问题是NPC,并且设计一个FPT算法。(10分)
解:不会