算法設計與分析總結


第一章 算法引論

算法分析的目的:估算該算法所需的內存空間和運行時間。

分析算法復雜度的目的:用以比較同一問題的不同算法;時間和空間的增長率作為衡量的標准。

算法是對解決這個問題的方法和步驟的描述。

算法的基本特征:有窮性、確定性、可行性、0到多個輸入、1到多個輸出。

一個好的算法應具有正確性、可讀性、健壯性和高效性和低存儲量需求等特征。

第二章 遞歸與分治策略

遞歸的概念:直接或者間接的調用自身的算法。

遞歸函數:用函數自身給出定義的函數。

構成遞歸式的兩個基本條件:遞歸的邊界條件和遞歸的定義(遞歸公式)。

分治法的基本思想:將一個規模為n的問題分解為k個規模較小的子問題,這些子問題相互獨立且與原問題相同。遞歸的解決這些子問題,然后將各個子問題的解合並得到原問題的解。

第三章 動態規划

簡述動態規划算法解題的基本步驟

1、找出最優解的性質,並刻畫其結構特征;

2、遞歸的定義最優值;

3、用自底向上的方法計算最優值;

4、根據計算最優值時得到的信息,構造最優解;

簡述動態規划和分治法的異同。

相同點:動態規划與分治法類似,其基本思想也是將待求解的問題分解成若干子問題,然后從這些子問題的解得到原問題的解。

不同點:分治法的子問題互相獨立且與原問題相同;動態規划求解的問題,經分解得到的子問題,往往不是相互獨立的,就是各個子問題包含公共的子問題。

動態規划的基本要素

1、最優子結構

2、重疊子問題

簡述備忘錄方法與動態規划的異同

相同點:備忘錄方法和動態規划都有相同的控制結構。

不同點:備忘錄方法的遞歸方式是自頂向下,動態規划則是自底向上;備忘錄方法通過建立備忘錄避免了相同子問題的重復求解。

快速排序算法的性能取決於划分的對稱性。

第四章 貪心算法

貪心算法的基本條件

1、貪心的選擇性質

2、最優子結構性質

簡述動態規划和貪心算法的異同

相同點:都有最有子結構性質。

不同點:貪心具有貪心選擇性質(所求問題的整體最優解可以通過一系列局部最優的選擇,即貪心選擇來到達);動態規划通常以自底向上的方式解各個子問題,貪心算法通常以自頂向下的方式進行。

簡述Prim算法和Kruskal算法的異同

相同點:都可以運用貪心算法構造最小生成樹,都利用了最小生成樹的性質。

不同點:Prim算法通過擴展連通子集來進行貪心選擇;Krusikal算法通過選擇具有最小權的邊的集合來進行貪心選擇,在選擇時,進行連通操作以便生成樹。

第五章 回溯法

回溯解題的步驟

1、針對所給問題定義問題的解空間。

2、確定易於搜索的解空間結構。

3、以深度優先方式搜索解空間,並在搜索過程中用剪枝函數避免無效的搜索。

回溯法搜索解空間樹時常用的兩種剪枝函數為約束函數和界限函數。

第六章 分支界限法

簡述分支界限法的搜索策略

1、以寬度優先和以最小耗費(最大效益)優先的方式搜索問題的解空間樹。

2、每個活節點只有一次成為擴展節點

3、活節點成為擴展節點就一次性生成其所有的子節點。

4、兒子節點中,導致不可行節點和非最優節點的節點被舍棄,其余節點加入到活節點表中,當前活節點從表中刪除。

5、從活節點中取出下一個節點成為當前擴展節點,並重復上述節點擴展過程。一直搜索到解或者活節點表為空為止。

分支界限法:隊列式分支界限法和優先隊列式分支界限法。

活節點的組織形式有:最大堆和最小堆。

簡述分支界限法和回溯法的異同

相同點:都是對子集樹和排列樹的搜索。

不同點:求解目標不同,分支界限法的求解目標是找出滿足約束條件的也一個解,或是在滿足約束的解中找出某種意義的最優解;回溯法找到的是解空間滿足約束條件的所有解。搜索策略不同:分支界限法以廣度優先搜索或以最小花費優先的方式進行搜索;回溯法以深度優先搜索的方式進行搜索。

第七章 概率算法

數值概率算法求近似解,精度和時間成正比。

蒙特卡羅算法求的是准確解,但未必正確,正確率和時間成正比。

拉斯維加斯算法不會得到不正確解,得到正確解的概率和時間成正比。

舍伍德算法總能得到解,並且解一定是正確的。最壞時間復雜度和平均時間復雜度差距很大時,可用舍伍德算法進行平均。

第八章 NP完全性理論

P類問題:P={L|L是一個能在多項式時間內被一台DTM所接受的語言}。由此語言定義的問題。

NP類問題:P={L|L是一個能在多項式時間內被一台NDTM所接受的語言}。由此語言定義的問題。

NPC問題:(1)L屬於NP;(2)對於所有L'屬於NP有L'正無窮PL;由此語言定義的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM