强奸久久久久久久|草草浮力在线影院|手机成人无码av|亚洲精品狼友视频|国产国模精品一区|久久成人中文字幕|超碰在线视屏免费|玖玖欧洲一区二区|欧美精品无码一区|日韩无遮一区二区

首頁 > 資訊 > 問答 > 狀態(tài)轉(zhuǎn)移方程,什么是狀態(tài)轉(zhuǎn)移方程

狀態(tài)轉(zhuǎn)移方程,什么是狀態(tài)轉(zhuǎn)移方程

來源:整理 時(shí)間:2024-12-28 17:23:33 編輯:智能門戶 手機(jī)版

本文目錄一覽

1,什么是狀態(tài)轉(zhuǎn)移方程

比如,某個(gè)模型只有2個(gè)狀態(tài)s1和s2,分別由用戶輸入1和0來觸發(fā)。數(shù)據(jù)用x來代表。那么方程可以寫成 x==0 s1->s2 x==1 s2->s1 x==0和x==1就叫做狀態(tài)轉(zhuǎn)移方程。

什么是狀態(tài)轉(zhuǎn)移方程

2,動(dòng)態(tài)規(guī)劃如何設(shè)計(jì)狀態(tài)轉(zhuǎn)移方程

首先你要確定這道題是否可以用動(dòng)態(tài)規(guī)劃來做,即它是否滿足最優(yōu)化原理和無后效性原則。如果是,就開始設(shè)計(jì): 一、確定問題的決策對象 二、對決策對象劃分階段 三、對各階段確定狀態(tài)變量 四、根據(jù)狀態(tài)變量確定費(fèi)用函數(shù)和目標(biāo)函數(shù) 五、建立各階段的狀態(tài)變量的轉(zhuǎn)移方程,寫出狀態(tài)轉(zhuǎn)移方程 六、編程實(shí)現(xiàn)

動(dòng)態(tài)規(guī)劃如何設(shè)計(jì)狀態(tài)轉(zhuǎn)移方程

3,動(dòng)態(tài)轉(zhuǎn)移方程

要看具體情況,0/1背包的動(dòng)態(tài)轉(zhuǎn)移方程是:f[i][v]=max如果你想深入了解背包問題建議你上網(wǎng)搜《背包問題九講》,寫的很好 這要根據(jù)題目具體分析
首先你要確定這道題是否可以用動(dòng)態(tài)規(guī)劃來做,即它是否滿足最優(yōu)化原理和無后效性原則。如果是,就開始設(shè)計(jì):一、確定問題的決策對象二、對決策對象劃分階段三、對各階段確定狀態(tài)變量四、根據(jù)狀態(tài)變量確定費(fèi)用函數(shù)和目標(biāo)函數(shù)五、建立各階段的狀態(tài)變量的轉(zhuǎn)移方程,寫出狀態(tài)轉(zhuǎn)移方程六、編程實(shí)現(xiàn)

動(dòng)態(tài)轉(zhuǎn)移方程

4,什么是狀態(tài)轉(zhuǎn)移方程RT

狀態(tài)轉(zhuǎn)移方程,是動(dòng)態(tài)規(guī)劃中本階段的狀態(tài)往往是上一階段狀態(tài)和上一階段決策的結(jié)果。如果給定了第K階段的狀態(tài)Sk以及決策uk(Sk),則第K+1階段的狀態(tài)Sk+1也就完全確定。動(dòng)態(tài)規(guī)劃中本階段的狀態(tài)往往是上一階段狀態(tài)和上一階段決策的結(jié)果。如果給定了第K階段的狀態(tài)Sk以及決策uk(Sk),則第K+1階段的狀態(tài)Sk+1也就完全確定。也就是說Sk+1與Sk,uk之間存在一種明確的數(shù)量對應(yīng)關(guān)系,記為Tk(Sk,uk),即有Sk+1= Tk(Sk,uk)。 這種用函數(shù)表示前后階段關(guān)系的方程,稱為狀態(tài)轉(zhuǎn)移方程。在上例中狀態(tài)轉(zhuǎn)移方程為 Sk+1= uk(Sk) 。
理想氣體狀態(tài)方程(ideal gas,equation of state of),也稱理想氣體定律,描述理想氣體狀態(tài)變化規(guī)律的方程。質(zhì)量為m,摩爾質(zhì)量為m的理想氣體,其狀態(tài)參量壓強(qiáng)p、體積v和絕對溫度t之間的函數(shù)關(guān)系為: pv=mrt/m=mrt,r=r/m,式中m和n分別是理想氣體的摩爾質(zhì)量和物質(zhì)的量;r是氣體常量。對于混合理想氣體,其壓強(qiáng)p是各組成部分的分壓強(qiáng)p1、 p2、……之和,故pv=( p1+ p2+……)v=(n1+n2+……)rt,式中n1、n2、……是各組成部分的物質(zhì)的量。以上兩式是理想氣體和混合理想氣體的狀態(tài)方程,可由理想氣體嚴(yán)格遵循的氣體實(shí)驗(yàn)定律得出,也可根據(jù)理想氣體的微觀模型,由氣體動(dòng)理論導(dǎo)出。在壓強(qiáng)為幾個(gè)大氣壓以下時(shí),各種實(shí)際氣體近似遵循理想氣體狀態(tài)方程,壓強(qiáng)越低,符合越好,在壓強(qiáng)趨于零的極限下,嚴(yán)格遵循。理想氣體狀態(tài)方程是由研究低壓下氣體的行為導(dǎo)出的。但各氣體在適用理想氣體狀態(tài)方程時(shí)多少有些偏差;壓力越低,偏差越小,在極低壓力下理想氣體狀態(tài)方程可較準(zhǔn)確地描述氣體的行為。極低的壓力意味著分子之間的距離非常大,此時(shí)分子之間的相互作用非常小;又意味著分子本身所占的體積與此時(shí)氣體所具有的非常大的體積相比可忽略不計(jì),因而分子可近似被看作是沒有體積的質(zhì)點(diǎn)。于是從極低壓力氣體的行為觸發(fā),抽象提出理想氣體的概念。理想氣體在微觀上具有分子之間無互相作用力和分子本身不占有體積的特征。

5,狀態(tài)轉(zhuǎn)移方程是什么

