計算機算法設計與分析期末考試復習題_第1頁
計算機算法設計與分析期末考試復習題_第2頁
計算機算法設計與分析期末考試復習題_第3頁
計算機算法設計與分析期末考試復習題_第4頁
計算機算法設計與分析期末考試復習題_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、1、二分搜索算法是利用(   A      )實現(xiàn)的算法。A、分治策略   B、動態(tài)規(guī)劃法   C、貪心法    D、回溯法2、下列不是動態(tài)規(guī)劃算法基本步驟的是(   A    )。A、找出最優(yōu)解的性質(zhì)   B、構(gòu)造最優(yōu)解   C、算出最優(yōu)解   D、定義最優(yōu)解3、最大效益優(yōu)先是(  A  

2、;       )的一搜索方式。A、分支界限法      B、動態(tài)規(guī)劃法    C、貪心法    D、回溯法4、在下列算法中有時找不到問題解的是( B  )。A、蒙特卡羅算法    B、拉斯維加斯算法   C、舍伍德算法   D、數(shù)值概率算法5. 回溯法解旅行售貨員問題時的解空間樹是( A    &

3、#160; )。A、子集樹B、排列樹C、深度優(yōu)先生成樹D、廣度優(yōu)先生成樹6下列算法中通常以自底向上的方式求解最優(yōu)解的是(   B      )。A、備忘錄法B、動態(tài)規(guī)劃法C、貪心法D、回溯法7、衡量一個算法好壞的標準是(C )。A 運行速度快 B 占用空間少 C 時間復雜度低 D 代碼短8、以下不可以使用分治法求解的是(D )。A 棋盤覆蓋問題 B 選擇問題 C 歸并排序 D 0/1背包問題9. 實現(xiàn)循環(huán)賽日程表利用的算法是(    A  

4、60;   )。A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法10、下列隨機算法中運行時有時候成功有時候失敗的是(C )A 數(shù)值概率算法 B 舍伍德算法 C 拉斯維加斯算法 D 蒙特卡羅算法11下面不是分支界限法搜索方式的是(     D     )。A、廣度優(yōu)先B、最小耗費優(yōu)先C、最大效益優(yōu)先D、深度優(yōu)先12下列算法中通常以深度優(yōu)先方式系統(tǒng)搜索問題解的是(      D   )。A、備忘錄法B、動態(tài)規(guī)劃法

5、C、貪心法 D、回溯法13.備忘錄方法是那種算法的變形。( B )A、分治法B、動態(tài)規(guī)劃法C、貪心法D、回溯法14哈弗曼編碼的貪心算法所需的計算時間為(   B     )。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)15分支限界法解最大團問題時,活結(jié)點表的組織形式是(    B    )。A、最小堆B、最大堆 C、棧D、數(shù)組16最長公共子序列算法利用的算法是(    B  &#

6、160;    )。A、分支界限法B、動態(tài)規(guī)劃法C、貪心法D、回溯法17實現(xiàn)棋盤覆蓋算法利用的算法是(     A      )。A、分治法B、動態(tài)規(guī)劃法C、貪心法D、回溯法18.下面是貪心算法的基本要素的是(      C     )。A、重疊子問題B、構(gòu)造最優(yōu)解C、貪心選擇性質(zhì)D、定義最優(yōu)解19.回溯法的效率不依賴于下列哪些因素( D )A.滿足顯約束的值的個數(shù)

7、B. 計算約束函數(shù)的時間 C. 計算限界函數(shù)的時間 D. 確定解空間的時間20.下面哪種函數(shù)是回溯法中為避免無效搜索采取的策略(    B    )A遞歸函數(shù)B.剪枝函數(shù) C。隨機數(shù)函數(shù)D.搜索函數(shù)21、下面關(guān)于NP問題說法正確的是(B )A NP問題都是不可能解決的問題 B P類問題包含在NP類問題中C NP完全問題是P類問題的子集 D NP類問題包含在P類問題中22、蒙特卡羅算法是(   B      )的一種。A、分支界限算法 &

