📜  近似算法

📅  最后修改于: 2021-09-28 10:06:04             🧑  作者: Mango

概述 :
近似算法是一种处理优化问题的 NP 完备性的方法。逼近算法的目标是在多项式时间内尽可能接近最优解。

近似算法的特点
在这里,我们将讨论近似算法的特点如下。

  • 近似算法保证在多项式时间内运行,但它不能保证最有效的解决方案。
  • 近似算法保证寻找高精度和高质量的解决方案(例如在最佳值的 1% 以内)
  • 近似算法用于在多项式时间内获得最接近优化问题(最佳)解的答案

近似算法的性能比:
在这里,我们将讨论近似算法的性能比如下。

场景一:

  1. 假设我们正在研究一个优化问题,其中每个潜在的解决方案都有一个成本,我们希望找到一个接近最优的解决方案。根据问题,我们可以将最优解定义为具有最大可能成本或具有最小可能成本的最优解,即问题可以是最大化或最小化问题。
  2. 如果对于任何输入大小 n,算法产生的解决方案的成本 C 在成本 C* 的因子 P(n) 之内,我们就说一个问题的算法具有适当的 P(n) 比率最优解如下。
max(C/C*,C*/C)<=P(n)

场景 2:
如果算法达到 P(n) 的逼近比,则我们称其为 P(n) 逼近算法。

  • 对于最大化问题,0< C < C×,C/C* 的比率给出了最优解的成本大于近似算法的成本的因子。
  • 对于最小化问题,0< C* < C,C/C* 的比率给出了近似解的成本大于最优解的成本的因子。

近似算法的一些例子:
在这里,我们将讨论近似算法的一些示例,如下所示。

  1. 顶点覆盖问题
    在顶点覆盖问题中,优化问题是选择应该覆盖图中所有边的最少顶点数。
  2. 旅行商问题——
    在旅行商问题中,最优化问题是推销员必须选择一条成本最低的路线。
  3. 集合覆盖问题
    这是一个优化问题,可以对许多需要分配资源的问题进行建模。这里,使用对数近似比率。
  4. 子集和问题
    在子集和问题中,优化问题是找到一个{x1,×2,×3…xn}的子集,其和尽可能大但不大于目标值t。