一個(gè)字符串可以插入、刪除、改變到另一個(gè)字符串,求改變的最小步驟。和最長公共子序列類似,用二維數(shù)組opt[i][j]記錄字符串a(chǎn)中的前i個(gè)字符到字符串b中的前j個(gè)字符匹配所需要的最小步數(shù)。假如已知AG到GT的最小步數(shù),AGT到GT的最小步數(shù),AG到GTT的最小步數(shù),求AGT到GTT的最小步數(shù),此時(shí)T= =T,這個(gè)值是AG到GT的最小步數(shù),AGT到GT的最小步數(shù)加一(AGT到GT的最小步數(shù)等于AGTT到GTT的最小步數(shù),加一是將T刪除的一步),AG到GTT的最小步數(shù)加一(AG到GTT的最小步數(shù)等于AGT到GTTT的最小步數(shù),加一是在AGT上增加T的一步)。假如已知AG到GT的最小步數(shù),AGA到GT的最小步數(shù),AG到GTT的最小步數(shù),求AGA到GTT的最小步數(shù),此時(shí)A! =T,這個(gè)值是AG到GT的最小步數(shù)加一(A改變?yōu)門),AGA到GT的最小步數(shù)加一(AGA到GT的最小步數(shù)等于AGAT到GTT的最小步數(shù),加一是將T刪除的一步),AG到GTT的最小步數(shù)加一(AG到GTT的最小步數(shù)等于AGA到GTTA的最小步數(shù),加一是在GTTA上刪除A的一步)。所以狀態(tài)轉(zhuǎn)移方程:初始化的時(shí)候和最長公共子序列不同,因?yàn)榈?行,第0列表示null轉(zhuǎn)化到字符串情況,結(jié)果是字符串的長度:if(str1.charAt(i-1)==str2.charAt(j-1)) array[i][j] = Math.min(Math.min(array[i-1][j-1], array[i-1][j]+1), array[i][j-1]+1);else array[i][j] = Math.min(Math.min(array[i-1][j-1]+1, array[i-1][j]+1), array[i][j-1]+1);for(int i=0;i<=m;i++) array[i][0] = i;} for(int i=0;i<=n;i++) array[0][i] = i;}
一個(gè)字符串可以插入、刪除、改變到另一個(gè)字符串,求改變的最小步驟。和最長公共子序列類似,用二維數(shù)組opt[i][j]記錄字符串a(chǎn)中的前i個(gè)字符到字符串b中的前j個(gè)字符匹配所需要的最小步數(shù)。假如已知AG到GT的最小步數(shù),AGT到GT的最小步數(shù),AG到GTT的最小步數(shù),求AGT到GTT的最小步數(shù),此時(shí)T= =T,這個(gè)值是AG到GT的最小步數(shù),AGT到GT的最小步數(shù)加一(AGT到GT的最小步數(shù)等于AGTT到GTT的最小步數(shù),加一是將T刪除的一步),AG到GTT的最小步數(shù)加一(AG到GTT的最小步數(shù)等于AGT到GTTT的最小步數(shù),加一是在AGT上增加T的一步)。假如已知AG到GT的最小步數(shù),AGA到GT的最小步數(shù),AG到GTT的最小步數(shù),求AGA到GTT的最小步數(shù),此時(shí)A! =T,這個(gè)值是AG到GT的最小步數(shù)加一(A改變?yōu)門),AGA到GT的最小步數(shù)加一(AGA到GT的最小步數(shù)等于AGAT到GTT的最小步數(shù),加一是將T刪除的一步),AG到GTT的最小步數(shù)加一(AG到GTT的最小步數(shù)等于AGA到GTTA的最小步數(shù),加一是在GTTA上刪除A的一步)。所以狀態(tài)轉(zhuǎn)移方程:初始化的時(shí)候和最長公共子序列不同,因?yàn)榈?行,第0列表示null轉(zhuǎn)化到字符串情況,結(jié)果是字符串的長度:if(str1.charAt(i-1)==str2.charAt(j-1)) array[i][j] = Math.min(Math.min(array[i-1][j-1], array[i-1][j]+1), array[i][j-1]+1);else array[i][j] = Math.min(Math.min(array[i-1][j-1]+1, array[i-1][j]+1), array[i][j-1]+1);for(int i=0;i<=m;i++) array[i][0] = i;} for(int i=0;i<=n;i++) array[0][i] = i;}
首先你要確定這道題是否可以用動(dòng)態(tài)規(guī)劃來做,即它是否滿足最優(yōu)化原理和無后效性原則。如果是,就開始設(shè)計(jì):一、確定問題的決策對象二、對決策對象劃分階段三、對各階段確定狀態(tài)變量四、根據(jù)狀態(tài)變量確定費(fèi)用函數(shù)和目標(biāo)函數(shù)五、建立各階段的狀態(tài)變量的轉(zhuǎn)移方程,寫出狀態(tài)轉(zhuǎn)移方程六、編程實(shí)現(xiàn)

6,最優(yōu)法求解