8、#160;    B、概率算法    C、貪心算法    D、回溯算法23.下列哪一種算法不是隨機化算法(    C     )A. 蒙特卡羅算法B. 拉斯維加斯算法C.動態(tài)規(guī)劃算法D.舍伍德算法24. (   D         )是貪心算法與動態(tài)規(guī)劃算法的共同點。A、重疊子問題B、構(gòu)造最優(yōu)解C、貪心選擇性質(zhì)D、最優(yōu)

9、子結(jié)構(gòu)性質(zhì)25. 矩陣連乘問題的算法可由(          B)設計實現(xiàn)。A、分支界限算法      B、動態(tài)規(guī)劃算法    C、貪心算法    D、回溯算法26. 分支限界法解旅行售貨員問題時,活結(jié)點表的組織形式是(   A    )。A、最小堆B、最大堆 C、棧D、數(shù)組27、Strassen矩陣乘法是利用( &#

10、160;  A     )實現(xiàn)的算法。A、分治策略   B、動態(tài)規(guī)劃法   C、貪心法    D、回溯法29、使用分治法求解不需要滿足的條件是(A )。A 子問題必須是一樣的 B 子問題不能夠重復C 子問題的解可以合并 D 原問題和子問題使用相同的方法解30、下面問題(B )不能使用貪心法解決。A 單源最短路徑問題 B N皇后問題 C 最小花費生成樹問題 D 背包問題31、下列算法中不能解決0/1背包問題的是(A )A 貪心法 B 動態(tài)規(guī)劃 C 回溯法 D 分支限界

11、法32、回溯法搜索狀態(tài)空間樹是按照(C )的順序。A 中序遍歷 B 廣度優(yōu)先遍歷 C 深度優(yōu)先遍歷 D 層次優(yōu)先遍歷33、下列隨機算法中運行時有時候成功有時候失敗的是(C )A 數(shù)值概率算法 B 舍伍德算法 C 拉斯維加斯算法 D 蒙特卡羅算法34實現(xiàn)合并排序利用的算法是(     A    )。A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法35下列是動態(tài)規(guī)劃算法基本要素的是(  D     )。A、定義最優(yōu)解B、構(gòu)造最優(yōu)解C、算出最優(yōu)解D、子問題重疊性質(zhì)

12、36下列算法中通常以自底向下的方式求解最優(yōu)解的是(    B     )。A、分治法B、動態(tài)規(guī)劃法C、貪心法D、回溯法37采用廣度優(yōu)先策略搜索的算法是(     A      )。A、分支界限法B、動態(tài)規(guī)劃法C、貪心法D、回溯法38、合并排序算法是利用(   A      )實現(xiàn)的算法。A、分治策略   B、動態(tài)規(guī)劃法

13、   C、貪心法    D、回溯法39、在下列算法中得到的解未必正確的是(  B      )。A、蒙特卡羅算法    B、拉斯維加斯算法   C、舍伍德算法   D、數(shù)值概率算法40、背包問題的貪心算法所需的計算時間為(  B      )A、O(n2n)     B、O(nlogn) 

14、   C、O(2n)      D、O(n)41實現(xiàn)大整數(shù)的乘法是利用的算法(      C   )。A、貪心法B、動態(tài)規(guī)劃法C、分治策略D、回溯法420-1背包問題的回溯算法所需的計算時間為(  A      )A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)43采用最大效益優(yōu)先搜索方式的算法是(   A  &#

15、160;     )。A、分支界限法B、動態(tài)規(guī)劃法C、貪心法D、回溯法44貪心算法與動態(tài)規(guī)劃算法的主要區(qū)別是(  B        )。A、最優(yōu)子結(jié)構(gòu)B、貪心選擇性質(zhì)C、構(gòu)造最優(yōu)解D、定義最優(yōu)解45. 實現(xiàn)最大子段和利用的算法是(     B      )。A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法46.優(yōu)先隊列式分支限界法選取擴展結(jié)點的原則是( 

16、60;   C      )。A、先進先出B、后進先出 C、結(jié)點的優(yōu)先級D、隨機47.背包問題的貪心算法所需的計算時間為(   B     )。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)48、廣度優(yōu)先是(    A       )的一搜索方式。A、分支界限法      B、動態(tài)規(guī)

