近似算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0/1背包问题
多项式近似方案:
对于某正整数k,令 ε 1/k 。 算法 Aε 的步骤: maxv=0 for 物品集合每个大小<=k的子集S do 将S中的物品放入背包(放得下时)
• 算法原理及应用
对U-S(剩余的物品集合)运行算法KNAPSACKGREEDY if v>maxv then maxv=v // v为背包中物品的总价值 end for
改进的近似算法KNAPSACKGREEDY:
基本思想:先用贪心算法求解,然后将贪心算法的解值 与最大体积物品的价值进行比较,输出较大者。 算法KNAPSACKGREEDY:(P251) 算法15.3.doc
算法的近似度:R KNAPSACKGREEDY =2
近似算法—设计、分析及应用
具有多项式近似方案的问题
问题描述:设G=(V, E)是一个平面图,对图G的所有顶 点着色,使得任意一对相邻顶点的颜色都不同,最少要 用几种颜色? 一个带差界K=1的近似算法: if G不含有边 then 输出1 else if G可2着色 then 输出2 else 输出4
近似算法—基本概念与性能
差界
困难结果—0/1背包问题
证明:
近似算法—基本概念与性能
相对性能界
近似比(性能比):
定义
• 算法原理及应用
近似比以问题规模的函数为上界: R A (I) ρ(n) 近似比越小,近似算法解的精确度越高。
近似算法—基本概念与性能
相对性能界
相对误差:
问题П的近似算法A的相对误差定义为
A(I) OPT (I) RE A (I) OPT (I)
要求将这些项装到最少数目的单元容量的箱子中。
实例集DП:由所有集合 I= {s1 , s 2 , , s n 0 s i 1, i 1, 2,, n}
组成。
解集合SП(I): 由I的所有满足如下性质的子集集合
{B1 , B2 , , Bk } 组成:
解值 f σ σ k 。
近似算法的近似比与时间复杂性的关系
近似算法—基本概念与性能
多项式近似方案
近似方案
• 算法原理及应用
多项式近似方案
返回
近似算法—基本概念与性能
完全多项式近似方案
定义:
• 算法原理及应用
完全多项式近似方案一定是多项式近似方案,逆命题 不成立。 伪多项式时间与多项式时间
返回
近似算法—设计、分析及应用
背包的物品总价值最大。设每种物品或完全装入或完全
不装入背包。 不妨设每个sj <=C。
近似算法—设计、分析及应用
具有多项式近似方案的问题
0/1背包问题
贪心算法:
• 算法原理及应用
基本思想:将n个物品按单位体积价值降序排序,按此顺 序逐个将物品放入背包,直至所有物品都考虑过。 该算法为近似算法,无有界近似度。 例:
近似算法—设计、分析及应用
顶点覆盖问题
近似算法(VC)
算法的近似度: :RVC=2。
• 算法原理及应用
近似算法—设计、分析及应用
困难结果:旅行商问题
许多问题不具有有界近似度。
• 算法原理及应用
例如:图的着色问题,团集问题,独立集问题,一般旅 行商问题等。
旅行商问题:给出n个城市,及各对城市间的距离, 求周游这n个城市的最短回路。
算法性能分析:该算法的绝对近似度满足
RA<=4/3-1/3m<4/3
近似算法—设计、分析及应用
装箱问题
• 算法原理及应用
问题描述:给出大小为s1, s2, …, sn的n个项的集合{u1,
u2, …, un},其中0<= si<=1。要求将这n个项装入最少 数目的单位容量箱子中。
装箱问题也是一种划分问题。
• 算法原理及应用
,
I DΠ
相对误差界:若问题规模n的函数 ε(n)使得
RE A (I) ε(n)
则称 ε(n) 为近似算法A的相对误差界。 对于最小化问题, ε(n) <=ρ(n)-1
对于最大化问题, ε(n) <= 1-1/ ρ(n)
有的近似算法具有常量的近似比上界和相对误差界。
近似算法—基本概念与性能
(不妨设s1, s2, …, sn <=C)
子集和问题是0/1背包问题的特例:
每种物品的体积与价值数值相等:si= vi ,i=1,2,…n 背包容量取C
动态规划算法:算法15.4.doc (P253)
近似算法—设计、分析及应用
具有完全多项式近似方案的问题
子集和问题
完全多项式近似方案
• 算法原理及应用
问题描述: 设有一个容量为C的背包,n个物品的集合 U={u1, u2, …, un},物品uj的体积和价值分别为sj和vj,C,
sj, vj都是正整数。在U中选择物品装入背包,使得装入
背包的物品总价值最大。设每种物品或完全装入或完全 不装入背包。
0/1背包问题不存在带差界的近似算法(除非P=NP)。
近似算法—设计、分析及应用
顶点覆盖问题
• 算法原理及应用
问题描述:给出一个无向图G=(V, E),求图G的最小 顶点覆盖。
图G的一个顶点覆盖是V的一个子集C,使得E中每条边 至少和C中的一个顶点关联。 顶点覆盖问题是一个NP困难问题,其判定问题是NP完 全的。
近似算法—设计、分析及应用
近似算法—基本概念与性能
基本定义
组合优化问题(P244)
• 算法原理及应用
近似算法(P244)
近似算法—基本概念与性能
基本定义
• 算法原理及应用
例15.1 (P244)
装箱问题:给出一个由n个项组成的集合: {s1 , s 2 , , s n 0 s i 1, i 1, 2,, n}
多机调度问题
• 算法原理及应用
问题描述:设有n个相互独立的作业j1, j2, …, jn由m台 相同的处理机进行处理。作业ji所需的处理时间为ti, i=1, 2, …, n。约定每个作业均可在任何一台处理机上 处理,但未完成前不允许中断处理。要求给出一种作 业调度方案,使得n个任务在尽可能短的时间内由m台 处理机完成处理。 该问题的判定问题是一个NP完全问题,该问题本身是 一个NP困难问题,目前还未找到有效的精确算法。
递减最佳适配法(BFD):首先将n个项按大小递减的顺 序排序,然后用BF法装箱。
近似算法—设计、分析及应用
装箱问题
近似算法的性能分析
• 算法原理及应用
对于装箱问题的所有实例I, RFF(I)<2。 更进一步的结果:
对于装箱问题的所有实例I,FF(I)<=(17/10)OPT(I)+2。
算法 Aε 的时间复杂性与近似度:定理15.4.doc
近似算法—设计、分析及应用
具有完全多项式近似方案的问题
• 算法原理及应用
有关概念
完全多项式近似方案
子集和问题
问题描述:给定一个正整数集合S= {s1, s2, …, sn}和一个 正整数C,求S的子集使得子集元素之和<=C且最大。
定理15.3 不存在关于旅行商问题的具有RA< 的近 似算法A,除非NP=P。
证明:定理15.3.doc
近似算法—设计、分析及应用
具有多项式近似方案的问题
• 算法原理及应用
有关概念
多项式近似方案
0/1背包问题
问题描述: 设有一个容量为C的背包,n个物品的集合
U={u1, u2, …, un},物品uj的体积和价值分别为sj和vj,C, sj, vj都是正整数。在U中选择物品装入背包,使得装入
• 算法原理及应用
近似算法Aε ( ε 1/k ,k为某正整数): 步骤: 令K=C/(2(k+1)n), 对于任意的实例I, 1) 构造新实例I’: 2) 对于实例I’应用算法SUBSETSUM,Aε(I)=K*OPT(I’)。
近似算法—设计、分析及应用
欧几里得旅行商问题
近似算法—最小匹配法(MM)
算法:P248 算法15.1 算法的时间复杂性:Θ(n3) 算法的近似度:RMM<3/2。
• 算法原理及应用
一般的旅行商问题
算法MST和MM适用于图中的边长满足三角不等式的旅 行商问题,不适用于一般的旅行商问题。 算法NN适用于一般的旅行商问题。
顶点覆盖问题 近似算法(VC)
• 算法原理及应用
算法:(P249) 算法15.2 VCOVERAPPROX 输入:无向图G=(V, E)。 输出:G的一个顶点覆盖C。 C={ } while E<>{ } 任取E中的一条边e=(u, v), C=C {u, v}, 从E中删除e以及所有u或v相关联的边 end while end VCOVERAPPROX
近似算法—设计、分析及应用
欧几里得旅行商问题(EMST)
• 算法原理及应用
问题描述:给出一个由平面上n个点组成的集合S,求 这些点上的最短哈密顿回路(游程)。
哈密顿回路是经过每个点恰好一次的回路。
EMST问题是旅行商问题的特例,是一个NP困难问题。
基本思想:从S中任意一个点p开始,然后每次找未访 问的与当前点距离最近的点,直至所有的点都已访问。 算法NN无有界近似度,R NN ,RNN(I)=O(logn)。
(定理15.1 P247) 对于装箱问题的所有实例I, BF(I)<=(17/10)OPT(I)+2。
对于装箱问题的所有实例I,FFD(I)<=(11/9)OPT(I)+4。
(定理15.2 P247) 对于装箱问题的所有实例I,BFD(I)<=(11/9)OPT(I)+4。
RFF<2,R*FF= R*BF =17/10, R*FFD= R*BFD =11/9
B1 , B 2 , , B k 是I的不相交Leabharlann Baidu分,且 s 1 , j 1, 2, , k 。
sB j
近似算法—基本概念与性能
差界
• 算法原理及应用
设A是某问题的近似算法,若对于该问题的所有实例I 都有|A(I)-OPT(I)|<=K,K是某个常量,则称近似算法 A带有差界K。 一个已知差界的NP困难问题—平面图着色问题
近似算法—最近邻法(NN):
近似算法—设计、分析及应用
欧几里得旅行商问题
近似算法—最小生成树法(MST)
算法步骤:
• 算法原理及应用
1) 以点集S的点为顶点,构造带权无向完全图G,G 中边上的权为相应两顶点间的欧氏距离; 2) 构造图G的最小生成树T; 3) 深度优先遍历(先序遍历)树 T得图G的顶点序列 L,返回由顶点序列L表示的哈密顿回路。 算法的时间复杂性:Θ(n2) 算法的近似度:RMST<2。
近似算法—设计、分析及应用
多机调度问题
近似算法A(一个贪心算法)
• 算法原理及应用
贪心选择策略:按处理时间从大到小的顺序将作业分配 给空闲的处理机。
实例1: n=7, m=3, t1~t7: 2, 14, 4, 16, 6, 5, 3
实例2:n=5, m=2, t1~t5: 6, 5, 4, 3, 2 近似算法A:贪心算法
相对性能界
绝对近似度与渐近近似度:
定义
• 算法原理及应用
许多问题没有带绝对近似度与渐近近似度的近似算法。
近似算法—基本概念与性能
相对性能界
• 算法原理及应用
近似比与绝对近似度:
若 I D Π , R A (I) r ,则 R A r 。
近似比与相对近似度:
若对于某个正整数N, I D Π , OPT (I) N, 有R A (I) r , 则 R r 。 A
近似算法—设计、分析及应用
装箱问题
• 算法原理及应用
近似算法:
最先适配法(FF):箱子编号为1, 2, …, n,初始时各箱子 为空。各项按u1, u2, …, un的顺序装箱,装项ui时,将其 装入序号最小的可容得下该项的箱子中(即装入满足 l<= 1-si的序号最小的箱子中,其中l表示箱子的已填充 容量)。 最佳适配法(BF):与FF法类似,不同之处仅在于装项ui 时,将其装入满足l<= 1-si的箱子中使l值最大的箱子中。 递减最先适配法(FFD):首先将n个项按大小递减的顺序 排序,然后用FF法装箱。
算法原理及应用
——近似算法
近似算法
内容
• 算法原理及应用
近似算法的基本概念
近似算法的性能 近似算法的设计与分析
近似算法的应用例子
近似算法—基本概念与性能
• 算法原理及应用
近似算法是求解困难问题的一个有效途径。
近似算法给出的解是近似最优解。
许多近似算法是贪心算法,其特点是效率高。
多项式近似方案:
对于某正整数k,令 ε 1/k 。 算法 Aε 的步骤: maxv=0 for 物品集合每个大小<=k的子集S do 将S中的物品放入背包(放得下时)
• 算法原理及应用
对U-S(剩余的物品集合)运行算法KNAPSACKGREEDY if v>maxv then maxv=v // v为背包中物品的总价值 end for
改进的近似算法KNAPSACKGREEDY:
基本思想:先用贪心算法求解,然后将贪心算法的解值 与最大体积物品的价值进行比较,输出较大者。 算法KNAPSACKGREEDY:(P251) 算法15.3.doc
算法的近似度:R KNAPSACKGREEDY =2
近似算法—设计、分析及应用
具有多项式近似方案的问题
问题描述:设G=(V, E)是一个平面图,对图G的所有顶 点着色,使得任意一对相邻顶点的颜色都不同,最少要 用几种颜色? 一个带差界K=1的近似算法: if G不含有边 then 输出1 else if G可2着色 then 输出2 else 输出4
近似算法—基本概念与性能
差界
困难结果—0/1背包问题
证明:
近似算法—基本概念与性能
相对性能界
近似比(性能比):
定义
• 算法原理及应用
近似比以问题规模的函数为上界: R A (I) ρ(n) 近似比越小,近似算法解的精确度越高。
近似算法—基本概念与性能
相对性能界
相对误差:
问题П的近似算法A的相对误差定义为
A(I) OPT (I) RE A (I) OPT (I)
要求将这些项装到最少数目的单元容量的箱子中。
实例集DП:由所有集合 I= {s1 , s 2 , , s n 0 s i 1, i 1, 2,, n}
组成。
解集合SП(I): 由I的所有满足如下性质的子集集合
{B1 , B2 , , Bk } 组成:
解值 f σ σ k 。
近似算法的近似比与时间复杂性的关系
近似算法—基本概念与性能
多项式近似方案
近似方案
• 算法原理及应用
多项式近似方案
返回
近似算法—基本概念与性能
完全多项式近似方案
定义:
• 算法原理及应用
完全多项式近似方案一定是多项式近似方案,逆命题 不成立。 伪多项式时间与多项式时间
返回
近似算法—设计、分析及应用
背包的物品总价值最大。设每种物品或完全装入或完全
不装入背包。 不妨设每个sj <=C。
近似算法—设计、分析及应用
具有多项式近似方案的问题
0/1背包问题
贪心算法:
• 算法原理及应用
基本思想:将n个物品按单位体积价值降序排序,按此顺 序逐个将物品放入背包,直至所有物品都考虑过。 该算法为近似算法,无有界近似度。 例:
近似算法—设计、分析及应用
顶点覆盖问题
近似算法(VC)
算法的近似度: :RVC=2。
• 算法原理及应用
近似算法—设计、分析及应用
困难结果:旅行商问题
许多问题不具有有界近似度。
• 算法原理及应用
例如:图的着色问题,团集问题,独立集问题,一般旅 行商问题等。
旅行商问题:给出n个城市,及各对城市间的距离, 求周游这n个城市的最短回路。
算法性能分析:该算法的绝对近似度满足
RA<=4/3-1/3m<4/3
近似算法—设计、分析及应用
装箱问题
• 算法原理及应用
问题描述:给出大小为s1, s2, …, sn的n个项的集合{u1,
u2, …, un},其中0<= si<=1。要求将这n个项装入最少 数目的单位容量箱子中。
装箱问题也是一种划分问题。
• 算法原理及应用
,
I DΠ
相对误差界:若问题规模n的函数 ε(n)使得
RE A (I) ε(n)
则称 ε(n) 为近似算法A的相对误差界。 对于最小化问题, ε(n) <=ρ(n)-1
对于最大化问题, ε(n) <= 1-1/ ρ(n)
有的近似算法具有常量的近似比上界和相对误差界。
近似算法—基本概念与性能
(不妨设s1, s2, …, sn <=C)
子集和问题是0/1背包问题的特例:
每种物品的体积与价值数值相等:si= vi ,i=1,2,…n 背包容量取C
动态规划算法:算法15.4.doc (P253)
近似算法—设计、分析及应用
具有完全多项式近似方案的问题
子集和问题
完全多项式近似方案
• 算法原理及应用
问题描述: 设有一个容量为C的背包,n个物品的集合 U={u1, u2, …, un},物品uj的体积和价值分别为sj和vj,C,
sj, vj都是正整数。在U中选择物品装入背包,使得装入
背包的物品总价值最大。设每种物品或完全装入或完全 不装入背包。
0/1背包问题不存在带差界的近似算法(除非P=NP)。
近似算法—设计、分析及应用
顶点覆盖问题
• 算法原理及应用
问题描述:给出一个无向图G=(V, E),求图G的最小 顶点覆盖。
图G的一个顶点覆盖是V的一个子集C,使得E中每条边 至少和C中的一个顶点关联。 顶点覆盖问题是一个NP困难问题,其判定问题是NP完 全的。
近似算法—设计、分析及应用
近似算法—基本概念与性能
基本定义
组合优化问题(P244)
• 算法原理及应用
近似算法(P244)
近似算法—基本概念与性能
基本定义
• 算法原理及应用
例15.1 (P244)
装箱问题:给出一个由n个项组成的集合: {s1 , s 2 , , s n 0 s i 1, i 1, 2,, n}
多机调度问题
• 算法原理及应用
问题描述:设有n个相互独立的作业j1, j2, …, jn由m台 相同的处理机进行处理。作业ji所需的处理时间为ti, i=1, 2, …, n。约定每个作业均可在任何一台处理机上 处理,但未完成前不允许中断处理。要求给出一种作 业调度方案,使得n个任务在尽可能短的时间内由m台 处理机完成处理。 该问题的判定问题是一个NP完全问题,该问题本身是 一个NP困难问题,目前还未找到有效的精确算法。
递减最佳适配法(BFD):首先将n个项按大小递减的顺 序排序,然后用BF法装箱。
近似算法—设计、分析及应用
装箱问题
近似算法的性能分析
• 算法原理及应用
对于装箱问题的所有实例I, RFF(I)<2。 更进一步的结果:
对于装箱问题的所有实例I,FF(I)<=(17/10)OPT(I)+2。
算法 Aε 的时间复杂性与近似度:定理15.4.doc
近似算法—设计、分析及应用
具有完全多项式近似方案的问题
• 算法原理及应用
有关概念
完全多项式近似方案
子集和问题
问题描述:给定一个正整数集合S= {s1, s2, …, sn}和一个 正整数C,求S的子集使得子集元素之和<=C且最大。
定理15.3 不存在关于旅行商问题的具有RA< 的近 似算法A,除非NP=P。
证明:定理15.3.doc
近似算法—设计、分析及应用
具有多项式近似方案的问题
• 算法原理及应用
有关概念
多项式近似方案
0/1背包问题
问题描述: 设有一个容量为C的背包,n个物品的集合
U={u1, u2, …, un},物品uj的体积和价值分别为sj和vj,C, sj, vj都是正整数。在U中选择物品装入背包,使得装入
• 算法原理及应用
近似算法Aε ( ε 1/k ,k为某正整数): 步骤: 令K=C/(2(k+1)n), 对于任意的实例I, 1) 构造新实例I’: 2) 对于实例I’应用算法SUBSETSUM,Aε(I)=K*OPT(I’)。
近似算法—设计、分析及应用
欧几里得旅行商问题
近似算法—最小匹配法(MM)
算法:P248 算法15.1 算法的时间复杂性:Θ(n3) 算法的近似度:RMM<3/2。
• 算法原理及应用
一般的旅行商问题
算法MST和MM适用于图中的边长满足三角不等式的旅 行商问题,不适用于一般的旅行商问题。 算法NN适用于一般的旅行商问题。
顶点覆盖问题 近似算法(VC)
• 算法原理及应用
算法:(P249) 算法15.2 VCOVERAPPROX 输入:无向图G=(V, E)。 输出:G的一个顶点覆盖C。 C={ } while E<>{ } 任取E中的一条边e=(u, v), C=C {u, v}, 从E中删除e以及所有u或v相关联的边 end while end VCOVERAPPROX
近似算法—设计、分析及应用
欧几里得旅行商问题(EMST)
• 算法原理及应用
问题描述:给出一个由平面上n个点组成的集合S,求 这些点上的最短哈密顿回路(游程)。
哈密顿回路是经过每个点恰好一次的回路。
EMST问题是旅行商问题的特例,是一个NP困难问题。
基本思想:从S中任意一个点p开始,然后每次找未访 问的与当前点距离最近的点,直至所有的点都已访问。 算法NN无有界近似度,R NN ,RNN(I)=O(logn)。
(定理15.1 P247) 对于装箱问题的所有实例I, BF(I)<=(17/10)OPT(I)+2。
对于装箱问题的所有实例I,FFD(I)<=(11/9)OPT(I)+4。
(定理15.2 P247) 对于装箱问题的所有实例I,BFD(I)<=(11/9)OPT(I)+4。
RFF<2,R*FF= R*BF =17/10, R*FFD= R*BFD =11/9
B1 , B 2 , , B k 是I的不相交Leabharlann Baidu分,且 s 1 , j 1, 2, , k 。
sB j
近似算法—基本概念与性能
差界
• 算法原理及应用
设A是某问题的近似算法,若对于该问题的所有实例I 都有|A(I)-OPT(I)|<=K,K是某个常量,则称近似算法 A带有差界K。 一个已知差界的NP困难问题—平面图着色问题
近似算法—最近邻法(NN):
近似算法—设计、分析及应用
欧几里得旅行商问题
近似算法—最小生成树法(MST)
算法步骤:
• 算法原理及应用
1) 以点集S的点为顶点,构造带权无向完全图G,G 中边上的权为相应两顶点间的欧氏距离; 2) 构造图G的最小生成树T; 3) 深度优先遍历(先序遍历)树 T得图G的顶点序列 L,返回由顶点序列L表示的哈密顿回路。 算法的时间复杂性:Θ(n2) 算法的近似度:RMST<2。
近似算法—设计、分析及应用
多机调度问题
近似算法A(一个贪心算法)
• 算法原理及应用
贪心选择策略:按处理时间从大到小的顺序将作业分配 给空闲的处理机。
实例1: n=7, m=3, t1~t7: 2, 14, 4, 16, 6, 5, 3
实例2:n=5, m=2, t1~t5: 6, 5, 4, 3, 2 近似算法A:贪心算法
相对性能界
绝对近似度与渐近近似度:
定义
• 算法原理及应用
许多问题没有带绝对近似度与渐近近似度的近似算法。
近似算法—基本概念与性能
相对性能界
• 算法原理及应用
近似比与绝对近似度:
若 I D Π , R A (I) r ,则 R A r 。
近似比与相对近似度:
若对于某个正整数N, I D Π , OPT (I) N, 有R A (I) r , 则 R r 。 A
近似算法—设计、分析及应用
装箱问题
• 算法原理及应用
近似算法:
最先适配法(FF):箱子编号为1, 2, …, n,初始时各箱子 为空。各项按u1, u2, …, un的顺序装箱,装项ui时,将其 装入序号最小的可容得下该项的箱子中(即装入满足 l<= 1-si的序号最小的箱子中,其中l表示箱子的已填充 容量)。 最佳适配法(BF):与FF法类似,不同之处仅在于装项ui 时,将其装入满足l<= 1-si的箱子中使l值最大的箱子中。 递减最先适配法(FFD):首先将n个项按大小递减的顺序 排序,然后用FF法装箱。
算法原理及应用
——近似算法
近似算法
内容
• 算法原理及应用
近似算法的基本概念
近似算法的性能 近似算法的设计与分析
近似算法的应用例子
近似算法—基本概念与性能
• 算法原理及应用
近似算法是求解困难问题的一个有效途径。
近似算法给出的解是近似最优解。
许多近似算法是贪心算法,其特点是效率高。