4003-515-01: Homework, Quizzes, Reading and Slides
Week 1
- Slides for this week: Introduction - pdf
(ppt),
MergeSort/HeapSort/RadixSort - pdf
(ppt)
-
Monday, March 4
- Covered in class: Course logistics, see the main course website
- Covered in class: Introduction to Algorithms and asymptotic analysis (read Chapter 1 and Sections 2.1
and 2.2 in the book)
- Covered in class: Some linear-time geometric algorithms: point inside a polygon,
area of a polygon (not in the book)
- A note for students with disabilities:
RIT is committed to providing reasonable accommodations to students with disabilities.
If you would like to request accommodations such as special seating, testing modifications,
or note taking services due to a disability, please contact the Disability Services Office.
It is located in the Eastman Building, Room 2342; the Web site is www.rit.edu/dso.
After you receive accommodation approval, it is imperative that you see me during office hours
so that we can work out whatever arrangement is necessary.
Wednesday, March 6
- Covered in class: finished the algorithm computing area of a polygon
- Covered in class: finished surveying common running times (Section 2.4)
- Covered in class: MergeSort and introduction to recurrences (Section 5.1), RadixSort (not in the book)
Homework 1, due 13 March 2013, 10:00am: click here
Week 2
- Slides for this week: we will continue with last week's slides; after that
Convex Hulls - pdf
(ppt) and
Select/median algorithm - pdf
(ppt)
-
Monday, March 11
- Covered in class: A lower-bound on comparison-based sorting Omega(n log n) (not in the book)
- Covered in class: convex hulls (not in the book)
-
Wednesday, March 13
- Covered in class: finished convex hulls: the divide and conquer approach
- Covered in class: Median/Select (the worst-case O(n) is not in the book but the randomized version is in Section 13.5)
- Homework 2, due 20 March 2013, 10:00am: click here
Week 3
- Slides for this week: we will continue with last week's slides, after that
Interval Scheduling and the Longest Increasing Subsequence - pdf
(ppt)
-
Monday, March 18
- Covered in class: the randomized Select (Section 13.5)
- Covered in class: Master Theorem (not in the book)
- Covered in class: introduction to Interval Scheduling (Sections 4.1 and 6.1-2)
-
Wednesday, March 20
- Covered in class: finished Interval Scheduling (Sections 4.1 and 6.1-2)
- Homework 3, due 27 March 10:00: click here
Week 4
- Slides for this week:
The Knapsack problem and Huffman coding - pdf
(ppt)
-
Monday, March 25
- Covered in class: Longest Increasing Subsequence (not in the book)
- Covered in class: Knapsack, the divisible and indivisible version (Section 6.4)
-
Wednesday, Jan 5
- In class: quiz 3.
- Covered in class: finished indivisible Knapsack
- Covered in class: solutions of Hw1 and Hw2 (sorry, the notes we wrote on the tablet did not get saved...)
- Covered in class: started Huffman coding (Section 4.8)
- Homework 4, due 5 April 14:00 (for Sol, at the end of the day on Thursday :): click here
Week 5
- Slides for this week: Longest Common Subsequence and Matrix Chain Multiplication - pdf
(ppt)
-
Wednesday, April 3
- Covered in class: finished Huffman coding (Section 4.8)
- Covered in class: Longest Common Substring/subsequence (not in the book but a similar problem is discussed in Section 6.6)
- Recall that our make-up class for Easter Monday is tomorrow, Thursday, April 4, in room 3 (if the room is taken, we will move to room 31).
- Next week: midterm, tentatively scheduled for Monday, 12-14, in room 3 (i.e., our 10-12 class time is shifted to 12-14).
-
Thursday, April 4
- Covered in class: Matrix Chain Multiplication (not in the book but a similar interval-based dynamic programming
technique is used in Section 6.5)
- No homework due next week :)
Week 6
- Slides for this week: Introduction to Graph Algorithms: BFS,DFS - pdf
(ppt)
-
Monday, April 8
-
Wednesday, April 10
- Covered in class: solutions of the midterm
- Covered in class: revisited the reconstruction of the matrix chain multiplication solution
- Covered in class: introduction to graph algorithms (Chapter 3)
- Homework 5, due 17 April 10:00: click here
Week 7
- Slides for this week: Minimum spanning trees and Shortest paths - pdf
(ppt)
-
Monday, April 15
- Covered in class: Strongly connected components (connectivity discussed in Section 3.5, the O(n+m) algorithm is not in the book)
- Covered in class: Minimum Spanning Tree - Kruskal (Section 4.5) and the related Union-Find data structure (Section 4.6)
-
Wednesday, April 17
- Covered in class: the running time analysis of the Union-Find data structure, the correctness of Kruskal, and the Prim's algorithm for Minimum Spanning Trees
(Sections 4.5 and 4.6)
- Announcements: May 1 class moved to April 30, 2-4pm, room TBA. Please think about possible dates for the final exam so that we can reserve a room.
- Homework 6, due April 24, 10:00: click here
Week 8
- Slides for this week: we will continue with last week's slides, then Network Flow - pdf
(ppt)
-
Monday, April 22
- Covered in class: Dijkstra's algorithm (Section 4.4)
- Covered in class: Floyd-Warshall's algorithm (not in the book)
- Covered in class: solution of Problems 1 and 3, Hw 5
-
Wednesday, April 24
- Covered in class: Bellman-Ford's algorithm (Sections 6.8-6.10)
- Covered in class: Flow networks, Ford-Fulkerson's algorithm (Chapter 7)
- Homework 7, due 1 May, 10:00am: click here
Week 9
- Slides for this week: we will cover the material from the last week's slides
-
Monday, April 29
- Covered in class: Scaling Network Flow algorithm (Section 7.3), and Edmonds-Karp algorithm
- Covered in class: Max-Flow-Min-Cut Theorem, proof of correctness of Ford-Fulkerson-type algorithms
- Note: Due to Turizmijada, next class takes place tomorrow, at 12:00, in room 31.
-
Tuesday, April 30
- Covered in class: Applications of Flow Networks (multiple sources/sinks, finding a minimum cut,
maximum number of edge-disjoint s-t paths, maximum bipartite matching - see Chapter 7 for these and more applications)
- Covered in class: a very brief introduction to linear programming (Section 11.6)
- Homework 8, due by the end of the day, 8 May 2013: click here
Note: the last problem has a long description but the answer is short and simple.
Week 10
- Slides for this week: NP-completeness - pdf
(ppt)
-
Monday, May 6
- Information about the final exam is here.
- Covered in class: more on linear programming
- Covered in class: reductions, class P (for P, NP, and NP-completeness, see Chapter 8)
-
Wednesday, May 8
- Covered in class: NP, and NP-completeness (Chapter 8)
- Take-home points related to P, NP, NP-complete (and useful things to remember for the final):
- Definition of classes P, NP, and NP-complete.
- Looking at a problem, you should be able to recognize basic problems from P (like the decision versions of most of
the problems from class).
- You should be able to sketch the proof that a problem is in NP - specify the witness, then describe
a polynomial-time verification algorithm.
- You should be able to do reductions of about the same difficulty as the problem on the homework (Problem 3, Hw8).
- Big open problem: P = NP (we do NOT know if P=NP).
- NP-complete problems are the "hardest" problems in NP.
- If somebody finds a polynomial-time algorithm for an NP-complete problem, then P=NP.
- If somebody shows that there does not exist a polynomial-time algorithm for an NP-complete problem, then P is not equal
to NP.
- If somebody finds an easy polynomial-time algorithm for an NP-complete problem,
then this algorithm probably does not work :)
- You should be familiar with the NP-complete problems we discussed in class.
- Good luck with your finals!