17、劃法    C、貪心法    D、回溯法49、舍伍德算法是(    B     )的一種。A、分支界限算法      B、概率算法    C、貪心算法    D、回溯算法50、在下列算法中有時找不到問題解的是(  B      )。A、蒙特卡羅算法  

18、0; B、拉斯維加斯算法   C、舍伍德算法   D、數(shù)值概率算法51下列哪一種算法是隨機化算法(    D     )A. 貪心算法B. 回溯法C.動態(tài)規(guī)劃算法D.舍伍德算法52. 一個問題可用動態(tài)規(guī)劃算法或貪心算法求解的關(guān)鍵特征是問題的(   B          )。A、重疊子問題B、最優(yōu)子結(jié)構(gòu)性質(zhì)C、貪心選擇性質(zhì)D、定義最優(yōu)解53采用貪心算法的最優(yōu)裝

19、載問題的主要計算量在于將集裝箱依其重量從小到大排序,故算法的時間復雜度為 ( B ) 。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)54. 以深度優(yōu)先方式系統(tǒng)搜索問題解的算法稱為 ( D ) 。A、分支界限算法      B、概率算法    C、貪心算法    D、回溯算法55. 實現(xiàn)最長公共子序列利用的算法是(     B      )。A、分治策略B、動態(tài)規(guī)劃法C、

20、貪心法D、回溯法二、 填空題 1.算法的復雜性有 時間 復雜性和 空間 復雜性之分。2、程序是 算法     用某種程序設計語言的具體實現(xiàn)。3、算法的“確定性”指的是組成算法的每條 指令 是清晰的,無歧義的。4.矩陣連乘問題的算法可由 動態(tài)規(guī)劃 設計實現(xiàn)。5、拉斯維加斯算法找到的解一定是 正確解。6、算法是指解決問題的 一種方法 或 一個過程 。7、從分治法的一般設計模式可以看出,用它設計出的程序一般是 遞歸算法 。8、問題的 最優(yōu)子結(jié)構(gòu)性質(zhì) 是該問題可用動態(tài)規(guī)劃算法或貪心算法求解的關(guān)鍵特征。9、以深度優(yōu)先方式系統(tǒng)搜索問題解的算法稱為 回溯法

21、。10、數(shù)值概率算法常用于 數(shù)值問題 的求解。11、計算一個算法時間復雜度通常可以計算 循環(huán)次數(shù) 、 基本操作的頻率 或計算步。12、利用概率的性質(zhì)計算近似值的隨機算法是數(shù)值概率算法,運行時以一定的概率得到正確解的隨機算法是_蒙特卡羅算法_。14、解決0/1背包問題可以使用動態(tài)規(guī)劃、回溯法和分支限界法,其中不需要排序的是 動態(tài)規(guī)劃 ,需要排序的是 回溯法 ,分支限界法 。15、使用回溯法進行狀態(tài)空間樹裁剪分支時一般有兩個標準:約束條件和目標函數(shù)的界,N皇后問題和0/1背包問題正好是兩種不同的類型,其中同時使用約束條件和目標函數(shù)的界進行裁剪的是 0/1背包問題 ,只使用約束條件進行裁剪的是 N皇

