CS 5114

Theory of Algorithms

Course Description

Fall, 2001

 

Instructor:                             Donald Allison, allison@cs.vt.edu or allisond@vt.edu

Office:                                   626 McBryde, tel. no. 231-4212

Office Hours:                        MW 2.30 - 4.00 , F 10.00 – 11.00 and by appointment

Class Meets:                         MWF McBryde 218, 9.05 – 9.55 am

GTA:                                     Ming Luo, lming@vt.edu

Office Hours:                        To be arranged

WWW information:              http://courses.cs.vt.edu/~cs5114

 Description:

   This is a course in the analysis of algorithms and their complexity.  Work concentrates on measuring the time complexity of algorithms taken from a number of important areas.  General techniques of analysis are presented.  In addition, techniques for constructing efficient algorithms are discussed.  The question of what it means for an algorithm to be efficient is addressed.  The related question of what it means for a problem to be intractable is pursued via the theory of NP-completeness.

 Prerequisites:

            Proficiency in a high level language, a knowledge of data structures (equivalent to CS 2604) and sufficient mathematical maturity.  Consult the instructor if in any doubt.

 Textbook:

            Introduction to Algorithms, Manber, Addison-Wesley, 1989

 On Reserve:

            Introduction to Algorithms, Cormen, Leiserson, and Rivest, MIT Press, 1992

            The Design and Analysis of Computer Algorithms, Aho, Hopcroft and Ullman,

                 Addison-Wesley, 1974

            Computers and Intractability, A Guide to the Theory of NP-Completeness, Garey  

                 and Johnson, W.H.Freeman, 1979

            Algorithms in C, Sedgewick, Addison-Wesley, 1990

           

Programming Language: C++ or any high-level procedural language

 

Grading Policy:

     Graded work consists of about seven homework assignments, two midterm exams and a final exam.  Some of the homework assignments will be programming assignments. 

Homework Assignments 45%            Midterm Exams   25%       Final Exam   30%

 

Ethics:

   The Honor Code applies to all aspects of this course.  All work submitted for grading must be the student's own individual work.


Note:

   If any student needs special accommodations because of a disability please contact the instructor during the first week of classes.

 

Course Outline

            Topic                                                                                       Week

 

Introduction:                                                                                         1

            Mathematical induction, examples

 

Complexity of Algorithms:                                                                     1-2

            Asymptotic notation

            Worst case/average case bounds

            Recurrence relations

 

Design of Efficient Algorithms:                                                               3-4

            Polynomial evaluation

            Divide and conquer

            Dynamic programming

 

 Sorting and Searching: 5-7

            Binary search

            Radix sort, insertion sort, mergesort

            Quicksort, heapsort

            Order statistics

           

Graph Algorithms:                                                                                 8-9

            Graph traversal

            Minimum spanning trees

            Shortest path problems

            Hamiltonian tours

 

Geometrical Algorithms:                                                                        10-11

            Convex hulls and related problems

            Optimal placement

            Intersection problems

 

Algebraic and Numeric Problems:                                                         11-12

            Polynomial multiplication

            Matrix multiplication and related problems

            Fast Fourier Transform

 

NP-Completeness:                                                                               13-14

            Intractable problems

            Cook's theorem

            NP-Completeness proofs

            Coping with NP-complete problems

 

Parallel Algorithms                                                                                15

            Algorithms for shared-memory machines

            Algorithms for interconnection networks