科目代碼:2006
科目名稱:算法設計與分析
第一部分 課程評價目標
一、課程目標
算法設計與分析,主要使學生掌握算法設計的常用方法,提高學生算法設計與復雜性分析的素質和能力,為學生能夠獨立進行算法的設計和計算復雜性的分析奠定比較堅實的基礎,以便使學生在將來從事計算機領域或其它有關領域的研究中,能夠運用這些方法來設計解決一些常用的或較為復雜的實際問題的算法,并力爭做到快捷、有效,從而提高程序的質量并較好地解決科學研究與實際應用中所遇到的問題。
二、基本要求
要求學生掌握計算機科學技術領域中的一些常用的、經典的算法設計技術,學會分析算法、估計算法的時空復雜性,在非數值計算的層面上,具備把實際問題抽象描述為數學模型的能力,同時能針對不同的問題對象設計有效的算法,用典型的方法來解決科學研究及實際應用中所遇到的問題。并且具備分析算法效率的能力,能夠科學地評估有關算法和處理方法的效率。
三、評價目標
1.掌握算法的基本概念和分析算法的基本方法;
2.掌握分治、動態規劃、貪心算法、分支限界法、圖的遍歷、隨機算法、近似算法、NP完全性問題的基本原理。
3.熟練掌握求解典型問題的算法設計思想和實現方法,能夠有效運用,以能高效解決新的問題。
4.具有較強的算法設計和分析能力,具備設計出解決實際應用與科學研究問題的有效算法。
5.了解算法研究領域的現狀與發展。
第二部分 考查要點
1.基本概念
算法的基本定義、基本性質,算法復雜度分析的基本方法。
2.遞歸算法設計技術
遞歸算法的實現機制,設計和分析遞歸算法的一般方法;歸納法等基本方法的運用。
3.分治法
分治法的基本原理,典型問題如二分檢索、合并排序、快速排序、矩陣乘法、大整數乘法、最近點對問題等的算法設計原理、實現技術及其應用。
4.貪心方法
圖和貪心方法的基本原理和性質,貪心解的最優性證明;典型問題如最短路徑問題、最小耗費生成樹、文件壓縮等的算法設計原理、實現技術及其應用。
5.動態規劃
動態規劃的基本原理和方法、最優性原理、無后效性、狀態轉移方程;典型問題如最長公共子序列問題、矩陣鏈相乘、所有點對的的最短路徑、背包問題等的算法設計原理、實現技術及其應用。
6.圖的遍歷
廣度優先搜索、深度優先搜索的原理、性質和異同;回溯法的原理和技術、分支-限界法的原理和技術;典型問題如8皇后問題、3著色問題等的算法設計原理、實現技術及其應用。
7.隨機算法和近似算法
隨機算法、近似算法的原理和方法;關于典型問題如Las Vegas方法、 Monte Carlo方法、TSP問題、裝箱問題、頂點覆蓋、子集和問題等問題的近似算法討論。
8.NP完全問題
NP完全性的概念、可滿足性、NP完全性證明;了解典型NP完全問題如頂點覆蓋、獨立集、團集問題等。