《演算法概論》習題8 22

2021-08-03 07:22:10 字數 1424 閱讀 2644

題目:在任務排程中,常常會用到圖。其中節點對應任務,任務i到任務j的有向邊表示i是j的先期條件。這樣的圖描述了排程問題中的任務先後關係(約束)。顯然,乙個排程是可行的當且僅當該圖無環;如果排程不可行,我們需要求使其無環所需的最小約束數量。

給定乙個有向圖g=(v,e),子集e』⊆e稱為反饋弧集合是指:將其移除後將使得g無環。

反饋弧集合(feedback arc set,簡稱fas)問題:給定有向圖g=(v,e)和預算b,求包含不超過b條邊的反饋弧集合——如果這樣的集合存在。

證明 fas屬於np

證明:拓撲排序的時間複雜度為o(e+v),可以通過它來驗證乙個圖是否無環,即fas存在多項式時間的驗證演算法,所以fas屬於np。

通過將頂點覆蓋問題規約為fas,可以證明fas是np-完全的。給定乙個頂點覆蓋例項(g,b),我們如下構造乙個fas例項(g』,b):如果g=(v,e)包含n個頂點v1,…vn,則生成乙個包含2n個頂點w1,w1』,…wn,wn』和n+2|e|條邊的有向圖g』=(v』,e』),其中的邊為:

證明如果g包含規模為b的頂點覆蓋,則g』有規模為b的反饋弧集合。

證明:根據題設中的規約,可以構造出乙個簡單的g和g』:

根據構造的g和g』,結合規約,可以得出,對於g』中的頂點wi的出度為1,唯一的出邊指向wi』;而頂點wi』的入度為1,唯一的入邊從wi出發。

假設c是g的乙個規模為b的頂點覆蓋集,對於任意頂點vi∈c,將邊(wi,wi』)新增到e』,則e』就是要求的g』的乙個規模為b的fas。因為將(wi,wi』)去掉之後,wi不再有出邊,wi』也不再有入邊,即wi的出度變為0,不可能在乙個環中,而wi』的入度也變為0,不可能在任何乙個環中,即如果g包含規模為b的頂點覆蓋,則g』有規模為b的反饋弧集合,得證。

證明如果g』包含規模為b的頂點覆蓋,則g』有規模不超過b的頂點覆蓋。

根據(b)中構造的g和g』,可以看到g中簡單的邊(v1,v2)在g』中對應4個頂點w1、w1』、w2、w2』,以及涉及的4條邊,推廣而言,g中的邊(vi,vj)在g』中對應wj、wj』、wj、wj』四個頂點,以及涉及的邊(wi,wi』)、(wj,wj』)、(wi』,wj) 、(wj』,wi)。設e』是g』的乙個規模為b的

fas,顯然,這4條邊中必定有一條邊e在集合e』中,否則就一定會形成環,而且,參考構造的g』,e必然有乙個端點是wi或wj。

現構造以下規則,若wi是e的端點,則將vi新增至c,否則將vj新增到

c,重複以上操作,那麼根據定義,c就是g的乙個規模不超過b的頂點覆蓋,得證。

演算法概論習題解答8 22

8.22 問題描述 在任務排程,常常會用到圖。其中節點應用於任務,任務i到j的有向邊表示i是j的先期條件。這樣的圖描述了排程問題中的任務先後關係 約束 顯然,乙個排程是可行的當且僅當該圖無環 如果排程不可行,我們需要使其無環所需的最小約束數量。給定乙個有向圖g v,e 子集e e稱為乙個反饋弧集,反...

《演算法概論》習題8 19

問題描述 所謂風箏圖是這樣的,其頂點數為偶數,如2n,且其中的n個頂點構成了乙個團,剩餘的n個頂點則由一條稱為尾巴的路徑連線,尾巴的某個端點與團的乙個頂點相連。給定乙個圖和目標g,風箏圖問題要求圖的乙個包含2g個頂點的風箏子圖。請證明該問題是np 完全。解答 可以將團問題歸約到 kite 問題。若要...

《演算法概論》習題8 12題解

8.12 k 生成樹問題是這樣的 輸入 無向圖g v,e 輸出 g的乙個生成樹,其中所有節點度數都不超過k 如果該樹存在。請證明對任意k 2 a k 生成樹問題是乙個搜尋問題。b k 生成樹問題是np 完全的。a 對於例項i,其任意乙個解s,遍歷s的每個結點,檢查其度數是否不超過k,這是多項式時間內...