- 算法设计与分析
- 家
- 算法基础知识
- DAA - 简介
- DAA - 算法分析
- DAA-分析方法
- 渐近符号和先验分析
- 时间复杂度
- 马斯特定理
- DAA - 空间复杂性
- 分而治之
- DAA-分而治之
- DAA - 最大最小问题
- DAA-归并排序
- DAA-二分查找
- 施特拉森矩阵乘法
- 唐叶算法
- 河内塔
- 贪心算法
- DAA-贪婪法
- 旅行商问题
- Prim 的最小生成树
- 克鲁斯卡尔的最小生成树
- Dijkstra 的最短路径算法
- 地图着色算法
- DAA-分数背包
- DAA - 带截止日期的作业排序
- DAA - 最佳合并模式
- 动态规划
- DAA-动态规划
- 矩阵链乘法
- 弗洛伊德·沃歇尔算法
- DAA - 0-1 背包
- 最长公共子序列
- 旅行商问题| 动态规划
- 随机算法
- 随机算法
- 随机快速排序
- 卡格的最低削减
- 费舍尔-耶茨洗牌
- 近似算法
- 近似算法
- 顶点覆盖问题
- 设置封面问题
- 旅行推销员近似算法
- 排序技巧
- DAA-快速排序
- DAA-冒泡排序
- DAA——插入排序
- DAA-选择排序
- DAA——希尔排序
- DAA-堆排序
- DAA——桶排序
- DAA——计数排序
- DAA - 基数排序
- 搜索技巧
- 搜索技术介绍
- DAA - 线性搜索
- DAA-二分查找
- DAA - 插值搜索
- DAA - 跳转搜索
- DAA - 指数搜索
- DAA - 斐波那契搜索
- DAA - 子列表搜索
- DAA-哈希表
- 图论
- DAA-最短路径
- DAA - 多级图
- 最优成本二叉搜索树
- 堆算法
- DAA-二叉堆
- DAA-插入法
- DAA-Heapify 方法
- DAA-提取方法
- 复杂性理论
- 确定性计算与非确定性计算
- DAA-最大派系
- DAA - 顶点覆盖
- DAA - P 级和 NP 级
- DAA-库克定理
- NP 硬课程和 NP 完全课程
- DAA - 爬山算法
- DAA 有用资源
- DAA - 快速指南
- DAA - 有用的资源
- DAA - 讨论
设计与分析 - 近似算法
近似算法是旨在解决在多项式时间内无法求解近似解的问题的算法。这些问题被称为 NP 完全问题。这些问题对于解决现实世界的问题非常有效,因此,使用不同的方法来解决它们变得很重要。
NP完全问题在三种情况下仍然可以解决:输入可以很小以致执行时间减少,某些问题仍然可以归类为可以在多项式时间内解决的问题,或者使用近似算法来找到接近最优解对于问题。
这引出了近似问题的性能比的概念。
性能比
计算近似算法的性能比(也称为近似比)的主要思想是找出近似解与最优解的接近程度。
近似比率用ρ(n)表示,其中n是算法的输入大小,C是算法获得的近最优解,C*是问题的最优解。该算法具有 ρ(n) 的近似比率当且仅当 -
$$max\left\{\frac{C}{C^{\ast} },\frac{C^{\ast }}{C} \right\}\leq \rho \left ( n \right )$ $
该算法称为 ρ(n) 近似算法。近似算法可以应用于两类优化问题:最小化问题和最大化问题。如果问题的最优解是寻找最大成本,则该问题称为最大化问题;如果问题的最优解是找到最小成本,则该问题称为最小化问题。
对于最大化问题,近似比通过 C*/C 计算,因为 0 ≤ C ≤ C*。对于最小化问题,近似比通过 C/C* 计算,因为 0 ≤ C* ≤ C。
假设近似算法的成本均为正,则性能比明确且不会小于1。如果该值为1,则表示近似算法生成精确的最优解。
例子
近似算法的几个流行例子是 -
顶点覆盖问题
设置封面问题
旅行推销员问题
子集和问题