整數規划模型近似求解帶權點覆蓋問題


詳細內容參考:《算法導論 第二版-中文版》第644頁內容

一,基本介紹

1,點覆蓋問題屬於NPC問題,目前還沒有多項式時間算法精確地求解該問題。因而,下面介紹了一種近似解法,可以在多項式時間內找到點覆蓋問題的一個近似解,該近似解有多么近似呢?最后證明該近似解不會超過精確解的兩倍。

 

2,點覆蓋的定義:

對於圖G=(V,E),點覆蓋是由G中的頂點組成的一個集合。該集合中的點關聯了圖G中所有的邊(即,從圖G中任取一條邊(u,v),該邊關聯點兩個頂點:頂點u 和 頂點v 。則,u、v 中至少有一個在點覆蓋集合中)。

注意:1)點覆蓋中的點是可以鄰接的。2)點覆蓋必須要覆蓋圖中所有的邊。3)最小點覆蓋即尋找一個具有頂點數目最少的點覆蓋集合

 

二,利用線性規划來建模最小帶權點覆蓋問題

1,對於圖G=(V,E),對圖中每一個頂點v belongs to V,定義函數 x(v) belongs to [0,1],且 x(v) = 0表示頂點v不在點覆蓋中; x(v) = 1 表示頂點v在點覆蓋中。

2,對圖中任一條邊(u,v) belongs to E,由點覆蓋定義,頂點u、頂點v 至少有一個必須在點覆蓋中 ,因此:x(u) + x(v) >=1

因而得到最小權值點覆蓋的規划模型:其中w(v) 表示頂點v的權值。

而在實際的問題中,x(v)只能取0或者1,這里用 0<=x(v)<=1 替代它,這是可以的。因為:前者是后者的一個特例。前者稱為0-1整數規划,后者為普通的線性規划。因此,線性規划中的最優解是0-1整數規划最優解的一個下界(因為線性規划最優解包含了0-1整數規划最優解)。

而求最小權值點覆蓋問題的最優解即為求0-1整數規划問題的最優解,因此,線性規划中的最優解是最小權值點覆蓋問題的最優解的一個下界。

 

三,用線性規划的解來構造最小權值點覆蓋問題的近似解算法

偽代碼參考:《算法導論 第二版-中文版》第645頁內容

對於每一個頂點v,都會求得一個x(v)的值。若,x(v)>=1/2 ,則將該頂點加入到點覆蓋集合中,否則舍去頂點v,直至圖G中所有的頂點都處理完畢。此時得到的頂點集合C即為最小權值點覆蓋問題的近似解的點覆蓋集合。

 

四,證明第三步中求得的頂點集合C是最小權值點覆蓋問題的二倍近似解

設 C* 是最小權值點覆蓋問題的一個最優解,Z 是線性規划的一個最優解, C是最小權值點覆蓋問題的近似解

1)由於最小權值點覆蓋問題的一個最優解是線性規划的一個可行解,故:Z<=W(C*)(W為求權值的函數)

2) 為什么第三步中求得的集合C就是一個點覆蓋呢?因為對任意邊(u,v) belongs to E,有x(u)+x(v)>=1,即在x(u)和x(v)中至少有一個的值大於1/2。因此,頂點u、v 至少有一個會被加入到集合C中,從而使得圖G中的每一條邊都會被覆蓋。

3)由:


及Z<=W(C*)

知:W(C)<= 2Z <=2W(C*) 即近似解C的權值W(C) 小於等於 二倍最優解C*的權值.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM