COMP 3804: Design and Analysis of
Algorithms (Fall 2021)
OFFICE HOURS: Tuesday and Thursday
14:35-15:55 Online over zoom (link provided in
Brightspace).
E-mail: anil@scs.carleton.ca,
WWW:http://www.scs.carleton.ca/~anil
The following is the schedule for 4
Assignments, 2 Tests, and the Final Exam:
Posted On |
Due Date |
% of Total Marks |
|||
BACKGROUND
Quiz 1 Quiz 2 |
Sept 9 |
Never |
Make sure you know this
material - this is minimum background required to understand
the material in this course. |
||
A1 PDF-File LaTeX-File |
Sep 9 |
Sep 24 |
10% |
||
A2 PDF-File LaTeX File (Figures: dfs-undirected, grid-graph and tree) |
Sep 23 |
Oct 8 |
10% | ||
A3 PDF-File LaTeX-File |
Oct 22 |
Nov 12 |
10% | ||
A4 PDF-File LaTeX-File |
Nov 17 |
Dec 6 |
10% | ||
Test - 1 |
Oct 14 |
Oct 14 | 15% (14:35-15:55 PM on
Thursday October 14th) |
||
Test -2 |
Nov 25 |
Nov 25 | 15% (14:35-15:55 PM on Thursday November 25th) | ||
Final Exam |
Please check exam schedule |
30% |
Week # |
Michiel's Video |
Michiel's Notes |
Practice Problem Set/ Assignment Solutions during office hour. |
Topics + Additional pointers |
0 (Sep 9) |
Introductory
Remarks |
Introduction |
Naive and faster methods for computing Fibonacci numbers, O, Omega, Theta Notation See Chapter 1 (Section 1.3) for more details |
|
1 (Sep 14, 16) |
Part
1(Merge-Sort Analysis) Part 2(Multiplying Integers) Part 3(Faster Multiplication) Part 4 (Recursion Tree) |
Divide-and-Conquer Recursion Tree |
Set
- I Set-II |
Divide-and-Conquer Technique Analyzing merge-sort, multiplication of two n-bit numbers, matrix multiplication. Additional notes on analyzing recurrences including substitution method. See Chapter 1 (Section 1.4 and 1.5) for more details Also, see the following link for Master Method simulator: https://www.nayuki.io/page/master-theorem-solver-javascript |
2 (Sept 21, 23) |
Deterministic
Selection Randomized Selection+ Heaps |
Selection (deterministic) Selection (randomized) Heaps |
Set-III |
Group of 5 deterministic selection algorithm. Randomized selection algorithm. What are Heaps? |
3 (Sept 28, 30) |
Operations
on Heaps More on Heaps + Graphs |
Introduction to Graphs and Graph Exploration |
Set-III continued + Assignment 1 Solutions |
Heap operations, heap sort. Introduction to Graphs. |
4 (Oct 5, 7) |
Graph
Representation- Explore Depth-first-search DAGs, Topological Sort, and DFS |
Depth-first-search Directed-graphs |
Set-IV |
Graph representation, Graph exploration, tree and back edges, depth-first search traversal, finding connected components using explore and cc-number Is G bipartite? Directed graphs. Acyclic directed graphs (DAGs) Topological Sorting |
5 (Oct 12, 14) |
DFS
in directed graphs TEST-1 (October 14th) |
DFS in directed graphs |
Assignment- 2 Solutions |
DFS in directed graphs - forward, backward, cross and back edges in the traversal. Test takes place during the class time slot of 14:35-15:55 via Brightspace system on October 14th. The syllabus consists of all the material covered in Weeks 1-5 (inclusive), Assignments and the Problem Sets. This includes all the lectures from Sept 9 - Oct 12th (inclusive). |
6 (Oct 19, 22) |
Shortest-paths
in directed graphs Correctness of Dijkstra's algorithm |
shortest-paths correctness |
Test-1 Solutions SSSP Examples BFS+ Set-V |
Shortest paths in DAGs Dijsktra's single-source shortest path algorithm for general directed graphs |
Oct 25-29 |
FALL BREAK |
NO OFFICE HOURS | ||
7 (Nov 2, 4) |
Union-Find
DS + Kruskal's MST algorithm Kruskal and Prim's MST algorithms |
union-find data structure + MST Prim's MST algorithms Additional Notes on MSTs |
NO OFFICE HOURS on November 4th |
Union-find data structure Minimum spanning tree algorithms - Kruskal and Prim's Algorithm. Analysis of Kruskal's algorithm using union-find DS |
8 (Nov 9, 11) |
Prim's
MST Analysis & Introduction to Dynamic Programming I |
Dynamic Programming |
Practice problems from problem set V + Answering questions on Assignment 3. |
Analysis of Prim's using priority queues Revisiting shortest paths in DAGs, dynamic programming framework - structure of optimal solution, set-up recurrence relation, solve recurrence bottom-up. Longest paths in DAGs |
9 (Nov 16, 18) |
Dynamic
Programming II Dynamic Programming III |
Problem
Set VI Solutions to Problems in Assignment 3. |
Longest increasing sequence,
matrix-chain multiplication, longest-common sequence,
all-pairs shortest paths - Floyd-Warshall algorithm. Longest
paths in graphs - optimal substructure property? |
|
10 (Nov 23, 25) Nov. 25 |
Decision
Problems Decision Problems using languages TEST-2 |
Introduction to P and NP Complexity
Classes Formal definitions of decision problems, P and NP. |
Solutions to Problems in Assignment 3 + Problems Set VI. | Complexity classes P and NP Decision problems - SAT, Clique, Hamiltonian Cycle, TSP, Subset Sum P subset NP, Polynomial-time reductions. Test takes place during the class time slot of 14:35-15:55 via Brightspace system on Thursday, November 25th. The syllabus consists of all the material covered in Weeks 6-9 that includes Shortest Paths, Minimum Spanning Trees and Dynamic Programming. This includes all the lectures from Oct 19-Nov 18 (inclusive). |
11 (Nov 30, Dec 2) |
Polynomial-time
reductions NP-Completeness |
Polynomial-time reductions NP-Complete Problems |
Problem
Set VII |
Definition, Clique to Independent set, Clique
to Vertex cover, 3SAT to Independent set. NP-Hard and NP-Complete Problems. How to show a problem is NP-Complete? |
12 (Dec 7, 9) |
Hardness
Reductions Circuit-SAT is NP-Complete |
More Hardness Reductions Circuit-SAT problem |
NO Office Hour on Thursday December 9th. |
3SAT, Clique, 0-1 Integer Linear Programs are
NP-Complete. Sketch of the proof of Circuit-SAT is NP-Complete. |
December 13 |
FINAL EXAM |
It takes place online over the brightspace
system on December 13th from 7PM to 10PM. Course contents
for the final exam includes all the lectures, notes,
assignments, and the tests. You need to upload your answers
before 10:10 PM. No e-mail submissions will be accepted. |