回忆一下今年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=162\times 2\times 4=162×2×4=16种。
→\rightarrow→ 题4:设计一个FPT算法使得kkk顶点覆盖的复杂度低于O(2k)O(2^k)O(2k)(5分)
解:习题原题,没什么好说的,就是考虑P3P_3P3 path构造bounded search tree,然后用斐波那契数列算通项公式。
→\rightarrow→ 题5:给出5个和Dominating Set相关的parameterized problem。(5分)
解:凑了5个相关的,考完就忘了。
→\rightarrow→ 题6:设计一个FPT算法判断一个cubic graph是否存在kkk个点的点集V′V'V′,使得G[V′]G[V']G[V′]是一颗树,并且树内部的节点度都是333。(5分)
解:用random separation,随机染色。解集SSS大小为kkk全染成红色,邻居N(S)N(S)N(S)全染成蓝色则构成一个good separation。那么这个可以在多项式时间内找到解(只要检查一下红色component是否包含满足条件的tree即可)。再套上概率24ktO(log(t))logn2^{4k}t^{O(log(t))}log n24ktO(log(t))logn去随机化,得到一个解。
→\rightarrow→ 题7:证明下述问题是w[1]-hard:“给定一个kkk独立集,寻找一个大小比kkk大的独立集”。(5分)
解:类似习题,因为kkk独立集是w[1]-hard,如果原问题不是w[1]-hard,我们可以将k=k−1k=k-1k=k−1,不断缩小,最终k=1k=1k=1的时候随意返回一个点,从而kkk独立集不是w[1]-hard。
→\rightarrow→ 题8:没来得及看题 orz… (5分)
解:完全没印象
→\rightarrow→ 题9:题意不太确定,大概是“给定一个图,随意的给每个顶点染上1到ttt颜色,是否存在kkk个点的点集V′V'V′,使得G−V′G-V'G−V′中不存在alternate path”。证明这个问题是NPC,并且设计一个FPT算法。(10分)
解:不会
507

被折叠的 条评论
为什么被折叠?



