转载自 cnblogs/学科笔记/中科大-算法分析与设计-近似算法复习知识点.md at main · BamLubi/cnblogs 中科大-算法分析与设计-近似算法复习知识点 - 小陆斑比 - 博客园[TOC]
三、近似算法
3.1 NP-完全性理论
图灵机:
- 确定性图灵机 DTM:执行的动作唯一
- 非确定性图灵机 NTM:执行的动作有多个可选
P 类问题:
用确定性算法在多项式时间内可解
多项式时间内可解的问题P
NP 类问题:
用非确定性算法在多项式时间内可解
多项式时间内可验证的问NP
多一规约:
多项式时间多一规约:是多项式时间可计算的
NPC 问题:对于判定问题 q,满足
NP-hard 问题:对于判定问题 q,满足
解题思路:
- 证明,找到,再将多项式归约到。
- 如果继续证明,则
- NPC 问题:SAT 可满足性问题、最大独立集问题、背包问题、覆盖问题、路径问题
- NPH 问题:停机问题
规约策略:
-
,
-
特殊到一般,
3.2 相关问题总结
- 独立集问题(Independent-Set):图的顶点集合的子集中,所有顶点两两没有边。
- 团问题:图的顶点集合的子集中,所有顶点两两均有边。
- 顶点覆盖问题(Vertex-Cover):图的顶点集合的子集中,边集中至少有一个顶点在该子集中。
- 集合覆盖问题(Set-Cover):非空集合的若干非空子集合的并集等于原有集合。
- 3-SAT 问题:**3-CNF(合取范式)**组成的布尔公式存在真值解。
- 哈密尔顿圈问题:图中通过每一个顶点恰好一次的回路。
上述问题均是 NPC 的。
单源最短路径和欧拉环是 P 问题。
3.3 近似算法
三种放宽要求的可能性:
- 超多项式时间启发:存在一个伪多项式时间的算法,如背包问题。(缺点:只对弱 NPC 问题有效)
- 概率分析:不再要求问题的解满足所有输入实例。(缺点:选取一个特殊的输入分布不容易)
- 近似算法:不再要求总是找到最优解。设计一个算法找出所有情况下的次优解来解 NP-hard 问题、
近似解分类:
- 容易近似:背包问题、调度问题、装箱问题
- 中等难度:顶点覆盖问题、欧式 TSP 问题、Steiner Trees
- 难于近似:着色问题、TSP、Clique(团)
性能保证:在最优解和近似解之间建立某种联系。
绝对性能度量:绝对近似算法是优化问题的多项式时间近似算法 A,,使得
含义:近似解和最优解相差某一小的常数。
对于大多数的 NPH 问题,不存在绝对近似算法,除非。
两种绝对近似算法:
图是否可以 3 着色:
- G 为二部图,即可 2 着色
- G 一定可以 4 着色,四色定理
图边着色最小颜色数:
- 最大度 / 最大度+1
前提:已知最优解 或 值所在的小范围
对于大多数 NPH 问题,存在绝对近似算法当且仅当存在多项式精确算法。
反证不存在绝对近似算法:
- 背包问题,通过 Scaling 放大利润为 k+1 倍,再算解的值
- 最大团问题,构造
相对性能度量:算法 A 在一个输入实例上的性能比为
含义:近似解和最优解比值为某一小的常数。
- 绝对性能比:
- 渐近性能比:
- 最佳可达性能比:
对于有 Scaling 性质的问题,
很多问题找不到绝对近似算法。
有些问题找不到有界性能比近似算法。
3.3.1 多机调度问题
List 调度算法:n 个作业依次分配给当前负载最小的机器。
证明上界:
证明紧确界:有个作业
LPT 调度算法:将作业递序排列,然后 List 策略调度。
3.3.2 装箱问题 BP
n 件物品,每件物品在单位大小之内,按某种策略装入单位大小的箱子中,令箱子数最小。
首次适应算法 FF
,
证明:
最多只有一个箱子是大于半空的。
物品的总大小至少为总箱子的一半,。
最优解至少为物品的总大小,。
递减首次适应 FFD
,
3.3.3 旅行商问题 TSP
求最短哈密顿回路 HC,访问所有顶点一次的回路。
这里研究,即输入满足三角不等式
近邻法 NN:从当前顶点访问最近尚未访问的顶点,一次构造哈密尔顿圈 HC。
MST 启发:先找一个欧拉环 ET,然后再”Short-Cut“获得哈密尔顿圈。
有欧拉环,当且仅当图连通且顶点度数均为偶数。
MST:
- 构造最小生成树
- 每条边复制一个
- 找到欧拉圈
- 短路欧拉路的方法构造 HC,即遇到重复顶点就跳过。
CH 启发:不需要将所有边都复制,只在每对奇度顶点之间连线。
CH:
- 构造最小生成树
- 每对奇度顶点之间连线
- 找到欧拉圈
- 短路欧拉路的方法构造 HC,即遇到重复顶点就跳过。