Episodes
Lecture 28: Gusfield recaps NP-completeness. The professor discusses coping with NP-complete problems: approximation algorithms and lowering the exponent of exponential-time algorithms.
Published 12/03/10
Lecture 27 covers the major theorems of NP-completeness, P = NP question, and how to prove a new problem in NP-complete.
Published 12/01/10
In Lecture 26, Gusfield gives correct, formal definitions of P and NP, ending with a brief definition of NP-complete problems (languages).
Published 11/29/10
Lecture 25 deals with an intuitive view of NP - not the correct formal definition.
Published 11/24/10
Lecture 24 gives an introduction to P and NP and polynomial-time reductions.
Published 11/22/10
Lecture 23 covers approximation algorithms - definition, factor of two approximation for the center cover problem.
Published 11/17/10
Lecture 22 completes linear-time pattern matching using the Z-algorithm
Published 11/15/10
In Lecture 21, Gusfield covers linear-time pattern matching. He also discusses Z-values and Z-algorithms.
Published 11/12/10
Lecture 20 deals with unique-decipherability: efficient graph-based algorithm and proof of correctness.
Published 11/10/10
Lecture 19 covers the unique-decipherability problem and gives definitions and the start of a graph-based solution.
Published 11/08/10
In Lecture 18, Gusfield discusses Floyd-Warshall, the algorithm for computing the shortest path in a weighted graph between each pair of nodes in the graph.
Published 11/05/10
Lecture 17 covers dynamic programming for the shortest path problem in a weighted directed graph, as well as negative edge weights allowed but no negative cycles.
Published 11/03/10
Lecture 16 deals with the solution to the RNA folding problem using dynamic programming.
Published 11/01/10
In Lecture 15, Gusfield finishes the discussion of interval selection, and then introduces the RNA folding problem and talks about recurrences for it.
Published 10/29/10
Lecture 14 reviews memoization; introduction to dynamic programming (DP) for the weighted interval problem and traceback in DP.
Published 10/27/10
In Lecture 13, Gusfield introduces recursive programming and memoization through the problem of computing the maximum weight set of pairwise non-overlapping intervals.
Published 10/22/10
In Lecture 12, Gusfield talks about the proof of correctness of Kruskal's algorithm.
Published 10/20/10
In Lecture 11, Gusfield covers Prim's algorithm and analysis, and Kruskal's algorithm.
Published 10/18/10
In Lecture 10, students learn about Dijkstra's algorithm for shortest paths in a graph with non-negative edge weights.
Published 10/15/10
In Lecture 9A, Gusfield provides another scheduling problem to be solved by a greedy algorithm.
Published 10/14/10
For Lecture 9, Gusfield starts discussion of greedy algorithms: Picking the largest number of non-overlapping intervals on a line.
Published 10/13/10
In Lecture 8, Gusfield completes his analysis of the expected number of comparisons in randomized version of Select(S,k) as a function of |S|. The expected number is at most 8|S|.
Published 10/11/10
During Lecture 7, students learn more on randomized selection and median finding: algorithm and start of analysis.
Published 10/08/10
In Lecture 6, Gusfield finishes the discussion of integer multiplication by divide and conquer. He then starts randomized selection and median finding.
Published 10/06/10
Lecture 5: Gusfield lectures about counting the number of inversions in a permutation. He introduces fast integer multiplication by divide and conquer.
Published 10/04/10