【问题标题】:Greedy Set Coverage algorithm built by *removing* sets由 *removing* 集构建的贪婪集覆盖算法
【发布时间】:2013-02-04 07:01:25
【问题描述】:

我正在尝试使用贪心算法实现集合覆盖问题的解决方案。

它的经典贪心逼近算法是

input: collection C  of sets over universe U  , costs: C→R ≥0    
output: set cover S   
1. Let S←∅.  
2. Repeat until S covers all elements:  
3.   Add a set s to S, where s∈C maximizes the number of elements in s not yet covered by set s in S, divided by the cost c(s). 
4. Return S.  

我的问题分为两部分:

一个。反向执行算法是否是有效算法,即

input: collection C  of sets over universe U  , costs: C→R ≥0    
output: set cover S   
1. Let S←C  .  
2. Repeat until there are no s∈S such that S-s=S (i.e. all elements in s are redundant):  
3.   Remove a set s from S, where s∈S minimises the number of elements in s, divided by the cost c(s). 
4. Return S.  

b.问题的本质是很容易得到 C 并且冗余集的数量有限(removal 算法会表现更好吗?

【问题讨论】:

标签: algorithm greedy set-cover


【解决方案1】:

该算法肯定会返回一个有效的集合覆盖,因为它在每一步都会检查 s 的所有元素是否都是冗余的。 直觉上我觉得 b 部分是正确的,尽管我无法为它写出正式的证明。阅读Vijay Vazirani 的第 2 章,因为它可能有助于分析部分。

【讨论】:

  • 感谢您的回答。直观地说,如果要删除的集合少于最后剩余的集合,它会更快。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多