近似算法可能会给输出带来一定的恒定因子。这比精确算法要令人满意的多。
但是,时间复杂度忽略了恒定因素。
所以我想如果下面的诀窍是可能的,或者使用,解决了一些问题,:
- 使用近似算法求解问题以得到常数因子之内的解S;
- 使用精确的算法来解决问题,其运行时间取决于S的权重,但是只要S是正确的解决方案就可以使用。
这样,近似值是精确算法的“子过程”,并且在步骤2中吞噬了在步骤1中丢失的常数因子。
近似算法可能会给输出带来一定的恒定因子。这比精确算法要令人满意的多。
但是,时间复杂度忽略了恒定因素。
所以我想如果下面的诀窍是可能的,或者使用,解决了一些问题,:
这样,近似值是精确算法的“子过程”,并且在步骤2中吞噬了在步骤1中丢失的常数因子。
Answers:
从参数化的复杂性的一个例子是一个核心化的顶点覆盖问题使用Nemhauser和羊蹄的定理。
在最小顶点覆盖问题中,我们得到了无向图G,我们需要找到最小大小为G的顶点覆盖。无向图的顶点覆盖是接触所有边缘的顶点子集。
这是在第一阶段使用近似值的精确算法。
阶段1:建立最小顶点覆盖问题的整数线性规划公式。众所周知(或容易显示),线性规划松弛的基本最佳解决方案是半积分(即,每个坐标为0、1或1/2)。可以通过用于线性规划的常规多项式时间算法找到这种基本的最佳解决方案(或者在这种特殊情况下,我们可以将其表达为网络流量问题,因此可以在多项式时间内组合求解)。有了这样一个基本的最优解,我们将其四舍五入以获得原始整数线性规划问题的可行解。令S为对应的顶点子集。值得注意的是,S是给定的最小顶点覆盖实例的2近似值。
阶段2:在由S引起的子图中找到最小顶点覆盖(例如,穷举搜索)。Nemhauser和Trotter的一个定理指出,该子图包含原始输入图的最优解。因此,遵循了这种方法的正确性。
您可以参考Niedermeier撰写的有关固定参数算法的书。