Download presentation
Presentation is loading. Please wait.
Published byErnest Boone Modified over 9 years ago
1
Lecture 17 Review
2
What I’ve taught ≠ What you’ve learnt
3
Course goals To become proficient in the application of fundamental algorithm design techniques To gain familiarity with the main theoretical tools used in the analysis of algorithms To study and analyze different algorithms for many of “standard” algorithmic problems To introduce students to some of the prominent subfields of algorithmic study in which they may wish to pursue further study
4
Course contents Algorithm design techniques ‣ Divide-and-conquer, Greedy, Dynamic Programming Analysis of algorithms ‣ O, Ω,Θ, Worst-case and Average-case, Recurrences, Amortized analysis “Standard” algorithmic problems ‣ Sorting, Graph theory, Network flow Prominent subfields ‣ NP theory, Backtracking, Randomization, Approximation, Lower bound, Computational Geometry, Substring search, Data compression
5
Divide-and-conquer What: Divide-conquer-combine When: Non-overlapping subproblems Examples: Quicksort, mergesort, Select, Closest pair...... Test: Given a sorted array of distinct integers A[1,..., n], you want to find out whether there is an index i for which A[i] = i.
6
What: Step by step, always choose local optimal solution When: local optimal -> global optimal Examples: Kruskal, Prim, Huffman code, Fractional knapsack...... Test: Show how to find the maximum spanning tree of a graph. Greedy
7
What: 1. write the paradigm: Problems -> subproblems 2. solve it in a bottom-up way When: subproblems overlap Examples: Dijkstra, Knapsack, LCS, Matrix chain...... Test: Longest increasing subsequence Dynamic programming
8
Course contents Algorithm design techniques ‣ Divide-and-conquer, Greedy, Dynamic Programming Analysis of algorithms ‣ O, Ω,Θ, Worst-case and Average-case, Recurrences, Amortized analysis “Standard” algorithmic problems ‣ Sorting, Graph theory, Network flow Prominent subfields ‣ NP theory, Backtracking, Randomization, Approximation, Lower bound, Computational Geometry, Substring search, Data compression
9
Complexity Analysis Tools Notation: O, Ω, Θ Recurrences and Master theorem
10
Master theorem Simplified Master Theorem Let a ≥ 1, b > 1 and c,d,w ≥ 0 be constants, and let T(n) be defined on the nonnegative integers by the recurrence Then
11
Complexity Analysis Tools Notation: O, Ω, Θ Recurrences and Master theorem Average-case, worst-case analysis Amortized analysis Test: n! and 2 n, T(n) = 3T(n/2) + n T(n) = T(n-1) + n
12
Course contents Algorithm design techniques ‣ Divide-and-conquer, Greedy, Dynamic Programming Analysis of algorithms ‣ O, Ω,Θ, Worst-case and Average-case, Recurrences, Amortized analysis “Standard” algorithmic problems ‣ Sorting, Graph theory, Network flow Prominent subfields ‣ NP theory, Backtracking, Randomization, Approximation, Lower bound, Computational Geometry, Substring search, Data compression
13
Sorting AverageWorst InsertionO(n 2 ) SelectionO(n 2 ) BubbleO(n 2 ) QuickO(nlogn)O(n 2 ) Bottom-up mergeO(nlogn) MergeO(nlogn) HeapO(nlogn) RadixO(kn) BucketO(n)O(n 2 ) Test: Give an optimal algorithm for sorting
14
Graph Traversal Adj. MatrixAdj. ListApplication BFSO(n 2 )O(n+m)Shortest path DFSO(n 2 )O(n+m) Acyclicity Topological sort SCC Test: Give a linear-time algorithm to find an odd-length cycle in a undirected graph.
15
Minimum Spanning Tree WithoutWithDS KruskalO(n 2 )O(mlogm)Disjoint set PrimO(n 2 )O(mlogn)Heap Test: Show Prim or Kruskal is valid for graphs with negative weights.
16
Shortest path Single-sourceGraph typesComplexity DijkstraPositive weightO(mlogn) Bellman-FordAnyO(mn) Topological sortDAGO(m+n) All-pairsFloyd-WarshallAnyO(n 3 ) Test: Give an algorithm to find the shortest cycle containing some edge e.
17
Maximum flow Ford–FulkersonO(E |f*|) Edmonds–KarpO(V 2 Elogc*), O(VE 2 ) Test: The value of max flow. Applications: Bipartite Matching, Edge/Vertex Disjoint path......
18
Course contents Algorithm design techniques ‣ Divide-and-conquer, Greedy, Dynamic Programming Analysis of algorithms ‣ O, Ω,Θ, Worst-case and Average-case, Recurrences, Amortized analysis “Standard” algorithmic problems ‣ Sorting, Graph theory, Network flow Prominent subfields ‣ NP theory, Backtracking, Randomization, Approximation, Lower bound, Computational Geometry, Substring search, Data compression
19
Prominent Subfields NP-theory Randomized algorithm Approximation algorithm Lower bounds Computational geometry Substring search Data compression
20
NP-theory P: deterministic TM, Polynomial time NP: Nondeterministic TM, Polynomial time A ∝ p B: Use B to solve A, A is less harder than B. NPC: the hardest problems in NP. 3-SAT, 3-coloring, Hamiltonian, Vertex Cover, TSP...... Test: Show clique is NPC given vertex cover is NPC. NP P NPC
21
Backtracking What: A kind of intelligent exhaustive search When: partial solution can be quickly checked Examples: 3-coloring, 8-queen......
22
Lower bounds What: A problem has lower bounds Ω(f(n)) if all algorithms for it are Ω(f(n)). Optimal algorithms In decision tree model, Sorting, Element uniqueness, Closest pair, Convex hull, and Euclidean MST have lower bound Ω(nlogn).
23
Randomized algorithm What: algorithms that play dice. Types: Monte Carlo and Las Vegas Examples: Randomized Quicksort, String equivalence check, Primality check...... Test: Tell the difference between Monte Carlo and Las Vegas algorithm.
24
Approximation algorithm What: a trade-off between precision and time.(polynomial time algorithm) When: optimization problems Approximation ratio, hardness result Examples: Vertex cover, Knapsack, TSP...... Test: Show there is no constant ratio approximation algorithms for TSP unless P=NP.
25
Computational geometry What: algorithms which can be stated in terms of geometry Geometric sweeping Examples: Maximal points, Convex hull, Diameter......
26
Substring search What: Match a pattern in texts. T (pattern): U N D E R S (text): D O U U N D E R S T A N D M E ? Brute-Force, KMP, AC-automation, Rabin-Karp, suffix tree, …
27
Data Compression Compression reduces the size of a file: To save space when storing it. To save time when transmitting it. Most files have lots of redundancy. Run length, Huffman, LZW, JPEG...
28
Course contents Algorithm design techniques ‣ Divide-and-conquer, Greedy, Dynamic Programming Analysis of algorithms ‣ O, Ω,Θ, Worst-case and Average-case, Recurrences, Amortized analysis “Standard” algorithmic problems ‣ Sorting, Graph theory, Network flow Prominent subfields ‣ NP theory, Backtracking, Randomization, Approximation, Lower bound, Computational Geometry, Substring search, Data compression
29
Course Goals To become proficient in the application of fundamental algorithm design techniques To gain familiarity with the main theoretical tools used in the analysis of algorithms To study and analyze different algorithms for many of “standard” algorithmic problems To introduce students to some of the prominent subfields of algorithmic study in which they may wish to pursue further study
30
The End
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.