8.22
問題描述: 在任務排程,常常會用到圖。其中節點應用於任務,任務i到j的有向邊表示i是j的先期條件。這樣的圖描述了排程問題中的任務先後關係(約束) 。顯然,乙個排程是可行的當且僅當該圖無環;如果排程不可行,我們需要使其無環所需的最小約束數量。
給定乙個有向圖g =(v,e),子集e'⊆e稱為乙個反饋弧集,反饋弧集是指將其移除後,將使得g無環。
反饋弧集(fas):給定乙個有向圖g =(v,e)和預算b,求包含不超過b條邊的反饋弧集合——如果這樣的集合存在。
(a)證明 fas是np的
(b)證明,如果g包含乙個大小b頂點覆蓋,然後g' 包含反饋弧集尺寸b.
然後,認為g必須包含乙個頂點覆蓋的大小相同的莫迪fied反饋弧集。)
證明:a) 顯然 fas 是可在多項式時間內驗證的,因此屬於np。
b) 設g
的乙個大小為b
的頂點覆蓋為c
,對於任意頂點vi∈
c ,設其在g
' 中相對應的頂點為wi和wi
',則將邊(wi,wi
') 新增到e
'。對c
中的每個頂點都這樣處理後,所得到的邊集e
'即是g
' 的乙個大小為b
的feedback arc set。因為對於頂點wi和wi
',當去掉邊(wi,wi
')後,所有與w i相連的邊都不可能位於任何乙個環中,因為w i不存在出邊,同樣,所有與wi
'相連的邊也不可能位於任何乙個環中,因為wi
' 不存在入邊。
c) 對於g
中的任意一條邊(vi ,
vi』),設其在g
' 中相對應的頂點為wi
,wi
'、w j、
wj ' ,相對應的邊為(
wi ,
wi ')
、( wj,
wj ')、(
wi ',
wj) 、(
wj ',
wi)。若
e '是
g' 的乙個大小為
b 的feedbackarc set,顯然,在這四條邊中至少有一條邊
e屬於e ',否則就會形成環,而邊
e必然有個端點屬於 。若
wi 是
e 的端點,則將
vi加入到
c ,否則將
vj 加入到
c 。容易看出,在經過上述處理後,
c 即是
g 的乙個大小不超過
b 的頂點覆蓋。
《演算法概論》習題8 22
題目 在任務排程中,常常會用到圖。其中節點對應任務,任務i到任務j的有向邊表示i是j的先期條件。這樣的圖描述了排程問題中的任務先後關係 約束 顯然,乙個排程是可行的當且僅當該圖無環 如果排程不可行,我們需要求使其無環所需的最小約束數量。給定乙個有向圖g v,e 子集e e稱為反饋弧集合是指 將其移除...
演算法概論習題 8 8解答
在精確的4sat exact 4sat 問題中,輸入為一組子句,每個字句都是恰好4個文字的析取,且每個變數最多在每個子句中出現一次。目標是求它的滿足賦值 如果該賦值存在。證明精確的4sat是np 完全問題。在證明精確的4sat問題是np 完全問題前,先得證明其屬於np問題。因為exact 4sat和...
《演算法概論》習題8 12題解
8.12 k 生成樹問題是這樣的 輸入 無向圖g v,e 輸出 g的乙個生成樹,其中所有節點度數都不超過k 如果該樹存在。請證明對任意k 2 a k 生成樹問題是乙個搜尋問題。b k 生成樹問題是np 完全的。a 對於例項i,其任意乙個解s,遍歷s的每個結點,檢查其度數是否不超過k,這是多項式時間內...