算法和算法复杂性幻灯片.ppt
《算法和算法复杂性幻灯片.ppt》由会员分享,可在线阅读,更多相关《算法和算法复杂性幻灯片.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法和算法复杂性第1页,共32页,编辑于2022年,星期一图图灵灵机机中中无无限限长长的的带带被被分分成成一一个个个个小小空空格格,每每格格容容纳纳一一个个符符号号,对对每每一一部部图图灵灵机机而而言言,带带上上允允许许使使用用的的符符号号是是有限的;有限的;图图灵灵机机的的输输入入是是由由符符号号组组成成的的有有限限序序列列,称称之之为为符号行,输入符号行不能含空格符符号行,输入符号行不能含空格符B。读读写写头头每每次次左左或或右右移移动动一一格格,并并根根据据控控制制器器的的指指令令阅阅读读方方格格中中的的符符号号或或抹抹去去、重重写写方方格格中中的的符符号号,其其初始位置是输入符号行最左
2、边符号。初始位置是输入符号行最左边符号。读写头读写头 带带(B B表示空格)表示空格)B 0 1 1 0 0 0 B控制器控制器 第2页,共32页,编辑于2022年,星期一控制器控制器有有限个状态,其中启始状态和终有有限个状态,其中启始状态和终止状态是两个特殊的状态;状态可依止状态是两个特殊的状态;状态可依转移函数转移函数进行,进行,(q,a)=(p,b,v)意为:读写头)意为:读写头看到符号看到符号a时,处于状态时,处于状态q的控制器命令其抹掉的控制器命令其抹掉a,重写,重写b,并向,并向v(左或右)移动一格,状态改变(左或右)移动一格,状态改变为为p;控制器开始处于启始状态,图灵机当且仅当
3、控控制器开始处于启始状态,图灵机当且仅当控制器处于终止状态时停止,此时制器处于终止状态时停止,此时带上符号行带上符号行为输出。为输出。第3页,共32页,编辑于2022年,星期一显然,图灵计算机计算的是显然,图灵计算机计算的是从符号行到符号行从符号行到符号行的函数的函数,但并不太限制其应用范围,但并不太限制其应用范围,它的它的计算时间计算时间是指是指读写头的移动次数读写头的移动次数,计算占用的空间计算占用的空间是指带上被访问过是指带上被访问过的方格数的方格数,当输入符号行是当输入符号行是x时时,图灵机图灵机M的计算时间的计算时间(或或占用空间占用空间)记为记为TimeM(x)(或或SpaceM(
4、x)。对意义明确的数学问题是否会不存在算法呢对意义明确的数学问题是否会不存在算法呢?图灵精彩地论证了图灵精彩地论证了这样的不可判定问题确实存这样的不可判定问题确实存在!在!第4页,共32页,编辑于2022年,星期一一一个个典典型型问问题题就就是是“停停停停机机机机问问问问题题题题”:给给定定一一个个带带有有输输入入的的计计算算机机程程序序,它它会会停停机机吗吗?图图灵灵证证明明了了,不不存存在在一一个个算算法法能能对对该该问问题题的的一一切切例例子子给给出出正正确的答案。确的答案。对于给定的问题,如果对于给定的问题,如果存在一种算法,可以对存在一种算法,可以对该问题的一切例子给出正确的答案,那
5、麽这个问题该问题的一切例子给出正确的答案,那麽这个问题就是就是可以计算可以计算的。的。可重复性可重复性归根于归根于因果关系的确定性因果关系的确定性因果关系的确定性因果关系的确定性,这种确定,这种确定性也是当今世界上存在的各式各样计算机的共同特性也是当今世界上存在的各式各样计算机的共同特点。点。第5页,共32页,编辑于2022年,星期一2 2、不确定型计算和算法复杂性、不确定型计算和算法复杂性(1 1)不确定型计算:)不确定型计算:一个不确定型图灵机一个不确定型图灵机一个不确定型图灵机一个不确定型图灵机M M计算一函数计算一函数计算一函数计算一函数f f f f(x x x x)时,)时,)时,
6、)时,必须假定必须假定必须假定必须假定M M M M满足以下条件:满足以下条件:满足以下条件:满足以下条件:若若f(x)f(x)无定义无定义,则对输入则对输入x,Mx,M的任何计算道路的任何计算道路都是都是(时间时间)无限长的无限长的;若若f(x)f(x)有定义有定义,则对输入则对输入x,Mx,M必有一有限长的必有一有限长的道路;并且对任何有限长的计算道路,计算结道路;并且对任何有限长的计算道路,计算结果都是果都是f(x)f(x)。第6页,共32页,编辑于2022年,星期一 对这种图灵机对这种图灵机 M M,Time Time M M(x x)表示输入)表示输入x x时,时,M M可能使用的最
7、短时间可能使用的最短时间,Space Space M M(x x)表示输入)表示输入x x时,时,M M可能使用的最少空间可能使用的最少空间。可以在不确定型计可以在不确定型计算机上实施的计算称为算机上实施的计算称为不确定型计算不确定型计算不确定型计算不确定型计算。(Non-deterministic computationNon-deterministic computation)第7页,共32页,编辑于2022年,星期一&算法复杂性算法复杂性采用该算法得到最终答案时所用的时间采用该算法得到最终答案时所用的时间。与此有关的因素有:与此有关的因素有:计算机本身的速度计算机本身的速度问题的规模问题
8、的规模一般指问题的输入长度一般指问题的输入长度(2 2)算法复杂性与算法分析)算法复杂性与算法分析为了衡量算法的效果所广泛采用的为了衡量算法的效果所广泛采用的标准标准是:是:第8页,共32页,编辑于2022年,星期一注注注注意意意意:同同一一规规模模的的例例子子用用同同一一算算法法,同同样样的的输输入长度所需运算时间也可能相差很远!入长度所需运算时间也可能相差很远!如如,用用单单纯纯形形法法解解LPLP,即即即即使使使使约约约约束束束束条条条条件件件件的的的的系系系系数数数数矩矩矩矩阵阵阵阵阶阶阶阶数数数数固固固固定定定定不不不不变变变变,所所所所需需需需的的的的初初初初等等等等运运运运算算算
9、算次次次次数数数数也也也也会会会会随随随随着着着着参参参参数数数数A A、b b、C C的的不不同同而而有有较较大大差差别别。当当取取C0C0的的的的极极极极端端端端情情情情况况况况,不不不不需需需需要要要要进进进进行行行行旋旋旋旋转转转转运运运运算算算算,初初初初始始始始可可可可行行行行解解解解就就就就是是是是最最最最优优优优解解解解;但但但但若若若若选选选选取取取取不不不不利利利利的的的的参参参参数数数数,达达达达到到到到最最最最优解所需要的迭代步骤可能就非常多。优解所需要的迭代步骤可能就非常多。优解所需要的迭代步骤可能就非常多。优解所需要的迭代步骤可能就非常多。第9页,共32页,编辑于2
10、022年,星期一 为为了了避避免免由由于于不不同同输输入入而而对对算算法法行行为为产产生生巨巨大大差差别别,考考察察所所有有规规模模为为n n的的输输入入,对对这这些些算算法法的的不不同同行行为为中中的的最最坏坏行行为为定定义义为为该该算算法法关关于于输输入入规规模模为为n n的的复复杂杂性性。因因此此,算算法法复复杂杂性性是是输输入入规规模模的的函函数数,比如比如10n10n3 3,2,2n n,nlog,nlog2 2n n等。等。第10页,共32页,编辑于2022年,星期一输输入入规规模模足足够够大大时时,在在复复杂杂性性函函数数中中,增增增增长长长长速速速速度度度度较较慢慢的的项项(如
11、如nlog2n+5n),终终将将被被增增长长速速度度很很快快的的项超过(该例中项超过(该例中n1000时,时,nlog2n5n)。)。在算法复杂性研究中,只有当输入规模很在算法复杂性研究中,只有当输入规模很大时,研究其计算行为才有意义,因为:大时,研究其计算行为才有意义,因为:只有规模大的输入,才能确定只有规模大的输入,才能确定算法可应用性的限制算法可应用性的限制算法可应用性的限制算法可应用性的限制。比如复杂性为比如复杂性为10n3与复杂性为与复杂性为9n3的算法间的差别可的算法间的差别可以忽略不计,因为这可以通过技术革新,使计算机以忽略不计,因为这可以通过技术革新,使计算机速度提高速度提高1
12、0倍而得到补偿。倍而得到补偿。第11页,共32页,编辑于2022年,星期一(c)(c)如果存在两个常数如果存在两个常数c,c0,c,c0,使得当使得当n n足够大时有足够大时有cg(n)f(n)cg(n),cg(n)f(n)cg(n),则记则记f(n)=g(n)f(n)=g(n),用记号,用记号f(n)g(n)f(n)g(n)代替代替f(n)=(g(n),f(n)=(g(n),易见易见是一个等价关是一个等价关系,在该等价关系下,系,在该等价关系下,f(n)f(n)的等价类(即的等价类(即f(n)=(g(n)f(n)=(g(n)的所有的所有g(n)g(n)的集合)称为的集合)称为f(n)f(n)
13、f(n)f(n)的增长速度。的增长速度。的增长速度。的增长速度。定义定义定义定义 设设f(n),g(n)f(n),g(n)是定义在正整数上的正实值函数是定义在正整数上的正实值函数(a)(a)如果存在一个常数如果存在一个常数c0,c0,使得当使得当n n足够大时足够大时,有有f(n)cg(n),f(n)cg(n),则记则记f(n)=O(g(n)f(n)=O(g(n);(b)(b)如果存在一个常数如果存在一个常数c0,c0,使得当使得当n n足够大时有足够大时有f(n)cg(n),f(n)cg(n),则记则记f(n)=(g(n)f(n)=(g(n);第12页,共32页,编辑于2022年,星期一求出
14、一个算法所需时间比较好上界求出一个算法所需时间比较好上界的过程称为的过程称为算法分析算法分析。算算法法分分析析中中常常常常使使用用初初等等运运算算算算术术运运算算、比比较较、转转移移指指令令等等的的步步数数表表示示一一个个算算法法在在假假设设的的计计算算机机上上执执行行时时所所需需的的时时间间,即即每每做做一一次次初初等等运运算算,需需要要一一个个单单位位时时间间。而而用用用用算算算算法法法法的的的的输输输输入入入入规规规规模的函数度量该算法的复杂性。模的函数度量该算法的复杂性。模的函数度量该算法的复杂性。模的函数度量该算法的复杂性。第13页,共32页,编辑于2022年,星期一 为为了了把把输
15、输入入提提供供给给计计算算机机求求解解,必必须须用用固固定定字字母母表表(0,1,或或打打字字机机上上的的符符号号,或或ASCII字字母母)上上的的符符号号串串来来表表示示它它们们,这这就就是是所所谓谓的的编编码码。当当把把算算法法的的输输入入表表示示为为符符号号串串时时,那那麽麽输输入入规规模模就就定定义义为为该该符符号号串串的的长长度度(符符号号串串中中符符号号的的数数目目),称称为为输入长度输入长度。第14页,共32页,编辑于2022年,星期一例例1以以某某一一个个固固定定数数为为基基底底的的运运算算系系统统(如如十十进进制制或或二二进进制制)中中,表表示示一一个个整整数数n的的输输入入
16、规规模模:,因为,因为logBn=logn/logB,B固定后固定后logB是一个常数。是一个常数。例例2.试分析试分析LP的规模的规模.设设A、b、c中中的的元元素素均均为为整整数数,则则LP的的规规模模就就是是表表示示A、b、c所所需需符符号号的的数数目目。因因为为可可以以把把二二进进制制(十十进进制制)表表示示的的矩矩阵阵中中元元素素排排成成一一行行,用用符符号号线线适适当当地地隔隔开开以以表表示示矩矩阵阵的的行行或或列列,从从而而矩矩阵阵也也可可以以表表示示为为符符号号串串。所所以以,mn的的LP问问题题规规模模为为(mn+)其中)其中p是所有非零参数的乘积。是所有非零参数的乘积。第1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 复杂性 幻灯片
限制150内