算法设计与分析

Design and Analysis of Computer Algorithms (Spring 2014, Second Half)



Course Info Top

Instructor: Xiujun GONG (Associate Professor) (gongxj@tju.edu.cn)
Time:   9:55-11:30am
Place: Building 23, room 414
Period: week 9-16
Discussion: Algrorithm Practice Team

Prerequisites Top

Data structures  
Discrete mathematics
Programming language

Contents Top

The course will introduce principles and meaning of algorithms analysis; apply asymptotic methods to analyzing time complexities in worst and average case; compare the asymptotic behaviors of functions obtained by elementary composition of polynomials, exponentials, and logarithmic functions in order to understand the meanings of asymptotic analysis. Describe the relative merits of worst-, average-, and best-case analysis. The course will also introduce basic means of analyzing algorithms, including those of analyzing iterative and recursion algorithms.

The course will introduce important algorithmic design paradigms, including the divide-and-conquer paradigm, the greedy paradigm, the dynamic-programming paradigm, the acktracking paradigm and branch and bouding paradigm. While describing these methods, we will explain when an algorithmic design situation calls for them, and the principles of these methods will be given, we also analyze the time complexity of the designed algorithms. We also discuss the correctness of the designed algorithms and the problems of implementation of the designed algorithms, such as select data structures, hardness of implementation. A lot of examples will be presented in the course to illustrate the above abstract concepts and methods, which come from typical applications.

The course will briefly introduce more deep issues in algorithms analysis, i.e. well known NP-complete problems, including the definition of class NP, NP-hardness and NP-complete problems and their proof. The approximate methods for solving some NP-complete problem will be introduced.

Aims Top

The course introduces students to the running time analysis and basic paradigms for design of computer algorithms. Upon completion of this course, students will be able to understand worst-case, best-case and average-case time complexities of a algorithm and learn some methods of analyzing asymptotic time complexities of algorithms, and able to apply basic methods of algorithm design to designing algorithms, and evaluate “goodness and badness” of designed algorithms. In terms of studying this course, students will obtain a right understanding and ideas of designing algorithms.

Grading Top

Attendance  10%
Discussion & Assignment 10%
Final exam 80%

Lectures Top
  • Dynamic Programming( lecture)
  • Readings(M-Must read, O-Optional read):
    subsection handout
    what is the DP? (M) Eddy, S.R., What is dynamic programming? Nature Biotechnology, 2004. 22(7): p. 909-910. download
    (M) Dynamic programming in mathematical optimization from http://en.wikipedia.org/ download
    0/1 Knapsack problem (M)Acosta, A., & Almeida, F. (2013). Skeletal based programming for dynamic programming on MultiGPU systems. The Journal of Supercomputing. doi:10.1007/s11227-013-0895-x download
    (M) Pisinger, D., Where are the hard knapsack problems? Computers & Operations Research, 2005. 32(9): p. 2271-2284. download
    (O) Poirriez, V., Yanev, N., and Andonov, R., A hybrid algorithm for the unbounded knapsack problem. Discrete Optimization, 2009. 6(1): p. 110-124. download
    Matrix Multiplication Chains (O) Hu, T.C. and Shing, M.T., Computation of matrix chain products: Part I, Part II, in CS-TR-81-875. 1981.download
    All Pairs Shortest Path (M) Seidel, R. On the all-pairs-shortest-path problem. in Proceedings of the twenty-fourth annual ACM symposium on Theory of computing. 1992. download
    Longest Common Subsequences (M) Iliopoulos, C.S. and Rahman, M.S. A New Efficient Algorithm for Computing the Longest Common Subsequence. in 3rd international conference on Algorithmic Aspects in Information and Management. 2007. download
  • Backtracking( lecture)
  • Readings(M-Must read, O-Optional read):
    subsection handout
    Introduction (M) Rolfe, T.J. and Paul W. Purdom, J., An Alternative Problem for Backtracking and Bounding ACM SIGCSE Bulletin, 2004. 34(4): p. 83-84. download
    (O) Lynce, I. and Marques-Silva, J.P., An overview of backtrack search satisfiability algorithms. Annals of Mathematics and Artificial Intelligence, 2003. 37(3): p. 307-326. download
  • Branch and Bound( lecture)
  • NP-Complete Problems (lecture)
  • subsection handout
    Introduction (M) Woeginger, G. (2003). Exact algorithms for NP-hard problems: A survey. Combinatorial Optimization—Eureka, You Shrink! Springer-Verlag. Retrieved April 12, 2011, from http://www.springerlink.com/index/Q7QTNCJDNL72E4W2.pdf. download
    (O) Agrawal, M., Kayal, N., & Saxena, N. (2004). PRIMES is in P. Annals of Mathematics, 160(2), 781-793. doi: 10.4007/annals.2004.160.781. download
  • Summary (lecture)
References Top

Textbooks

Sahni, S., Data Structures, Algorithms, and Applications in C++. Second ed. 2004: Silicon Press.

Baase, S. and Gelder, A.V., Computer Algorithms: Introduction to Design and Analysis. Third ed. 1999: Addison Wesley.

Reference book

Cormen, T.H., Leiserson, C.E., Rivest, R.L., and Stein, C., Introduction to Algorithms Second ed. 2001: MIT Press and McGraw-Hill.

Errata Top



   
Assignments

2014-4-24: Assignment 1
Due date : 2014-4-29

2014-5-8: Assignment 2
Due date : 2014-5-21

2014-5-8: Handout 1
Due date : 2014-5-29

Notifications