




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、袀算法是指解決問題的一種方法或一個過程。 莀算法是若干指令的有窮序列,滿足性質(zhì): 莆(1)輸入:有外部提供的量作為算法的輸入。(2)輸出:算法產(chǎn)生至少一個量作為輸出。 襖(3)確定性:組成算法的每條指令是清晰,無歧義的。 節(jié)(4)有限性:算法中每條指令的執(zhí)行次數(shù)是有限的,執(zhí)行每條指令的時間也是有限的。 蝿程序是算法用某種程序設計語言的具體實現(xiàn)。程序可以不滿足算法的性質(zhì)(4)。 膆分治法的設計思想是,將一個難以直接解決的大問題,分割成一些規(guī)模較小的相同問題,以便各個擊破, 分而治之。 蟻直接或間接地調(diào)用自身的算法稱為遞歸算法。用函數(shù)自身給出定義的函數(shù)稱為遞歸函數(shù)。 莁1.階乘函數(shù)階乘函數(shù)可遞歸地
2、定義為: 膈f 1 n = 0 邊界條件 n!=丿 n(n -1)! n0 祎遞歸方程 螃邊界條件與遞歸方程是遞歸函數(shù)的二個要素 葿 2.Fibonacci 數(shù)列 蚈無窮數(shù)列1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ,稱為Fibonacci數(shù)列。它可以遞歸地定義為 薇 1 n =0 F( n) =* 1 n = 1 螄F (n 1) + F (n 2) n 1 莇當一個函數(shù)及它的一個變量是由函數(shù)自身定義時,稱這個函數(shù)是雙遞歸函數(shù)。 薁Ackerman函數(shù) A(n , m)定義如下: A(1,0) =2 IA(0,m)=1m0 |A(n ,0) = n+2n2 A(n,
3、 m)=A(A(n -1, m),m1) n, m 亠1 蚃 節(jié) 膀Ackerman函數(shù) 薄A(n , m)的自變量 m的每一個值都定義了一個單變量函數(shù): 螄 M=0 時,A(n ,0)=n+2 蒁 M=1 時,A(n,1)=A(A(n-1,1),0)=A(n-1,1)+2,和 A(1,1)=2 故 A(n,1)=2*n 蕿 M=2 時,A(n,2)=A(A(n-1,2),1)=2A(n-1,2),和 A(1,2)=A(A(0,2),1)=A(1,1)=2 ,故 A(n,2)= 25 。 莄M=3時,類似的可以推出 蒁M=4時,A(n,4)的增長速度非常快,以至于沒有適當?shù)臄?shù)學式子來表示這一函
4、數(shù)。 蕿定義單變量的 Ackerman函數(shù) A(n)為,A(n)=A(n , n)。 聿定義其擬逆函數(shù)a (n)為:a (n)=mink | A(k) n。即a (n)是使nW A(k)成立的最小的k值。 肅a (n)在復雜度分析中常遇到。對于通常所見到的正整數(shù)n,有a (n) w4。但在理論上a (n)沒有上界,隨著 n的增加,它以難以想象的慢速度趨向正無窮大。 薃6排列問題 袁設計一個遞歸算法生成n個元素r1,r2,rn的全排列。 蒈設R=r1,r2,rn是要進行排列的n個元素,Ri=R-ri。集合X中元素的全排列記為perm(X)。 螅(ri)perm(X)表示在全排列perm(X)的每
5、一個排列前加上前綴得到的排列。R的全排列可歸納定義如下:當 n=1時,perm(R)=(r),其中r是集合 R中唯一的元素; 蚄當 n1 時,perm(R)由(r1)perm(R1) , (r2)perm(R2),,(rn)perm(Rn)構成。 薀7整數(shù)劃分問題 莇在本例中,如果設p(n)為正整數(shù)n的劃分數(shù),則難以找到遞歸關系,因此考慮增加一個自變量:將最大加 數(shù)n1不大于m的劃分個數(shù)記作 q(n,m)??梢越(n,m)的如下遞歸關系。 肅(3) q(n,n )=1+q( n,n-1); 羂正整數(shù)n的劃分由n仁n的劃分和n1 m1; 螇正整數(shù)n的最大加數(shù)n1不大于m的劃分由n仁m的劃分和
6、 n = 1, m = 1 n : m 螆n1 0) 袃hano i(n-1, a, c, b); 薀move(a,b); 螈hanoi( n-1, c, b, a); 螇遞歸小結(jié):優(yōu)點:結(jié)構清晰,可讀性強,而且容易用數(shù)學歸納法來證明算法的正確性,因此它為設計算法、 調(diào)試程序帶來很大方便。 羅缺點:遞歸算法的運行效率較低,無論是耗費的計算時間還是占用的存儲空間都比非遞歸算法要多。 羂分治法的適用條件 膈分治法所能解決的問題一般具有以下幾個特征: 蒈1.該問題的規(guī)??s小到一定的程度就可以容易地解決; 螂2.該問題可以分解為若干個規(guī)模較小的相同問題,即該問題具有最優(yōu)子結(jié)構性質(zhì) 肀3.利用該問題分解
7、出的子問題的解可以合并為該問題的解; 蚇4.該問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子問題。 羄這條特征涉及到分治法的效率,如果各子問題是不獨立的,則分治法要做許多不必要的工作,重復地 解公共的子問題,此時雖然也可用分治法,但一般用動態(tài)規(guī)劃較好。 平衡 袃?nèi)藗儚拇罅繉嵺`中發(fā)現(xiàn),在用分治法設計算法時,最好使子問題的規(guī)模大致相同。即將一個問題分成大 小相等的k個子問題的處理方法是行之有效的。這種使子問題規(guī)模大致相等的做法是出自一種 (balancing)子問題的思想,它幾乎總是比子問題規(guī)模不等的做法要好。 腿9二分搜索技術 肆給定已按升序排好序的n個元素a0:n-1,現(xiàn)要在
8、這n個元素中找出一特定元素X。 螄二分搜索算法: 裊 public static int bin arySearch(i nt a, int x, int n) 薁 / 在 a0 = a1 = . = an-1中搜索 x 螀 /找到x時返回其在數(shù)組中的位置,否則返回-1 蒅in t left = 0; int right = n - 1; 螞 while (left amiddle) left = middle + 1; else right = middle - 1; 肂 return -1; / 未找到 x 蕿算法復雜度分析: 羆每執(zhí)行一次算法的 while循環(huán),待搜索數(shù)組的大小減少一半。
9、因此,在最壞情況下,while循環(huán)被執(zhí)行了 O(logn)次。循環(huán)體內(nèi)運算需要 0(1)時間,因此整個算法在最壞情況下的計算時間復雜性為O(logn)。 螅合并排序: 膀基本思想:將待排序元素分成大小大致相同的2個子集合,分別對2個子集合進行排序,最終將排好序的 子集合合并成為所要求的排好序的集合。 肇最壞時間復雜度:O(nlogn)平均時間復雜度:O(nl og n)輔助空間:O(n) 蚆快速排序:最壞時間復雜度:O(n2)平均時間復雜度:O(nlogn)輔助空間:O(n)或O(logn) 薂動態(tài)規(guī)劃算法的基本要素 薃(1)最優(yōu)子結(jié)構性質(zhì)(2 )重疊子問題性質(zhì) 蕆1 利用問題的最優(yōu)子結(jié)構性質(zhì)
10、,以自底向上的方式遞歸地從子問題的最優(yōu)解逐步構造出整個問題的最優(yōu) 解。最優(yōu)子結(jié)構是問題能用動態(tài)規(guī)劃算法求解的前提。 蒆2.遞歸算法求解問題時,每次產(chǎn)生的子問題并不總是新問題,有些子問題被反復計算多次。這種性質(zhì)稱為 子問題的重疊性質(zhì)。動態(tài)規(guī)劃算法,對每一個子問題只解一次,而后將其解保存在一個表格中,當再次 需要解此子問題時,只是簡單地用常數(shù)時間查看一下結(jié)果。 蚃通常不同的子問題個數(shù)隨問題的大小呈多項式增長。因此用動態(tài)規(guī)劃算法只需要多項式時間,從而獲得 較高的解題效率。 蟻備忘錄方法 袇備忘錄方法的控制結(jié)構與直接遞歸方法的控制結(jié)構相同,區(qū)別在于備忘錄方法為每個解過的子問題建立 了備忘錄以備需要時查
11、看,避免了相同子問題的重復求解。 腿動態(tài)規(guī)劃基本步驟:1.找出最優(yōu)解的性質(zhì),并刻劃其結(jié)構特征。 蚅2.遞歸地定義最優(yōu)值。3以自底向上的方式計算出最優(yōu)值。 蝿4.根據(jù)計算最優(yōu)值時得到的信息,構造最優(yōu)解。 薀動態(tài)規(guī)劃基本思想 羇是將待求解問題分解成若干個子問題,但是經(jīng)分解得到的子問題往往不是互相獨立的。不同子問題的數(shù)目 常常只有多項式量級。在用分治法求解時,有些子問題被重復計算了許多次。如果能夠保存已解決的子問 題的答案,而在需要時再找出已求得的答案,就可以避免大量重復計算,從而得到多項式時間算法。 蒂0/1背包問題0/1背包問題的求解過程 膂一、動態(tài)規(guī)劃函數(shù) nn 罿Xi :物體i被裝入背包的情
12、況,Xi =0,1。約束方程和目標函數(shù):7 WiXi _Moptp = max piXi 解向量X =(X1,X2,Xn)。背包的載重量:0mVy 蚇optpj):前i個物體中,能裝入載重量為j的背包中的物體的最大價值,j=1,2,m。 薄動態(tài)規(guī)劃函數(shù):optpi(0) =optp0(j) =0( 6.6.1) 芀 optp i (j) optpi .1( j ) maxoptpi(j),optpi 4(j -Wi) - Pi j:Wi( 6.6.2) jWi 莂若 optpi (j ) optPi 4(j) 貝yXi =1, j = j _Wi (664) 葿二、求解過程 膄1、決策階段:第
13、一階段,只裝入一個物體,確定在各種不同載重量的背包下,能夠得到的最大價值;第 二階段,裝入前兩個物體,確定在各種不同載重量的背包下,能夠得到的最大價值;依此類推,直到第n個 階段。 蚅最后,optp n ( m)便是在載重量為 m的背包下,裝入n個物體時,能夠取得的最大價值。 螞2、解向量的確定 袈從optp n ( m)的值向前倒推。 (663) 襖遞推關系式:若optp, j)込optpi 4( j)貝Vxi =0 螁例6.6有5個物體,其重量分別為2,2, 6, 5, 4,價值分別為6, 3, 5,4, 6,背包的載重量為10,求裝入背 包的物體及其總價值 羋計算結(jié)果,如圖6.7所示。
14、0 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 6 6 6 I 6 6 6 6 6 6 2 0 0 6 6 9 9 9 9 9 9 9 3 0 0 6 6 9 9 9 9 11 11 14 4 0 0 6 6 9 9 9 10 11 13 14 5 0 0 6 6 9 9 12 12 15 15 15 蒄圖6.75個物體的0/1背包問題的例子 衿裝入背包的物體為x = 1,1,0,0,1。 蚇0-1背包問題 蒞給定n種物品和一背包。物品i的重量是wi,其價值為vi,背包的容量為 C。問應如何選擇裝入背包的物 品,使得裝入背包中物品的總價
15、值最大? 薅0-1背包問題是一個特殊的整數(shù)規(guī)劃問題。 n WjXj _ C i 4 n Vi xi i -1 max 膆 Xi 莂設所給 0-1背包問題的子問題 n WkXk 豈 j k -i 0,1, i 乞 k 乞 n 袀 祎 max n VkXk k =i xk (0,1,1 乞 i 乞 n 螂 m(i, j) j - Wi 0 乞 j :wi 莄的最優(yōu)值為m(i, j),即m(i, j)是背包容量為j,可選擇物品為i, i+1,n時0-1背包問題的最優(yōu)值。 由0-1背包問題的最優(yōu)子結(jié)構性質(zhì),可以建立計算m(i, j)的遞歸式如下。 賺 m(n, j) Vn .0 j - wn 0 -
16、j : wn maxm(i 1, j), m(i 1, j - wi) vi m(i +1, j) 蚈算法復雜度分析: 莆從m(i , j)的遞歸式容易看出,算法需要0(nc)計算時間。當背包容量c很大時,算法需要的計算時間較多。 例如,當c2n時,算法需要Q (n2n)計算時間。 芃二叉搜索樹 罿(1)若它的左子樹不空,則左子樹上所有節(jié)點的值均小于它的根節(jié)點的值; 肇(2)若它的右子樹不空,則右子樹上所有節(jié)點的值均大于它的根節(jié)點的值; 肇(3它的左、右子樹也分別為二叉排序樹 芄最優(yōu)二叉搜索樹 莁最優(yōu)二叉搜索樹 Tij的平均路長為pij,則所求的最優(yōu)值為p1,n。由最優(yōu)二叉搜索樹問題的最優(yōu)子結(jié)
17、構性質(zhì) 可建立計算pij的遞歸式如下 薇 Wi,j Pi,j 二 Wi,jmkiqWi,kPi,kWki,jPk i,j 袇 肁記wi,jpi,j為m(i,j),則m(1,n)=w1,np1,n=p1,n為所求的最優(yōu)值。計算m(i,j)的遞歸式為 蒀m(i, j) =Wi,j.mkinjm(i,k -1) m(k 1, j), i 乞 j m(i,i 1) =0,1 勻蘭 n FP9. I羇 薈 呵鳥紅* 1)+m(k +1, j) =限叫卡.“(* -1)+m(k +1, j” i jsusij/Mhsi 1 j 膃注意至U 螂可以得到0(n2)的算法 蝕多段圖的最短路徑問題 肄定義6.1有
18、向連通賦權圖G=(V,E,W),頂點集合V劃分成k個不相交的子集 Vi ,1_i_k , k _2,使得 E中的任一邊(u,v),必有u Vi , v Vi -m , m -1。稱為多段圖。 芄令|V1 |=|Vk |=1,稱s V1為源點,t Vk為收點。 羈多段圖的最短路徑問題,是求從源點s到達收點t的最小花費的通路 聿一、頂點編號: 襖根據(jù)多段圖的k個不相交的子集Vi,把多段圖劃分為k段,每一段包含頂點的一個子集。 羈把頂點集合V中的所有頂點,按照段的順序進行編號。 聿子集中的頂點互不鄰接,它們之間的相互順序無關緊要。 蕿頂點個數(shù)為n,頂點s的編號為0,則收點t的編號為n _1, 薅對E
19、中的任何一條邊(u,v),頂點u的編號小于頂點v的編號。 肅二、決策過程 莁 數(shù)組元素costi:存放頂點i到達收點t的最小花費 羈數(shù)組元素path i :存放頂點i到達收點t的最小花費通路上的前方頂點編號 芅數(shù)組route n:存放從源點s出發(fā),到達收點t的最短通路上的頂點編號 膄第一階段,確定第k -1段的所有頂點到達收點t的花費最小的通路。 薀第二階段,用第一階段的信息,確定第k_2段的所有頂點到達收點t的花費最小的通路。 莇如此依次進行,直到最后確定源點s到達收點t的花費最小的通路。 肅最后,從源點s的path信息中,確定它的前方頂點編號p1 , 羂從5的path信息中,確定P1的前方
20、頂點編號P2, 袂如此遞推,直到收點t 螇動態(tài)規(guī)劃函數(shù):costi=mi nCjj cost j (6.2.1) 螆 pathi二使 Cj cost j 最小的 j i : j n (6.2.2) 羃三、步驟: 羀1.對所有的i,0_i : n,把cost i 初始化為最大值,path i 初始化為-1; cost n-1初始化為0; 2.令 i =n -2 ; 3.根據(jù)(6.2.1)式和(6.2.2)式計算 costi和 path i ; 蒀4. i =i -1,若 i _0 ,轉(zhuǎn) 3;否則,轉(zhuǎn) 5; 5.令 i =0 , route i = 0;薆6.如果route i =n -.1,算法
21、結(jié)束;否則,轉(zhuǎn) 7; 肄 7. i =i 亠 1, route i = path route i _1;轉(zhuǎn) 6; 腿例6.2求解圖6.3所示的最短路徑問題。 芇圖6.3動態(tài)規(guī)劃方法求解多段圖的例子 袂 i =8: cos t 8 =c89 cost 9 =3 0 =3pat8 =9 蒁i =7 : cost 7 = C79 :cost 9 =7 :0 =7p a t7 =9 荿 i =6 :cost 6=min c67- cos t 7 , c68- cos t 8 =min 67,53=8pat6=8 肇 i =5 :cost 5 =min c57亠 cost 7 ,c58亠 cost 8=
22、mi 門8亠7,6亠3=9pat5=8 袃 i =4 :cost 4 =min c47 cos t 7 , c48- cost 8 =mi n 5 7,6 3=9pa t4=8 薀 i =3: cos t 3 =min c35 亠 cost 5 , c36 亠 cost 6 = min 4 亠 9,7 亠 8 =13 pat3=5 螈i =2 : cost 2 =min c23 cost 3, c24 cost 4 ,c25 cost 5 ,c26 cost 6 =mi n113,6 9,7 9,8 8 =14 p a t!2 =3 羅 i=1 :cost 1 =min c14cos t 4
23、, c15cost 5 = min 99,69 =15 pat1=5 羂 i=0 :cost 0 =min c01cost 1 ,c02- cost 2 ,c03 cost 3 膈=min 4 15,1 14,3 13 =15path)=2 蒈 route 0 =0 螂 route 1 = path route 0 = path 0 = 2 肀 route 2 = path route 1 = path 2 =3 蚇 route 3 = path route 2 = path 3 =5 羄 route 4 = path route 3 = path 5 =8 袃 route 5 = path
24、route 4 = path 8 =9 腿最后,得到最短的路徑為0, 2, 3, 5, 8, 9,費用是15。 肆 螄貪心算法的基本要素 裊貪心選擇性質(zhì)和最優(yōu)子結(jié)構性質(zhì)。 薁所謂貪心選擇性質(zhì) 是指所求問題的 整體最優(yōu)解 可以通過一系列 局部最優(yōu) 的選擇,即貪心選擇來達到。 這是 貪心算法可行的第一個基本要素,也是貪心算法與動態(tài)規(guī)劃算法的主要區(qū)別。 螀動態(tài)規(guī)劃算法通常以自底向上的方式解各子問題,而貪心算法則通常以自頂向下的方式進行,以迭代的 方式作出相繼的貪心選擇,每作一次貪心選擇就將所求問題簡化為規(guī)模更小的子問題。 蒅最優(yōu)子結(jié)構性質(zhì) 當一個問題的最優(yōu)解包含其子問題的最優(yōu)解時,稱此問題具有最優(yōu)子
25、結(jié)構性質(zhì)。問題的 最優(yōu)子結(jié)構性質(zhì)是該問題可用動態(tài)規(guī)劃算法或貪心算法求解的關鍵特征。 螞0-1背包問題: 蠆給定n種物品和一個背包。物品 i的重量是 Wi,其價值為Vi,背包的容量為 C。應如何選擇裝入背 包的物品,使得裝入背包中物品的總價值最大? 腿在選擇裝入背包的物品時,對每種物品i只有2種選擇,即裝入背包或不裝入背包。不能將物品i裝入背 包多次,也不能只裝入部分的物品io 芅背包問題:與0-1背包問題類似,所不同的是在選擇物品i裝入背包時,可以選擇物品i的一部分,而不 一定要全部裝入背包,1 w i n) output(x); else for (int i=t;iv=n;i+) swap
26、(xt, xi); if (legal(t) backtrack(t+1); swap(xt, xi); 遍歷子集樹需0(2n)計算時間 void backtrack (int t) if (tn) output(x); else for (int i=0;i=1;i+) xt=i; if (legal(t) backtrack(t+1); 裝載問題 i的重量為wi,且 有一批共n個集裝箱要裝上2艘載重量分別為cl和c2的輪船,其中集裝箱 n 裝載問題要求確定是否有一個合理的裝載方案可將這個集裝箱裝上這2艘輪船。如果有,找出一種裝載方案。 容易證明,如果一個給定裝載問題有解,則采用下面的策略可
27、得到最優(yōu)裝載方案。 (1) 首先將第一艘輪船盡可能裝滿; n max 必 i d n S.t. wi Xj _ c1 i d Xj0,1, 1 乞 i 空 n (2) 將剩余的集裝箱裝上第二艘輪船。 將第一艘輪船盡可能裝滿等價于選取全體集裝箱的 一個子集,使該子集中集裝箱重量之和最接近。由 此可知,裝載問題等價于以下特殊的0-1背包問題。 用回溯法設計解裝載問題的0(2 n)計算時間算法。 在某些情況下該算法優(yōu)于動態(tài)規(guī)劃算法。 n后問題 解向量:(x1, x2,,xn)顯約束:xi=1,2,,n 隱約束:1)不同列:x-xj2)不處于同一正、反對角線:|i-j|討xi-xj| 0-1背包問題n
28、 解空間:子集樹可行性約束函數(shù):送wx c, 圖的m著色問題 - 給定無向連通圖 G和m種不同的顏色。用這些顏色為圖G的各頂點著色,每個頂點著一種顏色。是否有一 種著色法使 G中每條邊的2個頂點著不同顏色。這個問題是圖的m可著色判定問題。若一個圖最少需要m 種顏色才能使圖中每條邊連接的 2個頂點著不同顏色,則稱這個數(shù)m為該圖的色數(shù)。求一個圖的色數(shù) m的問 題稱為圖的m可著色優(yōu)化問題。 解向量:(x1, x2,,xn)表示頂點i所著顏色xi 可行性約束函數(shù):頂點i與已著色的相鄰頂點顏色不重復。 復雜度分析 圖m可著色問題的解空間樹中內(nèi)結(jié)點個數(shù)是 對于每一個內(nèi)結(jié)點,在最壞情況下,用ok檢查當前擴展
29、結(jié)點的每一個兒子所相應的顏色可用性需耗時0(mn)。 因此,回溯法總的時間耗費是 連續(xù)郵資問題 假設國家發(fā)行了 n種不同面值的郵票,并且規(guī)定每張信封上最多只允許貼m張郵票。連續(xù)郵資問題要求對于 給定的n和m的值,給出郵票面值的最佳設計,在1張信封上可貼出從郵資1開始,增量為1的最大連續(xù)郵 資區(qū)間。 例如,當n=5和m=4時,面值為(1,3,11,15,32)的5種郵票可以貼出郵資的最大連續(xù)郵資區(qū)間是1到70。 解 向量:用n元組x1:n表示n種不同的郵票面值,并約定它們從小到大排列。x1=1是唯一的選擇??尚?性約束函數(shù):已選定 x1:i-1,最大連續(xù)郵資區(qū)間是1:r,接下來xi的可取值范圍是
30、xi-1+1:r+1。 回溯法效率分析 通過前面具體實例的討論容易看出,回溯算法的效率在很大程度上依賴于以下因素: (1) 產(chǎn)生xk的時間; (2) 滿足顯約束的xk值的個數(shù); 計算約束函數(shù)constraint的時間; 計算上界函數(shù)bound的時間; (5)滿足約束函數(shù)和上界函數(shù)約束的所有xk的個數(shù)。 好的約束函數(shù)能顯著地減少所生成的結(jié)點數(shù)。但這樣的約束函數(shù)往往計算量較大。因此,在選擇約束函數(shù)時 通常存在生成結(jié)點數(shù)與約束函數(shù)計算量之間的折衷。 分支限界法 分支限界法與回溯法 (1) 求解目標:回溯法的求解目標是找出解空間樹中滿足約束條件的所有解,而分支限界法的求解目標則是 找出滿足約束條件的一
31、個解,或是在滿足約束條件的解中找出在某種意義下的最優(yōu)解。 (2) 搜索方式的不同:回溯法以深度優(yōu)先的方式搜索解空間樹,而分支限界法則以廣度優(yōu)先或以最小耗費優(yōu) 先的方式搜索解空間樹。 分支限界法常以廣度優(yōu)先或以最小耗費(最大效益)優(yōu)先的方式搜索問題的解空間樹。 在分支限界法中,每一個活結(jié)點只有一次機會成為擴展結(jié)點?;罱Y(jié)點一旦成為擴展結(jié)點,就一次性產(chǎn)生 其所有兒子結(jié)點。在這些兒子結(jié)點中,導致不可行解或?qū)е路亲顑?yōu)解的兒子結(jié)點被舍棄,其余兒子結(jié)點被加 入活結(jié)點表中。此后,從活結(jié)點表中取下一結(jié)點成為當前擴展結(jié)點,并重復上述結(jié)點擴展過程。這個過程一 直持續(xù)到找到所需的解或活結(jié)點表為空時為止。 常見的兩種分
32、支限界法:(1)隊列式(FIFO)分支限界法:按照隊列先進先出(FIFO)原則選取下一個節(jié) 點為擴展節(jié)點。(2)優(yōu)先隊列式分支限界法:按照優(yōu)先隊列中規(guī)定的優(yōu)先級選取優(yōu)先級最高的節(jié)點成為當 前擴展節(jié)點。 0/1背包問題分支限界法解0/1背包問題的思想方法和求解過程 n個物體重量分別為 WoW!,Wn二,價值分別為Po,PmPn,背包載重量為 M 物體按價值重量比遞減的順序,排序后物體序號的集合為S = 0,1,,n 1。 S1 :選擇裝入背包的物體集合,S2 :不選擇裝入背包的物體集合,S3:尚待選擇的物體集合。S1(k)、S2(k)、 S3(k):搜索深度為k時的三個集合中的物體。開始時,0(0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 粘土磚瓦市場營銷策略考核試卷
- 稀有稀土金屬壓延加工質(zhì)量控制技術考核試卷
- 民宿的設計與開發(fā)
- 空氣呼吸器的使用方法
- 耳緣靜脈麻醉技術規(guī)范
- 外科消毒隔離管理規(guī)范
- 慢性疾病防治與管理要點
- 眼瞼腫物切除皮瓣設計
- trans-Clopenthixol-E-Clopenthixol-生命科學試劑-MCE
- BMS-309403-Standard-生命科學試劑-MCE
- 專利技術成果轉(zhuǎn)讓證明書(7篇)
- 廣東省廣州市番禺區(qū)2020年七年級第二學期期末區(qū)統(tǒng)考試卷(含答案)
- 藥物研發(fā)自動化-全面剖析
- 股權回購合同協(xié)議書范本6篇
- 課程思政說課公務員制度講座情境創(chuàng)設下雙線四點的課程思政融入設計
- 2024年衛(wèi)生管理領軍者考試試題及答案
- 飼料行業(yè)粉塵防爆
- 預制菜烹飪知識培訓課件
- 大規(guī)模網(wǎng)絡流量分析技術-全面剖析
- 2024年陜西省中考地理試卷【含答案】
- 新版人教版七年級英語下1-6單元復習教案
評論
0/150
提交評論