




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章动态规划学习要点:理解动态规划算法的概念。掌握动态规划算法的基本要素(1)最优子结构性质(2)重叠子问题性质掌握设计动态规划算法的步骤。(1)找出最优解的性质,并刻划其结构特征。(2)递归地定义最优值。(3)以自底向上的方式计算出最优值。(4)根据计算最优值时得到的信息,构造最优解。1通过应用范例学习动态规划算法设计策略。(1)矩阵连乘问题;(2)最长公共子序列;(3)最大子段和(4)凸多边形最优三角剖分;(5)多边形游戏;(6)图像压缩;(7)电路布线;(8)流水作业调度;(9)背包问题;(10)最优二叉搜索树。2nT(n)=n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。算法总体思想3如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法。n=n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2n/2T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)T(n/4)T(n)4动态规划基本步骤找出最优解的性质,并刻划其结构特征。递归地定义最优值。以自底向上的方式计算出最优值。根据计算最优值时得到的信息,构造最优解。5假定A为100×1矩阵,B为1×100矩阵,C为100×1矩阵,(A*B)*C需乘法数为100×1×100+100×100×1=20000而
A*(B*C)所需乘法数为1×100×1+100×1×1=200长度q的矩阵乘法链有指数量级Ω(2n)的可能的相乘方式(有q个叶节点的二叉数的数目).要找一种相乘方式,使得元素乘法数最少616000,10500,36000,87500,34500完全加括号的矩阵连乘积可递归地定义为:(1)单个矩阵是完全加括号的;(2)矩阵连乘积A是完全加括号的,则A可表示为2个完全加括号的矩阵连乘积A和B的乘积并加括号,即A=(BC)设有四个矩阵A,B,C,D,它们的维数分别是:矩阵连乘积总共有五中完全加括号的方式7给定n个矩阵,其中与是可乘的。考察这n个矩阵的连乘积由于矩阵乘法满足结合律,所以计算矩阵的连乘可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次序完全确定,也就是说该连乘积已完全加括号,则可以依此次序反复调用2个矩阵相乘的标准算法计算出矩阵连乘积8给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。穷举法:列举出所有可能的计算次序,并计算出每一种计算次序相应需要的数乘次数,从中找出一种数乘次数最少的计算次序。
算法复杂度分析:对于n个矩阵的连乘积,设其不同的计算次序为P(n)。由于每种加括号方式都可以分解为两个子矩阵的加括号问题:(A1...Ak)(Ak+1…An)可以得到关于P(n)的递推式如下:9动态规划将矩阵连乘积AiAi+1…Aj,简记为A[i:j],这里i≤j考察计算A[i:j]的最优计算次序。设这个计算次序在矩阵Ak和Ak+1之间将矩阵链断开,i≤k<j,则其相应完全加括号方式为计算量:A[i:k]的计算量加上A[k+1:j]的计算量,再加上A[i:k]和A[k+1:j]相乘的计算量10特征:计算A[i:j]的最优次序所包含的计算矩阵子链A[i:k]和A[k+1:j]的次序也是最优的。矩阵连乘计算次序问题的最优解包含着其子问题的最优解。这种性质称为最优子结构性质。问题的最优子结构性质是该问题可用动态规划算法求解的显著特征。分析最优解的结构11建立递归关系设计算A[i:j],1≤i≤j≤n,所需要的最少数乘次数m[i,j],则原问题的最优值为m[1,n]当i=j时,A[i:j]=Ai,因此,m[i,i]=0,i=1,2,…,n当i<j时,这里的维数为
的位置只有种可能可以递归地定义m[i,j]为:12计算最优值对于1≤i≤j≤n不同的有序对(i,j)对应于不同的子问题。因此,不同子问题的个数最多只有由此可见,在递归计算时,许多子问题被重复计算多次。这也是该问题可用动态规划算法求解的又一显著特征。用动态规划算法解此问题,可依据其递归式以自底向上的方式进行计算。在计算过程中,保存已解决的子问题答案。每个子问题只计算一次,而在后面需要时只要简单查一下,从而避免大量的重复计算,最终得到多项式时间的算法13用动态规划法求最优解voidMatrixChain(int*p,intn,int**m,int**s){for(inti=1;i<=n;i++)m[i][i]=0;for(intr=2;r<=n;r++)for(inti=1;i<=n-r+1;i++){intj=i+r-1;m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];s[i][j]=i;for(intk=i+1;k<j;k++){intt=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];if(t<m[i][j]){m[i][j]=t;s[i][j]=k;}}}}14A1A2A3A4A5A6303535151555101020202515算法栋复杂斯度分啄析:算法ma捡tr忌ix使Ch姐ai伏n的主绞要计哈算量惯取决伶于算问法中卖对r,i和k的3重循傲环。捞循环丝式体内伐的计羽算量热为O(销1),而3重循祥环的佛总次配数为O(养n3)。因壤此算师法的周计算谣时间居上界砖为O(冶n3)。算橡法所疮占用怀的空亮间显兰然为O(著n2)。16动态聚规划累算法贪的基耍本要哨素一、普最优征子结帮构矩阵岂连乘煮计算眠次序童问题魔的最蜻优解龄包含心着其嫂子问徒题的角最优绝解。涉这种顾性质森称为最优疮子结灯构性职质。在分谊析问题题的岁最优摘子结旱构性佣质时酬,所吨用的司方法我具有察普遍突性:妨首先棚假设役由问倍题的愈最优洗解导皆出的沿子问格题的解解不退是最确优的箩,然蚕后再周设法赶说明危在这蚁个假留设下椒可构明造出午比原轨问题统最优内解更搅好的陪解,考从而丛导致占矛盾贵。利用喇问题土的最谣优子变结构给性质伸,以值自底慨向上临的方驻式递秃归地欧从子馆问题演的最折优解呼逐步龄构造快出整律个问警题的薪最优意解。酸最优姜子结设构是荡问题叫能用踏动态沟规划扁算法碧求解择的前勤提。同一墙个问膛题可奸以有陵多种方式奥刻划它的最虑优子或结构族,有胀些表坝示方娇法的圆求解丈速度占更快制(空辣间占锯用小益,问他题的胳维度吼低)17二、圆重叠坚子问卖题递归镜算法辞求解塑问题荷时,矩每次巧产生抵的子阵问题镇并不且总是谦新问勤题,鸣有些芒子问淹题被膊反复漏计算铃多次驼。这种地性质那称为子问事题的爹重叠遇性质。动态择规划聋算法疾,对考每一两个子弱问题亭只解垫一次带,而革后将女其解旅保存发在一东个表锻格中眠,当梦再次轰需要捞解此疤子问否题时河,只弊是简板单地步用常岩数时旋间查称看一眨下结译果。通常汽不同造的子刃问题块个数先随问嫂题的涛大小糕呈多绕项式法增长甲。因药此用驾动态稻规划城算法场只需驳要多渗项式御时间悠,从秆而获献得较掠高的最解题吩效率咱。18in慰tre猾cm号at(i顺nti,in苗tj){if边(村i=歌=j侦)界re蚕tu汤rn邮0泰;in丝式tu葬=re屑cm哪at(i,i)系+re预cm盖at(i抢+1,j)随+土p傲[i尼-1谱]*窝p[铁i]朴*p奔[j波];s[德i]驾[j赏]贵=用i;fo迷r鸽(in且tk懒=匹i+帆1;呆k仔<阶j泳;柔k+摇+)口{in怪tt表=re菌cm齿at(i,k)恼+re踪蝶cm疯at(k休+1,j)妹+怕p刊[i逼-1右]*焦p[均k]冒*p绵[j唉];if倦(抖t顶<燥u)使{浇u写=钻t捎;灿s[维i]集[j肃]愧=院k;絮}}m[慎i]层[j芬]抄=吴u;re伞tu显rn戚u钓;}19三、漂备忘巡寿录方膏法备忘致录方斗法的夸控制川结构区与直档接递秆归方榨法的殖控制竿结构冻相同生,区晨别在桥于备唇忘录奶方法别为每溪个解荣过的荒子问凑题建低立了老备忘战录以汤备需蛋要时闸查看律,避计免了田相同睛子问距题的卖重复扑求解参。in暖tLo印ok嗽up绸Ch背ai每n(i挽nti,in狸tj){if傲(悼m[雾i]柜[j下]盏>学0)火r妈et精ur肺n雕m[适i]陪[j器];if台(甲i士==训j乏)德re节tu勤rn翅0朋;in壶tu钉=Lo遍ok乎up含Ch障ai膀n(火i,i)塌+耍L瓶oo苦ku续pC隆ha您in撑(i到+1,j)弓+咽p套[i欧-1投]*酿p[来i]喉*p住[j蚊];s[代i]臂[j药]河=断i;fo姐r校(in辛tk造=游i+读1;倦k删<陪j裕;注k+方+)薯{in吵tt断=Lo革ok界up纹Ch解ai读n(塑i,k)存+垮L付oo锐ku晨pC倘ha孤in屋(k爹+1,j)掘+厌p片[i价-1吸]*艳p[奇k]睛*p黑[j携];if绞(引t器<墙u)卖{蓄u俩=良t梦;宋s[疾i]穗[j理]絮=海k;饰}}m[印i]仔[j众]川=虾u;re摆tu各rn咏u且;}20最长虏公共廊子序亡列若给页定序宝列X=鹅{x1,x2,…击,xm},则幸另一育序列Z=搬{z1,z2,…先,zk},是X的子吵序列双是指阶存在仗一个槽严格荷递增垦下标幅序列{i1,i2,…肾,ik}使得潮对于映所有j=仍1,枪2,弊…,虹k有:zj=xij。例消如,毙序列Z=欺{B,C,D,B}是序腾列X=弟{A,B,C,B,D,A,B}的子篇序列年,相呼应的尽递增茎下标愤序列秆为{2,3,5,7}。给定2个序戴列X和Y,当语另一撇序列Z既是X的子槐序列羊又是Y的子颗序列交时,直称Z是序愧列X和Y的公共盲子序奇列。给定2个序嫂列X=机{x1,x2,…凯,xm}和Y=悉{y1,y2,…觉,yn},找促出X和Y的最糕长公循共子项序列取。21设序限列X=祸{x1,x2,…鱼,xm}和Y=芒{y1,y2,…础,yn}的最领长公融共子树序列闷为Z=役{z1,z2,…国,zk},则(1很)若xm=yn,则zk=xm=yn,且zk-运1是xm-帮1和yn-黄1的最库长公负共子喂序列主。(2劣)若xm≠yn且zk≠xm,则Z是xm-虏1和Y的最毯长公乞共子果序列落。(3慈)若xm≠yn且zk≠yn,则Z是X和yn-已1的最钱长公佳共子瓜序列政。由此疗可见倡,2个序熄列的锯最长糕公共的子序术列包社含了异这2个序气列的献前缀响的最蛙长公同共子如序列我。因贝此,别最长陈公共倡子序唱列问驱题具歼有最优悄子结枕构性戒质。22子问廉题的曾递归咸结构由最业长公民共子议序列巡寿问题胜的最扇优子变结构西性质姥建立睁子问泪题最刘优值慢的递藏归关采系。皮用c[波i]切[j撇]记录瓜序列权和的短最长穗公共贞子序梳列的动长度融。其缓中,Xi={界x1,x2,…屯,xi};Yj={姜y1,y2,…或,yj}。当i=控0或j=状0时,傻空序飞列是Xi和Yj的最箭长公针共子耐序列阀。故雪此时C[影i]侄[j脖]=既0。其骆它情候况下纲,由抖最优遗子结老构性挥质可清建立怀递归劣关系捕如下译:23计算课最优杜值由于奏在所毙考虑井的子壳问题叉空间误中,蹲总共州有θ(要mn)个不抢同的仿子问溉题,券因此跃,用弟动态柿规划够算法尚自底爸向上启地计区算最哨优值低能提韵高算灾法的疑效率朵。vo兰idLC姿SL次en够gt劲h(i苦ntm,in般tn,ch朵ar慢*抬x,ch挺ar械*钉y,in唐t**亡c,in秧t**妄b){in晋ti,j;fo协r炉(i捷=被1膀;胁i傍<=肃m者;也i+序+)靠c些[i学][俯0]框=犯0梳;fo录r兄(i役=居1誓;闷i尚<=宗n败;裁i+舟+)逃c赚[0冰][砖i]钢=甘0娘;fo抬r择(i姿=杨1戚;烟i祝<=即m膛;练i+捎+)fo汁r牧(j鸡=栏1工;罪j趁<=结n读;喷j+困+)倦{if艺(临x[围i]决==壮y[真j]工){菜c相[i风][泊j]轻=c敌[i崇-1寄][丛j-岂1]描+1族;巨b[炸i]遵[j疤]=袖1;少}el杨se恐i握f痕(c差[i鼻-1而][陷j]摊>=仪c[浙i]凝[j旗-1棵]){沸c[垄i]次[j晶]=违c[林i-醒1]滔[j淹];安b昏[i照][批j]押=2淘;}el址se镰{卡c泉[i约][汇j]健=c妇[i插][歉j-缩慧1]岗;捧b[堂i]倘[j疗]=愿3;折}}}24构造宏最长注公共屿子序锦列vo猾idLC享S(i智nti,in饶tj,ch鲁ar应*徒x,in触t**跪b){if恒(肆i鹅==搭0广||座j蚁==面0)币r诉et串ur敬n;if乌(丢b[木i]炒[j匙]=殖=桨1){览LC荷S(担i-线1,氏j-湖1,x,b)赢;co础ut<<繁x[雕i]蜂;心}el针se苹i魂f经(b丈[i础][区j]荐==莲2剥)盖LC弦S(久i-艰1,j,x,b)狡;el本se偿L认CS叉(i,j-更1,x,b)怪;}j怒0总1绝2变3鄙4拴5惭6yjB唉D省C腔A签B党Ai0xj1瞎A2全B3喉C4踩B5赞D6咐A7级B0跪0延0惭0捷0育000000000传0仓0块1肉1想11圾1备1晚1父2美21杏1婚2歪2正2勾21戚1驳2全2乎3掠31流2扒2返2璃3者31握2笼2朵3梯3插41属2旅2攻3况4笔425算法梁的改冲进在算胸法lc花sL背en亲gt纳h和lc出s中,呜可进拦一步六将数脏组b省去碗。事杠实上牢,数经组元扯素c[舍i]拔[j秘]的值赶仅由c[挪i-柿1]慢[j症-1筋],c[嘱i-扑1]车[j材]和c[泉i]俊[j狐-1辩]这3个数正组元忠素的臭值所掩确定脸。对欢于给喊定的券数组柏元素c[娃i]容[j讲],可拌以不健借助生于数须组b而仅侧借助凳于c本身这在时璃间内秒确定c[非i]爽[j期]的值撑是由c[誉i-霉1]堤[j蔽-1院],c[妙i-壶1]俱[j洋]和c[吃i]伞[j懂-1蓝]中哪烦一个里值所呢确定愉的。如果胆只需枝要计挥算最奴长公扭共子龙序列翠的长挤度,伏则算壤法的圣空间邀需求焦可大害大减绸少。漠事实革上,恩在计特算c[或i]扛[j诞]时,若只用栽到数利组c的第i行和苹第i-偶1行。兽因此惭,用2行的要数组缴空间践就可饺以计僵算出柄最长示公共羞子序拔列的刚长度下。进浮一步隙的分吩析还药可将府空间沉需求茂减至O(外mi驼n(抓m,符n)锈)。26最大壮字段鸭和给定践由n个整网数(跪可能既为负速数)浩组成炕的序公列a1常,a出2,饰…,月an茎,求该莲序列以形如车的字吉段和波的最亮大值羽。当劣所有棵整数金均为仔负整非数时膏,定问义其去最大刃字段跪和为源0。学所以叛,所市求最隐优值童为:例如储:当杠(a1飞,a贞2,寄a3版,a毫4,电a5胳,a描6)腐=(械-2专,1有1,年-4仰,1器3,烟-5郑,-涂2)时,凡最大坑字段跃和为27最大华字段董和的浴简单贸算法in贩tma源xs流um洗(i混ntn,in脊t*a判,in肝t&be屑st起i,in化t&be仆st荡j){in孝ts男um=0灶;fo殿r朗(in令ti=秆1;辨i宫<=拒n;齿i喊++爬)fo驱r颗(in爹tj=记i;汽j蓄<=贺n;潜j械++孔){in寨tth积is榆su钓m=0外;fo玻r螺(in丘tk=播i;文k捷<=淋j;称k建++捡)th往is碧su君m+=夫a[带k]弯;if翠(th壤is驴su呈m>s虹um愁){更su耀m=th羊is南su买m;be绪st亦i=i宜;be劈燕st粪j=j慢;}}re喜tu陵rn荣su暮m;}O(奔n3)28最大友字段贝和的谁简单浇算法读改进in疼tma来xs堡um宅(i片ntn,in富t*a己,in故t&be厉st惩i,in微t&be奇st架j){in姓ts虹um=0训;fo绘r衫(in毙ti=未1;珠i塌<=碑n;疮i笑++谅){in薄tth凳is婆su罚m=0厚;fo晃r窃(in亲tj=岔i;烟j逆<=容n;银j渡++责){th绝is借su剖m+=绸a[劳k]火;if怜(th庆is驱su融m>s狮um贪){五su嘱m=th沈is文su渔m;be触st碰i=i误;be俯st魂j=j胖;}}什}re沙tu世rn崇su那m;}O(求n2)29最大百字段嘉和的蹲分治校算法如果恼将所蛛给的坊序列a[视1:纷n]分为循长度演相等遭的两亮段a[败1:烈n/出2]和a[旁n/舅2义+1双:n课],分别艳求出作这两通段的趣最大愚字段串和,骑则a[胡1:锅n]的最大虏字段味和有钞三种栽情形名:1、a[晕1:赴n]的最伞大字瓦段和拳与a[位1:昌n/毛2]的最瞒大字凭段和臭相同摩;2、a[鸦1:晕n]的最伴大字督段和眼与a[羞n/流2排+1除:n率]的最井大字售段和苦相同侵;3、a[菠1:请n]的最降大字涝段和购为站1<方=i<吸=n剑/2距,仔n/伪2+聪1<虾=j突<=句n1,平2情度形可凡递归怕求得绒。对索于3希,在a[弓1:馅n/弦2]计算作出30在a[姜n/播2售+1鞭:n右]计算孝出则s1赖+s而2为第桂3种痛情形铜的最披优解幕。则医分治理算法惹如下亩:in原tma物xs壁ub皮su焰m(盖in康t*a稍,in圈tle蛇ft吊,in额tri香gh狭t){in毅ts赶um=0那;If斤(粥le虹ft捡==扎ri由gh毕t)撇su肝m=逮a[蜂le劫ft舟]>萄0?撞a[葡le管ft追]:佣0;el炕se{in石tce接nt刃er洋=(丛le沙ft规+r影ig县ht价)/弟2;in府tle茅ft你su润m=ma烟xs度un话su秩m(扎a,卫le听ft管,堡ce帮nt卷er授);in睁tri稿gh馋ts艘um=ma则xs律un开su汇m(轰a,醋ce示nt垒er坐+1彼,田ri狡gh话t)惑;31in离ts1吧=0软;in魂tle慕ft框s=得0;fo介r赵(in凳ti=芒ce贩nt雨er坦;淘i>荣=l激ef涛t;穿i-窝-){纽奉le摇ft寨+=仓a[待i]心;劈燕i遮f搅(l死ef破t>栏s1暮)设s介1=抄le烛ft苦;廊}in煮ts2郊=0怜;in奶tri杠gh菌ts半=0粥;fo雹r角(in厦ti=砖ce派nt念er软+1苦;叮i<往=r侄ig副ht钓;址i死++俱){r拣ig态ht驶s+品=a雁[i解];蒸if投(凡ri抄gh借ts偏>s斜2)喷s2娇=r艺ig见ht转s;抚}su经m=说s1帜+s纱2;if疗(细su键m<le砍ft湾su节m)挤s堂um沿=le鼓ft搜su改m;if靠(冻su条m<ri拌gh世ts澡um)剥s盲um包=ri扩gh帝ts恭um;}re脏tu刘rn半su峰m;盟}32时间威复杂宗度:33最大视字段予和的祝动态办规划软算法对于霸上述仆分治参算法多的分坊析中吹,若霉记则所求熊的最太大字俊段和晃为:当b[饺j-陕1]娘>0时,b[辽j]秒=b侮[j查-1亿]+缓a[失j]岂,否则b[嚷j]领=a跌[j竖]。由此请可得述动态送规划袋递归病式:b[些j]卧=m罚ax梁{b摘[j剃-1席]+兴a[于j]找,甲a[隙j]着},闸1<晃=j灿<=粒n34最大与字段愤和的龙动态菌规划卷算法in冈tma弟xs矛um千(i商ntn,in请t*a原){in剪ts呀um=0纳,签b=梁0;fo隔r西(in赴ti=萌1;是i<罗=n映;歉i畏++钓){首if龟(炕b>屿0)阀b涌+=辱a[铺i]榨;el陷se耐b甚=a权[i迎];if紧(b峡>s苗um拍)断s礼um笋=b怜;}re分tu裳rn话su森m;O(野n)}35求任俱意一声对顶睁点的捆最短阶路径--武-弗罗撕伊德(Fl塑oy袄d)算法设图g用邻没接矩嚼阵法先表示据,求移图g中任链意一换对顶荷点vi、vj间的陪最短注路径挣。1.将vi到vj的最调短的换路径孙长度汁初始笋化为g.粉ar冒cs呆[i晕][盈j],击然后仅进行陶如下n次比液较和炮修正牧:2.在vi、vj间加齿入顶罗点v0,比截较(vi适,魔v0筑,vj)和(v押i,vj)的路作径长惹度,莫取其皮中较猜短的芒路径助作为vi到vj的且轨中间辜顶点漏号不苦大于0的最淹短路领径。363.在vi、vj间加爬入顶轿点v1,得(vi服,运…,v1)和(v猴1,掠…,vj),堵其中(vi航,尼…,粗v抱1)是vi到v1的且枯中间丙顶点妈号不叉大于0的最土短路侄径,(v即1,牛…刷,vj)是v1到vj的且谨中间酷顶点跑号不玻大于0的最骗短路胳径,这两育条路婆径在据上一镰步中眼已求律出。敌将柴(vi丘,既…,峰v傅1,湿…送,vj)与衡上一赢步已拜求出绑的且vi到vj中间种顶点招号不捏大于0的最住短路掉径比为较,毫取其迹中较悉短的烤路径销作为vi到vj的且绣中间斑顶点绳号不检大于1的最富短路奥径。374.在vi、vj间加殃入顶为点v2,得(vi忠,询…,叠v娱2)和(v晨2,盖…桂,vj),其中(vi总,袜…,物v粮2)是vi到v2的且截中间皂顶点杨号不占大于1的最替短路克径(v星2,纠…价,vj)是v2到vj的且公中间邻顶点垦号不状大于1的最席短路和径,这两袄条路扁径在晕上一砖步中腥已求党出。浊将(vi史,芹…,脱v制2,雹…越,vj)与上穿一步践已求夹出的水且vi到vj中间酷顶点美号不贝大于1的最壤短路饰径比围较,奖取究其中谋较短蒜的路播径作么为vi到vj的且谨中间帅顶点径号不沟大于2的最煤短路棉径。依次兼类推很,经访过n次比总较和险修正抚,在蔬第(n-讯1)步萝,将薄求得vi到vj的且榴中间掏顶点昆号不杰大于n-驶1的最局短路涂径,惹这必乐是从vi到vj的最尿短路炊径。按此作方法肌可求叨得各之对顶胡点间侍的最挖短路社径。38现定饭义一乡丰个n阶方快阵序僚列。A(-爸1),A(0肯),A(1祝),…,A(k脂),…,A(n劈燕-1惯)其中A(-付1)[i缴][尿j]援=G贯.a羡rc拳s[柳i]扭[j闪]A(拐k)[i北][荒j]题=M芹in竖{A(增k-颗1)[i猪][泡j]条,销A(温k-税1)[i域][继k]甩+A(刊k-俩1)[k潮][掀j]捉}询0竭≦k丘≦n纤-1从上惊述计效算公样式可分见,A(1四)[i构][剃j]是从vi到vj的中补间顶衫点的碗序号量不大威于1的最钞短路滥径的唉长度灿;A(捆k)[i胳][辛j]是从vi到vj的中拔间顶伙点的逼个数堵不大随于k的最紫短路葵径的梁长度伐;A(猴n-酷1)[i辟][芹j]就是怪从vi到vj的最阵短路直径的输长度阁。由此炮得到钉求任毁意两祝顶点段间的螺最短观路径扰的算缝法。39vo昼idFl蚂oy格d(唱Mg未ra敌phG,Pa再th德Ma每tr答ix*P舌[]边,Di旗st折an处cM拘at饰ri永x*A杜){/*用Fl碍oy袭d算法强求有告向网G中各馋对顶正点v和w之间呈的最挺短路晕径P[栽v]发[w锤]及其迁带权为长度D[多v]州[w桂]。/*若P[案v]管[w迹][问u]为1,则u是从v到w当前瞧求得董的最抢短路雅径上庸的顶辛点。*/fo盼r(据v=玩0;现v衰<G.伸ve丢xn构um;时++赚v)/*各对进顶点烛之间饶初始为已知拦路径节及距黄离*/fo辜r(捞w=玩0;宽w股<G.粮ve犁xn黄um;独++球w){A[期v]斯[w但]=弓G.盘ar县cs井[v臂][筋w]待;fo蠢r(箱u=付0;比u商<G.取ve攀xn并um巷;+吼+u)色P丛[v池][谎w]傲[u室]=坊0;if株(榴A[练v]宜[w虑]<刃IN悉FI快NI兄TY热)押/赏*从v到w有直跃接路贼径*/{贴P[雨v]导[w告][命v]漂=1叛;}}40fo汤r(搞u=柿0;足u俊<G.杯ve赚xn家um;右++法u)fo陷r(瞎v=稠0;券v堵<G.婶ve厦xn笼um;帖++平v)fo惧r(冰w=红0;求w基<G.伤ve适xn衣um;胖++僻w)if墙(望A[呈v]吉[u生]+骂A[朋u]谜[w损]<桌A[绵v]防[w钩])匆/采*从v经u到w的一篮条路流径更底短*/{A[旨v]绒[w绩]=绘A[滚v]坦[u桑]+留A[弦u]舅[w兄];fo俘r(教i=墙0;协i尺<G.弃ve勇xn谷um;掩++仇i)P[轨v]岂[w酷][滑i]扎=P泼[v雅][渗u]强[i哪]|万|P横[u蝴][激w]召[i拥];}}/张*匆Fl惯oy领d岩*/图7.裳20给出障了一事个简即单的转有向飞网及信其邻哑接矩沈阵。好图7.寸21给出百了用Fl骗oy肾d算法饶求该净有向橡网中叠每对肚顶点仇之间茂的最帖短路穗径过咐程中法,数识组D和数逐组P的变誉化情挠况。414243凸多延边形芽最优妄三角季剖分用多醋边形辉顶点乞的逆穗时针抗序列秧表示日凸多存边形犁,即P=眯{v0,v1,…匠,vn-挺1}表示辣具有n条边询的凸剧多边需形。若vi与vj是多拴边形经上不弯相邻缠的2个顶扰点,摄则线商段vivj称为缓多边原形的乒一条魄弦。筐弦将地多边总形分敞割成2个多栏边形{vi,vi+蛋1,…弦,vj}和{vj,vj+森1,…烂vi}。多边劫形的程三角缝剖分是将煮多边变形分市割成尿互不储相交概的三制角形追的弦牧的集际合T。给定经凸多节边形P,以哭及定握义在阁由多暗边形骡的边灶和弦苏组成谢的三较角形凡上的粒权函息数w。要遗求确亦定该搁凸多重边形贪的三碍角剖情分,配使得映即该借三角销剖分趣中诸使三角窄形上遍权之锋和为宴最小比。44三角羽剖分协的结尸构及槽其相班关问苦题一个披表达批式的企完全算加括管号方染式相霞应于萍一棵胁完全胞二叉围树,构称为据表达题式的拾语法概树。具例如壮,完嫂全加祖括号粱的矩英阵连晨乘积((混A1(A2A3))棵(A4(A5A6))污)所相挎应的羽语法纠树如缘瑞图(a出)所示睬。矩阵显连乘柏积中勤的每屿个矩材阵Ai对应塑于凸(n虹+1荒)边形致中的翻一条队边vi-肾1vi。三请角剖懂分中煌的一为条弦vivj,i<葡j,对父应于见矩阵要连乘镜积A[降i+傻1:扛j]。一般档情况桐下,兼一个办凸边泊形的周三角赔剖分址对应洋于一常棵有n-志1个叶泰结点办的语肺法树窝。凸多蹦边形{v0,v1,…朵vn-全1}的三畅角剖狼分也猪可以逆用语委法树续表示圾。例骄如,申图(b狸)中凸巾多边腊形的赔三角常剖分沉可用裁图(a许)所示划的语鸟法树淋表示鸟。45最优搭子结扒构性楼质凸多仿边形蚊的最瓶优三钟角剖虾分问敢题有稼最优孕子结觉构性腹质。事实任上,轨若凸(n粥+1哭)边形P=袜{v0,v1,…芝,vn-渔1}的最彻优三疑角剖壳分T包含添三角延形v0vkvn,1≤尊k≤楼n-望1,则T的权佣为3个部无分权旱的和巨:三猪角形v0外vk孟vn的权捎,子拐多边本形{v0,v1,…冬,vk}和{vk,vk+铁1,…长,vn}的权波之和暮。可睬以断粉言,歉由T所确返定的兵这2个子乒多边扯形的揪三角烈剖分亮也是犁最优厕的。摘因为播若有{v0,v1,…型,vk}或{vk,vk+云1,…木,vn}的更塑小权多的三领角剖棵分将趋导致T不是梅最优乞三角努剖分泥的矛冷盾。46最优绑三角钥剖分队的递染归结武构定义t[创i]盛[j并],1≤柿i<隔j≤挡n为凸恳子多凶边形{v惨i-咬1,益vi野,…笛,vj}的最魄优三妙角剖马分所偶对应醉的权锻函数伐值,半即其掠最优各值。默为方戏便起庸见,停设退肌化的艰多边酱形{v帽i-妙1,广vi丢}具有帜权值0。据复此定棉义,皇要计脏算的腐凸(n牌+1惩)边形P的最快优权泳值为t[辰1]根[n偷]。t[愈i]拴[j建]的值透可以樱利用合最优础子结霸构性杜质递狂归地偏计算枝。当j-瓣i≥敞1时,应凸子闪多边喂形至魔少有3个顶乘点。霞由最扰优子攻结构尘性质法,t[订i]慈[j才]的值榜应为t[葡i]烧[k未]的值贞加上t[假k+套1]迷[j嫩]的值敌,再用加上现三角多形vi-历1vkvj的权壁值,跌其中i≤潮k≤垂j-瞎1。由舞于在锐计算玩时还捉不知盈道k的确肺切位准置,摧而k的所钟有可恼能位歼置只街有j-迅i个,粮因此聋可以乓在这j-阁i个位李置中韵选出凶使t[傲i]挂[j迟]值达赢到最刮小的扇位置蓬。由右此,t[羞i]买[j录]可递岔归地惑定义卷为:47计算桥最优稿值te辱mp封la素te办<c蚕la弹ss热t享yp拦e>vo夏idmi向nw哄ei鞠gh捐tt飞ri级an锣gu殖la桌ti识on页(i像ntn,桶t帖yp狼e段**寨t昏,in栋t**裳s){遮f鬼or京(in箱ti=闯1;蹲i眼<=晒n;轧i捐++恨)朝t崭[i券][桂i]束=0斗;fo弟r迅(in摇tr=化2;腐r兵<=忌n;冷r顾++先)fo哨r蛮(in辟ti=萌1;仇i驼<=肤n-沾r+柔1;婆i妈++拨){in丈tj=父I+甲r-饶1;忠t绕[i率][额j]蚁=安t[谁i+赤1]迟[j赢]+借w(闹i-碌1,棋i,桃j)府;塞s嫌[i秃][凯j]变=I墙;fo折r乏(in巾tk=鼠i+劣1;料k蛛<=最i+宣r+照1;避k耗++虚){in敞tu=刻t隔[i报][狡k]拣+t丈[k颠+1污][抬j]键+w西(i山-1粥,k含,j这)暴;if徒(龟u<喘t防[i夫][喝j]宜){t肚[i球][土j]堪=恨u;疤s翻[i汤][偷j]掌=k忙;括}}}}占用猪空间错:耗时知:48多边方形游佛戏多边漏形游例戏是淋一个举单人盼玩的引游戏爽,开显始时乞有一温个由n个顶穿点构该成的千多边月形。群每个燃顶点画被赋秒予一基个整盟数值木,每裁条边从被赋参予一版个运向算符位“+”或“炒*”赶。所活有边陶依次致用整舱数从1到n编号疗。游戏桐第1步,顺将一椅条边之删除浓。随后n-买1步按残以下羡方式砍操作持:(1孝)选择药一条匪边E以及僚由E连接辫着的2个顶哑点V1和V2;(2兽)用一速个新厅的顶垂点取狐代边E以及销由E连接切着的2个顶葵点V1和V2。将它由顶腾点V1和V2的整纵数值要通过炕边E上的故运算另得到覆的结抛果赋阔予新花顶点牛。最后累,所仪有边救都被蜜删除张,游腔戏结帝束。援游戏讽的得徐分就妖是所洋剩顶伸点上牲的整李数值甩。问题:对于惊给定是的多称边形私,计邪算最柿高得雀分。49最优叶子结庭构性暑质设所祥给的刺多边丛形的咬顶点嗽和边头的顺梅时针券序列击为:op测[1乘],类v[挪1]阳,o牧p[歇2]抗,v偷[2早],岁…,兆op秋[n念],幼v[猛n]其中虏,op渡[i昼]表示努第I条边择所对访应的兵运算陪符,v[循i]表示话第i个顶遗点上虎的数脉值。在所庙给多嚼边形逝中,楚从顶残点i(验1≤本i≤姜n)开始春,长率度为j(链中妙有j个顶葛点)的顺钻时针抗链p(法i,j)可表土示为v[盘i],op柴[i歪+1珍],…,v[密i+币j-衔1]。如果悬这条悠链的棵最后撞一次营合并播运算皇在op跨[i纷+s衰]处发筋生(1握≤s怨≤j半-1村),则蚀可在op怎[i智+s祝]处将虾链分卸割为2个子观链p(田i,s)和p(燥i+针s,j-葱s)。设m1是对秒子链p(惕i,s)的任泊意一劝种合耀并方升式得示到的希值,月而a和b分别禽是在扩所有脸可能丛的合据并中州得到调的最留小值附和最刚大值梁。m2是p(楼i+猛s,j-哪s)的任挎意一否种合什并方啦式得非到的凤值,妖而c和d分别降是在重所有圈可能兼的合觉并中委得到李的最携小值那和最守大值放。依确此定油义有a≤识m1股≤b,c≤旋m2琴≤d50由于朗子链p(环i,辫s)和p(兰i+俯s,姓j-在s)的合主并方筒式决袍定了p(监i,尤j)在op床[i著+s盟]处断当开后础的合蜻并方肌式,斜在op垦[i坝+s副]处合尤并后妄其值竭为:m=员(m胁1)杀op盒[i先+s令](遣m2地)(1特)当op相[i植+s家]=当'+蛛'时,示显然制有a+父c≤罚m≤叔b+绪d(2能)当op拉[i许+s君]=盯‘*欢’时,切由于v[攀i]可能篮取负陵值,殊子链传的最自大值踩相乘竭未必饼得到木主链梁的最犹大值习。但姐有mi桥n{粉ac,ad,bc,bd渣}≤乌m≤枕ma奸x{讲ac,ad,bc,bd}换句点话说最,主坑链的槽最大须值和贞最小确值可矩由子烤链的团最大嗓值和目最小夸值得啄到。鬼例如称:当m=还ac时,歼最大销主链导由它陆的两制条最努小子脾链组调成;慢同理正当m=bd时,朋最大奇主链嘱由它文的两哭条最沸大子代链组浴成。51递归侍求解为了倘求链记合并笋的最品大值盲,必旁须同禾时求驻子链言合并盯的最肤大值岭和最柏小值截。因斑此,捷在整遵个计捡算过妻程中六,应遗同时聪计算堪最大永值和拼最小客值。设m[亡i,夏j,饰0]是链p(迷i,俱j宁)合并然的最答小值匆,而m[惜i,才j,价1]是最赶大值惩。若鄙最优章合并粉在op降[i厅+s衡]处将p(坊i,颈j方)分为哑2个总长度椒小于j的子衰链p(渠i,墨i之+s打)和p(姿i+弱s,食j-横s)填,且从板顶点i开始浅的长涝度小遭于j的子六链的辣最大类值和和最小旦值均朗已计贱算出凶。记俩为:a=次m[棵i,服i+喂s,蛮0傅],哭b=破m[盖i,全i+睡s,拍1样],用c懂=m此[i局+s蜜,j江-s声,0略]思,灿d涉=m聋[i约+s菜,慈j-否s,闪1]渴,(1汪)当op浑[i惰+s权]=盖‘+汪’时,m[睛i,亿j,篮0]球=a诸+c风m[罗i,捏j,她1]填=b珍+d(2娘)当op勤[i虹+s脖]=香‘*妥’时m[价i,森j,完0]熄=mi否n{闪ac贺,a叙d,阵bc集,b挠d}符m判[i范,j峡,1琴]=嘴m梳ax议{ac拖,a晓d,罩bc厕,b雅d}因此挡,将p(堆i,茧j)在op紫[i箱+s沫]处断存开的绢最大通值为鞭:5253Vo揭idMI惧N_兆MA枕X(钞in核tn,in闸ti冶,in彻tj搅,in故t&mi黑nf,in葬t&ma按xf){in拦te[掏4]步;in摆ta=窜m[侮i]语[s执][音0]摧,英b数=逃m[紧i]政[s醒][尤1]疾,裙r=蓬(i塌+s册-1昆)%辞n+偏1,善c朴=m缴[r另][万j-镇s]馋[0缸],耀d虑=m素[r帆][脑j-膊s]阴[0果];if咬(蒸op毅[r喝]=谱=‘纽奉t’歌){mi隔nf=a兼+c少;ma法xf=b的+d阿;农}el驾se{摆e[猛1]项=a歼*c仗;注e算[2伪]=窝a*估d;恨e[歼3]谱=b鼠*c欢;紫e历[4挽]=叠b*寒d;ma述xf=e英[1晨];mi热nf=e缴[1汁];fo寺r避(in足tr=救2;梁r忌<5万;并r+然+){渠if葛(mi避nf>e豪[r脖])mi旅nf=e错[r私];醋if额(ma晓xf<e扒[r盟])ma摊xf=e附[r傻];权}}}算法废描述54in姐tpo虏ly脂_m亲ax哄(i微ntn){in绑tmi押nf代,m以ax刃f;fo胜r张(in举tj=谋2;慢j命<=形n;钥j渣++干)fo墨r理(in窜ti=陶1;改i莲<=补n;山i动++箩)fo吧r允(in活ts=寒1;惯s垮<j络;剖s+敢+){吧M睬IN浅_M穿AX傍(n猴,障i鄙,订s,勉j皆,mi槐nf,ma膀xf,搁m,植o韵p)输;if愿(佳m[亚i]误[j修][糟0]廉>mi遵nf)搂m州[i奸][萌j]坛[0犯]=mi厘nf;if夸(赤m[患i]聋[j翁][劲1]殃<ma杏xf)巨m[眨i]堡[j东][两1]棵=ma杀xf;退}in瓦tte令mp突=m孤[1戚][传n]谢[1歼];fo等r雁(in细ti=呼2;爷i根<=他n;龟i猫++摇)if睛(放te嚷mp腾<应m[宣i]父[n局][夺1]佛)葛t尸em银p=掉m[斥i]铁[n只][豪1]摊;re牺tu牌rn认t炼em默p;}时间稍:55图像拔压缩图象候的变仍位压捷缩存圾储格怒式将候所给眠的象炮素点叨序列{p露1,垄p2基,…沫,p醒n}雪,0苍≤p赴i≤单25烂5分割指成m个连赤续段S1宗,S埋2,挖…,Sm。第i个象苦素段Si中(1颂≤i年≤m学),有l[控i]个象偿素,且该蔽段中穿每个醒象素鱼都只微用b[穴i]位表梢示。设笔则砍第i个象墙素段Si为设乒,兼则hib[咐i]8。因范此需胖要用3位表示b[须i]眉,如果验限制1l[睛i]25野5,则皆需要盖用8位表虏示l[疑i]。因吵此,诵第i个象敬素段祝所需菌的存秆储空铲间为l[恭i]秘*b绞[i峰]+胀11位。不按此袖格式症存储稀象素网序列{p孝1,恭p2迟,…讨,pn},需顶要凝位的玻存储单空间荡。56图象贤压缩熔问题霜要求魔确定来象素醒序列{p叶1,胶p2平,…估,pn}的最跟优分以段,览使得绘依此纺分段瓶所需州的存泻储空竭间最见少。鉴每个购分段锣的长谨度不碌超过25阴6位。设l[i宾],b[拿i],是{p割1,彻p2陶,…老,pn}的最拍优分参段。屠显而燃易见浸,l[1抗],b[处1]是{p1,…生,pl[唤1]}的最端优分天段,骨且l[i凶],b[片i],是{pl[闷1]来+1,…液,pn}的最臣优分茶段。介即图尸象压僻缩问抚题满沫足最砍优子阿结构敌性质佩。设s[惯i],1≤抛i≤鸦n,是偏象素删序列{p银1,扔…,pn}的最泉优分涌段所尾需的层存储鼠位数援。由屯最优戒子结品构性杜质易贸知:图像切压缩其中57图像悼压缩vo袖idco驳mp订re材e(找in遥tn,in角tp[待],in舌ts[屠],in私tl[伴],in野tb[议]){in醒tLm乌ax=2吗56刑,寄h蚀ea口de傅r=芽11芦;s[偷0]诞=0耐;fo挑r容(in在ti=皆1;土i葛<=汽n;刻i绩++得){罢b[星i]许=l胃en凭gt梦h(壶p[匀i]勿);in攀tbm多ax=b彼[i股];窄s[守i]蚁=s馆[i淡-1捎]+妹bm断ax阻;成l膝[i眨]=静1;fo区r(抵in仙tj=羊2;海j<议=I罪&&季j<撇=Lm狐ax;树j+够+){留if毒(bm绳ax<b厉[i腹-j凭+1猴]搬)bm纸ax=b弃[I问-j秃+1栽];if找(最s[字i]聚>s击[i剪-j直]+界j*bm捏ax]){花s[抓i]挎=蜻s[仔i-卷j]瞒+j鱼*bm肿ax];抖l[常i]阴=j衰;}}s[赚i]慨+=捕he盘ad购er腥;}}In劳tle晚ng谋th锅(i颜nti){in遗tk=梢1;阶i你=i哥/2遣;wh凶il闻e(部i>尤0){狭k妹++龄;罩i=源i/绢2;春}re句tu少rn辞k卫;}58算法疏复杂己度分宵析:由于盐算法co萌mp桃re盖ss中对k的循悄环次在数不趁超这25流6,故斤对每办一个古确定废的i,可薄在时平间O(赞1)内完掏成的停计算竟。因低此整疼个算射法所处需的净计算炭时间疯为O(帅n)。图像捏压缩59电路小布线在一智块电运路板岗的上古、下2端分脚别有n个接降线柱箭。根醉据电翼路设屑计,效要求予用导简线(i在,π劈燕(i悲))将上窄端接妖线柱括与下点端接姓线柱嗽相连亚,如及图所切示。着其中π(i叨)是{1奇,2彻,…娇,n广}的一击个排望列。帆导线(i慌,π诊(i份))称为改该电旋路板磨上的僵第i条连迟线。克对于仔任何1≤钱i<构j≤解n,第i条连倍线和法第j条连套线相造交的帽充分亿且必级要的益条件有是π(漆i)霜>π疑(j眨)。电路驶布线穴问题要确午定将家哪些迈连线庄安排岸在第相一层慰上,城使得教该层怪上有窗尽可粗能多被的连档线。畅换句纠话说燃,该勾问题裳要求也确定治导线宋集Ne絮ts币={乞(i页,π(i镇))债,1辫≤i浊≤n主}的最杯大不遣相交壮子集闭。60记径。N(斤i,撑j)的最懂大不六相交蔬子集竟为MN沃S(搬i,光j窑)。Si菊ze盒(i绢,j场)=棚|M冤NS象(i肆,j愿)|。(1啦)当i=瓜1时,(2炒)当i>坡1时,a)机j筐<π酬(i站)。此游时,,故在买这种零情况遥下,N(冻i,浩j)侄=N缺(i硬-1疮,j套),从防而Si恩ze怪(i资,j锣)=遵Si钳ze龟(i足-1寒,j证)。b)蔽
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45503-2025汽车以太网电子控制单元测试规程
- 小学值周生培训
- 蒙氏食物制备培训
- 《微软公司经营理念》课件
- 量表调查员培训体系构建
- 提升班级凝聚力的策略研究计划
- 远程登录协议书范本
- 《西安交通大学战略管理》课件
- 超市门面分租合同协议
- 家政服务培训课件
- 人教版(2024)七年级下册Unit 3 Keep fit 素养检测(含解析)
- 医院检验科实验室生物安全程序文件SOP
- 封条模板A4直接打印版
- 双减背景下的作业设计与实施优秀案例PPT
- 《毕业设计--年产4000吨甲胺精馏工段的工艺初步设计 》
- 关门梁引水电站压力管道设计说明
- 关于建立涉农贷款专项统计制的通知银发号
- 基于PLC的数控车床电气控制系统设计毕业论文_(2)[1]
- 古典概型 教学设计
- 钢管截面积、强度、挠度、惯性矩计算公式
- 施工现场平面布置和临时设施、临时道路布置
评论
0/150
提交评论