22、后問題 。17、矩陣連乘問題的算法可由 動態(tài)規(guī)劃 設計實現(xiàn)。18、拉斯維加斯算法找到的解一定是 正確解。19.貪心算法的基本要素是 貪心選擇 質(zhì)和 最優(yōu)子結(jié)構(gòu) 性質(zhì) 。21. 動態(tài)規(guī)劃算法的基本思想是將待求解問題分解成若干 子問題 ,先求解 子問題 ,然后從這些 子問題 的解得到原問題的解。算法是由若干條指令組成的有窮序列,且要滿足輸入,輸出 、確定性和 有限性 四條性質(zhì)。23、大整數(shù)乘積算法是用 分治法 來設計的。24、以廣度優(yōu)先或以最小耗費方式搜索問題解的算法稱為 分支限界法 。25、舍伍德算法總能求得問題的 一個解 。貪心選擇性質(zhì)是貪心算法可行的第一個基本要素,也是貪心算法與動態(tài)規(guī)劃算法

23、主要區(qū)別。27.快速排序算法是基于 分治策略 的一種排序算法。28.動態(tài)規(guī)劃算法的兩個基本要素是. 最優(yōu)子結(jié)構(gòu)性質(zhì)和 重疊子問題 性質(zhì) 。 30.回溯法是一種既帶有 系統(tǒng)性 又帶有 跳躍性 的搜索算法。 31.分支限界法主要有 隊列式(FIFO) 分支限界法和 優(yōu)先隊列式 分支限界法。32分支限界法是一種既帶有 系統(tǒng)性 又帶有 跳躍性 的搜索算法。33回溯法搜索解空間樹時,常用的兩種剪枝函數(shù)為 約束函數(shù) 和 限界函數(shù) 。34.任何可用計算機求解的問題所需的時間都與其 規(guī)模 有關(guān)。35.快速排序算法的性能取決于 劃分的對稱性 。1.背包問題的貪心算法 2.最大子段和: 動態(tài)規(guī)劃算法 3.貪心算法

24、求裝載問題4.貪心算法求活動安排問題 5.快速排序 6.排列問題1分治法的基本思想時將一個規(guī)模為n的問題分解為k個規(guī)模較小的子問題,這些子問題互相獨立且與原問題相同。遞歸地解這些子問題,然后將各個子問題的解合并得到原問題的解。2設計動態(tài)規(guī)劃算法的主要步驟為:(1)找出最優(yōu)解的性質(zhì),并刻劃其結(jié)構(gòu)特征(2)遞歸地定義最優(yōu)值(3)以自底向上的方式計算出最優(yōu)值(4)根據(jù)計算最優(yōu)值時得到的信息,構(gòu)造最優(yōu)解。3. 分治法與動態(tài)規(guī)劃法的相同點是:將待求解的問題分解成若干個子問題,先求解子問題,然后從這些子問題的解得到原問題的解。兩者的不同點是:適合于用動態(tài)規(guī)劃法求解的問題,經(jīng)分解得到的子問題往往不是互相獨立

25、的。而用分治法求解的問題,經(jīng)分解得到的子問題往往是互相獨立的。4. 分支限界法與回溯法的相同點是:都是一種在問題的解空間樹T中搜索問題解的算法。不同點:(1)求解目標不同;(2)搜索方式不同;(3)對擴展結(jié)點的擴展方式不同;(4)存儲空間的要求不同。5用回溯法搜索子集樹的算法為:6. 分治法所能解決的問題一般具有的幾個特征是:(1)該問題的規(guī)模縮小到一定的程度就可以容易地解決; (2)該問題可以分解為若干個規(guī)模較小的相同問題,即該問題具有最優(yōu)子結(jié)構(gòu)性質(zhì); (3)利用該問題分解出的子問題的解可以合并為該問題的解; (4)原問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子問題。7.

