memo方法是一種變形的動(dòng)態(tài)規(guī)劃方法。與動(dòng)態(tài)規(guī)劃算法不同,memo方法的遞推方式是自頂向下的,而動(dòng)態(tài)規(guī)劃算法是自下而上的。例如:LCS問(wèn)題:當(dāng)席=YJ,C[I,J]只需要知道C[I-1,J-1],而不是C[I,0]~C[I,J-1]和C[I-1,J]~C[I-1,N]。當(dāng)只需要一個(gè)LCS時(shí),一些C[P,q]可能不會(huì)在整個(gè)溶液過(guò)程中使用。一般情況下,當(dāng)一個(gè)問(wèn)題可以用動(dòng)態(tài)規(guī)劃來(lái)求解時(shí),二維數(shù)組中相當(dāng)數(shù)量的元素不會(huì)用到整個(gè)計(jì)算中。我們不需要遞歸地逐個(gè)計(jì)算二維數(shù)組中的元素。使用memo方法:數(shù)組中的元素只在需要計(jì)算時(shí)才計(jì)算,并且計(jì)算是遞歸的。計(jì)算完這些值后,將保存這些值以用于其他目的。例如:LCs的問(wèn)題:首先,將C[I,0](0≤I≤m)和C[0,J](1≤J≤n)初始化為0。其余的m×nc[I,J]都初始化為-1。計(jì)算C[I,J]L2(x,y,I,J,C)的遞歸算法LCS(memo方法):如果x[I]=y[J],檢查C[I-1,J-1],如果C[I-1,J-1]>-1(計(jì)算),將C[I-1,J-1]1賦值給C[I,J],并返回。如果C[I-1,J-1]=-1(尚未計(jì)算),則遞歸調(diào)用LCSL2(x,y,I-1,J-1,C)計(jì)算C[I-1,J-1],然后將C[I-1,J-1]1賦給C[I,J],并返回。如果x[i]1,y[J],檢查C[i-1,J]和C[i,J-1]。如果兩者都大于-1(已計(jì)算),則將Max{C[I-1,J],C[I,J-1]}賦給C[I,J],并返回。如果C[I-1,J],C[I,J-1]中的一個(gè)等于-1(尚未計(jì)算),或者兩者都等于-1,則遞歸調(diào)用LCS,L2計(jì)算它,然后將Max{C[I-1,J],C[I,J-1]}賦值給C[I,J]。如果大量的子問(wèn)題不需要解決,memo方法可以節(jié)省時(shí)間。但是當(dāng)只需要計(jì)算少數(shù)或全部子問(wèn)題時(shí),遞歸方法比memo方法(如矩陣乘法、最優(yōu)二叉搜索樹(shù))要好
本文題目:動(dòng)態(tài)規(guī)劃求解背包問(wèn)題用動(dòng)態(tài)規(guī)劃求解非線性規(guī)劃問(wèn)題?-創(chuàng)新互聯(lián)
文章起源:http://chinadenli.net/article10/ddejdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、靜態(tài)網(wǎng)站、定制開(kāi)發(fā)、App開(kāi)發(fā)、品牌網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容