解:把求得總費(fèi)用最少問題化為最短路問題,用vi表示“第i年初購進(jìn)一臺(tái)新機(jī)器”,設(shè)v5表示第4年年底,從vi到v5各畫一條弧,?。╲i,vj)表示在第i年年初購進(jìn)的一臺(tái)新機(jī)器一直使用到第j年年初。然后對每條弧賦予權(quán)數(shù),?。╲i,vj)的權(quán)數(shù)即為從第i年年初購進(jìn)新機(jī)器使用到第j-1年年底所花費(fèi)的購置費(fèi)及更換、運(yùn)行維修費(fèi)的綜合。權(quán)數(shù)表(單位:萬元)這是一個(gè)最短路的問題,用 Dijkstra 算法求解可得到這問題的解為 4.8,即在 4 年內(nèi)購買、更換及運(yùn)行維修最小的總費(fèi)用為:4.8 萬元。最優(yōu)更新策略為:第一年末不更新 第二年末更新 第三年末不更新第四年末處理機(jī)器
鍵詞】動(dòng)態(tài)規(guī)劃 階段 動(dòng)態(tài)規(guī)劃是信息學(xué)競賽中的常見算法,本文的主要內(nèi)容就是分析它的特點(diǎn)。 文章的第一部分首先探究了動(dòng)態(tài)規(guī)劃的本質(zhì),因?yàn)閯?dòng)態(tài)規(guī)劃的特點(diǎn)是由它的本質(zhì)所決定的。第二部分從動(dòng)態(tài)規(guī)劃的設(shè)計(jì)和實(shí)現(xiàn)這兩個(gè)角度分析了動(dòng)態(tài)規(guī)劃的多樣性、模式性、技巧性這三個(gè)特點(diǎn)。第三部分將動(dòng)態(tài)規(guī)劃和遞推、搜索、網(wǎng)絡(luò)流這三個(gè)相關(guān)算法作了比較,從中探尋動(dòng)態(tài)規(guī)劃的一些更深層次的特點(diǎn)。 文章在分析動(dòng)態(tài)規(guī)劃的特點(diǎn)的同時(shí),還根據(jù)這些特點(diǎn)分析了我們在解題中應(yīng)該怎樣利用這些特點(diǎn),怎樣運(yùn)用動(dòng)態(tài)規(guī)劃。這對我們的解題實(shí)踐有一定的指導(dǎo)意義。 動(dòng)態(tài)規(guī)劃是編程解題的一種重要的手段,在如今的信息學(xué)競賽中被應(yīng)用得越來越普遍。最近幾年的信息學(xué)競賽,不分大小,幾乎每次都要考察到這方面的內(nèi)容。因此,如何更深入地了解動(dòng)態(tài)規(guī)劃,從而更為有效地運(yùn)用這個(gè)解題的有力武器,是一個(gè)值得深入研究的問題。 要掌握動(dòng)態(tài)規(guī)劃的應(yīng)用技巧,就要了解它的各方面的特點(diǎn)。首要的,是要深入洞悉動(dòng)態(tài)規(guī)劃的本質(zhì)。 §1動(dòng)態(tài)規(guī)劃的本質(zhì) 動(dòng)態(tài)規(guī)劃是在本世紀(jì)50年代初,為了解決一類多階段決策問題而誕生的。那么,什么樣的問題被稱作多階段決策問題呢? §1.1多階段決策問題 說到多階段決策問題,人們很容易舉出下面這個(gè)例子。 [例1] 多段圖中的最短路徑問題:在下圖中找出從a1到d1的最短路徑。 仔細(xì)觀察這個(gè)圖不難發(fā)現(xiàn),它有一個(gè)特點(diǎn)。我們將圖中的點(diǎn)分為四類(圖中的a、b、c、d),那么圖中所有的邊都處于相鄰的兩類點(diǎn)之間,并且都從前一類點(diǎn)指向后一類點(diǎn)。這樣,圖中的邊就被分成了三類(aàb、bàc、càd)。我們需要從每一類中選出一條邊來,組成從a1到d1的一條路徑,并且這條路徑是所有這樣的路徑中的最短者。 從上面的這個(gè)例子中,我們可以大概地了解到什么是多階段決策問題。更精確的定義如下: 多階段決策過程,是指這樣的一類特殊的活動(dòng)過程,問題可以按時(shí)間順序分解成若干相互聯(lián)系的階段,在每一個(gè)階段都要做出決策,全部過程的決策是一個(gè)決策序列[1]。要使整個(gè)活動(dòng)的總體效果達(dá)到最優(yōu)的問題,稱為多階段決策問題。 從上述的定義中,我們可以明顯地看出,這類問題有兩個(gè)要素。一個(gè)是階段,一個(gè)是決策。 §1.2階段與狀態(tài) 階段:將所給問題的過程,按時(shí)間或空間特征分解成若干相互聯(lián)系的階段,以便按次序去求每階段的解。常用字母k表示階段變量。[1] 階段是問題的屬性。多階段決策問題中通常存在著若干個(gè)階段,如上面的例子,就有a、b、c、d這四個(gè)階段。在一般情況下,階段是和時(shí)間有關(guān)的;但是在很多問題(我的感覺,特別是信息學(xué)問題)中,階段和時(shí)間是無關(guān)的。從階段的定義中,可以看出階段的兩個(gè)特點(diǎn),一是“相互聯(lián)系”,二是“次序”。 階段之間是怎樣相互聯(lián)系的?就是通過狀態(tài)和狀態(tài)轉(zhuǎn)移。 狀態(tài):各階段開始時(shí)的客觀條件叫做狀態(tài)。描述各階段狀態(tài)的變量稱為狀態(tài)變量,常用sk表示第k階段的狀態(tài)變量,狀態(tài)變量sk的取值集合稱為狀態(tài)集合,用sk表示。[1] 狀態(tài)是階段的屬性。每個(gè)階段通常包含若干個(gè)狀態(tài),用以描述問題發(fā)展到這個(gè)階段時(shí)所處在的一種客觀情況。在上面的例子中,行人從出發(fā)點(diǎn)a1走過兩個(gè)階段之后,可能出現(xiàn)的情況有三種,即處于c1、c2或c3點(diǎn)。那么第三個(gè)階段就有三個(gè)狀態(tài)s3=。 每個(gè)階段的狀態(tài)都是由以前階段的狀態(tài)以某種方式“變化”而來,這種“變化”稱為狀態(tài)轉(zhuǎn)移(暫不定義)。上例中c3點(diǎn)可以從b1點(diǎn)過來,也可以從b2點(diǎn)過來,從階段2的b1或b2狀態(tài)走到階段3的c3狀態(tài)就是狀態(tài)轉(zhuǎn)移。狀態(tài)轉(zhuǎn)移是導(dǎo)出狀態(tài)的途徑,也是聯(lián)系各階段的途徑。 說到這里,可以提出應(yīng)用動(dòng)態(tài)規(guī)劃的一個(gè)重要條件。那就是將各階段按照一定的次序排列好之后,對于某個(gè)給定的階段狀態(tài),它以前各階段的狀態(tài)無法直接影響它未來的發(fā)展,而只能通過當(dāng)前的這個(gè)狀態(tài)。換句話說,每個(gè)狀態(tài)都是“過去歷史的一個(gè)完整總結(jié)[1]”。這就是無后效性。對這個(gè)性質(zhì),下文還將會(huì)有解釋。 §1.3決策和策略 上面的階段與狀態(tài)只是多階段決策問題的一個(gè)方面的要素,下面是另一個(gè)方面的要素——決策。 決策:當(dāng)各段的狀態(tài)取定以后,就可以做出不同的決定,從而確定下一階段的狀態(tài),這種決定稱為決策。表示決策的變量,稱為決策變量,常用uk(sk)表示第k階段當(dāng)狀態(tài)為sk時(shí)的決策變量。在實(shí)際問題中,決策變量的取值往往限制在一定范圍內(nèi),我們稱此范圍為允許決策集合。常用dk(sk)表示第k階段從狀態(tài)sk出發(fā)的允許決策集合。顯然有uk(sk) ?dk(sk)。[1] 決策是問題的解的屬性。決策的目的就是“確定下一階段的狀態(tài)”,還是回到上例,從階段2的b1狀態(tài)出發(fā)有三條路,也就是三個(gè)決策,分別導(dǎo)向階段3的c1、c2、c3三個(gè)狀態(tài),即d2(b1)=。 有了決策,我們可以定義狀態(tài)轉(zhuǎn)移:動(dòng)態(tài)規(guī)劃中本階段的狀態(tài)往往是上一階段和上一階段的決策結(jié)果,由第k段的狀態(tài)sk和本階段的決策uk確定第k+1段的狀態(tài)sk+1的過程叫狀態(tài)轉(zhuǎn)移。狀態(tài)轉(zhuǎn)移規(guī)律的形式化表示sk+1=tk(sk,uk)稱為狀態(tài)轉(zhuǎn)移方程。 這樣看來,似乎決策和狀態(tài)轉(zhuǎn)移有著某種聯(lián)系。我的理解,狀態(tài)轉(zhuǎn)移是決策的目的,決策是狀態(tài)轉(zhuǎn)移的途徑。 各段決策確定后,整個(gè)問題的決策序列就構(gòu)成一個(gè)策略,用p1,n=表示。對每個(gè)實(shí)際問題,可供選擇的策略有一定范圍,稱為允許策略集合,記作p1,n,使整個(gè)問題達(dá)到最有效果的策略就是最優(yōu)策略。[1] 說到這里,又可以提出運(yùn)用動(dòng)態(tài)規(guī)劃的一個(gè)前提。即這個(gè)過程的最優(yōu)策略應(yīng)具有這樣的性質(zhì):無論初始狀態(tài)及初始決策如何,對于先前決策所形成的狀態(tài)而言,其以后的所有決策應(yīng)構(gòu)成最優(yōu)策略[1]。這就是最優(yōu)化原理。簡言之,就是“最優(yōu)策略的子策略也是最優(yōu)策略”。 §1.4最優(yōu)化原理與無后效性 這里,我把最優(yōu)化原理定位在“運(yùn)用動(dòng)態(tài)規(guī)劃的前提”。這是因?yàn)?,是否符合最?yōu)化原理是一個(gè)問題的本質(zhì)特征。對于不滿足最優(yōu)化原理的一個(gè)多階段決策問題,整體上的最優(yōu)策略p1,n同任何一個(gè)階段k上的決策uk或任何一組階段k1…k2上的子策略pk1,k2都不存在任何關(guān)系。如果要對這樣的問題動(dòng)態(tài)規(guī)劃的話,我們從一開始所作的劃分階段等努力都將是徒勞的。 而我把無后效性定位在“應(yīng)用動(dòng)態(tài)規(guī)劃的條件”,是因?yàn)閯?dòng)態(tài)規(guī)劃是按次序去求每階段的解,如果一個(gè)問題有后效性,那么這樣的次序便是不合理的。但是,我們可以通過重新劃分階段,重新選定狀態(tài),或者增加狀態(tài)變量的個(gè)數(shù)等手段,來是問題滿足無后效性這個(gè)條件。說到底,還是要確定一個(gè)“序”。 在信息學(xué)的多階段決策問題中,絕大部分都是能夠滿足最優(yōu)化原理的,但它們往往會(huì)在后效性這一點(diǎn)上來設(shè)置障礙。所以在解題過程中,我們會(huì)特別關(guān)心“序”。對于有序的問題,就會(huì)考慮到動(dòng)態(tài)規(guī)劃;對于無序的問題,也會(huì)想方設(shè)法來使其有序。 §1.5最優(yōu)指標(biāo)函數(shù)和規(guī)劃方程 最優(yōu)指標(biāo)函數(shù):用于衡量所選定策略優(yōu)劣的數(shù)量指標(biāo)稱為指標(biāo)函數(shù),最優(yōu)指標(biāo)函數(shù)記為fk(sk),它表示從第k段狀態(tài)sk采用最優(yōu)策略p*k,n到過程終止時(shí)的最佳效益值[1]。 最優(yōu)指標(biāo)函數(shù)其實(shí)就是我們真正關(guān)心的問題的解。在上面的例子中,f2(b1)就表示從b1點(diǎn)到終點(diǎn)d1點(diǎn)的最短路徑長度。我們求解的最終目標(biāo)就是f1(a1)。 最優(yōu)指標(biāo)函數(shù)的求法一般是一個(gè)從目標(biāo)狀態(tài)出發(fā)的遞推公式,稱為規(guī)劃方程: 其中sk是第k段的某個(gè)狀態(tài),uk是從sk出發(fā)的允許決策集合dk(sk)中的一個(gè)決策,tk(sk,uk)是由sk和uk所導(dǎo)出的第k+1段的某個(gè)狀態(tài)sk+1,g(x,uk)是定義在數(shù)值x和決策uk上的一個(gè)函數(shù),而函數(shù)opt表示最優(yōu)化,根據(jù)具體問題分別表為max或min。 ,稱為邊界條件。 上例中的規(guī)劃方程就是: 邊界條件為 這里是一種從目標(biāo)狀態(tài)往回推的逆序求法,適用于目標(biāo)狀態(tài)確定的問題。在我們的信息學(xué)問題中,也有很多有著確定的初始狀態(tài)。當(dāng)然,對于初始狀態(tài)確定的問題,我們也可以采用從初始狀態(tài)出發(fā)往前推的順序求法。事實(shí)上,這種方法對我們來說要更為直觀、更易設(shè)計(jì)一些,從而更多地出現(xiàn)在我們的解題過程中。 我們本節(jié)所討論的這些理論雖然不是本文的主旨,但是卻對下面要說的動(dòng)態(tài)規(guī)劃的特點(diǎn)起著基礎(chǔ)性的作用。 §2動(dòng)態(tài)規(guī)劃的設(shè)計(jì)與實(shí)現(xiàn) 上面我們討論了動(dòng)態(tài)規(guī)劃的一些理論,本節(jié)我們將通過幾個(gè)例子中,動(dòng)態(tài)規(guī)劃的設(shè)計(jì)與實(shí)現(xiàn),來了解動(dòng)態(tài)規(guī)劃的一些特點(diǎn)。 §2.1動(dòng)態(tài)規(guī)劃的多樣性 [例2] 花店櫥窗布置問題(ioi99)試題見附錄 本題雖然是本屆ioi中較為簡單的一題,但其中大有文章可作。說它簡單,是因?yàn)樗行?,因此我們一眼便可看出這題應(yīng)該用動(dòng)態(tài)規(guī)劃來解決。但是,如何動(dòng)態(tài)規(guī)劃呢?如何劃分階段,又如何選擇狀態(tài)呢? 以花束的數(shù)目來劃分階段。在這里,階段變量k表示的就是要布置的花束數(shù)目(前k束花),狀態(tài)變量sk表示第k束花所在的花瓶。而對于每一個(gè)狀態(tài)sk,決策就是第k-1束花應(yīng)該放在哪個(gè)花瓶,用uk表示。最優(yōu)指標(biāo)函數(shù)fk(sk)表示前k束花,其中第k束插在第sk個(gè)花瓶中,所能取得的最大美學(xué)值。 狀態(tài)轉(zhuǎn)移方程為 規(guī)劃方程為 (其中a(i,j)是花束i插在花瓶j中的美學(xué)值) 邊界條件 (v是花瓶總數(shù),事實(shí)上這是一個(gè)虛擬的邊界) 以花瓶的數(shù)目來劃分階段。在這里階段變量k表示的是要占用的花瓶數(shù)目(前k個(gè)花瓶),狀態(tài)變量sk表示前k個(gè)花瓶中放了多少花。而對于任意一個(gè)狀態(tài)sk,決策就是第sk束花是否放在第k個(gè)花瓶中,用變量uk=1或0來表示。最優(yōu)指標(biāo)函數(shù)fk(sk)表示前k個(gè)花瓶中插了sk束花,所能取得的最大美學(xué)值。 狀態(tài)轉(zhuǎn)移方程為 規(guī)劃方程為 邊界條件為 兩種劃分階段的方法,引出了兩種狀態(tài)表示法,兩種規(guī)劃方式,但是卻都成功地解決了問題。只不過因?yàn)闆Q策的選擇有多有少,所以算法的時(shí)間復(fù)雜度也就不同。[2] 這個(gè)例子具有很大的普遍性。有很多的多階段決策問題都有著不止一種的階段劃分方法,因而往往就有不止一種的規(guī)劃方法。有時(shí)各種方法所產(chǎn)生的效果是差不多的,但更多的時(shí)候,就像我們的例子一樣,兩種方法會(huì)在某個(gè)方面有些區(qū)別。 所以,在用動(dòng)態(tài)規(guī)劃解題的時(shí)候,可以多想一想是否有其它的解法。對于不同的解法,要注意比較,好的算法好在哪里,差一點(diǎn)的算法差在哪里。從各種不同算法的比較中,我們可以更深刻地領(lǐng)會(huì)動(dòng)態(tài)規(guī)劃的構(gòu)思技巧。 §2.2動(dòng)態(tài)規(guī)劃的模式性 這個(gè)可能做過動(dòng)態(tài)規(guī)劃的人都有體會(huì),從我們上面對動(dòng)態(tài)規(guī)劃的分析也可以看出來。動(dòng)態(tài)規(guī)劃的設(shè)計(jì)都有著一定的模式,一般要經(jīng)歷以下幾個(gè)步驟。 劃分階段:按照問題的時(shí)間或空間特征,把問題分為若干個(gè)階段。注意這若干個(gè)階段一定要是有序的或者是可排序的,否則問題就無法求解。 選擇狀態(tài):將問題發(fā)展到各個(gè)階段時(shí)所處于的各種客觀情況用不同的狀態(tài)表示出來。當(dāng)然,狀態(tài)的選擇要滿足無后效性。 確定決策并寫出狀態(tài)轉(zhuǎn)移方程:之所以把這兩步放在一起,是因?yàn)闆Q策和狀態(tài)轉(zhuǎn)移有著天然的聯(lián)系,狀態(tài)轉(zhuǎn)移就是根據(jù)上一階段的狀態(tài)和決策來導(dǎo)出本階段的狀態(tài)。所以,如果我們確定了決策,狀態(tài)轉(zhuǎn)移方程也就寫出來了。但事實(shí)上,我們常常是反過來做,根據(jù)相鄰兩段的各狀態(tài)之間的關(guān)系來確定決策。 寫出規(guī)劃方程(包括邊界條件):在第一部分中,我們已經(jīng)給出了規(guī)劃方程的通用形式化表達(dá)式。一般說來,只要階段、狀態(tài)、決策和狀態(tài)轉(zhuǎn)移確定了,這一步還是比較簡單的。 動(dòng)態(tài)規(guī)劃的主要難點(diǎn)在于理論上的設(shè)計(jì),一旦設(shè)計(jì)完成,實(shí)現(xiàn)部分就會(huì)非常簡單。大體上的框架如下: 對f1(s1)初始化(邊界條件) for k?2 to n(這里以順序求解為例) 對每一個(gè)sk?sk fk(sk)?一個(gè)極值(∞或-∞) 對每一個(gè)uk(sk)?dk(sk) sk-1?tk(sk,uk) t?g(fk-1(sk-1),uk) y t比fk(sk)更優(yōu) n fk(sk)?t 輸出fn(sn) 這個(gè)n-s圖雖然不能代表全部,但足可以概括大多數(shù)。少數(shù)的一些特殊的動(dòng)態(tài)規(guī)劃,其實(shí)現(xiàn)的原理也是類似,可以類比出來。我們到現(xiàn)在對動(dòng)態(tài)規(guī)劃的分析,主要是在理論上、設(shè)計(jì)上,原因也就在此。 掌握了動(dòng)態(tài)規(guī)劃的模式性,我們在用動(dòng)態(tài)規(guī)劃解題時(shí)就可以把主要的精力放在理論上的設(shè)計(jì)。一旦設(shè)計(jì)成熟,問題也就基本上解決了。而且在設(shè)計(jì)算法時(shí)也可以按部就班地來。 但是“物極必反”,太過拘泥于模式就會(huì)限制我們的思維,扼殺優(yōu)良算法思想的產(chǎn)生。我們在解題時(shí),不妨發(fā)揮一下創(chuàng)造性,去突破動(dòng)態(tài)規(guī)劃的實(shí)現(xiàn)模式,這樣往往會(huì)收到意想不到的效果。[3] §2.3動(dòng)態(tài)規(guī)劃的技巧性 上面我們所說的動(dòng)態(tài)規(guī)劃的模式性,主要指的是實(shí)現(xiàn)方面。而在設(shè)計(jì)方面,雖然它較為嚴(yán)格的步驟性,但是它的設(shè)計(jì)思想?yún)s是沒有一定的規(guī)律可循的。這就需要我們不斷地在實(shí)踐當(dāng)中去掌握動(dòng)態(tài)規(guī)劃的技巧,下面僅就一個(gè)例子談一點(diǎn)我自己的體會(huì)。 [例3] 街道問題:在下圖中找出從左下角到右上角的最短路徑,每步只能向右方或上方走。 這是一道簡單而又典型的動(dòng)態(tài)規(guī)劃題,許多介紹動(dòng)態(tài)規(guī)劃的書與文章中都拿它來做例子。通常,書上的解答是這樣的: 按照圖中的虛線來劃分階段,即階段變量k表示走過的步數(shù),而狀態(tài)變量sk表示當(dāng)前處于這一階段上的哪一點(diǎn)(各點(diǎn)所對應(yīng)的階段和狀態(tài)已經(jīng)用ks在地圖上標(biāo)明)。這時(shí)的模型實(shí)際上已經(jīng)轉(zhuǎn)化成了一個(gè)特殊的多段圖。用決策變量uk=0表示向右走,uk=1表示向上走,則狀態(tài)轉(zhuǎn)移方程如下: (這里的row是地圖豎直方向的行數(shù)) 我們看到,這個(gè)狀態(tài)轉(zhuǎn)移方程需要根據(jù)k的取值分兩種情況討論,顯得非常麻煩。相應(yīng)的,把它代入規(guī)劃方程而付諸實(shí)現(xiàn)時(shí),算法也很繁。因而我們在實(shí)現(xiàn)時(shí),一般是不會(huì)這么做的,而代之以下面方法: 將地圖中的點(diǎn)規(guī)則地編號(hào)如上,得到的規(guī)劃方程如下: (這里distance表示相鄰兩點(diǎn)間的邊長) 這樣做確實(shí)要比上面的方法簡單多了,但是它已經(jīng)破壞了動(dòng)態(tài)規(guī)劃的本來面目,而不存在明確的階段特征了。如果說這種方法是以地圖中的行(a、b、c、d)來劃分階段的話,那么它的“狀態(tài)轉(zhuǎn)移”就不全是在兩個(gè)階段之間進(jìn)行的了。 也許這沒什么大不了的,因?yàn)閷?shí)踐比理論更有說服力。但是,如果我們把題目擴(kuò)展一下:在地圖中找出從左下角到右上角的兩條路徑,兩條路徑中的任何一條邊都不能重疊,并且要求兩條路徑的總長度最短。這時(shí),再用這種“簡單”的方法就不太好辦了。 如果非得套用這種方法的話,則最優(yōu)指標(biāo)函數(shù)就需要有四維的下標(biāo),并且難以處理兩條路徑“不能重疊”的問題。 而我們回到原先“標(biāo)準(zhǔn)”的動(dòng)態(tài)規(guī)劃法,就會(huì)發(fā)現(xiàn)這個(gè)問題很好解決,只需要加一維狀態(tài)變量就成了。即用sk=(ak,bk)分別表示兩條路徑走到階段k時(shí)所處的位置,相應(yīng)的,決策變量也增加一維,用uk=(xk,yk)分別表示兩條路徑的行走方向。狀態(tài)轉(zhuǎn)移時(shí)將兩條路徑分別考慮: 在寫規(guī)劃方程時(shí),只要對兩條路徑走到同一個(gè)點(diǎn)的情況稍微處理一下,減少可選的決策個(gè)數(shù): 從這個(gè)例子中可以總結(jié)出設(shè)計(jì)動(dòng)態(tài)規(guī)劃算法的一個(gè)技巧:狀態(tài)轉(zhuǎn)移一般是在相鄰的兩個(gè)階段之間(有時(shí)也可以在不相鄰的兩個(gè)階段間),但是盡量不要在同一個(gè)階段內(nèi)進(jìn)行。 動(dòng)態(tài)規(guī)劃是一種很靈活的解題方法,在動(dòng)態(tài)規(guī)劃算法的設(shè)計(jì)中,類似的技巧還有很多。要掌握動(dòng)態(tài)規(guī)劃的技巧,有兩條途徑:一是要深刻理解動(dòng)態(tài)規(guī)劃的本質(zhì),這也是我們?yōu)槭裁匆婚_始就探討它的本質(zhì)的原因;二是要多實(shí)踐,不但要多解題,還要學(xué)會(huì)從解題中探尋規(guī)律,總結(jié)技巧。 §3動(dòng)態(tài)規(guī)劃與一些算法的比較 動(dòng)態(tài)規(guī)劃作為諸多解題方法中的一種,必然和其他一些算法有著諸多聯(lián)系。從這些聯(lián)系中,我們也可以看出動(dòng)態(tài)規(guī)劃的一些特點(diǎn)。 §3.1動(dòng)態(tài)規(guī)劃與遞推 ——?jiǎng)討B(tài)規(guī)劃是最優(yōu)化算法 由于動(dòng)態(tài)規(guī)劃的“名氣”如此之大,以至于很多人甚至一些資料書上都往往把一種與動(dòng)態(tài)規(guī)劃十分相似的算法,當(dāng)作是動(dòng)態(tài)規(guī)劃。這種算法就是遞推。實(shí)際上,這兩種算法還是很容易區(qū)分的。 按解題的目標(biāo)來分,信息學(xué)試題主要分四類:判定性問題、構(gòu)造性問題、計(jì)數(shù)問題和最優(yōu)化問題。我們在競賽中碰到的大多是最優(yōu)化問題,而動(dòng)態(tài)規(guī)劃正是解決最優(yōu)化問題的有力武器,因此動(dòng)態(tài)規(guī)劃在競賽中的地位日益提高。而遞推法在處理判定性問題和計(jì)數(shù)問題方面也是一把利器。下面分別就兩個(gè)例子,談一下遞推法和動(dòng)態(tài)規(guī)劃在這兩個(gè)方面的聯(lián)系。 [例4] mod 4 最優(yōu)路徑問題:在下圖中找出從第1點(diǎn)到第4點(diǎn)的一條路徑,要求路徑長度mod 4的余數(shù)最小。 這個(gè)圖是一個(gè)多段圖,而且是一個(gè)特殊的多段圖。雖然這個(gè)圖的形式比一般的多段圖要簡單,但是這個(gè)最優(yōu)路徑問題卻不能用動(dòng)態(tài)規(guī)劃來做。因?yàn)橐粭l從第1點(diǎn)到第4點(diǎn)的最優(yōu)路徑,在它走到第2點(diǎn)、第3點(diǎn)時(shí),路徑長度mod 4的余數(shù)不一定是最小,也就是說最優(yōu)策略的子策略不一定最優(yōu)——這個(gè)問題不滿足最優(yōu)化原理。 但是我們可以把它轉(zhuǎn)換成判定性問題,用遞推法來解決。判斷從第1點(diǎn)到第k點(diǎn)的長度mod 4為sk的路徑是否存在,用fk(sk)來表示,則遞推公式如下: (邊界條件) (這里lenk,i表示從第k-1點(diǎn)到第k點(diǎn)之間的第i條邊的長度,方括號(hào)表示“或(or)”運(yùn)算) 最后的結(jié)果就是可以使f4(s4)值為真的最小的s4值。 這個(gè)遞推法的遞推公式和動(dòng)態(tài)規(guī)劃的規(guī)劃方程非常相似,我們在這里借用了動(dòng)態(tài)規(guī)劃的符號(hào)也就是為了更清楚地顯示這一點(diǎn)。其實(shí)它們的思想也是非常相像的,可以說是遞推法借用了動(dòng)態(tài)規(guī)劃的思想解決了動(dòng)態(tài)規(guī)劃不能解決的問題。 有的多階段決策問題(像這一題的階段特征就很明顯),由于不能滿足最優(yōu)化原理等使用動(dòng)態(tài)規(guī)劃的先決條件,而無法應(yīng)用動(dòng)態(tài)規(guī)劃。在這時(shí)可以將最優(yōu)指標(biāo)函數(shù)的值當(dāng)作“狀態(tài)”放到下標(biāo)中去,從而變最優(yōu)化問題為判定性問題,再借用動(dòng)態(tài)規(guī)劃的思想,用遞推法來解決問題。 §3.2動(dòng)態(tài)規(guī)劃與搜索 ——?jiǎng)討B(tài)規(guī)劃是高效率、高消費(fèi)算法 同樣是解決最優(yōu)化問題,有的題目我們采用動(dòng)態(tài)規(guī)劃,而有的題目我們則需要用搜索。這其中有沒有什么規(guī)則呢? 我們知道,撇開時(shí)空效率的因素不談,在解決最優(yōu)化問題的算法中,搜索可以說是“萬能”的。所以動(dòng)態(tài)規(guī)劃可以解決的問題,搜索也一定可以解決。 把一個(gè)動(dòng)態(tài)規(guī)劃算法改寫成搜索是非常方便的,狀態(tài)轉(zhuǎn)移方程、規(guī)劃方程以及邊界條件都可以直接“移植”,所不同的只是求解順序。動(dòng)態(tài)規(guī)劃是自底向上的遞推求解,而搜索則是自頂向下的遞歸求解(這里指深度搜索,寬度搜索類似)。 反過來,我們也可以把搜索算法改寫成動(dòng)態(tài)規(guī)劃。狀態(tài)空間搜索實(shí)際上是對隱式圖中的點(diǎn)進(jìn)行枚舉,這種枚舉是自頂向下的。如果把枚舉的順序反過來,變成自底向上,那么就成了動(dòng)態(tài)規(guī)劃。(當(dāng)然這里有個(gè)條件,即隱式圖中的點(diǎn)是可排序的,詳見下一節(jié)。) 正因?yàn)閯?dòng)態(tài)規(guī)劃和搜索有著求解順序上的不同,這也造成了它們時(shí)間效率上的差別。在搜索中,往往會(huì)出現(xiàn)下面的情況: 對于上圖(a)這樣幾個(gè)狀態(tài)構(gòu)成的一個(gè)隱式圖,用搜索算法就會(huì)出現(xiàn)重復(fù),如上圖(b)所示,狀態(tài)c2被搜索了兩次。在深度搜索中,這樣的重復(fù)會(huì)引起以c2為根整個(gè)的整個(gè)子搜索樹的重復(fù)搜索;在寬度搜索中,雖然這樣的重復(fù)可以立即被排除,但是其時(shí)間代價(jià)也是不小的。而動(dòng)態(tài)規(guī)劃就沒有這個(gè)問題,如上圖(c)所示。 一般說來,動(dòng)態(tài)規(guī)劃算法在時(shí)間效率上的優(yōu)勢是搜索無法比擬的。(當(dāng)然對于某些題目,根本不會(huì)出現(xiàn)狀態(tài)的重復(fù),這樣搜索和動(dòng)態(tài)規(guī)劃的速度就沒有差別了。)而從理論上講,任何拓?fù)溆行颍ìF(xiàn)實(shí)中這個(gè)條件常??梢詽M足)的隱式圖中的搜索算法都可以改寫成動(dòng)態(tài)規(guī)劃。但事實(shí)上,在很多情況下我們?nèi)匀徊坏貌徊捎盟阉魉惴?。那么,?dòng)態(tài)規(guī)劃算法在實(shí)現(xiàn)上還有什么障礙嗎? 考慮上圖(a)所示的隱式圖,其中存在兩個(gè)從初始狀態(tài)無法達(dá)到的狀態(tài)。在搜索算法中,這樣的兩個(gè)狀態(tài)就不被考慮了,如上圖(b)所示。但是動(dòng)態(tài)規(guī)劃由于是自底向上求解,所以就無法估計(jì)到這一點(diǎn),因而遍歷了全部的狀態(tài),如上圖(c)所示。 一般說來,動(dòng)態(tài)規(guī)劃總要遍歷所有的狀態(tài),而搜索可以排除一些無效狀態(tài)。更重要的事搜索還可以剪枝,可能剪去大量不必要的狀態(tài),因此在空間開銷上往往比動(dòng)態(tài)規(guī)劃要低很多。 如何協(xié)調(diào)好動(dòng)態(tài)規(guī)劃的高效率與高消費(fèi)之間的矛盾呢?有一種折衷的辦法就是記憶化算法。記憶化算法在求解的時(shí)候還是按著自頂向下的順序,但是每求解一個(gè)狀態(tài),就將它的解保存下來,以后再次遇到這個(gè)狀態(tài)的時(shí)候,就不必重新求解了。這種方法綜合了搜索和動(dòng)態(tài)規(guī)劃兩方面的優(yōu)點(diǎn),因而還是很有實(shí)用價(jià)值的。 §3.3動(dòng)態(tài)規(guī)劃與網(wǎng)絡(luò)流 ——?jiǎng)討B(tài)規(guī)劃是易設(shè)計(jì)易實(shí)現(xiàn)算法 由于圖的關(guān)系復(fù)雜而無序,一般難以呈現(xiàn)階段特征(除了特殊的圖如多段圖,或特殊的分段方法如floyd),因此動(dòng)態(tài)規(guī)劃在圖論中的應(yīng)用不多。但有一類圖,它的點(diǎn)卻是有序的,這就是有向無環(huán)圖。 在有向無環(huán)圖中,我們可以對點(diǎn)進(jìn)行拓?fù)渑判颍蛊潴w現(xiàn)出有序的特征,從而據(jù)此劃分階段。在有向無還圖中求最短路徑的算法[4],已經(jīng)體現(xiàn)出了簡單的動(dòng)態(tài)規(guī)劃思想。但動(dòng)態(tài)規(guī)劃在圖論中還有更有價(jià)值的應(yīng)用。下面先看一個(gè)例子。 [例6] n個(gè)人的街道問題:在街道問題(參見例3)中,若有n個(gè)人要從左下角走向右上角,要求他們走過的邊的總長度最大。當(dāng)然,這里每個(gè)人也只能向右或向上走。下面是一個(gè)樣例,左圖是從出發(fā)地到目的地的三條路徑,右圖是他們所走過的邊,這些邊的總長度為5 + 4 + 3 + 6 + 3 + 3 + 5 + 8 + 8 + 7 + 4 + 5 + 9 + 5 + 3 = 78(不一定是最大)。 這個(gè)題目是對街道問題的又一次擴(kuò)展。仿照街道問題的解題方法,我們?nèi)匀豢梢杂脛?dòng)態(tài)規(guī)劃來解決本題。不過這一次是n個(gè)人同時(shí)走,狀態(tài)變量也就需要用n維來表示,。相應(yīng)的,決策變量也要變成n維,uk=(uk,1,uk,2,…,uk,n)。狀態(tài)轉(zhuǎn)移方程不需要做什么改動(dòng): 在寫規(guī)劃方程時(shí),需要注意在第k階段,n條路徑所走過的邊的總長度的計(jì)算,在這里我就用gk(sk,uk)來表示了: 邊界條件為 可見將原來的動(dòng)態(tài)規(guī)劃算法移植到這個(gè)問題上來,在理論上還是完全可行的。但是,現(xiàn)在的這個(gè)動(dòng)態(tài)規(guī)劃算法的時(shí)空復(fù)雜度已經(jīng)是關(guān)于n的指數(shù)函數(shù),只要n稍微大一點(diǎn),這個(gè)算法就不可能實(shí)現(xiàn)了。 下面我們換一個(gè)思路,將n條路徑看成是網(wǎng)絡(luò)中一個(gè)流量為n的流,這樣求解的目標(biāo)就是使這個(gè)流的費(fèi)用最大。但是本題又不同于一般的費(fèi)用流問題,在每一條邊e上的流費(fèi)用并不是流量和邊權(quán)的乘積 ,而是用下式計(jì)算: 為了使經(jīng)典的費(fèi)用流算法適用于本題,我們需要將模型稍微轉(zhuǎn)化一下: 如圖,將每條邊拆成兩條。拆開后一條邊上有權(quán),但是容量限制為1;另一條邊沒有容量限制,但是流過這條邊就不能計(jì)算費(fèi)用了。這樣我們就把問題轉(zhuǎn)化成了一個(gè)標(biāo)準(zhǔn)的最大費(fèi)用固定流問題。 這個(gè)算法可以套用經(jīng)典的最小費(fèi)用最大流算法,在此就不細(xì)說了。(參見附錄中的源程序) 這個(gè)例題是我仿照ioi97的“障礙物探測器”一題[6]編出來的。“障礙物探測器”比這一題要復(fù)雜一些,但是基本思想是相似的。類似的題目還有99年冬令營的“迷宮改造”[7]。從這些題目中都可以看到動(dòng)態(tài)規(guī)劃和網(wǎng)絡(luò)流的聯(lián)系。 推廣到一般情況,任何有向無環(huán)圖中的費(fèi)用流問題在理論上說,都可以用動(dòng)態(tài)規(guī)劃來解決。對于流量為n(如果流量不固定,這個(gè)n需要事先求出來)的費(fèi)用流問題,用n維的變量sk=(sk,1,sk,2,…,sk,n)來描述狀態(tài),其中sk,i?v(1£i£n)。相應(yīng)的,決策也用n維的變量uk=(uk,1,uk,2,…,uk,n)來表示,其中uk,i?e(sk,i)(1£i£n),e(v)表示指向v的弧集。則狀態(tài)轉(zhuǎn)移方程可以這樣表示: sk-1,i = uk,i的弧尾結(jié)點(diǎn) 規(guī)劃方程為 邊界條件為 但是,由于動(dòng)態(tài)規(guī)劃算法是指數(shù)級(jí)算法,因而在實(shí)現(xiàn)中的局限性很大,僅可用于一些n非常小的題目。然而在競賽解題中,比如上面說到的ioi97以及99冬令營測試時(shí),我們使用動(dòng)態(tài)規(guī)劃的傾向性很明顯(“障礙物探測器”中,我們用的是貪心策略,求n=1或n=2時(shí)的局部最優(yōu)解[8])。這主要有兩個(gè)原因: 一. 雖然網(wǎng)絡(luò)流有著經(jīng)典的算法,但是在競賽中不可能出現(xiàn)經(jīng)典的問題。如果要運(yùn)用網(wǎng)絡(luò)流算法,則需要經(jīng)過一番模型轉(zhuǎn)化,有時(shí)這個(gè)轉(zhuǎn)化還是相當(dāng)困難的。因此在算法的設(shè)計(jì)上,靈活巧妙的動(dòng)態(tài)規(guī)劃算法反而要更為簡單一些。 二. 網(wǎng)絡(luò)流算法實(shí)現(xiàn)起來很繁,這是被人們公認(rèn)的。因而在競賽的緊張環(huán)境中,實(shí)現(xiàn)起來有一定模式的動(dòng)態(tài)規(guī)劃算法又多了一層優(yōu)勢。 正由于動(dòng)態(tài)規(guī)劃算法在設(shè)計(jì)和實(shí)現(xiàn)上的簡便性,所以在n不太大時(shí),也就是在動(dòng)態(tài)規(guī)劃可行的情況下,我們還是應(yīng)該盡量運(yùn)用動(dòng)態(tài)規(guī)劃。 §4結(jié)語 本文的內(nèi)容比較雜,是我?guī)啄陙韺?dòng)態(tài)規(guī)劃的參悟理解、心得體會(huì)。雖然主要的篇幅講的都是理論,但是根本的目的還是指導(dǎo)實(shí)踐。 動(dòng)態(tài)規(guī)劃,據(jù)我認(rèn)為,是當(dāng)今信息學(xué)競賽中最靈活、也最能體現(xiàn)解題者水平的一類解題方法。本文內(nèi)容雖多,不能涵蓋動(dòng)態(tài)規(guī)劃之萬一?!凹埳系脕斫K覺淺,絕知此事要躬行?!币胝嬲I(lǐng)悟、理解動(dòng)態(tài)規(guī)劃的思想,掌握動(dòng)態(tài)規(guī)劃的解題技巧,還需要在實(shí)踐中不斷地挖掘、探索。實(shí)踐得多了,也就能體會(huì)到漸入佳境之妙了。 動(dòng)態(tài)規(guī)劃, 算法之常, 運(yùn)用之妙, 存乎一心。
文章TAG:狀態(tài)轉(zhuǎn)移方程什么是狀態(tài)轉(zhuǎn)移方程