26、 用分支限界法設計算法的步驟是:(1)針對所給問題,定義問題的解空間(對解進行編碼);分(2)確定易于搜索的解空間結(jié)構(gòu)(按樹或圖組織解) ; (3)以廣度優(yōu)先或以最小耗費(最大收益)優(yōu)先的方式搜索解空間,并在搜索過程中用剪枝函數(shù)避免無效搜索。8. 常見的兩種分支限界法的算法框架(1)隊列式(FIFO)分支限界法:按照隊列先進先出(FIFO)原則選取下一個節(jié)點為擴展節(jié)點。 (2)優(yōu)先隊列式分支限界法:按照優(yōu)先隊列中規(guī)定的優(yōu)先級選取優(yōu)先級最高的節(jié)點成為當前擴展節(jié)點。9. 回溯法中常見的兩類典型的解空間樹是子集樹和排列樹。當所給的問題是從n個元素的集合S中找出滿足某種性質(zhì)的子集時,相應的解空間樹稱為

27、子集樹。這類子集樹通常有2n個葉結(jié)點,遍歷子集樹需O(2n)計算時間 。當所給的問題是確定n個元素滿足某種性質(zhì)的排列時,相應的解空間樹稱為排列樹。這類排列樹通常有n!個葉結(jié)點。遍歷排列樹需要O(n!)計算時間。10. 分支限界法的搜索策略是: 在擴展結(jié)點處,先生成其所有的兒子結(jié)點(分支),然后再從當前的活結(jié)點表中選擇下一個擴展結(jié)點。為了有效地選擇下一擴展結(jié)點,加速搜索的進程,在每一個活結(jié)點處,計算一個函數(shù)值(限界),并根據(jù)函數(shù)值,從當前活結(jié)點表中選擇一個最有利的結(jié)點作為擴展結(jié)點,使搜索朝著解空間上有最優(yōu)解的分支推進,以便盡快地找出一個最優(yōu)解。 五)掌握分治算法實例:二分查找、合并排序、冒泡排序

28、、矩陣乘法1、二分查找:例4 二分搜索問題給定排好序的線性表a0:n-1 二分搜索遞歸算法Binarysearch(a,n1,n2,x) if (n1>n2) return(-1); m=(n1+n2)/2; if(x=am) return(m); else if(x<am )Binarysearch(a,n1,m-1,x); else Binarysearch(a,m+1,n2,x); 復雜度O(logn)2、合并排序:例6 合并排序問題設線性表a1:n,將其按從小到大排序?;舅悸? 1 將a1:n分為a1:n/2和an/2+1:n兩個表 2 各自單獨排序, 3 再將排好序的兩

29、個表合并為一個表合并排序算法Mergesort(a,left,right) if (left<right) i=(left+right)/2; Mergesort(a,left,i); Mergesort(a,i+1,right); Merge(a,b,left,i,right); copy(a,b,left,right); 合并排序算法中合并算法Merge(a,b,left,I,right) k=left; k1=left; k2=i+1; while(k1<=I and k2<=right) if(ak1<a k2) bk=ak1; k1+; k+; else bk

30、=ak2; k2+; k+; if(k1=i) for(l=k2; l<=right; l+) bk=a l; k+; else for(l=k1; l<=i; l+) bk=a l; k+; 合并排序算法分析Merge() 函數(shù)最多3n次賦值,3n次比較 O(1) n=1T(n)= 2T(n/2) +6n n>1解方程得:T(n)=n+6nlog2n=O(nlog2n)3、矩陣乘法:C11=A11B11+A12B21 C12=A11B12+A12B22C21=A21B11+A22B21 C22=A21B12+A22B22成為8個n/2階矩陣乘積,4個n/2階矩陣加法。如果以

31、數(shù)的乘法作為基本運算,則可得到分塊矩陣乘法的遞歸方程 8 ( O(1) ) n=2 T(n)= 8T(n/2) n>2 代入遞歸方程得 T(n)= n320世紀60年代末期。Strassen 給出了以下算法:M1=A11(B12-B22)M2=(A11+ A12) B22M3=(A21+ A22) B11M4=A22(B21-B11)M5=(A11+ A22)(B11+B22 )M6=(A12- A22) (B21+B22 )M7=(A11- A21) (B11+B12 )C11=M5+M4- M2 + M6C12=M1+M2C12=M3+M4C11=M5+M1- M3 M7使用了7個n

