不提供 2 近似值的集合覆盖问题的输入示例
An example of an input to the set cover problem which does not provide a 2-approximation
我需要一些帮助解决以下问题:
显示集合覆盖问题的输入示例,class 中所示的贪心算法未提供 2 近似值。
贪心算法:
X - 有限集
F - X 的子集族,使得联合给出 X
C - 覆盖 X 的所需最小尺寸集合。
在 wikipedia page 中有一个 3/2
近似示例,介绍了集合覆盖问题的贪心算法。
我们可以看到组成F
的两组集合。 2组('lines'),组成一个分区,每组有一半'points'。和其他 3 组('rectangles'),形成另一个分区,分别为。 2、4 和 8 分。
贪心算法会选择 'rectangles' 因为它从最大的 F
.
集合开始
可以调整此方案以对 'trick' 贪婪算法进行 'worse' 近似。
Recipe:绘制相同的图形,但使用 31 x 2 网格而不是 7 x 2。保持两条线各有一半的点(仍然形成一个分区),并添加两个 'rectangles'(两个最大的,它们将分别在右侧显示 16 和 32 'points')。
贪心算法将 return 5 'rectangles',而最优解将由两条直线组成,因此近似为 5/2 > 2
。
请注意,这个过程可以无限扩展(使用 (2^n)-1 per 2
网格),因此您可以证明集合覆盖的贪心算法不是 k
-近似值,对于任何数字k
.
我需要一些帮助解决以下问题:
显示集合覆盖问题的输入示例,class 中所示的贪心算法未提供 2 近似值。
贪心算法:
X - 有限集
F - X 的子集族,使得联合给出 X
C - 覆盖 X 的所需最小尺寸集合。
在 wikipedia page 中有一个 3/2
近似示例,介绍了集合覆盖问题的贪心算法。
我们可以看到组成F
的两组集合。 2组('lines'),组成一个分区,每组有一半'points'。和其他 3 组('rectangles'),形成另一个分区,分别为。 2、4 和 8 分。
贪心算法会选择 'rectangles' 因为它从最大的 F
.
集合开始
可以调整此方案以对 'trick' 贪婪算法进行 'worse' 近似。
Recipe:绘制相同的图形,但使用 31 x 2 网格而不是 7 x 2。保持两条线各有一半的点(仍然形成一个分区),并添加两个 'rectangles'(两个最大的,它们将分别在右侧显示 16 和 32 'points')。
贪心算法将 return 5 'rectangles',而最优解将由两条直线组成,因此近似为 5/2 > 2
。
请注意,这个过程可以无限扩展(使用 (2^n)-1 per 2
网格),因此您可以证明集合覆盖的贪心算法不是 k
-近似值,对于任何数字k
.