Summary of lectures Introduction to Algorithm Analysis and Design (Chapter 1-3). Lecture Slides Recurrence and Master Theorem (Chapter 4). Lecture Slides.

Slides:



Advertisements
Similar presentations
MATH 224 – Discrete Mathematics
Advertisements

 Review: The Greedy Method
Dynamic Programming.
Dynamic Programming.
Lecture 12: Revision Lecture Dr John Levine Algorithms and Complexity March 27th 2006.
S. J. Shyu Chap. 1 Introduction 1 The Design and Analysis of Algorithms Chapter 1 Introduction S. J. Shyu.
© The McGraw-Hill Companies, Inc., Chapter 2 The Complexity of Algorithms and the Lower Bounds of Problems.
Jan Welcome to the Course of Advanced Algorithm Design (ACS-7101/3)
2 -1 Chapter 2 The Complexity of Algorithms and the Lower Bounds of Problems.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2003 Review Lecture Tuesday, 5/6/03.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2002 Review Lecture Tuesday, 12/10/02.
Recurrences / HW: 2.4 Quiz: 2.1, 4.1, 4.2, 5.2, 7.3, 7.4 Midterm: 8 given a recursive algorithm, state the recurrence solve a recurrence, using Master.
Data Structures, Spring 2004 © L. Joskowicz 1 DAST – Final Lecture Summary and overview What we have learned. Why it is important. What next.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2002 Lecture 1 (Part 1) Introduction/Overview Tuesday, 1/29/02.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
Introduction to Algorithm design and analysis
1 Summary of lectures 1.Introduction to Algorithm Analysis and Design (Chapter 1-3). Lecture SlidesLecture Slides 2.Recurrence and Master Theorem (Chapter.
Dynamic Programming. Well known algorithm design techniques:. –Divide-and-conquer algorithms Another strategy for designing algorithms is dynamic programming.
1 Summary of lectures 1.Introduction to Algorithm Analysis and Design (Chapter 1-3). Lecture SlidesLecture Slides 2.Recurrence and Master Theorem (Chapter.
Lecture 2 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
10/20/20151 CS 3343: Analysis of Algorithms Review for final.
The Selection Problem. 2 Median and Order Statistics In this section, we will study algorithms for finding the i th smallest element in a set of n elements.
1 CPSC 320: Intermediate Algorithm Design and Analysis July 28, 2014.
INTRODUCTION. What is an algorithm? What is a Problem?
1 BIM304: Algorithm Design Time: Friday 9-12am Location: B4 Instructor: Cuneyt Akinlar Grading –2 Midterms – 20% and 30% respectively –Final – 30% –Projects.
1 CPSC 320: Intermediate Algorithm Design and Analysis July 16, 2014.
Computer Sciences Department1.  Property 1: each node can have up to two successor nodes (children)  The predecessor node of a node is called its.
Design and Analysis of Algorithms (09 Credits / 5 hours per week) Sixth Semester: Computer Science & Engineering M.B.Chandak
1 CPSC 320: Intermediate Algorithm Design and Analysis July 30, 2014.
CES 592 Theory of Software Systems B. Ravikumar (Ravi) Office: 124 Darwin Hall.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Review Lecture Tuesday, 12/11/01.
Lecture 2 Algorithm Analysis
Chapter 11 Sorting Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich, Tamassia and Mount.
Design and Analysis of Algorithms
Chapter 10 NP-Complete Problems.
Welcome to the Course of Advanced Algorithm Design
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
CSE 326: Data Structures: Advanced Topics
Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 1/28/04
Lecture 5 Dynamic Programming
Course Description Algorithms are: Recipes for solving problems.
CS 3343: Analysis of Algorithms
Greedy Algorithms / Interval Scheduling Yin Tat Lee
Lecture 5 Dynamic Programming
CS 3343: Analysis of Algorithms
Design and Analysis of Algorithms (07 Credits / 4 hours per week)
The Complexity of Algorithms and the Lower Bounds of Problems
CS 3343: Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
CS 3343: Analysis of Algorithms
Objective of This Course
CS 3343: Analysis of Algorithms
COSC 320 Advanced Data Structures and Algorithm Analysis
CS 3343: Analysis of Algorithms
Chapter 11 Limitations of Algorithm Power
CSE 6408 Advanced Algorithms.
Introduction to Algorithms: Dynamic Programming
Chapter 1 Introduction.
15th Scandinavian Workshop on Algorithm Theory
The Selection Problem.
Course Description Algorithms are: Recipes for solving problems.
INTRODUCTION TO ALOGORITHM DESIGN STRATEGIES
Algorithms Classification – Part 2
Department of Computer Science & Engineering
Design and Analysis of Algorithms (04 Credits / 4 hours per week)
Algorithm Course Algorithms Lecture 3 Sorting Algorithm-1
COMP 122 – Design and Analysis of Algorithms
Chapter 11 Sets, and Selection
Presentation transcript:

Summary of lectures Introduction to Algorithm Analysis and Design (Chapter 1-3). Lecture Slides Recurrence and Master Theorem (Chapter 4). Lecture Slides Sorting and Order Statistics (Chapter 8-9). Lecture Slides Balanced Search Trees: red-back tree (chapter 13) and others Lecture Slides Augmenting Data Structure (Chapter 14) Lecture Slides Dynamic Programming (Chapter 15). Lecture Slides Greedy Algorithms (Chapter 16). Lecture Slides Amortized Analysis (chapter 17) Lecture slides Disjoint Sets (Chapter 21). Lecture Slides NP-Completeness (Chapter 34). Lecture Slides Parallel Algorithms (Selected from Chapter 30, the First Edition). Lecture Slides String/Pattern Matching (Chapter 32 & handout). Lecture Slides Approximation Algorithms (Chapter 35). Lecture Slides Divide and Conquer--closest pair (Chapter 33.4) Lecture slides Lower bound: decision tree & adversary argument (handout) Lecture Slides Linear Programming Lecture Slides Graph algorithms (MST, shortest path, Maximum Work Flow, Bipartite) Lecture Slides

Introduction Algorithms: serial vs. parallel regular vs. approximate deterministic vs. probabilistic Algorithms design: data structures and algorithms (disjoint set, red-black tree, AVL, B-Tree, 2-3-4) Design methods: divide and conquer dynamic programming, memoization greedy algorithm prune and search specific methods: 7 in closest pair, 5 in ordered statistic, Algorithm analysis: complexities-- space and time worst, best, average asymptotic notations: order of growth Analysis methods: loop and loop invariant recursive relation and equations Substitution, Recursion tree, Master theorem, Domain Transformation, Change of variables amortized analysis adversary argument, decision argument (worst case lower bound)

Sorting and order statistic Comparison: Lower bound O(nlg n), decision tree. Non-comparison: Bucket sort, counting sort, radix sort, (linear time). ith smallest elements: First (minimum), last (Maximum), both (3 n/2). Prune-and-search RANDOMIZED-SELECT:Expected linear time O(n) but worst-case running time O(n2). SELECT: Linear worst-case running time O(n).

Lower bound Decision Tree Adversary Argument

Dynamic programming Elements of DP: Four steps: Auxiliary table. Optimal substructures Overlapping subproblems Four steps: Find/prove Optimal Substructure Find recursive solution write DP program to compute optimal value Construct optimal solution (path). Analysis of DP program Relations among: recursive algorithm, divide-and-conquer, Memoization. Auxiliary table.

Data structures Disjoint set Red-black trees Other trees: Definition and implementation Union-by-rank, path compression Analysis Fast increasing function and its slow reverse Amortized analysis Proof of the running time. Red-black trees Balance Rotation Augmenting Other trees: AVL, B-tree, B+-tree, 2-3-4, Treap, Splay

Amortized analysis Find the average worse-case performance over a sequence of operations Three methods: Aggregate analysis: Total cost of n operations/n, Accounting method: Assign each type of operation an (different) amortized cost overcharge some operations, store the overcharge as credit on specific objects, then use the credit for compensation for some later operations. Potential method: Same as accounting method But store the credit as “potential energy” and as a whole.

NP-completeness P and NP Poly reduction Proof of NP-completeness by reduction. Belong to NP Is NP-hard Reduce a (general) instance of known NPC problem to a (concrete) instance of need-to-proof problem Prove poly reduction and their equivalence.

Parallel algorithms PRAM models: Design parallel algorithms EREW, CREW, ERCW, CRCW Design parallel algorithms Analysis Relation among models.

String matching Naïve solution KMP algorithm Prefix function Analysis: amortized method. Appropriate string matching.

Approximate algorithms Find near-optimal solution in poly time Ratio Question: given two NP-complete problems A and B, if A can be reduced to B in poly, how about their corresponding appropriate algorithms and the ratios?

Cross-topic reviews NP-complete problem Given a problem, Proof Some (poly) algorithms such as DP algorithm (they may look like poly solution, but in fact, not). Graph related problems, schedule problems, number and set related problems, etc. Given a problem, determine whether it is NP-complete, If yes, find special cases, or find appropriate solution Otherwise, design its data structures, its algorithms, and analyze its complexity. DP solution for NP-complete problem, pseudo-poly. Space and time trade-off Pre-processing

Questions types NP-complete proof Parallel algorithm Design data structures Design algorithms (by different methods) Given algorithm, analysis of its (different techniques) functions and complexity. Problem-related specific questions: many!! Recursive and recurrence. Proof, computation, design, analysis.