32、/2階矩陣乘積,18個n/2階矩陣加法,其算法復雜度為O(n2.81)2.81 =log27算法procedure STRASSEN(n,A,B,C);beginif n=2 then MATRIX-MULTIPLY(A,B,C)else begin將矩陣A和B依(1)式分塊;STRASSEN(n/2,A11,B12-B22,M1);STRASSEN(n/2,A11+A12,B22,M2);STRASSEN(n/2,A21+A22,B11,M3);STRASSEN(n/2,A22,B21-B11,M4);STRASSEN(n/2,A11+A22,B11+B22,M5);STRASSEN(n/2

33、,A12-A22,B21+B22,M6);STRASSEN(n/2,A11-A21,B11+B12,M7); end; end;3、快速排序:例7 快速排序?qū)斎氲臄?shù)組ap:r按以下三個步驟進行:(1) 分解(Divide),以ap為基準元素將ap:r劃分為三部分: ap:q-1 ,aq ,aq+1:r,使得ap:q-1 中的元素小于aq , aq+1:r中的元素大于aq .(2) 遞歸求解(Conquer),通過遞歸調(diào)用快速排序算法分別對ap:q-1 ,aq+1:r排序。(3) 合并(merge), 由于已排好序, 合并不需作什么.快速排序遞歸算法:Quicksort(a,p,r) if(p

34、<r) q=partition(a,p,r); Quicksort(a,p,q-1); Quicksort(a,p,q-1); 快速排序算法分析Partition(a,p,r)計算時間為O(r-p+1),即f(n)=n 最好情況,每次q=(p+r)/2 O(1) n=1 T(n)= 2T(n/2) +n n>1解方程得: T(n)=n+nlog2n=O(nlog2n)最壞情況,每次q=p 或 q=r O(1) n=1 T(n)= T(n-1) +n n>1解方程得: T(n)=O(n2)第三章(六)、掌握貪心策略基本思想及基本性質(zhì),并能證明貪心選擇性質(zhì)1、貪心策略基本思想:和

35、動態(tài)規(guī)劃類似, 貪心法用于多階段的決策過程,每個階段都有可供選擇的多種決策,各個階段的決策構(gòu)成一個決策序列.貪心法的目標是選取一個最優(yōu)的決策序列.2、基本性質(zhì):貪心法選擇決策的原則是局部最優(yōu),而不是全局最優(yōu)。如果一個問題的整體最優(yōu)解可以通過一系列局部最優(yōu)選擇來實現(xiàn), 稱該問題具有貪心選擇性質(zhì).貪心選擇性質(zhì)是貪心法可行的一個基本要素.它是保證貪心法的求解結(jié)果為最優(yōu)解的條件.最優(yōu)子結(jié)構(gòu)性質(zhì)3、證明:(七)、掌握貪心策略實例:最小生成樹、背包問題、作業(yè)調(diào)度問題1、背包問題:給定n個重量為(w1,w2,wn),價值為(v1,v2,vn)的物品和一個容量為C的背包,要求選擇部分物品裝進背包,使得背包內(nèi)物

36、品價值總和最大.1) 問題的解 (x1,x2,xn) 0 xi 12) 約束條件 xi wi C3) 目標函數(shù) xi vi 達到最大解題思路:1) 盡可能多選擇價值大的物品.2) 盡可能多選擇重量輕的物品.3) 盡可能多選擇價值/重量比大的物品.貪心法的一般過程1) 根據(jù)題意選取一種度量標準或貪心策略.2) 按度量標準對n個輸入排序.3) 按序做出貪心選擇.4) 檢查該選擇是否與前面的選擇構(gòu)成可行解.5) 如果可行,則將該選擇加入解中, 否則不加入.6) 繼續(xù)做下一步選擇.Greedy-knapsack( ) 將物品按v/w從大到小排序 for (i=1; i<=n; i+) xi=0;

