Instructor:
Shunichi Toida, Professor
Department of Computer Science, ODU
Office: Room ED 252-4
Phone: 683-3392
Textbook:
T. H. Cormen, C. E. Leiserson, and R. L. Rivest,
Introduction to Algorithms, 2nd ed.,
McGraw-Hill Book Company, New York, NY, 2001.
Prerequisite:
CS 361 and Math 330 or equivalent.
These prerequisites are a must.
Grading:
    Homework:
15%
    Project:
      15%
    Test x 2:
      35%
    Final Exam:
  35%
Attendance:
Class attendance is strongly recommended.
Important Note:
Lying, cheating, plagiarism and failure to report such cases
all constitute
violation of the Honor System.
Office Hours:
Mondays 4:00 - 5:00 p.m.
Wednesdays 4:00 - 5:00 p.m.
You may also walk in any other time. My door is always open.
Final Exam :
3:45 p.m. - 6:45 p.m., Tuesday, December 9, 2003.
Course Objectives:
Course Outline:
First the worst case time analysis of algorithm is reviewed together with
necessary mathematics using an example.
Then the average time analysis is presented for the quick sort algorithm
with a review on probability.
Next various degrees of difficulty of problem with respect to the worst case time
are discussed. In particular the concept of NP-hardness, NP-complete problems
and their recognition are studied. If the worst case time grows exponentially or
worse with the problem size, the problem is considered (and often called)
a 'hard' problem. NP-hard problems are considered 'hard'.
Then some of the well-known solved problems are presented together with
well established methods for solving them
and it is shown how many practical problems can be solved using them.
These include linear programming, network flow problems, graph problems and finite automata.
For 'hard' problems mentioned above there are no known ways of solving them within
a reasonable amount of time. However, many of them appear in practice and solutions must be
found quickly. To cope with this problem numerous attempts have been made over decades.
Some of the major approaches including approximation, branch-and-bound, simulated
annealing and genetic algorithms are studied here.
Bibliography
Lecture Schedule
Lecture No. | Date | Subjects Covered | Sections |
1 | 08-26 | Course objectives, Outline | |
Growth of functions, L'Hospital's Rule | 1.1 - 3.2 | ||
2 | 08-28 | Review of Worst Case Time Analysis, Recurrence | Chap. 4 |
3 | 09-02 | Average Time Analysis -- Introduction | |
4 | 09-04 | Average Time Analysis(Sequential Search) | |
5 | 09-09 | Quicksort Analysis (Average Time) | Textbook 7.3, 7.4 |
6 | 09-11 | "Hard" Problems(Overview, Class NP) | Handout, 34.1, 34.2 |
7 | 09-16 | "Hard" Problems(NP-Completeness) | 34.1, 34.2 |
8 | 09-18 | Recognition of NP-Complete Problems (Reduction) | 34.4 |
9 | 09-23 | Recognition of NP-Complete Problems (Reduction) | 34.5 |
10 | 09-25 | Unsolvable Problems | Handout |
11 | 09-30 | Test 1 | Lectures 1 - 10 inclusive |
12 | 10-02 | Linear Programming (Simplex Method) | Handout (Web) |
13 | 10-07 | Linear Programming(Formulation by LP) | Handout |
14 | 10-09 | Linear Programming(Pitfalls) | Handout |
- | 10-11 | Fall Holidays | |
- | ~ | ... | |
- | 10-14 | Fall Holidays | |
15 | 10-16 | Separable Convex Programming | Handout |
16 | 10-21 | Integer Programming | Handout |
17 | 10-23 | Network Flow Problems:Overview, Max Flow | 26.1, 26.2, Handout |
18 | 10-28 | Feasible Flow | Handout |
19 | 10-30 | Flows with Lower Bounds | Handout |
20 | 11-04 | Test 2 | Lectures 10 - 18 inclusive of this schedule |
21 | 11-06 | Flow Applications | Handout |
22 | 11-11 | Flow Applications | Handout |
23 | 11-13 | Graph Models | Handout |
24 | 11-18 | Coping with NP-Completeness - Approximation | Handout |
25 | 11-20 | Coping with NP-Completeness - Dynamic Programming | Handout |
26 | 11-25 | Coping with NP-Completeness - Branch & Bound | Handout |
- | 10-11 | Thanksgiving Day Holidays | |
- | ~ | ... | |
- | 10-14 | Thanksgving Day Holidays | |
27 | 12-02 | Coping with NP-Completeness - Stochastic Methods | Handout |
28 | 12-04 | Review | |
29 | 12-09 | Final Exam | Lectures 1 - 27 |