第19讲 approximation algorithms 算法导论课件
合集下载
Approximation algorithms
![Approximation algorithms](https://img.taocdn.com/s3/m/01d4cd62ddccda38376bafff.png)
Acknowledgments
Research of the second author was supported in part by a DOE Human Genome Postdoctoral Fellowship.
References
1. T. Jiang, E. L. Lawler, and L. Wang, \Aligning sequences via an evolutionary tree: complexity and approximation," Proc. 26th ACM Symposium on the Theory of Computing, 760-769 (1994). 2. D. Sanko , \Minimal mutation trees of sequences," SIAM J. Appl. Math., 28(1), 35-42, (1975).
3. D. Sanko , R. Cedergren and G. Laplame, \Frequency of insertion-deletion, transversion, and transition in the evolution of 5S ribosomal RNA," J. Mol. Evol. 7, 133-149, (1976). 4. D. Sanko and R. Cedergren, \Simultaneous comparisons of three or more sequences related by a tree, in D. Sanko and J. Kruskal (eds.) Time warps, string edits and macromolecules: the theory and practice of sequence comparison, 253-264, Addison Wesley, Reading MA, (1983). 5. M. S. Waterman and M. D. Perlwitz, \Line geometries for sequence comparisons," Bull. Math. Biol. 46, 567-577, (1984).
Research of the second author was supported in part by a DOE Human Genome Postdoctoral Fellowship.
References
1. T. Jiang, E. L. Lawler, and L. Wang, \Aligning sequences via an evolutionary tree: complexity and approximation," Proc. 26th ACM Symposium on the Theory of Computing, 760-769 (1994). 2. D. Sanko , \Minimal mutation trees of sequences," SIAM J. Appl. Math., 28(1), 35-42, (1975).
3. D. Sanko , R. Cedergren and G. Laplame, \Frequency of insertion-deletion, transversion, and transition in the evolution of 5S ribosomal RNA," J. Mol. Evol. 7, 133-149, (1976). 4. D. Sanko and R. Cedergren, \Simultaneous comparisons of three or more sequences related by a tree, in D. Sanko and J. Kruskal (eds.) Time warps, string edits and macromolecules: the theory and practice of sequence comparison, 253-264, Addison Wesley, Reading MA, (1983). 5. M. S. Waterman and M. D. Perlwitz, \Line geometries for sequence comparisons," Bull. Math. Biol. 46, 567-577, (1984).
人教A版(2019)高中数学必修3第一章.1算法的概念课件
![人教A版(2019)高中数学必修3第一章.1算法的概念课件](https://img.taocdn.com/s3/m/be705ae531126edb6e1a104a.png)
思考3
:
对于一般的二元一次方程组
a1
x
b1
y
c1
a2 x b2 y c2
① ②
其 中 a1b2 a 2b1 0,可 以 写 出 类 似 的 求 解 步 骤 :
第 一 步 ,① b2 ② b1 , 得
第
二
步
a ,解
1b2 ③
,
a 2 b1 得
x x
b2c1 b2 c1
-
b1c b1c
15
知识探究(二):算法的步骤设计 人教A版高中数学必修3第一章.1算法的概念课件(完美课件)
思考21:: 设计一个算法,判断375是否为质数。 第一步,用2除73,5 得到余数1,因为余数不为0,所 以2不能整除73.5 第二步,用3除73,5 得到余数12,因为余数不为0,所
以3不能整除73.5
5.下列关于算法的说法正确的是( D ) (A)某算法可以无止境地运算下去 (B)一个问题的算法步骤可以是可逆的 (C)完成一件事情的算法有且只有一种 (D)设计算法要本着简单、方便、可操 作的原则
人教A版高中数学必修3第一章.1算法 的概念 课件(完 美课件 )
人教A版高中数学必修3第一章.1算法 的概念 课件(完 美课件 )
第三步,用4除73,5 得到余数3,因为余数不为0,所 以4不能整除73.5
第四步,用5除73,5 得得到到余余数数20,,因因为为余余数数不为为00, ,所 以以55能不整能除整3除5.7
第五步,用6除7,得到余数1,因为余数不为0,
所以6不能整除7.
因此,7是质数.
人教A版高中数学必修3第一章.1算法 的概念 课件(完 美课件 )
2
a 1 1 1.25 1.375 1.375 1.406 25 1.406 25 1.414 625 1.414 062 5
算法算法概述详解PPT课件
![算法算法概述详解PPT课件](https://img.taocdn.com/s3/m/e0ac4edd10661ed9ac51f36b.png)
34
34
第34页/共47页
渐近符号
Ω的定义:如果存在正的常数C和自然数N0,使得当NN0 时有f(N)Cg(N),则称函数f(N)当N充分大时下有界,且g(N) 是它的一个下界,记为f(N)=Ω(g(N))。即f(N)的阶不低于g(N) 的阶。
θ的定义:定义f(N)=θ(g(N)) 当且仅当f(N)=O(g(N))且
12
12
第12页/共47页
算法与程序的区别
程序是算法用某种程序设计语言的具体实现。 程序可以不满足算法的性质(4)。 例如,操作系统是一个在无限循环中执行的程序,因而 不是一个算法。 操作系统的各种任务可看成是单独的问题,每一个问题 由操作系统中的一个子程序通过特定的算法来实现。该子 程序得到输出结果后便终止。
• 在数学上, t(N)是T(N)的渐近表达式,是T(N)略去低阶 项留下的主项。T例(N如), N2 N log N 1 , t(N) N 2
• t(N)比T(N) 简单。
第32页/共47页
渐近符号
算法复杂性在渐近意义下的阶:
渐近意义下的记号:O、Ω、θ、o 设f(N)和g(N)是定义在正数集上的正函数。 O的定义:如果存在正的常数C和自然数N0,使得当NN0时有 f(N)Cg(N),则称函数f(N)当N充分大时有上界,且g(N)是它的一 个上界,记为f(N)=O(g(N))。即f(N)的阶不高于g(N)的阶。
10
第10页/共47页
11
11
第11页/共47页
算法及其重要性质
算法:是指解决问题的一种方法或一个过程。 算法是由若干条指令组成的有穷序列,满足性质: (1)输入:有0个或多个由外部提供的量作为算法的输入。 (2)输出:算法产生至少一个量作为输出。(1个或多个) (3)确定性:组成算法的每条指令是清晰,无歧义的。 (4)有限性:算法中每条指令的执行次数是有限的,执行每 条指令的时间也是有限的。
高中数学 1.1.1算法的概念课件 新人教B版必修3
![高中数学 1.1.1算法的概念课件 新人教B版必修3](https://img.taocdn.com/s3/m/271b9b04700abb68a882fb17.png)
第二十二页,共40页。
[点评] 一般地,求一元一次不等式 Ax+B≤C 的解的算法 如下:
S1 输入不等式 Ax+B≤C 的系数 A、B、C. S2 如果 A>0,则输出不等式的解集为{x|x≤C-A B},否则 执行 S3; S3 输出不等式的解集为{x|x≥C-A B}.
第二十三页,共40页。
写出求1+2+3+4+5+6的一个算法. [解析] S1 计算(jìsuàn)1+2得到3; S2 将S1的运算结果3与3相加,得到6; S3 将S2的运算结果6与4相加,得到10; S4 将S3的运算结果10与5相加,得到15; S5 将S4的算运结果15与6相加,得到21; S6 输出运算结果21.
第十四页,共40页。
6.已知直线(zhíxiàn)l的倾斜角是60°,且l过点(1,2),写出 求l的方程的一个算法.
[解析] 算法如下: S1 设直线 l 的方程为 y-2=k(x-1); S2 计算 k=tan60°= 3; S3 把 S2 得到的结果代入 S1 所设的方程,得到 y-2= 3 (x-1); S4 整理 S3 得到的方程,得到方程 3x-y+2- 3=0.
第十五页,共40页。
课堂典例讲练
第十六页,共40页。
算法(suàn fǎ)的概念
我们已学过的算法有一元二次方程的求根公式、 加减消元法求二元一次方程组的解、二分法求函数零点等.对 算法的描述有:
(1)对一类问题都有效; (2)对个别问题有效; (3)计算可以一步一步进行,每一步都有惟一结果;
第十七页,共40页。
系数,得到乘数 m=42=2; S2 将方程②减去 m 与方程①的乘积,消去方程②中的 x
项,得到
2x+y=7 3y=-3
;
[点评] 一般地,求一元一次不等式 Ax+B≤C 的解的算法 如下:
S1 输入不等式 Ax+B≤C 的系数 A、B、C. S2 如果 A>0,则输出不等式的解集为{x|x≤C-A B},否则 执行 S3; S3 输出不等式的解集为{x|x≥C-A B}.
第二十三页,共40页。
写出求1+2+3+4+5+6的一个算法. [解析] S1 计算(jìsuàn)1+2得到3; S2 将S1的运算结果3与3相加,得到6; S3 将S2的运算结果6与4相加,得到10; S4 将S3的运算结果10与5相加,得到15; S5 将S4的算运结果15与6相加,得到21; S6 输出运算结果21.
第十四页,共40页。
6.已知直线(zhíxiàn)l的倾斜角是60°,且l过点(1,2),写出 求l的方程的一个算法.
[解析] 算法如下: S1 设直线 l 的方程为 y-2=k(x-1); S2 计算 k=tan60°= 3; S3 把 S2 得到的结果代入 S1 所设的方程,得到 y-2= 3 (x-1); S4 整理 S3 得到的方程,得到方程 3x-y+2- 3=0.
第十五页,共40页。
课堂典例讲练
第十六页,共40页。
算法(suàn fǎ)的概念
我们已学过的算法有一元二次方程的求根公式、 加减消元法求二元一次方程组的解、二分法求函数零点等.对 算法的描述有:
(1)对一类问题都有效; (2)对个别问题有效; (3)计算可以一步一步进行,每一步都有惟一结果;
第十七页,共40页。
系数,得到乘数 m=42=2; S2 将方程②减去 m 与方程①的乘积,消去方程②中的 x
项,得到
2x+y=7 3y=-3
;
算法导论详解PPT课件
![算法导论详解PPT课件](https://img.taocdn.com/s3/m/b1a964f1ff00bed5b8f31d58.png)
computing
“计算机算法的圣经”
Bibliography
《Introduction to Algorithms》(Second Edition),
T. H. Cormen, C. E. Leiserson, R. L. Rivest (2002, Turing Award),
The MIT Press
}
利用此界面使 方法sum通用化
18
第18页/共25页
1.3 描述算法
6.通用方法
(2)parable 界面 Java的Comparable 界面中惟一的方法头compareTo用于比较
2个元素的大小。例如pareTo(y) 返回x-y的符号,当x<y时返回负数,当x=y时返回0,当x>y时返 回正数。 (3)Operable 界面
8
第8页/共25页
1.2 表达算法的抽象机制
2.抽象数据类型
抽象数据类型是算法的一个数据模型连同定义在该模型上 并作为算法构件的一组运算。
抽象数据类型带给算法设计的好处有:
(1)算法顶层设计与底层实现分离; (2)算法设计与数据结构设计隔开,允许数据结构自由选择; (3)数据模型和该模型上的运算统一在ADT中,便于空间和时间耗费的折衷; (4)用抽象数据类型表述的算法具有很好的可维护性; (5)算法自然呈现模块化; (6)为自顶向下逐步求精和模块化提供有效途径和工具; (7)算法结构清晰,层次分明,便于算法正确性的证明和复杂性的分析。
期末闭卷考试:
about 70%
课程安排
课堂讲解:基本理论讲解,基本方法的介绍分析
上机实践:基本习题和经典习题的上机实践
第4页4 /共25页
主要内容介绍
算法导论课件5
![算法导论课件5](https://img.taocdn.com/s3/m/62356113a8114431b90dd846.png)
analysis: n2 multiplications and at most n2-1 additions (加法). So, T(n)=O(n2).
6
Exam2 Multiplication of two numbers (整数相乘) two n-digit numbers X and Y, Complexity(X × Y) = ? � Divide and Conquer algorithm Let X=ab Y=cd where a, b, c and d are n/2 digit numbers, e.g. 1364=13×102+64. Let m= n/2. Then XY = (10ma+b)(10mc+d) =102mac+10m(bc+ad)+bd
11
Exam3 Multiplication of two matrices (矩阵相乘) two n×n matrices A and B, Complexity(C=A×B) = ?
�
Divide and conquer (Strassen Algorithm) An n×n matrix can be divided into four n/2×n/2 matrices, ⎡ A11 A12 ⎤ ⎡ B11 B12 ⎤ ⎡ C11 C12 ⎤ A= ⎢ ,B= ⎢ ,C= ⎢ ⎥ ⎥ ⎥ ⎣A 21 A 22 ⎦ ⎣B21 B22 ⎦ ⎣C21 C 22 ⎦
12
Complexity analysis: Totally, 7 multiplications, and 18 additions. T(1)=1, T(n) = 7T( ⎡n/2⎤ )+ cn2. Applying Master Theorem,
6
Exam2 Multiplication of two numbers (整数相乘) two n-digit numbers X and Y, Complexity(X × Y) = ? � Divide and Conquer algorithm Let X=ab Y=cd where a, b, c and d are n/2 digit numbers, e.g. 1364=13×102+64. Let m= n/2. Then XY = (10ma+b)(10mc+d) =102mac+10m(bc+ad)+bd
11
Exam3 Multiplication of two matrices (矩阵相乘) two n×n matrices A and B, Complexity(C=A×B) = ?
�
Divide and conquer (Strassen Algorithm) An n×n matrix can be divided into four n/2×n/2 matrices, ⎡ A11 A12 ⎤ ⎡ B11 B12 ⎤ ⎡ C11 C12 ⎤ A= ⎢ ,B= ⎢ ,C= ⎢ ⎥ ⎥ ⎥ ⎣A 21 A 22 ⎦ ⎣B21 B22 ⎦ ⎣C21 C 22 ⎦
12
Complexity analysis: Totally, 7 multiplications, and 18 additions. T(1)=1, T(n) = 7T( ⎡n/2⎤ )+ cn2. Applying Master Theorem,
高中数学必修三[人教B版]1.1.1《算法的概念》ppt课件6
![高中数学必修三[人教B版]1.1.1《算法的概念》ppt课件6](https://img.taocdn.com/s3/m/2389b05ac8d376eeafaa3166.png)
S2:在重的一份里取两枚放天 平的两边,若平衡则剩下的一 枚就是所找的,若不平衡则重 的那枚就是所要找的。
2020/8/7
二、提出问题
3.一个农夫带着一只狼、一头山羊和一篮蔬菜要过 河,但只有一条小船。乘船时,农夫只能带一样东 西。当农夫在场的时候,这三样东西相安无事,一 旦农夫不在,狼会吃羊,羊会吃菜。请设计一个方 案,使农夫能安全地将这三样东西带过河。
2020/8/7
四、应用举例 例6.用二分法设计一个求方程 x2 2 0 的近似正
根的算法,精确度0.005。
算法分析:回顾二分法解方程的过程,假设所求近似根与精 确解的差的绝对值不超过0.005,则不难设计出以下步骤:
S1:令f(x)=x2-2,因为f(1)<0,f(2)>0,所以设a=1,b=2。 S2:令m= a b , 判断f(m)是否为0。若是0,则m为所求;
S4:用5除35,得到余数0。因为余数为0,所以5能 整除35。因此,35不是质数。
2020/8/7
四、应用举例
例4.(3)设计一个算法判断整数n(n>2)是否为质 数。 S1:给定大于2的整数n。 S2:令i=2。 S3:用i除n,得余数r。 S4:判断“r=0”是否成立,若成立,则n不是质数, 结束算法;否则,将i+1后返回第三步。
2020/8/7
四、应用举例
1.算法定义的理解:
在数学中,现代意义上的 “算法”通常是指 可以用计算机来解决的某一类问题的程序或步骤, 这些程序或步骤必须是明确和有效的,而且能够 在有限步之内完成.
2.算法的要求:
(1)写出的算法,必须能解决一类问题(例如解任意 一个二元一次方程组),并且能重复使用;
一般来说,“用算法解决问题” 可以利用计 算机帮助完成。
2020/8/7
二、提出问题
3.一个农夫带着一只狼、一头山羊和一篮蔬菜要过 河,但只有一条小船。乘船时,农夫只能带一样东 西。当农夫在场的时候,这三样东西相安无事,一 旦农夫不在,狼会吃羊,羊会吃菜。请设计一个方 案,使农夫能安全地将这三样东西带过河。
2020/8/7
四、应用举例 例6.用二分法设计一个求方程 x2 2 0 的近似正
根的算法,精确度0.005。
算法分析:回顾二分法解方程的过程,假设所求近似根与精 确解的差的绝对值不超过0.005,则不难设计出以下步骤:
S1:令f(x)=x2-2,因为f(1)<0,f(2)>0,所以设a=1,b=2。 S2:令m= a b , 判断f(m)是否为0。若是0,则m为所求;
S4:用5除35,得到余数0。因为余数为0,所以5能 整除35。因此,35不是质数。
2020/8/7
四、应用举例
例4.(3)设计一个算法判断整数n(n>2)是否为质 数。 S1:给定大于2的整数n。 S2:令i=2。 S3:用i除n,得余数r。 S4:判断“r=0”是否成立,若成立,则n不是质数, 结束算法;否则,将i+1后返回第三步。
2020/8/7
四、应用举例
1.算法定义的理解:
在数学中,现代意义上的 “算法”通常是指 可以用计算机来解决的某一类问题的程序或步骤, 这些程序或步骤必须是明确和有效的,而且能够 在有限步之内完成.
2.算法的要求:
(1)写出的算法,必须能解决一类问题(例如解任意 一个二元一次方程组),并且能重复使用;
一般来说,“用算法解决问题” 可以利用计 算机帮助完成。
高中数学必修三《1.1.1算法的概念》课件
![高中数学必修三《1.1.1算法的概念》课件](https://img.taocdn.com/s3/m/5fa50a72b9d528ea80c779e0.png)
④(4分)
第三步:将④代入②,可得2+y=-2.
⑤
第四步:解⑤得y=-4.
(8分)
第五步:得到方程组的解为yx==-2,4. (12 分)
课前探究学习
课堂讲练互动
第十八页,活编辑页于规星期范日:训二练十三点 四十四分。
法二 第一步:由②式移项可以得到x=-2-y.③(4分)
第二步:把③代入①,得y=-4.
课前探究学习
课堂讲练互动
第二十二页活,编页辑规于星范期日训:练二十三点 四十四
分。
书写算法时,要注意算法的特征, 步骤要明确,省略号、“同理”“类似地”等所代 表的部分是无法执行的.
课前探究学习
课堂讲练互动
第二十三页活,编页辑规于星范期日训:练二十三点 四十四
分。
单击此处进入 活页规范训练
课前探究学习
课前探究学习
课堂讲练互动
第八页,编活辑于页星规期日范:二训十练三点 四十四分。
题型一 对算法概念的理解
【例1】 (2012·固原高一检测)下列关于算法的说法,正确的个数
有
( ).
①求解某一类问题的算法是唯一的;
②算法必须在有限步操作之后停止;
③算法的每一步操作必须是明确的,不能有歧义或模糊;
④算法执行后一定产生确定的结果.
,而且每一步都是正确无误的,从而组成具有很强逻辑性的
步骤序列.
(4)不唯一性:求解某一个问题的算法不一定只有唯一的一个
,也可以有不同的算法,这些算法有繁简、优劣之分.
(5)普遍性:很多具体的问题,都可以设计合理的算法去解决
.
课前探究学习
课堂讲练互动
第四页,编活辑于页星规期日范:二训十练三点 四十四分。
2019-2020数学必修3人教A版课件:第一章 1.1.1 算法的概念
![2019-2020数学必修3人教A版课件:第一章 1.1.1 算法的概念](https://img.taocdn.com/s3/m/f385c708910ef12d2af9e7fb.png)
第二十七页,编辑于星期日:点 二十一分。
解 第一步,首先确定最小的满足除以 3 余 2 的正整数: 2.
第二步,依次加 3 就得到所有除以 3 余 2 的正整数: 2,5,8,11,14,17,20,….
第三步,在上列数中确定最小的满足除以 5 余 3 的正整 数:8.
第四步,然后在自然数内,在 8 的基础上依次加上 15 的倍数,得到 8,23,38,53,….
第二十一页,编辑于星期日:点 二十一分。
解法二(加减消元法): 第一步,方程 2x+y=7 的两边都乘以 5 得,10x+5y= 35. 第二步,将第一步所得的方程与方程 4x+5y=11 作差, 消去 y 得 6x=24,解得 x=4. 第三步,将 x=4 代入方程 2x+y=7, 解得 y=-1. 第四步,输出方程组的解为xy==4-,1.
□ 步骤,前一步是后一步的 10 前提 ,只有完成前一步,才
能进行下一步,而且每一步都是正确无误的,才能完成问题.
第四页,编辑于星期日:点 二十一分。
4.不唯一性:求解某一个问题的算法不一定只有
□11 唯一 的一个,也可以有 □12 不同 的算法,这些算
法有繁简、优劣之分. 5.普遍性:很多具体的问题,都可以设计合理的
第八页,编辑于星期日:点 二十一分。
解析 判断一个问题是否有算法,关键是看是否有解决 某一类问题的程序或步骤,这些程序或步骤必须是明确和有 效的,而且能够在有限步骤之内完成.题目中的 A,B,D 三项都符合要求,而 C 项没有提出解决问题的程序或步骤.
第九页,编辑于星期日:点 二十一分。
(2)完成解不等式 2x+2<4x-1 的算法: 第一步,移项,并合并同类项,得____-__2_x_<_-__3_______.
解 第一步,首先确定最小的满足除以 3 余 2 的正整数: 2.
第二步,依次加 3 就得到所有除以 3 余 2 的正整数: 2,5,8,11,14,17,20,….
第三步,在上列数中确定最小的满足除以 5 余 3 的正整 数:8.
第四步,然后在自然数内,在 8 的基础上依次加上 15 的倍数,得到 8,23,38,53,….
第二十一页,编辑于星期日:点 二十一分。
解法二(加减消元法): 第一步,方程 2x+y=7 的两边都乘以 5 得,10x+5y= 35. 第二步,将第一步所得的方程与方程 4x+5y=11 作差, 消去 y 得 6x=24,解得 x=4. 第三步,将 x=4 代入方程 2x+y=7, 解得 y=-1. 第四步,输出方程组的解为xy==4-,1.
□ 步骤,前一步是后一步的 10 前提 ,只有完成前一步,才
能进行下一步,而且每一步都是正确无误的,才能完成问题.
第四页,编辑于星期日:点 二十一分。
4.不唯一性:求解某一个问题的算法不一定只有
□11 唯一 的一个,也可以有 □12 不同 的算法,这些算
法有繁简、优劣之分. 5.普遍性:很多具体的问题,都可以设计合理的
第八页,编辑于星期日:点 二十一分。
解析 判断一个问题是否有算法,关键是看是否有解决 某一类问题的程序或步骤,这些程序或步骤必须是明确和有 效的,而且能够在有限步骤之内完成.题目中的 A,B,D 三项都符合要求,而 C 项没有提出解决问题的程序或步骤.
第九页,编辑于星期日:点 二十一分。
(2)完成解不等式 2x+2<4x-1 的算法: 第一步,移项,并合并同类项,得____-__2_x_<_-__3_______.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Depending on the problem, an optimal solution may be defined as one with maximum possible cost or one with minimum possible cost; that is, the problem may be either a maximization or a minimization problem.
Approximation Algorithm 近似算法
1
Approximation algorithm Optimal algorithm
Approximation pron Algorithms
Problems that we cannot find an optimal solution in a polynomial time
Eg: Set Cover, Bin Packing
Need to find a near-optimal solution:
Heuristic Approximation algorithms:
This gives us a guarantee approximation ratio
3
The vertex-cover problem
VERTEX-COVER = {〈G, k〉 : graph G has a vertex cover of size k}. Best known algorithm: O(kn + 1.274k)
6
Traveling Salesman Problem
Traveling SalesmanProblem (TSP)
Input: undirected graph with lengths on edges Output: shortest cycle that visits each vertex exactly once
Best known algorithm: O(n2n) time.
7
Dealing with Hard Problems
9
Performance ratios for approximation algorithms
An algorithm that returns near-optimal solutions in polynomial time
Approximation Ratio ρ(n):
Define: C* as a optimal solution and C is the solution produced by the approximation algorithm max (C/C*, C*/C) <= ρ(n) Maximization problem: 0 < C <= C*, thus C*/C shows that C* is larger than C by ρ(n) Minimization problem: 0 < C* <= C, thus C/C* shows that C is larger than C* by ρ(n)
10
Performance ratios for approximation algorithms
PTAS (Polynomial Time Approximation Scheme): A (1 + ε)-approximation algorithm for a NP-hard optimization П where its running time is bounded by a polynomial in the size of instance I.
Polynomial time algorithms for all inputs, but which return approximate solutions
8
Performance ratios for approximation algorithms
Suppose that we are working on an optimization problem in which each potential solution has a positive cost, and we wish to find a near-optimal solution.
FPTAS (Fully PTAS): The same as above + time is bounded by a polynomial in both the size of instance I and 1/ε.
11
A Dilemma!
We cannot find C*, how can we compare C to C*? How can we design an algorithm so that we can compare C to C*
Exponential time algorithms for small inputs. E.g., (100/99)n time is not bad for n < 1000.
Polynomial time algorithms for some (e.g., average-case) inputs
A vertex cover of an undirected graph G = (V, E) is a subset V ' ⊆ V such that if (u, v) ∈ E, then u ∈ V ' or v ∈ V ' (or both). A vertex cover for G is a set of vertices that covers all the edges in E. As a decision problem, we define
12
Dealing with Hard Problems
What to do if: Divide and conquer Dynamic programming Greedy Linear Programming/Network Flows …
Approximation Algorithm 近似算法
1
Approximation algorithm Optimal algorithm
Approximation pron Algorithms
Problems that we cannot find an optimal solution in a polynomial time
Eg: Set Cover, Bin Packing
Need to find a near-optimal solution:
Heuristic Approximation algorithms:
This gives us a guarantee approximation ratio
3
The vertex-cover problem
VERTEX-COVER = {〈G, k〉 : graph G has a vertex cover of size k}. Best known algorithm: O(kn + 1.274k)
6
Traveling Salesman Problem
Traveling SalesmanProblem (TSP)
Input: undirected graph with lengths on edges Output: shortest cycle that visits each vertex exactly once
Best known algorithm: O(n2n) time.
7
Dealing with Hard Problems
9
Performance ratios for approximation algorithms
An algorithm that returns near-optimal solutions in polynomial time
Approximation Ratio ρ(n):
Define: C* as a optimal solution and C is the solution produced by the approximation algorithm max (C/C*, C*/C) <= ρ(n) Maximization problem: 0 < C <= C*, thus C*/C shows that C* is larger than C by ρ(n) Minimization problem: 0 < C* <= C, thus C/C* shows that C is larger than C* by ρ(n)
10
Performance ratios for approximation algorithms
PTAS (Polynomial Time Approximation Scheme): A (1 + ε)-approximation algorithm for a NP-hard optimization П where its running time is bounded by a polynomial in the size of instance I.
Polynomial time algorithms for all inputs, but which return approximate solutions
8
Performance ratios for approximation algorithms
Suppose that we are working on an optimization problem in which each potential solution has a positive cost, and we wish to find a near-optimal solution.
FPTAS (Fully PTAS): The same as above + time is bounded by a polynomial in both the size of instance I and 1/ε.
11
A Dilemma!
We cannot find C*, how can we compare C to C*? How can we design an algorithm so that we can compare C to C*
Exponential time algorithms for small inputs. E.g., (100/99)n time is not bad for n < 1000.
Polynomial time algorithms for some (e.g., average-case) inputs
A vertex cover of an undirected graph G = (V, E) is a subset V ' ⊆ V such that if (u, v) ∈ E, then u ∈ V ' or v ∈ V ' (or both). A vertex cover for G is a set of vertices that covers all the edges in E. As a decision problem, we define
12
Dealing with Hard Problems
What to do if: Divide and conquer Dynamic programming Greedy Linear Programming/Network Flows …