回憶一下今年CSCI5320的期末試題,方便以後的同學參考。期末考主要是題量太大了,滿分50分的試卷最後兩道大題15分全空了。
題1:給出FPT和Kernelization的定義(4分)
解:參照講義
題2:給出三種設計FPT算法的常用方法(6分)
解:參照講義
題3:給定了一個圖,求這個圖裏有多少個不同的MST(5分)
解:直接Prim或者其他算法時間不夠用。考試我花了5分鐘畫了幾個,放棄了。算出來是16個。
最快的應該是應用“red” rule,對於一個cycle,當中最大權值且唯一的邊最終不會落到解集裏,這樣的邊可以先刪掉。大致可以刪掉五六條邊。
剩下的圖裏總共有12條邊,10個點,所以還得刪掉3條邊。
簡化的圖裏有3個cycle,1)兩條邊最大且相等(2種刪除方案) 2)兩條邊最大且相等(2種刪除方案) 3)四條邊最大且相等(4種刪除方案),所以總共有種。
題4:設計一個FPT算法使得頂點覆蓋的複雜度低於(5分)
解:習題原題,沒什麼好說的,就是考慮 path構造bounded search tree,然後用斐波那契數列算通項公式。
題5:給出5個和Dominating Set相關的parameterized problem。(5分)
解:湊了5個相關的,考完就忘了。
題6:設計一個FPT算法判斷一個cubic graph是否存在個點的點集,使得是一顆樹,並且樹內部的節點度都是。(5分)
解:用random separation,隨機染色。解集大小爲全染成紅色,鄰居全染成藍色則構成一個good separation。那麼這個可以在多項式時間內找到解(只要檢查一下紅色component是否包含滿足條件的tree即可)。再套上概率去隨機化,得到一個解。
題7:證明下述問題是w[1]-hard:“給定一個獨立集,尋找一個大小比大的獨立集”。(5分)
解:類似習題,因爲獨立集是w[1]-hard,如果原問題不是w[1]-hard,我們可以將,不斷縮小,最終的時候隨意返回一個點,從而獨立集不是w[1]-hard。
題8:沒來得及看題 orz… (5分)
解:完全沒印象
題9:題意不太確定,大概是“給定一個圖,隨意的給每個頂點染上1到顏色,是否存在個點的點集,使得中不存在alternate path”。證明這個問題是NPC,並且設計一個FPT算法。(10分)
解:不會