37、 for (i=1; i<=n; i+) if (wi<c) xi=1; c=c-wi else xi=cu/wi; break; output x1xn 第四章(八)掌握動態(tài)規(guī)劃的基本思想及解題步驟1、動態(tài)規(guī)劃的基本思想:動態(tài)規(guī)劃是和過程最優(yōu)化概念緊密聯(lián)系的.在過程進行中,在客觀條件允許范圍內(nèi)選擇最好的措施控制過程的發(fā)展,以期最好的完成任務. 動態(tài)規(guī)劃用于多階段的決策過程,每個階段都有可供選擇的多種決策,各個階段的決策構(gòu)成一個決策序列.動態(tài)規(guī)劃的目標是選取一個最優(yōu)的決策序列2、解題步驟:動態(tài)規(guī)劃法設計步驟 找出最優(yōu)解的性質(zhì),并刻畫其結(jié)構(gòu) (最優(yōu)子結(jié) 構(gòu)) 特征. 遞歸地定義最優(yōu)值

38、, 導出遞推公式. 以自底向上的方式計算最優(yōu)值. 根據(jù)計算最優(yōu)值時得到的信息,構(gòu)造最優(yōu)解.形式:如:1 )問題的解: 邊的序列, 每一步?jīng)Q策選擇一條邊 <A C>,<C F>,<F I>,<I J> ,<J L> 2) 約束條件: 兩個頂點之間有邊存在3) 可行解: 滿足約束條件的解4) 目標函數(shù): 解中邊的權(quán)值和達到最小 5) 最優(yōu)解: 使目標函數(shù)取極值的可行解(九)、掌握動態(tài)規(guī)劃實例:投資分配問題、貨幣分配問題、0-1背包問題1、投資分配問題:總資源數(shù)為a,工程個數(shù)為n。給每個工程投資不同,所獲得的利潤也不同。現(xiàn)給定各個工程的資源

39、利潤表和資源總數(shù),問:如何分配資源,才能獲得最大利潤。記Fn(a)為給n個工程投資資源數(shù)為a時可獲得的最大利潤,則有: Fn(a)=maxG1(x1)+G2(x2)+Gn(xn) x1+x2+xn=a如果給第n項工程投資x,給前n-1項工程投資a-x,則 Fn(a)=max Fn-1(a-x)+ Gn(x) X(0,1,a)記 Fk(z)為給k個工程投資總資源數(shù)為z時可以獲得的最大利潤,則有遞推公式: Fk(z)= max Fk-1(z-x)+ Gk(x) Z(0,1,a) X(0,1,z) F1(z)= G1(z)利用這一遞推公式,我們可以得出該問題的算法。投資問題算法Investing(

40、m,n,gij) for(j=0; j<=m; j=j+1) f1j=g1j ; d1j=j for (i=2; i<=n; i=i+1) for(j=0; j<=m; j=j+1) fij=0 ; for( k=0; k<=j; k=k+1) s=fi-1j-k+gik if(s>fij) fij=s; dij=k 構(gòu)造最優(yōu)解 m 總投資數(shù)額。n 工程總項數(shù)。 gIJ 存放資源利潤表,I為工程號,J為投資數(shù)額構(gòu)造最優(yōu)解 s=m xn=dnm for (k=n-1; k>0; k=k-1) s=s-xk+1 ; xk=dks; for(k=1; k<=n; k=k+1) output xk output fnmdIJ 給前I項工程投資額為J,獲最大利潤時第I項的投資額2 0/1背包問題:給定n個重量為(w1,w2,wn),價值為(v1,v2,vn)的物品和一個容量為C的背包,要求選擇部分物品裝進背包,使得背包內(nèi)物品價值總和最大.1) 問題的解 (x1,x2,xn) xi=0,12) 約束條件 xi wi<= C3) 目標函數(shù) xi vi 達到最大0/1背包問題的特征第一步?jīng)Q策第n種物品是否裝入背包.剩余問題是給定n-1個重量為(w1,w2,w

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論