算法和算法复杂性_第1页
算法和算法复杂性_第2页
算法和算法复杂性_第3页
算法和算法复杂性_第4页
算法和算法复杂性_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专题一:算法与复杂性基本概念1、可计算性与算法

算法是用于求解严格确定的计算问题,能准确和全面理解的一系列指令。

相应于算法的数学实体就是英国数学家图灵(Turing)1936年提出的图灵机。图灵机是一种抽象化的计算机,一种标准的计算模型。由三部分组成:无限长的带、在带上可以左右移动的读写头和控制读写头的控制器。

图灵机中无限长的带被分成一个个小空格,每格容纳一个符号,对每一部图灵机而言,带上允许使用的符号是有限的;

图灵机的输入是由符号组成的有限序列,称之为符号行,输入符号行不能含空格符B。

读写头每次左或右移动一格,并根据控制器的指令阅读方格中的符号或抹去、重写方格中的符号,其初始位置是输入符号行最左边符号。读写头

带(B表示空格)B011000B控制器

控制器有有限个状态,其中启始状态和终止状态是两个特殊的状态;状态可依转移函数δ进行,δ(q,a)=(p,b,v)意为:读写头看到符号a时,处于状态q的控制器命令其抹掉a,重写b,并向v(左或右)移动一格,状态改变为p;控制器开始处于启始状态,图灵机当且仅当控制器处于终止状态时停止,此时带上符号行为输出。

显然,图灵计算机计算的是从符号行到符号行的函数,但并不太限制其应用范围,它的计算时间是指读写头的移动次数,计算占用的空间是指带上被访问过的方格数,当输入符号行是x时,图灵机M的计算时间(或占用空间)记为TimeM(x)(或SpaceM(x))。

对意义明确的数学问题是否会不存在算法呢?图灵精彩地论证了这样的不可判定问题确实存在!

一个典型问题就是“停机问题”:给定一个带有输入的计算机程序,它会停机吗?图灵证明了,不存在一个算法能对该问题的一切例子给出正确的答案。

对于给定的问题,如果存在一种算法,可以对该问题的一切例子给出正确的答案,那麽这个问题就是可以计算的。

可重复性归根于因果关系的确定性,这种确定性也是当今世界上存在的各式各样计算机的共同特点。2、不确定型计算和算法复杂性(1)不确定型计算:

一个不确定型图灵机M计算一函数f(x)时,必须假定M满足以下条件:①若f(x)无定义,则对输入x,M的任何计算道路都是(时间)无限长的;②若f(x)有定义,则对输入x,M必有一有限长的道路;并且对任何有限长的计算道路,计算结果都是f(x)。

对这种图灵机M,TimeM(x)表示输入x时,M可能使用的最短时间,SpaceM(x)表示输入x时,M可能使用的最少空间。可以在不确定型计算机上实施的计算称为不确定型计算。(Non-deterministiccomputation)

&

算法复杂性采用该算法得到最终答案时所用的时间。与此有关的因素有:·计算机本身的速度·问题的规模——一般指问题的输入长度(2)算法复杂性与算法分析为了衡量算法的效果所广泛采用的标准是:注意:同一规模的例子用同一算法,同样的输入长度所需运算时间也可能相差很远!

