集合覆盖近似算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cx
xS
k i 1
(ui1
ui ) | Si
(S1
1 S2
... Si1 ) |
• 注意到|Si - (S1∪S2∪···∪Si-1)|≥ |S - (S1∪S2∪···∪Si-1)| =ui-1,
•
因为贪心算法中对 元素。由此可得:
Si
的选择保证了Si比任意集合
S
覆盖更多的
cx
xS
k
(ui1
i 1
ui
)
1 ui1
10
集合覆盖近似度的证明(6)
• (6)由前式可得:
11
集合覆盖近似度的证明(7)
• Corollary 35.5 • GREEDY-SET-COVER is a polynomial-
time (ln |X|+ 1)-approximation algorithm. • Proof Use inequality (A.14) and Theorem
优解DS,近似度为(ln |X|+ 1)。 • (2)利用Steiner Tree算法将前面所得的
近似最优解DS连成一个连通的点集,即得 到一个较好的连通支配集CDS。
14
• 再见
再见
15
1 cx | Si (S1 S2 ... Si1 ) |
6
集合覆盖近似度的证明(2.2)
• 一个计算cx的示例。例如按顺序选择S1、S2、S3,则分 配给a、e、f、h的代价分别为1/4,分配给b、d、g的代价 为1/3,分配给c的代价为1。总代价∑cx为3。若按其它顺 序选择不同集合(如最优解的某个顺序),则cx可能会重 复,因此这种选择下的∑cx一定大于等于3。
• 分配给最优覆盖的代价为: cx SC*xS
• 由于每一个x∈X都至少在一个集合S∈C*中,因
此有:
cx cx
SC*xS
xX
• 将上面的两个不等式组合起来,有: | C | cx SC*xS 8
集合覆盖近似度的证明(4)
• (4)证明的余下部分关键在于以下的不等 式,稍后再对其进行证明。对属于F的任何
集合覆盖问题
• 许多问题如点覆盖,支配集等都是集合覆 盖问题的特例。
X a b c d e f g h
S1 1
11
1
S 2
1
1
1 1
S3
1
1
S4 1
1
1 1
S5 1
1
S 6
11
1
1
集合覆盖问题
• Set-Cover • 下图中,F={S1, S2, S3, S4, S5, S6},一
个最小的集合覆盖为C={S3, S4, S5}。可用 矩阵表示每个子集能覆盖的元素个数。
集合S,有: cx H (| S |) xS
• 根据前面的式子可得:
| C | H (| S |) | C* | H (max{| S |: S F}) SC*
9
集合覆盖近似度的证明(5)
•
((S设S并S中251k且,∪).仍为.S.S,考中未使S2 虑k共被∪u中k任有覆·=的··意u盖∪0某i-的集1的S一-i最)合元|u个为小iS素个所∈下贪的元覆F标心个,素盖,集数和首。因合。i次对=此覆被定于1S盖,S义i 2中算=i所,u的1法.覆.0,.,每选=2盖|,C|一择S.。|.。.|个,于S为k设元1,是,S:S素中有有2u,至元i:u.=.少i.素-,1|SS被≥的i-uS后个i,1,,数。
X a b c d e f g h
cx
1/ 4 1/ 3 1 1/ 3 1/ 4 1/ 4 1/ 3 1/ 4
S1 1
11
1
S 2
1
1
1
1
S3 S4 1
1 1
1
1 1
S5 1
1
S 6
1
1
1
7
集合覆盖近似度的证明(3)
• (3)在算法的每一步中,要产生1个代价,因此
有: | C | cx xX
35.4.
12
集合覆盖近似算法思考题
• Exercises 35.3-4 • Show that the following weaker form of
Theorem 35.4 is trivially true:
| C || C* | max{| S |: S F}
13
集合覆盖的应用
• 求连通支配集 • (1)用GSC算法求得一个支配集的近似最
5
集合覆盖近似度的证明(2.1)
• (2)设Si表示由GSC算法所选出的第i个子 集;在将Si加入C时要产生代价1。将这个 选择Si的代价平均分布于首次被Si覆盖的元 素之上。设cx表示分配给元素x的代价, x∈X。对每一个元素只分配一次代价,即 当它首次被覆盖时分配一个代价。如果x首 次被Si覆盖,则有:
2
Greedy-Set-Cover近似算法
• 在每一阶段都选出能覆盖最多的,未被覆
盖的元素的集合S。 X a b c d e f g h
S1 1
S 2
1
11
1
1
1 1
S3 S4 1
1 1
1
1 1
S5 1
1
S 6
11
1
3
GSC的近似度
• Theorem 35.4 • GREEDY-SET-COVER 是一个多项式时间
的ρ(n)-近似算法,其中
(n) H (max{|S |: S F})
• Corollary 35.5 • GREEDY-SET-COVER是一个多项式时间
的 (ln |X|+ 1)-近似算法。
4
集合覆盖近似度的证明(1)
• 证明: • (1)为了证明其是一个ρ(n)-近似算法,对
每一个由该算法选出的集合赋予一个代价1, 将这一代价平分到初次被覆盖的元素上, 在利用这些代价来导出一个最优集合覆盖 C*的规模和由该算法得到的集合覆盖C的规 模之间的关系。