算法設計與分析
課程序号:
課程 名稱 | 中文 | 算法設計與分析 | |||||||||||||
英文 | The Design and Analysis of Algorithms | ||||||||||||||
課程編号 | S00901 | 課程适用學位級别 | B專業基礎課(碩士) | ||||||||||||
總學時 | 60 | 課内學時 | 60 | 學分 | 3 | ||||||||||
實踐環節 | 上機實驗、研究報告 | 用機小時 | 30 | ||||||||||||
開課院(系) | 計算機科學與工程系 | 開課學期 | 秋季 | 考試方式 | 筆試 | ||||||||||
主講教師 | 教師姓名 | 鄧建明 | 學位 | 博士 | 博導或碩導 | 碩導 | |||||||||
職稱 | 教授 | 學曆 | 數理情報專業博士研究生 | ||||||||||||
e-mail | jmdeng@seu.edu.cn | 網頁地址 | http://cse.seu.edu.cn/people/jmdeng | ||||||||||||
授課語言 | 漢語或雙語教學 | 課件地址 | 暫無 | ||||||||||||
适用學科範圍 | 一級 | 适用學科名稱 | 計算機科學與技術 | ||||||||||||
實驗(案例)個數 | 4 | 先修課程 | 數據結構、離散數學、組合數學 | ||||||||||||
教學用書 | 教材名稱 | 教材編者 | 出版社 | 出版年月 | 版次 | ||||||||||
主要教材 | Algorithms Design Techniques and Analysis | M.H.Alsuwaiyel | 電子工業出版社(影印版,原為World Scientific Publishing Co.Pte.Ltd) | 2003.1 | 1st | ||||||||||
The Design and Analysis of Computer Algorithms | Aho, Hopcroft, Ullman | Addison-Wesley Publishing Company | 1976.7 | 3rd | |||||||||||
主要參考書 | Introduction to Algorithms | Thomas Cormen Charles Leiserson Ronald L.Rivest Clifford Stein | 高等教育出版社(影印版,原為The MIT Press) | 2002.5 | 第2版 | ||||||||||
計算機算法設計與分析 | 王曉東 | 電子工業出版社 | 2001.9 | 第1版 | |||||||||||
Computer Algorithms- Introduction to Design and Analysis | Sara Baase, Allen Gelder | 高等教育出版社 (影印版,原為Peason Education) | 2001.7 | 第3版 | |||||||||||
本課程是計算機科學技術中的處于核心地位的課程,是本一級學科各專業方向必修的一門重要的專業基礎課。在任何一個與計算機科學技術相關的研究領域,無論是計算機理論、計算機系統、系統軟件還是計算機的各種應用方向中,算法設計與分析都是不可缺少的,是計算機科學通常要解決的主要問題之一。本課程的主導思想是面向設計,将系統地介紹計算機科學技術領域中的一些常用的、經典的非數值算法,系統地分析這些算法所需的時間和空間,同時嚴格證明這些算法的正确性。通過本課程的學習,使學生掌握算法設計的常用方法,提高學生算法設計與複雜性分析的素質和能力,為學生能夠獨立進行算法的設計和計算複雜性的分析奠定一個比較堅實的基礎。以便使學生在将來從事計算機領域或其它有關領域的研究中,能夠運用這些方法來設計解決一些常用的或較為複雜的實際問題的算法,并力争做到快捷、有效,從而提高程序的質量并較好地解決科學
要求學生掌握計算機科學技術領域中的一些常用的、經典的算法設計技術,學會分析算法、估計算法的時空複雜性,在非數值計算的層面上,具備把實際問題抽象描述為數學模型的能力,同時能針對不同的問題對象設計有效的算法,用典型的方法來解決科學研究及實際應用中所遇到的問題。并且具備分析算法效率的能力,能夠科學地評估有關算法和處理方法的效率。
a) RAM,RASP,Turing機的基本概念和時間複雜度的分析。
b)
c)
2)
a) 算法的五個特征,評價算法的标準,算法的正确性,程序的測試。
b)
c)
3)
a) 分治與平衡的基本概念,大整數相乘的分治法,斯特拉森矩陣乘法。
b)
4)
a) 動态規劃法的基本概念,矩陣鍊相乘問題,最優二叉搜索樹問題算法設計與分析。
b)
5)
a) UNION-FIND算法的設計與分析。
b)
6)
a) 随機算法的基本概念,Las Vegas方法, Monte Carlo方法和Sherwood方法等基本方法。
b)
7)
a) 非确定性Turing機,多項式變換與驗證基本概念,Cook定理。
b)
8)
a) Bin Packing問題的算法和分析,PTAS和FPTAS的概念與實例。
b)
9)
選擇和對手論證,求最大、最小元問題,排序問題,選擇問題。
三、教學周曆:
周次 | 教學内容 | 教學方式 |
1 | 計算模型:RAM,RASP,Turing機的基本概念和時間複雜度的分析。 | 講課 |
2 | 各種計算模型時間複雜度相互之間的關系。原始、一般、部分遞歸函數。 | 講課 |
3 | 算法基本概念與算法數學基礎,生成函數,遞歸方程求解的主定理。 | 講課 |
4 | 分治法與平衡:基本概念,斯特拉森矩陣乘法,選擇問題,最近點對等問題。 | 講課 |
5 | 動态規劃法:基本概念,矩陣鍊相乘問題,最優二叉搜索樹問題算法設計與分析。 | 講課 |
6 | 動态規劃法:最長公共子序列問題,流水線調度問題的算法設計與分析。 | 講課 |
7 | 基于集合的數據結構和算法:UNION-FIND算法的設計與分析。 | 講課 |
8 | 基于集合的數據結構和算法:字典,優先隊列,可并堆,可連接隊列。 | 講課 |
9 | 随機算法:Las Vegas方法, Monte Carlo方法和Sherwood方法等基本方法。 | 講課 |
10 | 随機算法設計與分析實例:字符串匹配,素數測試,最近點對問題。 | 講課 |
11 | NP完全性理論:非确定性Turing機,多項式變換與驗證基本概念,Cook定理。 | 講課 |
12 | NP完全問題的證明:3-CNT-SAT, CLIQUE, VERTEX-COVER, SUBSET-SUM等。 | 講課 |
13 | 近似算法:Bin Packing問題的算法和分析,PTAS和FPTAS的概念與實例。 | 講課 |
14 | 近似算法:Knapsack, 多Knapsack, TSP問題的近似算法和分析。 | 講課 |
15 | 下界理論:選擇和對手論證,求最大、最小元問題,排序問題,選擇問題。 | 講課 |
16 | | |
17 | 考試 | |
18 | | |