最近更新

  • 9900kf,9900kf配什么主板最好9900kf,9900kf配什么主板最好

    9900kf配什么主板最好2,9900kf用120超頻3水冷夠用嗎3,如果打游戲的話是i99900kf和銳龍93900x哪個(gè)好4,i9桌面級(jí)cpu有哪些5,i99900kf和9900k做影視哪個(gè)好6,i99900KF的硬盤買什么好1,9900kf配什.....

    問答 日期:2024-12-28

  • 獨(dú)角獸公司,獨(dú)角獸公司的介紹獨(dú)角獸公司,獨(dú)角獸公司的介紹

    獨(dú)角獸公司的介紹2,獨(dú)角獸概念股票公司有哪些3,請問什么叫獨(dú)角獸公司4,互聯(lián)網(wǎng)行業(yè)都有哪些厲害的獨(dú)角獸公司5,A股的獨(dú)角獸公司有哪些6,A股有哪些獨(dú)角獸上市公司1,獨(dú)角獸公司的介紹投資界對于.....

    問答 日期:2024-12-28

  • 運(yùn)維做大數(shù)據(jù),it管理大數(shù)據(jù)運(yùn)維需要做什么?運(yùn)維做大數(shù)據(jù),it管理大數(shù)據(jù)運(yùn)維需要做什么?

    大數(shù)據(jù)運(yùn)維、數(shù)據(jù)處理、數(shù)據(jù)挖掘在IT管理領(lǐng)域應(yīng)該做什么?大數(shù)據(jù)運(yùn)維是做什么的?在IT管理領(lǐng)域,大數(shù)據(jù)運(yùn)維工程師需要對數(shù)據(jù)高度敏感。數(shù)據(jù)處理和數(shù)據(jù)挖掘應(yīng)該怎么做?IT監(jiān)控或IT運(yùn)維流程的產(chǎn).....

    問答 日期:2024-12-28

  • 光伏農(nóng)業(yè),光伏農(nóng)業(yè)有哪四種模式?光伏農(nóng)業(yè),光伏農(nóng)業(yè)有哪四種模式?

    農(nóng)業(yè)的四種模式是什么?1.光伏種植將光伏和種植結(jié)合起來,包括光伏蔬菜、光伏花卉、光伏苗木、光伏食用菌、光伏中藥材、光伏茶園、光伏果園、光伏林業(yè)等等。光伏農(nóng)業(yè)Overview光伏農(nóng)業(yè)從涉.....

    問答 日期:2024-12-28

  • 磁懸浮機(jī)器人,懸掛列車和磁懸浮列車的區(qū)別磁懸浮機(jī)器人,懸掛列車和磁懸浮列車的區(qū)別

    它是一個(gè)機(jī)器人嗎?磁浮不僅是空調(diào),還用在這些產(chǎn)品上。磁懸浮列車磁懸浮列車是一種現(xiàn)代高科技軌道交通工具,它通過電磁力實(shí)現(xiàn)列車與軌道之間的無接觸懸浮和導(dǎo)向,然后利用直線電機(jī)產(chǎn)生的電磁.....

    問答 日期:2024-12-28

  • 虛擬現(xiàn)實(shí)體驗(yàn),浸入式虛擬現(xiàn)實(shí)體驗(yàn)怎么樣虛擬現(xiàn)實(shí)體驗(yàn),浸入式虛擬現(xiàn)實(shí)體驗(yàn)怎么樣

    浸入式虛擬現(xiàn)實(shí)體驗(yàn)怎么樣虛擬現(xiàn)實(shí)玩的是沉浸感,特別是玩游戲,沉浸在虛擬現(xiàn)實(shí)技術(shù)搭建的新世界里。可以在87870網(wǎng)站查看,個(gè)人感覺虛擬現(xiàn)實(shí)還是很贊的。期待看到有用的回答!2,什么是虛擬現(xiàn)實(shí).....

    問答 日期:2024-12-28

  • 手機(jī)清理內(nèi)存,手機(jī)內(nèi)存怎么清除手機(jī)清理內(nèi)存,手機(jī)內(nèi)存怎么清除

    手機(jī)內(nèi)存怎么清除2,怎樣清理手機(jī)里的內(nèi)存3,怎樣清除手機(jī)內(nèi)存4,怎樣清理手機(jī)內(nèi)存5,如何清除手機(jī)內(nèi)存6,怎樣清理手機(jī)內(nèi)存1,手機(jī)內(nèi)存怎么清除內(nèi)存滿了用360手機(jī)安全衛(wèi)士,可以清理手機(jī)緩存,優(yōu)化系.....

    問答 日期:2024-12-28

  • 大學(xué)專業(yè)電器自動(dòng)化怎么樣,大學(xué)專業(yè)電器自動(dòng)化怎么樣,

    遼寧科技大學(xué)電氣工程及其自動(dòng)化專業(yè)怎么樣?大學(xué)電氣工程及其自動(dòng)化怎么樣?三峽大學(xué)電氣自動(dòng)化專業(yè)怎么樣?電氣自動(dòng)化技術(shù)專業(yè)怎么樣?我覺得電氣自動(dòng)化技術(shù)專業(yè)挺好的。首先要知道電氣自動(dòng).....

    問答 日期:2024-12-28