如,用单纯形法解LP,即使约束条件的系数矩阵阶数固定不变,所需的初等运算次数也会随着参数A、b、C的不同而有较大差别。当取C≤0的极端情况,不需要进行旋转运算,初始可行解就是最优解;但若选取不利的参数,达到最优解所需要的迭代步骤可能就非常多。为了言避免搁由于里不同伞输入叔而对耕算法摘行为萝产生特巨大裹差别榜,考冒察所芒有规锡模为n的输产入,对这文些算事法的凉不同槐行为到中的最坏衡行为定义辨为该盗算法关于灭输入毕规模枣为n的复俭杂性。因此贞,算死法复佛杂性支是输取入规决模的酒函数辩,比窜如10泼n3,2n,n毁lo抹g2n等。输入拔规模融足够姿大时竭,在颜复杂魂性函矮数中倡,增长骑速度较慢倡的项府(如nl姨og2n+断5n),文终将馅被增押长速押度很姿快的忘项超干过(榨该例萝中n>脾>1毁00魂0时,nl付og2n>场5n)。在算范法复续杂性塞研究块中,配只有副当输娱入规聪模很软大时挣,研艰究其谊计算炒行为饿才有掩意义戏,因煎为:只有肚规模男大的番输入车,才贝能确琴定算法愁可应日用性即的限蚊制。比霸如复橡杂性固为10当n3与复僻杂性个为9n3的算议法间乓的差栽别可树以忽薄略不沸计,毛因为早这可坟以通阀过技帅术革森新,择使计柿算机棍速度京提高10倍而节得到樱补偿房诚。(c英)如果狭存在缝两个炼常数c,揉c'>概0,使得答当n足够刮大时拳有c'阶g(阻n)狮≤f炊(n浙)≤荐cg栗(n),则记f(气n)=Θg孤(n),用居记号f(聪n)谁≌g它(n)代替f(末n)=Θ(告g(卸n))谦,易见职≌是捷一个帽等价鹅关系巨,在土该等签价关冲系下站,f(凡n)的等葵价类摸(即f(绝n)=Θ(乞g(敞n))的所斗有g(罩n)的集肝合)搂称为f(巨n)的增捡长速朽度。定义设f(权n)提,g谁(n)是定占义在同正整俭数上客的正哥实值蛙函数(a立)如果瞎存在千一个淘常数c>抬0,使得蚊当n足够赤大时,有f(稠n)楼≤c局g(犁n),则记f(狐n)=O(出g(何n));(b何)如果滔存在及一个齐常数c>齐0,使得胀当n足够畜大时晕有f(井n)持≥c涂g(玻n),则记f(贫n)=Ω(遵g(筝n));求出菜一个浙算法竹所需淹时间队比较外好上陆界的过币程称哨为算法理分析。算法妙分析加中常光常使需用初等剥运算——算术霸运算女、比聪较、钓转移贝指令跳等的步衫数表示识一个闯算法台在假或设的捷计算耐机上惜执行么时所段需的任时间劫,即疫每做视一次集初等刺运算草,需杠要一足个单络位时千间。炭而用算盲法的帅输入血规模旨的函竭数度誉量该石算法杆的复俊杂性勺。为了娇把输迟入提双供给垃计算布机求羞解,脂必须感用固山定字匪母表裕(0,1,或色打字问机上阅的符款号,黎或AS眨CI嫂I字母午)上牧的符狭号串回来表惯示它眯们,览这就叠是所捆谓的耕编码笋。当把互算法足的输任入表蛮示为欧符号坊串时以,那猜麽输入闯规模晕就定旋义为救该符遗号串唉的长豆度(符稠号串磨中符侍号的脸数目惕),年称为输入录长度。例1.以某一个固定数为基底的运算系统(如十进制或二进制)中,表示一个整数n的输入规模:,因为logBn=logn/logB,B固定后logB是一个常数。例2.试分析LP的规模.

设A、b、c中的元素均为整数,则LP的规模就是表示A、b、c所需符号的数目。因为可以把二进制(十进制)表示的矩阵中元素排成一行,用符号线适当地隔开以表示矩阵的行或列,从而矩阵也可以表示为符号串。所以,m×n的LP问题规模为Θ(mn+)其中p是所有非零参数的乘积。(3)多效项式昨时间缴算法①决定已一个段算法岛的实际茎效用,要县看其已知妖的最真好时按间上叼界之港增长抹速度。目吩前计绑算机开科学京家们仍有一动个公仔认的绒看法杰:解一猴个计俯算问暑题的灭算法品,当颜其复洪杂性迫随输牙入规搏模的级增加世而呈多矮项式看地增柴长时,销这个蔑算法奖才是爽实际状有效胶的。②定义(多秧项式艰算法特)设有琴解某师种问扣题的网一个硬算法肉,对委于输析入长冤度为L的具圾体问政题,愁其计算瞎步骤抬有一耳个上刮界P(L),困若P(y)是y的多洋项式喂,则称归此算春法是旷一个多项把式时泊间算斯法(Po角ly油no吐mi阀al筑-T便im驱e以Al锻go据ri始th拴m践fo搬r轨Li忽ne只ar堵P茫ro权gr犬am绒mi莲ng),每简称多项休式算疑法。

函数

近似值NNlognn3106n8

103310001014

1006641000,0001022

1000996610910302nnlognn!

102420993,628,800

1.27×1030

1.93×101310158

1.05×103017.89×10294×102567③特点:表1多项优式和圣指数看函数廉增长遍情况抱表当输炮入规棉模增柱大时乖,任汤意一罚个多善项式爱算法箩终将假变得泰比指芦数算乱法更驱有效忽,见叨表1。在某种意义上,它很好地利用了技术发展的优点。每次昨技术派突破杨,计屯算机罢速度上提高10倍,炒则多上项式萌算法虫原来1小时载内所熊能解浆算例驰子的难最大组规模细可增幸加C倍,先其中0<矮C<砖10着,而指夏数算培法所侧能解屿算的院例子笋规模睛只能伞增加唉一个期常数.表2显示挂了多颂项式壁算法馅利用诸技术宾发展碗的优果点情尿况.表2多项树式算恰法利纺用技氧术发炸展的升优点俱情况厦表

函数

一天内能解例子的规模计算机速度提高10倍后所能解例子的规模

nnlognn2n3108n4

10120.948×101110610410

10130.87×10123.16×1062.15×10418

2n10nnlognn!

40127914

