计算的复杂性.ppt
《计算的复杂性.ppt》由会员分享,可在线阅读,更多相关《计算的复杂性.ppt(86页珍藏版)》请在课桌文档上搜索。
1、计算的复杂性,零危天鸟琴灼凋惹纬莆遁俩全戴尊显蚊诺毫倚枯恨四查技涤峨疥哼蕾素意计算的复杂性计算的复杂性,86-2,2023/9/14,第2章代数方程的Kuhn算法,剖分法与标号法 互补轮回算法 Kuhn算法的收敛性Kuhn算法的复杂性,肢劳唉奇耙色范廖泪击梆诚仰壶礼凛边簧辅钠该羔社渝远厕嗡汐摈色宪籍计算的复杂性计算的复杂性,86-3,2023/9/14,引 言,与各种传统的迭代方法(例如Newton方法)不同,Kuhn算法基于空间的一种单纯剖分,一种整数标号法和一种互补轮回的算法过程。如果说它的叙述不象Newton方法那么简单,却应当指出,一旦编成计算机程序以后,它的使用反而是极其简单的。为了
2、用Kuhn算法解任何一个代数方程,只要把这个代数方程所对应的多项式的复系数组和计算的精度要求输入机器。然后,算法就会把该代数方程的全部解一起算出。对于Kuhn算法,不存在初值选择以及其他一些使用方面的棘手问题。这是一种具有很强的大范围收敛性保证的算法。另一方面,虽然算法本身不象一个简单的迭代公式那么简单,但为了编制计算机程序,知道2.1和2.2的内容就足够了。,滑窃写吝瞳功虎焰碎锅娇主坦挪亭贱义芹迄旭辞菩蛹暴属诧矽聋掇性史蔗计算的复杂性计算的复杂性,86-4,2023/9/14,2.1剖分法与标号法,设f(z)是复变量z的n阶复系数的首一多项式,即f(z)=zn+a1zn-1+.+an,这里n
3、是自然数,a1,.,an是复常数。如果复数满足f()=0,就说是多项式f的一个零点或代数方程f(z)=0的一个解。我们的算法就是要把f的零点找出来。记复数zxiy平面为C,复数wuiv平面为C,则wf(z)确定复平面之间的一个多项式映射f:CC。为了在下一节叙述算法,我们先叙述半空间C-1,+)的一种剖分及由f导出的一种标号法。在C-1,+中,记Cd=Cd,d-1,0,1,2,.。给定剖分中心及初始格距h。,楚惭铡焕遏誊绕要币安祥幼颖兰虑亲波寝拭霄斟抿彤密惨郴拳究聪设叁予计算的复杂性计算的复杂性,86-5,2023/9/14,2.1.1剖分法,Cd平面的剖分(简记作Td)剖分 T-1(,h)如
4、图2-1所示。剖分T-1(,h)中的一个三角形由和为偶数的一对整数(r,s)及一对(a,b)(1,0),(0,1),(-1,0),(0,-1)按以下方式完全确定:它的顶点的复数坐标分别为:+(r+is)h;+(r+a)+i(s+b)h;+(r-b)+i(s+a)h。称剖分T-1(,h)中三角形直径之上界为T-1(,h)的剖分网径。易知,T-1(,h)的剖分网径为h。,图2-1,屑冈链锋漳痒翁笔杆酿滞扶慧脉春否抿俗诚仕汤优囱封扰降泰土唇红秃舌计算的复杂性计算的复杂性,86-6,2023/9/14,Cd平面的剖分,剖分Td(,h),d=0,1,2,.,如图2-2所示。Td(,h)中的一个三角形由和
5、为奇数的一对整数(r,s)及一对(a,b)(1,0),(0,1),(-1,0),(0,-1)按以下方式完全确定:它的顶点的复数坐标分别为:+(r+is)h2-d;+(r+a)+i(s+b)h2-d;+(r-b)+i(s+a)h2-d。易知,同样定义的Td(,h),d=0,1,2,.的剖分网径为 h2-d。,图2-2,伏瘤嗡句惜弟请详凌诲拯灯盗麻跪淌痰府臣瞻壁赁蜘慰耐魁尊痛绚稳自闽计算的复杂性计算的复杂性,86-7,2023/9/14,半空间C-1,+的剖分T(,h)(简记作T),按照平面的剖分,C-1的每一个正方形(由共有一斜边的一对三角形组成),与C0的一个正方形(也由共有一斜边的一对三角形
6、组成)上下相对,而斜边相错。C-1和C0之间每一个由上下相对的一对正方形所界定的正四棱柱,按图2-3规则剖分成5个四面体。,图2-3,踞彰禽坍循汤磐沥钳洪娩马摸护男肥狄缓杜万畏雕菲嗣孺扬笺淋宫迂睫瓤计算的复杂性计算的复杂性,86-8,2023/9/14,5个四面体,兴书狡等讥匆筷蓝擦柔畏钧辩召栈嘘献讯袒瘤朵脯隧老共帕妆肇斥拓乱氓计算的复杂性计算的复杂性,86-9,2023/9/14,半空间C-1,+的剖分T(,h)(简记作T),按照平面的剖分,Cd(d0)的每一个正方形与Cd+1的四个正方形上下相对,界定Cd和Cd+1之间的一个正四棱柱。Cd和Cd+1之间每一个这样的正四棱柱,按图2-4的规则
7、剖分成14个四面体。,图2-4,吁社锑愚汀预粘眺侨陪要娱都星芜激债膘啪灶咱实在所猖浙糊狸榜乔游萤计算的复杂性计算的复杂性,86-10,2023/9/14,14个四面体,咕挽詹年遭扭案坏剿炬吞匈筛叮篷萝拱用操纽绥粱术祁姥哈舵缄寞垛蓖攻计算的复杂性计算的复杂性,86-11,2023/9/14,半空间C-1,+的剖分T(,h),这样一来,我们就得到半空间C-1,)的一个单纯剖分T(,h),简记作T。注意,从各层Cd平面的剖分Td(,h)到半空间的剖分T(,h),并没有增加新的剖分格点。所有剖分Td(,h),d=-1,0,1,2,.,的格点,组成剖分T(,h)的所有格点。格点都是顶点:三角形的顶点和四
8、面体的顶点。这样我们可以说:T(,h)的所有剖分格点组成T(,h)顶点集V(T(,h),简记作V(T)。在下面叙述的算法里,主要牵涉到由剖分T中的四面体的界面三角形的顶点所组成的三点组(z1,d1),(z2,d2),(z3,d3),或简记作z1,z2,z3。今后所说的三点组,都是这样的三点组。,止涪钒页榔案瀑权鉴陵肆慈侈饱漠墨阮赠愤肥臆励瘫槽撵喝葛授惦砸搭撕计算的复杂性计算的复杂性,86-12,2023/9/14,引理2-1,引理2-1 设(z1,d1),(z2,d2),(z3,d3)是剖分T中的一个三点组,记d=mind1,d2,d3,有ddkd+1,k=1,2,3。该引理由剖分法的定义直接
9、得到。在引理2-1的情况,我们说三点组z1,z2,z3位于Cd和Cd+1之间。特别地,当d1=d2=d3=d时,我们说三点组位于Cd上。设(z1,d1),(z2,d2),(z3,d3)是剖分T中的一个三点组。规定:三点组的直径为diam(z1,d1),(z2,d2),(z3,d3)=max|z1-z2|,|z2-z3|,|z3-z1|,也可简记作diamz1,z2,z3。,梭畴饿炕缅细吝颜闰借唾嘻凸相萄杖妥钮聂习容冈矾纠挨息董鲸喘掺粹讫计算的复杂性计算的复杂性,86-13,2023/9/14,引理2-2,引理2-2 设三点组z1,z2,z3位于Cd和Cd+1之间,则,证明:从图2-3和图2-4
10、容易看出,位于Cd和Cd+1之间的所有可能的三点组的直径不超过。,所以层数越高,三点组的直径越小。,夏鸟奠卞嘲定康献蕴梳网贺甘张氧馋扯戊上反爪正坠唆酵宗斌吼带赦肄颖计算的复杂性计算的复杂性,86-14,2023/9/14,2.1.2标号法,锤鞍慢杖禾诉凹腮违泵郧哟左蹄倚嚼剁义阂撩恼恐坟秧坚枕纫恒倦芬悍歧计算的复杂性计算的复杂性,86-15,2023/9/14,标号的定义,定义2-1称按下式确定的对应l:C1,2,3为由多项式f确定的z平面C的标号法:,定义2-2记f-1(z)=(z-)n;fd(z)=f(z),d=0,1,2,.。称按下式确定的对应l:V(T(,h)1,2,3为由多项式f导出的
11、V(T(,h)的标号法:,绰酶栗识揉衙敖迸初辣朴梯冒疚锦郴败骂迟壳般幅唆帅戊履涯纷神透挪愉计算的复杂性计算的复杂性,86-16,2023/9/14,标号的图示,图2-5 标号区域,侵灸殉晃宁恶疥众没逃龄淋馏贩耶翌型惊啪拐狞茵咐桂赢喂铝候典整唉擅计算的复杂性计算的复杂性,86-17,2023/9/14,全标三点组,定义2-3如果V(T(,h)的一个三点组z1,z2,z3满足l(z1),l(z2),l(z3)=1,2,3,则称它为完全标号三点组,简称全标三点组。为方便起见,今后,完全标号三点组z1,z2,z3的记号均蕴涵l(zk)=k,k=1,2,3。全标三点组的说法本身,并没有指明点的标号是由(
12、z-)n还是由f确定的。事实上,今后我们遇到的全标三点组,其点的标号可以都由(z-)n确定,也可以都由f确定,还可以部分由(z-)n确定,部分由f确定。,蠢彬莉舶舶蓖沿连闪俱沮就感钻亢剖窖腕幻粒操附茧坝豁嫁眺孜终述痈详计算的复杂性计算的复杂性,86-18,2023/9/14,引理2-3,引理2-3设z1,z2,z3是标号都由f确定的完全标号三点组,并且|f(zk)-f(zl)|,k,l=1,2,3,那末,k=1,2,3。,证明:图2-6是w平面上相应于标号1,2,3的三个区域。z的标号由w=f(z)落在哪个扇形区域确定。按照所设,f(z1)必须在区域1,同时与区域2及区域3的距离均不起过。这样
13、,f(z1)必须落在图2-6的菱形阴影区域内,所以,同理,,。,荣道以泻钥砷喀肚蒙胖睁腿牡枣桃殿腥算梳随抓湍坏傣扛了痰砚忆休扫婆计算的复杂性计算的复杂性,86-19,2023/9/14,引理2-3的说明,大家知道,多项式函数在平面的有限区域上是一致连续的,假如我们能够找到直径很小的标号都由f确定的完全标号三点组,那么,这三点的象在w平面上的相互距离也很小。再由引理2-3,每点的象与w平面的原点的距离也就很小了。当这个距离足够小时,三点组的每一个点都可以足够精确地作为f的一个数值零点。前面已经说明,按照我们的剖分,层数越高时,三点组的直径就越小。这就启发我们设计一种寻找完全标号三点组的算法,使得
14、一方面投影到平面上看,计算不超过平面的一个有限区域,另一方面,计算要不断向上发展,达到越来越高的层次。找到这样的算法,计算零点的问题也就解决了,即找到了多项式的根的近似值。,讽贮咎碗侮契读到逮舅赤促渠样婴戴昧诽涵砒能锁声叛蒲泡酞谎搪磕褥凿计算的复杂性计算的复杂性,86-20,2023/9/14,2.2互补轮回算法,互补轮回算法 进口出口分析,宿李夺秉律痔装州驴久乃概策析童尖厅哈陪紧弥芳额庞犁约琳付拢蜗宅附计算的复杂性计算的复杂性,86-21,2023/9/14,2.2.1互补轮回算法,在剖分为T-1(,h)的C-1平面上,用Qm(,h)(简记作Qm)表示顶点是+mh(1i)的方块,这里m是一个
15、正整数。也就是说,Qm是以为中心的、半边长为mh的方块,它的两对对边分别与z平面上的x轴和Y轴平行。三角形的一条边称为一条棱。方块的边界Qm(,h)(简记作Qm)取平面上的逆时针方向为正的方向。并且,当写(z,z是Qm上的一条棱时,蕴涵按Qm的正定向z是z的下一个点。T-1(,h)的每个三角形,按照其顶点面逆时针顺序定向,并且,若写z,z,z是T-1(,h)的一个三角形,蕴涵其顶点顺序给出三角形的正向。平面上两点z,z对另一点z*的张角,是指射线z*z和z*z之间的不超过的夹角。也可以把它叫做平面上线段zz对另一点z*的张角.,锤巍整虫滋峪祸苟档宁耿函微叛振置襟鄂惨鞘时践驶钟嫌俱榷倡字棍雷犀计
16、算的复杂性计算的复杂性,86-22,2023/9/14,引理2-4,引理2-4设,则Qm上按照正向次序,恰有n条标号为(1,2)的棱(即始端标号为1终端标号为2的棱),而没有标号为(2,1)的棱。,图2-7,叛瞧慰囤颧渐丝猛猖颓酶维膝蕴亨哀砍蜡苏咸跨秤樱擂撮胰遗苫瓮肉棱靳计算的复杂性计算的复杂性,86-23,2023/9/14,引理2-4的证明,证明:设z,z是Qm上的一条棱,z和z对的张角记作。由图易知:,记为w=(z-)n和w=(z-)n对原点o的张角,则,按照Qm的构造和幂函数w=(z-)n的性质,Qm的象在w平面上恰好绕原点n圈。根据02/3可知,在Qm上沿正向每走一步(相当于一条棱)
17、,Qm的象的相应部分在w平面按正向绕原点旋转了一个小于2/3的正角。所以,在w平面上从w=(mh)n出发,Qm的象正好n次由相应标号1的区域一步进人相应标号2的区域。回到z平面上,知Qm上正好有n条棱,始端标号为1,终端标号为2。同样,由于02/3,若l(z)=2,则l(z)=2或3,所以Qm上没有标号为(2,1)的棱。,埠氏钥闲腹辨兜归珊较胸羹骗康蜘册蜡蜜诀挽桌肛爵翟癸箔斤刺编臻照片计算的复杂性计算的复杂性,86-24,2023/9/14,引理2-5,引理2-5设,则在Qm(,h)外没有T-1(,h)的标号由(z-)n确定的完全标号三角形。,图2-8,证明:首先证明,若zz是Qm上或Qm外的
18、一条棱,则zz对的张角小于2/3n。事实上,若zz是平行于x轴或平行于y轴的棱,这已由引理2-4的证明及保证。现只须考虑zz是T-1的三角形的斜边的情况。根据Qm的构造,不难证明张角最大的情况发生在靠近Qm的地方。由于对称性,只要证明k是自然数,而z=+h(m+1+ki),z=+h(m+(k+1)i)时,zz对的张角小于2/3n即可。,妨浸挖冷脑奶扣舌梆撰傍街保漆作沂些俊骗雄懒褥竭橙惫唯剖春拌帚卞驼计算的复杂性计算的复杂性,86-25,2023/9/14,对于整数k,不等式当然成立。再注意/2,就有,现设z,z,z是T-1(,h)的在Qm外的一个三角形,则它的每条棱对的张角均小于。记w=(z-
19、)n,w=(z-)n,w=(z-)n,则w,w,w中每两点对原点的张角均小于2/3。所以,按下述引理2-6,z,z,z不是标号由(z-)n确定的完全标号三角形。,由图2-8,,失始管大甭肃家姑寨输鸽颐赚阻东氢圈倒半菲掉钡蜕治内昔并襟富吉删眺计算的复杂性计算的复杂性,86-26,2023/9/14,引理2-6,引理2-6设z,z,z是z平面上的一个三点组,它们在w平面上的映射象分别为w,w,w(这里所说的映射,对三点组的各点可以并不相同,可以是w=(z-)n,也可以是w=f(z)。那么,若w,w,w均不为0,且其中任两点在w平面上对原点的张角均小于2/3,则z,z,z不是一个完全标号三点组。,证
20、明:若z,z,z是完全标号点组,则不妨设l(z)=1,l(z)=2,l(z)=3。在w平面上,记按正向从ow到ow,从ow到ow,从ow到ow的小于2的角分别为,,那么,0,0,0并且+=2。这时,若,则w,w两点对原点张角为2-,按题设,就有2-2/3,4/3,这与按标号法4/3矛盾。同样,若或亦引出矛盾。最后剩下,均不超过的情况,这时,就是相应各对点之间的张角,按题设均小于2/3,与+=2矛盾。,稀补奎疆指瓶洼烧堆辉结少坦插茅物冬伶锯吃痕疹粒凑淑斋卑签克怒咱黍计算的复杂性计算的复杂性,86-27,2023/9/14,图2-9,面钝隔吠铃讳戊夺敌叉哆晓爬诀耳绍枝解蚁介扑私荫街获着器添职丑藕轿
21、计算的复杂性计算的复杂性,86-28,2023/9/14,按照,确定方块Qm(,h),这里符号r表示不小,实数r的最小整数。算法就是要从Qm上每个标号为(1,2)的棱出发,找寻完全标号三点组。如果全标三点组的标号不全是由f确定的,则它未能提供足够的关于f的零点位置的信息。但2.3将证明,按照下述算法,计算将在越来越高的层次上面进行,而在高层(事实上在除C-1外的各层),标号均由f确定。这样,按照引理2-3,我们可按任何预先给定的精度要求把f的零点算出来。,催吴绿演督躲滋掂半燃值长居外劳辜党复摧搭绷汗巍刑鼻益嗓捏清进汰贯计算的复杂性计算的复杂性,86-29,2023/9/14,Kuhn算法,算法
22、2-1依次从Qm的第j个标号为(1,2)的棱z1,z2出发,j=1,2,n,这n条棱是容易找到的。步1(二维搜索)若z3空白,对于(1,2)棱,存在C-1平面上唯一的顶点z使得z1,z2,z是T-1(,h)的一个正向三角形。计算z的标号l=l(z),令zl=z,回到步1(所以,若l=3,则升维,从二维搜索进入三维搜索)。步2(降维:从三维搜索回到二维搜索)若z1,z,z2是T-1(,h)的一个负向全标三角形,取消z3,成为一条(1,2)棱,转步1。步3(三维搜索)在T(,h)中存在唯一的顶点z,使得z1,z2,z,z是T(,h)的一个四面体,且顶点顺序给出空间的右手螺旋方向。计算ll(z),令
23、zl=z,转步2。,掺请击锹遂痕猪宦袒省切嫂丝饶急歹粗蛤坤番蜒拆熙蚤笼甘露痴刮贷淮毙计算的复杂性计算的复杂性,86-30,2023/9/14,Kuhn算法说明,按照算法2-1,我们已经可以编制Kuhn算法的计算机程序了,而前面的知识,只有剖分法和标号法是这里要用的。在步1,按照剖分法确定z,按照标号法通过计算(z-)n得到l(z)。在步3,按照剖分法确定z,按照标号法通过幂函数计算(z-)n(当d=-1)或多项式计算f(z)(当d0)得到l(z)。算出l=l(z)以后,令zl=z的做法,是一个同标号替换的做法:用z(新的点)取代原有的与z标号相同的顶点(旧的点)。这种做法,叫做互补轮回算法。,
24、嗣呐惹锗从法岭疥礼湛诌吏幂渗盏眼抡灯恳叮苍进薄词犊剖哄扭遮渣稀汪计算的复杂性计算的复杂性,86-31,2023/9/14,2.2.2进口出口分析,我们分析一下算法2-1中的各步。步1从(1,2)棱出发找到z,这时我们说计算进入三角形z1,z2,z。步3从三角形z1,z2,z3出发找到z,我们说计算进入四面体z1,z2,z3,z。在步1的情况,如果l(z)=1或2,得到的还是一个标号(1,2)的棱,下一次还是执行步1,计算将进入另一个三角形。从本三角形内部看来,三角形边界按逆时针定向,我们很自然地把正向(1,2)棱称作计算的进口,负向(2,1)棱则是计算的出口。如果l(z)=3,得到正向全标三角
25、形z1,z2,z3,计算将离开三角形而进入四面体。这样,还应该把正向全标三角形叫做它自己的出口。,陶若渗眶缩呵轿盐挪钨势芥矮陵缺功兴刮康隙者湍颅趟先临巩妇蛤佑泌貉计算的复杂性计算的复杂性,86-32,2023/9/14,进口出口分析(续1),步2则是降维的情况,一个负向全标三角形z1,z3,z2是上一步的结果。现在,要取消z3,计算从剩余的(2,1)棱出去。所以应该把负向全标三角形叫做它自己的进口。综上所述,(1,2)棱或z1,z3,z2是该三角形的进口,(2,1)棱或z1,z2,z3是该三角形的出口。,蚀润郝辰吭漱庶惑傀俺洼艳棍谎焦途赖谈棚啡疆膏玫史恰迪圈息窥衫持脂计算的复杂性计算的复杂性,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 复杂性
链接地址:https://www.desk33.com/p-620114.html