43139515多项已式算问法有朽较好稻的封漠闭性——n个多诉项式偏算法桌可以健结合咏起来努解同粉一问论题的耕某些朽特殊腾情形懂;一个剪多项问式算念法也值可以番利用斯另一泥个多炭项式乎算法筹作为“子程钳序”,并笛且最雕后的桥结果技仍然咬是一炉个多拾项式咬算法势。(4)P类、NP类、NP完全啄类、①称具共有多刘项式山时间寄算法萍的一录类问茄题为P类问笨题,简风称P问题。如译:有酸向图仆中的至路、住最大疯匹配浸问题免、最帽小支贿撑树气问题昨等;②NP类问五题也叫划不确仓定性避问题料(或侮称非贩多项饺式确畜定问散题)某。如财果有恨一个嘱用于污求解隙此问扮题的洞算法滥,对月于它经可以济找到第一个锈多项别式时晒间算街法来进验证爸该算愈法所粗得的带结果匪是否父为此狱问题骂的解唯,则溉称此诉问题违属于NP类问足题,以简称NP问题。③NP完备繁的(NP托-C民om造pl童et杀e)——如果侄一个席判定槐问题A是NP的,响而且须所有锁其他NP问题巴都能挪多项贵式地提归结傍到A,则狱称A是NP完备位的。所谓多项背式地转归结全,指的乳是多项舟式地莫时间貌归结粮,其定嫂义是拆:设A1、A2都是梢判定询(即老是-否)封问题钻,说A1在多赴项式巷时间池内归迎结为A2,当屯且仅批当A1有个奥多项汇式时肤间算貌法A1,并粒且A1是多芝次地或以单迎位费微用把A2的算型法A2用作趟子程项序的状算法疑。则宫把A1叫做A1到A2的多南项式刺时间希归结今。于是俊,若机问题A是NP完备桂的,搅若A有有主效算篮法,则每由个NP问题添也有摸有效框算法。命题:如底果A1多项歪式归拥结到A2,而A2有多解项式势算法倘,则A1也有给多项信式算火法垄。常用缎的证盆明一周个问裹题为P的方爸法一保、先设计诸出求怕解问坝题Π的一职个算碎法;然看后证庆明其正确溪性,即趁可利罗用该骄算法号精确驴求解粒问题Π;最汁后,还通过脏仔细宣分析豆算法柿的实苍现过交程来卷估计梅它所与需的籍总的幕计算甘工作杰量,痕即其计算插复杂胆性,若剑所得合估计衣值可诸用问弓题规付模参骆数(卷如输扭入长谢度、务问题贤维数铃等)插的一雅个多绵项式演函数怨来界咏定,款则表缠明该术算法锅为多尸项式灿时间积算法时,从忽而得居到问贺题P属于Π。如带背包剑问题疮、排灭序问诊题等采用蓬这种业方法最来证裳明问恶题属零于P时,暖一般缠总要究充分利用档所证精明问约题的炎具体泼特性颈,以户便设慈计出逗适当争的求解枝算法,使得丸它能堂够构赞成求积解原色问题畜的多浩项式馅时间算誓法。声由于迟其对成于具主体问泰题的惭依赖床性与乳多变盟性,很难角指定件一个荐通用乖的证驴明步你骤或录方法具。常用算的证斥明一辛个问盒题为P的方酒法二准、通过类某种脚转换蓬或逻课辑推帝理来把进行住。常见旗的技呼巧有叼:证丑明可唱采用博一些遣简单而的、崇可在蚀多项氧式时旧间内乡丰完成促的变睬换方隐法,猜将原贤问题饺转换妇为另恒一已恶知的P类问黄题的国求解预;说屡明可晒通过是递推恭、分愚解等滋方法秀来对锣原问梳题进辰行简逼化,屡使简疫化后担的问允题很观容易债在多盈项式挥时间切内求疲解,驻而所固采用银的分衔解等调策略红也可脏在多坑项式慌时间盯内完宪成;词直接桑考察毙原问左题的理可行抽解所超可能告存在初的各华种情永形,楼当然商这些臭可能傲的不斯同情搭形不坛会超柱过问反题规园模的垃某个毛多项怪式,呈并说弹明在搬每种巡寿情况浆下均舱可在窄多项蒜式时爆间内邮求解屋原问窜题CO裁OK定理为了彩证明贵一个渣问题娱是NP朽-完备漏的,洞我们穴必须蓄证明战两件更事:(a裤)该问习题是NP的(b辛)所有芽其他NP问题钟多项厨式转罗换到啊该问犬题实际腐上,芹部分(b办)通常昂用证榨明某缴个已慈知的NP旁-完备苍问题可被以多辅项式辞变换检到要储证的着问题浓完成疲的.不过架第一个NP纠-完备屯性证残明必译须包盘含部组分(b含)的直北接证捐明。为此

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论