Graduate Analysis of Algorithms Prof. Karen Daniels

Size: px
Start display at page:

Download "Graduate Analysis of Algorithms Prof. Karen Daniels"

Transcription

1 UMass Lowell Computer Science Graduate Analysis of Algorithms Prof. Karen Daniels Fall, 203 Lecture 3 Monday, 9/23/3 Amortized Analysis

2 Stack (computational geometry application) Dynamic Table Binary Counter (in book but not lecture) 2 Conga Line for Dynamic Closest Pair (computational geometry) Overview Amortize: To pay off a debt, usually by periodic payments [Websters] Amortized Analysis: creative accounting for operations can show average cost of an operation is small (when averaged over sequence of operations, not distribution of inputs) even though a single operation in the sequence is expensive result must hold for any sequence of these operations no probability is involved (unlike average-case analysis) guarantee holds in worst-case analysis method only; no effect on code operation

3 More Motivation Depth-First and Breadth-First Search Dijkstra s Single-Source Shortest Path Fibonacci Heaps Knuth-Morris-Pratt String Matching Red-Black Tree Restructuring (see index) 3

4 Overview (continued) 3 ways to determine amortized cost of an operation that is part of a sequence of operations: Aggregate Method find upper bound T(n) on total cost of sequence of n operations amortized cost = average cost per operation = T(n)/n same for all the (perhaps different types of) operations in the sequence Accounting Method amortized cost can differ across types of operations overcharge some operations early in sequence store overcharge as prepaid credit on specific data structure objects Potential Method amortized cost can differ across operations (as in accounting method) overcharge some operations early in sequence (as in accounting method) store overcharge as potential energy of data structure as a whole (unlike accounting method) 4

5 Aggregate Method: Stack Operations Aggregate Method find upper bound T(n) on total cost of sequence of n operations amortized cost = average cost per operation = T(n)/n same for all the operations in the sequence Traditional Stack Operations PUSH(S,x) pushes object x onto stack S POP(S) pops top of stack S, returns popped object O() time: consider cost as for our discussion Total actual cost of sequence of n PUSH/POP operations = n STACK-EMPTY(S) time in Θ() 5

6 Aggregate Method: Stack Operations (continued) New Stack Operation MULTIPOP(S,k) pops top k elements off stack S pops entire stack if it has < k items MULTIPOP(S,k) while not STACK-EMPTY(S) and k = 0 2 POP(S) 3 k = k - MULTIPOP actual cost for stack containing s items: Use cost = for each POP Cost = min(s,k) Worst-case cost in O(s) in O(n) source: textbook Cormen et al. 6

7 Aggregate Method: Stack Operations (continued) 7

8 Aggregate Method: Stack Operations (continued) Sequence of n PUSH, POP, MULTIPOP ops initially empty stack MULTIPOP worst-case O(n) O(n 2 ) for sequence Aggregate method yields tighter upper bound Sequence of n operations has O(n) worst-case cost Each item can be popped at most once for each push # POP calls (including ones in MULTIPOP) <= #push calls <= n Average cost of an operation = O(n)/n = O() = amortized cost of each operation holds for PUSH, POP and MULTIPOP source: textbook Cormen et al. 8

9 Accounting Method Accounting Method amortized cost can differ across operations overcharge some operations early in sequence store overcharge as prepaid credit on specific data structure objects c i ĉ i Let be actual cost of ith operation Let be amortized cost of ith operation (what we charge) Total amortized cost of sequence of operations must ˆ be upper bound on total actual cost of sequence i= i Total credit in data structure = must be nonnegative for all n n i= n cˆ i c i= i n n c i c = source: textbook Cormen et al. 9 i

10 Accounting Method: Stack Operations Operation Actual Cost Assigned Amortized Cost PUSH 2 POP 0 MULTIPOP min(k,s) 0 Paying for a sequence using amortized cost: start with empty stack PUSH of an item always precedes POP, MULTIPOP pay for PUSH & store unit of credit credit for each item pays for actual POP, MULTIPOP cost of that item credit never goes negative total amortized cost of any sequence of n ops is in O(n) amortized cost is upper bound on total actual cost 0 source: textbook Cormen et al.

11 Potential Method Potential Method amortized cost can differ across operations (as in accounting method) overcharge some operations early in sequence (as in accounting method) store overcharge as potential energy of data structure as a whole (unlike accounting method) Let c i be actual cost of i th operation Let D i be data structure after applying i th operation Let Φ(D i ) be potential associated with D i Amortized cost of i th operation: Total amortized cost of n operations: n i = cˆ i = ci + Φ( Di ) Φ( Di ) n n ˆi = ( ci + Φ ( Di ) Φ ( Di )) = ci + Φ ( D n ) Φ ( D 0 i = i = ( D n 0 c terms telescope Require: Φ ) Φ( D ) so total amortized cost is upper bound on total actual cost Since n might not be known in advance, guarantee payment in advance by requiring Φ( D i ) Φ( D0 ) source: textbook Cormen et al. )

12 Potential Method: Stack Operations Potential function value = number of items in stack guarantees nonnegative potential after ith operation Amortized operation costs (assuming stack has s items) PUSH: potential difference= Φ( Di ) Φ( Di ) = ( s + ) s = amortized cost = cˆ c + Φ( D ) Φ( D ) = + = 2 MULTIPOP(S,k) pops k =min(k,s) items off stack POP amortized cost also = 0 i = i i i potential difference= Φ( Di ) Φ( Di ) = k' amortized cost = cˆ = c + Φ( D ) Φ( D ) = k' k' = 0 i Amortized cost O() total amortized cost of sequence of n operations in O(n) source: textbook i i i 2 source: textbook Cormen et al.

13 Dynamic Tables: Overview Dynamic Table T: array of slots Ignore implementation choices: stack, heap, hash table... if too full, increase size & copy entries to T if too empty, decrease size & copy entries to T Analyze dynamic table insert and delete Actual expansion or contraction cost is large Show amortized cost of insert or delete in O() Load factor α(t) = num[t]/size[t] num[t] = number of items currently stored in table empty table: α(t) = (convention guaranteeing load factor can be lower bounded by a useful constant) 3 full table: α(t) = source: textbook Cormen Cormen et al.

14 Dynamic Tables: Table (Expansion Only) Load factor bounds (double size when T is full): Sequence of n inserts on initially empty table Worst-case cost of insert is in O(n) Worst-case cost of sequence of n inserts is in O(n 2 ) WHY? LOOSE Double only when table is already full. elementary insertion 4 source: textbook Cormen et al.

15 Dynamic Tables: Aggregate Method: c i = i if i- is exact power of 2 otherwise total cost of n inserts = Accounting Method: Table Expansion (cont.) Amortized Analysis charge cost = 3 for each element inserted intuition for 3 each item pays for 3 elementary insertions inserting itself into current table expansion: moving itself n i= insert expansion: moving another item that has already been moved lgn j ci n + 2 < n + 2n = 3n j= 0 count only elementary insertions copy 5 source: textbook Cormen et al.

16 Dynamic Tables: Amortized Analysis Potential Method: Φ T ) = Value of potential function Φ(Τ) 0 right after expansion (then becomes 2 why?) Φ( T ) = builds to table size by time table is full 0 when size[ T ] = 2num[ T ] Φ( T ) = 2num[ T ] size[ T ] always nonnegative, so sum of amortized costs of n inserts is upper bound on sum of actual costs Table Expansion (cont.) ( 2num[ T ] size[ T ] Amortized cost of ith insert Φ i = potential after ith operation Case : insert does not cause expansion cˆ i = ci + Φi Φi = + (2numi sizei ) (2numi sizei ) = Case 2: insert causes expansion ˆi = ci + Φi Φi c use these: 3 functions: size i, num i, Φ i = numi + (2numi sizei ) (2numi sizei ) = num = i sizei num = + i num i size i = 2sizei 3 6 3

17 Dynamic Tables: Table Expansion & Contraction count elementary insertions & deletions (double size when T is full) (halve size when T is ¼ full (why ¼?)): Load factor bounds: DELETE pseudocode analogous to INSERT Amortized Analysis Φ T ) Potential Method: Value of potential function Φ(Τ) = 0 for empty table 0 right after expansion or contraction builds as α(t) increases to or decreases to ¼ always nonnegative, so sum of amortized costs of n inserts is upper bound on sum of actual costs = 0 when α(t)=/2 = num[t] when α(t)= = num[t] when α(t)=/4 same as INSERT ( = 2num[ T ] size[ T ] if α( T ) / 2 size[ T ]/ 2 num[ T ] if α( T ) < / 2 Different from INSERT motivation for choice of potential function: can pay for moving num[t] items 7 source: textbook Cormen et al.

18 Dynamic Tables: Table Expansion & Contraction Amortized Analysis Potential Method 3 functions: size i, num i, Φ i motivation for choice of potential function 8 source: textbook Cormen et al.

19 Dynamic Tables: Table Expansion & Contraction Amortized Analysis Φ( T) = 2numT [ ] size[ T] if α( T) / 2 Potential Method size[ T]/ 2 numt [ ] if α( T) < / 2 Analyze cost of sequence of n inserts and/or deletes Amortized cost of ith operation Case : INSERT Case a: α i- >= ½. By previous insert analysis: cˆ i 3 holds whether or not table expands Case b: α i- < ½ and α i < ½ ˆi = ci + Φi Φi c Case c: α i- < ½ and α i >= ½ no expansion (why?) = + (( sizei / 2) numi ) (( sizei / 2) numi ) = no expansion (why?) 0 ˆi = ci + Φi Φi see derivation in textbook c = + (2numi sizei ) (( sizei / 2) numi 9) 3

20 Dynamic Tables: Table Expansion & Contraction Amortized Analysis Potential Method Amortized cost of ith operation (continued) Φ( T) = 2numT [ ] size[ T] if α( T) / 2 Case 2: DELETE size[ T]/ 2 numt [ ] if α( T) < / 2 Case 2a: α i- >= ½. Case 2b: α i- < ½ and α i < ½ no contraction ˆi = ci + Φi Φi c textbook exercise = + ( sizei / 2 numi ) ( sizei / 2 numi ) = 2 Case 2c: α i- < ½ and α i < ½ contraction ˆi = ci + Φi Φi c = ( numi + ) + ( sizei / 2 numi ) ( sizei / 2 numi ) = Conclusion: amortized cost of each operation is bounded above by a constant, so time for sequence of n operations is in O(n). 20 source: textbook Cormen et al.

21 Example: Dynamic Closest Pair S S = S S S 2 3 S 2 S 3 Goal: Fast maintenance of closest pair in dynamic setting source: Fast hierarchical clustering and other applications of dynamic closest 2 pairs, David Eppstein, Journal of Experimental Algorithmics, Vol. 5, August 2000.

22 Example: Dynamic Closest Pair (continued) S S S source: Fast hierarchical clustering and other applications of dynamic closest 22 pairs, David Eppstein, Journal of Experimental Algorithmics, Vol. 5, August 2000.

23 Example: Dynamic Closest Pair (continued) Rules Partition dynamic set S into k log n subsets. Each subset S i has an associated digraph G i consisting of a set of disjoint, directed paths. Total number of edges in all graphs remains linear Combine and rebuild if number of edges reaches 2n. Closest pair is always in some G i. Initially all points are in single set S. Operations: Create G i for a subset S i. Insert a point. Delete a point. Merge subsets until k log n. We use log base 2. source: Fast hierarchical clustering and other applications of dynamic closest pairs, David Eppstein, Journal of Experimental Algorithmics, Vol. 5, August

24 Example: Dynamic Closest Pair (continued) Rules: Operations source: Fast hierarchical clustering and other applications of dynamic closest pairs, David Eppstein, Journal of Experimental Algorithmics, Vol. 5, August Create G i for a subset S i : Select starting point (we choose leftmost (or higher one in case of a tie)) Iteratively extend the path P, selecting next vertex as: Case : nearest neighbor in S \ P if last point on path belongs to S i Case 2: nearest neighbor in S i \ P if last point on path belongs to S \S i Insert a point x: Create new subset S k+ ={x}. Merge subsets if necessary. Create G i for new or merged subsets. Delete a point x: Create new subset S k+ = all points y such that (y,x) is a directed edge in some G i. Remove x and adjacent edges from all G i. (We also remove y from its subset.) Merge subsets if necessary. Create G i for new or merged subsets. Merge subsets until k log n : Choose subsets S i and S j to minimize size ratio S j / S i. See handout for example. 24

25 Example: Dynamic Closest Pair (continued) Potential Function source: Fast hierarchical clustering and other applications of dynamic closest pairs, David Eppstein, Journal of Experimental Algorithmics, Vol. 5, August Potential for a subset S i : Φ i = n S i log S i. Total potential Φ = n 2 logn - ΣΦ i. Paper proves this Theorem in Section 3: Theorem: The data structure maintains the closest pair in S in O(n) space, amortized time O(nlogn) per insertion, and amortized time O(nlog 2 n) per deletion. HW#3 contains a problem related to this paper. Please read up through Section 3. Later in the semester we will have sufficient background for much of the remainder of the paper. 25

Amortized Analysis. A Simple Analysis. An Amortized Analysis. Incrementing Binary Numbers. A Simple Analysis

Amortized Analysis. A Simple Analysis. An Amortized Analysis. Incrementing Binary Numbers. A Simple Analysis Amortized Analysis The problem domains vary widely, so this approach is not tied to any single data structure The goal is to guarantee the average performance of each operation in the worst case Three

More information

COMP251: Amortized Analysis

COMP251: Amortized Analysis COMP251: Amortized Analysis Jérôme Waldispühl School of Computer Science McGill University Based on (Cormen et al., 2009) Overview Analyze a sequence of operations on a data structure. We will talk about

More information

Connectivity. Use DFS or BFS. 03/11/04 Lecture 18 1

Connectivity. Use DFS or BFS. 03/11/04 Lecture 18 1 Connectivity A (simple) undirected graph is connected if there exists a path between every pair of vertices. If a graph is not connected, then G (V,E ) is a connected component of the graph G(V,E) if V

More information

Graduate Algorithms CS F-12 Amortized Analysis

Graduate Algorithms CS F-12 Amortized Analysis Graduate Algorithms CS673-2016F-12 Amortized Analysis David Galles Department of Computer Science University of San Francisco 12-0: Amortized Analysis Standard Stack Push(S,elem) Pop(S) How much time for

More information

COP 4531 Complexity & Analysis of Data Structures & Algorithms

COP 4531 Complexity & Analysis of Data Structures & Algorithms COP 4531 Complexity & Analysis of Data Structures & Algorithms Amortized Analysis Thanks to the text authors who contributed to these slides What is amortized analysis? Analyze a sequence of operations

More information

Amortized Analysis. The time required to perform a sequence of (data structure) operations is averaged over all the operations performed.

Amortized Analysis. The time required to perform a sequence of (data structure) operations is averaged over all the operations performed. Amortized Analysis The time required to perform a sequence of (data structure) operations is averaged over all the operations performed. No probabilistic assumptions - not an average case analysis! 1 Example:

More information

CS583 Lecture 12. Previously. Jana Kosecka. Amortized/Accounting Analysis Disjoint Sets. Dynamic Programming Greedy Algorithms

CS583 Lecture 12. Previously. Jana Kosecka. Amortized/Accounting Analysis Disjoint Sets. Dynamic Programming Greedy Algorithms CS583 Lecture 12 Jana Kosecka Amortized/Accounting Analysis Disjoint Sets Dynamic Programming Greedy Algorithms Slight digression Amortized analysis Disjoint sets Previously 1 Amortized Analysis Amortized

More information

Introduction to Algorithms

Introduction to Algorithms Introduction to Algorithms 6.046J/8.40J/SMA5503 Lecture 4 Prof. Charles E. Leiserson How large should a hash table be? Goal: Make the table as small as possible, but large enough so that it won t overflow

More information

DATA STRUCTURES. amortized analysis binomial heaps Fibonacci heaps union-find. Lecture slides by Kevin Wayne. Last updated on Apr 8, :13 AM

DATA STRUCTURES. amortized analysis binomial heaps Fibonacci heaps union-find. Lecture slides by Kevin Wayne. Last updated on Apr 8, :13 AM DATA STRUCTURES amortized analysis binomial heaps Fibonacci heaps union-find Lecture slides by Kevin Wayne http://www.cs.princeton.edu/~wayne/kleinberg-tardos Last updated on Apr 8, 2013 6:13 AM Data structures

More information

CS F-12 Amortized Analysis 1

CS F-12 Amortized Analysis 1 CS673-2016F-12 Amortized Analysis 1 12-0: Amortized Analysis Standard Stack Push(S,elem) Pop(S) How much time for each operation? 12-1: Amortized Analysis Standard Stack Push(S,elem)O(1) Pop(S)O(1) Multipop(S,k)

More information

Amortized Analysis. Prof. Clarkson Fall Today s music: : "Money, Money, Money" by ABBA

Amortized Analysis. Prof. Clarkson Fall Today s music: : Money, Money, Money by ABBA Amortized Analysis Prof. Clarkson Fall 2015 Today s music: : "Money, Money, Money" by ABBA Review Current topic: Reasoning about performance Efficiency Big Oh Today: Alternative notions of efficiency Amortized

More information

Amortized Analysis. Andreas Klappenecker. [partially based on the slides of Prof. Welch]

Amortized Analysis. Andreas Klappenecker. [partially based on the slides of Prof. Welch] Amortized Analysis Andreas Klappenecker [partially based on the slides of Prof. Welch] 1 People who analyze algorithms have double happiness. First of all they experience the sheer beauty of elegant mathematical

More information

Introduction. Introduction: Multi-Pop Stack Example. Multi-Pop Stack Cost (clever) Multi-Pop Stack Cost (naïve)

Introduction. Introduction: Multi-Pop Stack Example. Multi-Pop Stack Cost (clever) Multi-Pop Stack Cost (naïve) Introduction Today we begin studying how to calculate the total time of a sequence of operations as a whole. (As opposed to each operation individually.) Why and when we care: You have an algorithm that

More information

Today we begin studying how to calculate the total time of a sequence of operations as a whole. (As opposed to each operation individually.

Today we begin studying how to calculate the total time of a sequence of operations as a whole. (As opposed to each operation individually. Introduction Today we begin studying how to calculate the total time of a sequence of operations as a whole. (As opposed to each operation individually.) Why and when we care: You have an algorithm that

More information

16 Greedy Algorithms

16 Greedy Algorithms 16 Greedy Algorithms Optimization algorithms typically go through a sequence of steps, with a set of choices at each For many optimization problems, using dynamic programming to determine the best choices

More information

CS 561, Lecture Topic: Amortized Analysis. Jared Saia University of New Mexico

CS 561, Lecture Topic: Amortized Analysis. Jared Saia University of New Mexico CS 561, Lecture Topic: Amortized Analysis Jared Saia University of New Mexico Outline Amortized Analysis Aggregate, Taxation and Potential Methods Dynamic Table Union Find Data Structure 1 Amortized Analysis

More information

CS 561, Lecture Topic: Amortized Analysis. Jared Saia University of New Mexico

CS 561, Lecture Topic: Amortized Analysis. Jared Saia University of New Mexico CS 561, Lecture Topic: Amortized Analysis Jared Saia University of New Mexico Outline Amortized Analysis Aggregate, Taxation and Potential Methods Dynamic Table Union Find Data Structure 1 Amortized Analysis

More information

CSC 172 Data Structures and Algorithms. Lecture 24 Fall 2017

CSC 172 Data Structures and Algorithms. Lecture 24 Fall 2017 CSC 172 Data Structures and Algorithms Lecture 24 Fall 2017 ANALYSIS OF DIJKSTRA S ALGORITHM CSC 172, Fall 2017 Implementation and analysis The initialization requires Q( V ) memory and run time We iterate

More information

Amortized Analysis. Ric Glassey

Amortized Analysis. Ric Glassey Amortized Analysis Ric Glassey glassey@kth.se Overview Amortized Analysis Aim: Develop methods of determining the average cost of operations on a data structure Motivation: We do not always want to think

More information

Today s Outline. CS 561, Lecture 18. Potential Method. Pseudocode. Dynamic Tables. Jared Saia University of New Mexico

Today s Outline. CS 561, Lecture 18. Potential Method. Pseudocode. Dynamic Tables. Jared Saia University of New Mexico Today s Outline CS 561, Lecture 18 Jared Saia University of New Mexico Dynamic Tables 1 Pseudocode Potential Method Table-Insert(T,x){ if (T.size == 0){allocate T with 1 slot;t.size=1} if (T.num == T.size){

More information

Amortization Analysis

Amortization Analysis December 21, 2011 Amortization Analysis The concept of amortized runtime analysis is usually first encountered when studying the efficiency of the resizing operation for an array or vector, such as in

More information

Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest. Introduction to Algorithms

Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest. Introduction to Algorithms Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Introduction to Algorithms Preface xiii 1 Introduction 1 1.1 Algorithms 1 1.2 Analyzing algorithms 6 1.3 Designing algorithms 1 1 1.4 Summary 1 6

More information

CS Prof. Clarkson Fall 2014

CS Prof. Clarkson Fall 2014 CS 3110 Lecture 25: Amortized Analysis Prof. Clarkson Fall 2014 Today s music: "Money, Money, Money" by ABBA "Mo Money Mo Problems" by The Notorious B.I.G. "Material Girl" by Madonna Review Current topic:

More information

CMPS 2200 Fall Amortized Analysis. Carola Wenk. Slides courtesy of Charles Leiserson with changes by Carola Wenk

CMPS 2200 Fall Amortized Analysis. Carola Wenk. Slides courtesy of Charles Leiserson with changes by Carola Wenk CMPS 2200 Fall 2017 Amortized Analysis Carola Wenk Slides courtesy of Charles Leiserson with changes by Carola Wenk 11/15/17 CMPS 2200 Intro. to Algorithms 1 Dynamic tables Task: Store a dynamic set in

More information

logn D. Θ C. Θ n 2 ( ) ( ) f n B. nlogn Ο n2 n 2 D. Ο & % ( C. Θ # ( D. Θ n ( ) Ω f ( n)

logn D. Θ C. Θ n 2 ( ) ( ) f n B. nlogn Ο n2 n 2 D. Ο & % ( C. Θ # ( D. Θ n ( ) Ω f ( n) CSE 0 Test Your name as it appears on your UTA ID Card Fall 0 Multiple Choice:. Write the letter of your answer on the line ) to the LEFT of each problem.. CIRCLED ANSWERS DO NOT COUNT.. points each. The

More information

Lecture Summary CSC 263H. August 5, 2016

Lecture Summary CSC 263H. August 5, 2016 Lecture Summary CSC 263H August 5, 2016 This document is a very brief overview of what we did in each lecture, it is by no means a replacement for attending lecture or doing the readings. 1. Week 1 2.

More information

Amortized Analysis and Union-Find , Inge Li Gørtz

Amortized Analysis and Union-Find , Inge Li Gørtz Amortized Analysis and Union-Find 02283, Inge Li Gørtz 1 Today Amortized analysis 3 different methods 2 examples Union-Find data structures Worst-case complexity Amortized complexity 2 Amortized Analysis

More information

implementing the breadth-first search algorithm implementing the depth-first search algorithm

implementing the breadth-first search algorithm implementing the depth-first search algorithm Graph Traversals 1 Graph Traversals representing graphs adjacency matrices and adjacency lists 2 Implementing the Breadth-First and Depth-First Search Algorithms implementing the breadth-first search algorithm

More information

Computational Geometry Overview from Cormen, et al.

Computational Geometry Overview from Cormen, et al. UMass Lowell Computer Science 91.503 Graduate Algorithms Prof. Karen Daniels Spring, 2014 Computational Geometry Overview from Cormen, et al. Chapter 33 (with additional material from other sources) 1

More information

Introduction to Algorithms Third Edition

Introduction to Algorithms Third Edition Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein Introduction to Algorithms Third Edition The MIT Press Cambridge, Massachusetts London, England Preface xiü I Foundations Introduction

More information

Let the dynamic table support the operations TABLE-INSERT and TABLE-DELETE It is convenient to use the load factor ( )

Let the dynamic table support the operations TABLE-INSERT and TABLE-DELETE It is convenient to use the load factor ( ) 17.4 Dynamic tables Let us now study the problem of dynamically expanding and contracting a table We show that the amortized cost of insertion/ deletion is only (1) Though the actual cost of an operation

More information

22 Elementary Graph Algorithms. There are two standard ways to represent a

22 Elementary Graph Algorithms. There are two standard ways to represent a VI Graph Algorithms Elementary Graph Algorithms Minimum Spanning Trees Single-Source Shortest Paths All-Pairs Shortest Paths 22 Elementary Graph Algorithms There are two standard ways to represent a graph

More information

Algorithm Design and Analysis

Algorithm Design and Analysis Algorithm Design and Analysis LECTURE 3 Data Structures Graphs Traversals Strongly connected components Sofya Raskhodnikova L3.1 Measuring Running Time Focus on scalability: parameterize the running time

More information

CSci 231 Final Review

CSci 231 Final Review CSci 231 Final Review Here is a list of topics for the final. Generally you are responsible for anything discussed in class (except topics that appear italicized), and anything appearing on the homeworks.

More information

Advanced Algorithms Computational Geometry Prof. Karen Daniels. Spring, 2010

Advanced Algorithms Computational Geometry Prof. Karen Daniels. Spring, 2010 UMass Lowell Computer Science 91.504 Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 Lecture 3 O Rourke Chapter 3: 2D Convex Hulls Thursday, 2/18/10 Chapter 3 2D Convex Hulls

More information

Outline for Today. Why could we construct them in time O(n)? Analyzing data structures over the long term.

Outline for Today. Why could we construct them in time O(n)? Analyzing data structures over the long term. Amortized Analysis Outline for Today Euler Tour Trees A quick bug fix from last time. Cartesian Trees Revisited Why could we construct them in time O(n)? Amortized Analysis Analyzing data structures over

More information

Homework #5 Algorithms I Spring 2017

Homework #5 Algorithms I Spring 2017 Homework #5 Algorithms I 600.463 Spring 2017 Due on: Saturday, March 18th, 11:59pm Late submissions: will NOT be accepted Format: Please start each problem on a new page. Where to submit: On Gradescope,

More information

Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 3.. NIL. 2. error new key is greater than current key 6. CASCADING-CUT(, )

Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 3.. NIL. 2. error new key is greater than current key 6. CASCADING-CUT(, ) Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 1. if >. 2. error new key is greater than current key 3.. 4.. 5. if NIL and.

More information

CPS 231 Exam 2 SOLUTIONS

CPS 231 Exam 2 SOLUTIONS CPS 231 Exam 2 SOLUTIONS Fall 2003 1:00-2:25, Tuesday November 20th Closed book exam NAME: Problem Max Obtained 1 10 2 25 3 (a) 15 3 (b) 15 3 (c) 10 4 (a) 10 4 (b) 15 4 (c) 10 Total 110 1 [10 points ]

More information

END-TERM EXAMINATION

END-TERM EXAMINATION (Please Write your Exam Roll No. immediately) Exam. Roll No... END-TERM EXAMINATION Paper Code : MCA-205 DECEMBER 2006 Subject: Design and analysis of algorithm Time: 3 Hours Maximum Marks: 60 Note: Attempt

More information

UML CS Algorithms Qualifying Exam Spring, 2004 ALGORITHMS QUALIFYING EXAM

UML CS Algorithms Qualifying Exam Spring, 2004 ALGORITHMS QUALIFYING EXAM NAME: This exam is open: - books - notes and closed: - neighbors - calculators ALGORITHMS QUALIFYING EXAM The upper bound on exam time is 3 hours. Please put all your work on the exam paper. (Partial credit

More information

Lecture 1 (Part 1) Introduction/Overview

Lecture 1 (Part 1) Introduction/Overview UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2013 Lecture 1 (Part 1) Introduction/Overview Monday, 9/9/13 Web Page Web Page http://www.cs.uml.edu/~kdaniels/courses/alg_503_f13.html

More information

Dynamic tables. Amortized Analysis. Example of a dynamic table. Example of a dynamic table. CS Spring 2008

Dynamic tables. Amortized Analysis. Example of a dynamic table. Example of a dynamic table. CS Spring 2008 CS 56 -- Spring 008 Amortized Analysis Carola Wenk Slides courtesy of Charles Leiserson with small changes by Carola Wenk CS 56 Analysis of Algorithms Dynamic tables Task: Store a dynamic set in a table/array.

More information

managing an evolving set of connected components implementing a Union-Find data structure implementing Kruskal s algorithm

managing an evolving set of connected components implementing a Union-Find data structure implementing Kruskal s algorithm Spanning Trees 1 Spanning Trees the minimum spanning tree problem three greedy algorithms analysis of the algorithms 2 The Union-Find Data Structure managing an evolving set of connected components implementing

More information

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17 01.433/33 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/2/1.1 Introduction In this lecture we ll talk about a useful abstraction, priority queues, which are

More information

LECTURE 17 GRAPH TRAVERSALS

LECTURE 17 GRAPH TRAVERSALS DATA STRUCTURES AND ALGORITHMS LECTURE 17 GRAPH TRAVERSALS IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD STRATEGIES Traversals of graphs are also called searches We can use either breadth-first

More information

1 The Shortest Path Problem

1 The Shortest Path Problem CS161 Lecture 11 Single Source Shortest Paths Scribed by: Romil Verma (2015), Virginia Date: May 8, 2016 1 The Shortest Path Problem In this lecture, we ll discuss the shortest path problem. Assume we

More information

D. Θ nlogn ( ) D. Ο. ). Which of the following is not necessarily true? . Which of the following cannot be shown as an improvement? D.

D. Θ nlogn ( ) D. Ο. ). Which of the following is not necessarily true? . Which of the following cannot be shown as an improvement? D. CSE 0 Name Test Fall 00 Last Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to convert an array, with priorities stored at subscripts through n,

More information

( ) D. Θ ( ) ( ) Ο f ( n) ( ) Ω. C. T n C. Θ. B. n logn Ο

( ) D. Θ ( ) ( ) Ο f ( n) ( ) Ω. C. T n C. Θ. B. n logn Ο CSE 0 Name Test Fall 0 Multiple Choice. Write your answer to the LEFT of each problem. points each. The expected time for insertion sort for n keys is in which set? (All n! input permutations are equally

More information

Solutions to Problem Set 3

Solutions to Problem Set 3 G22.3250-001 Honors Analysis of Algorithms November 3, 2016 Solutions to Problem Set 3 Name: Daniel Wichs (TA) Due: October 27, 2008 Problem 1 Given a tree with (possibly negative) weights assigned to

More information

( ) + n. ( ) = n "1) + n. ( ) = T n 2. ( ) = 2T n 2. ( ) = T( n 2 ) +1

( ) + n. ( ) = n 1) + n. ( ) = T n 2. ( ) = 2T n 2. ( ) = T( n 2 ) +1 CSE 0 Name Test Summer 00 Last Digits of Student ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. Suppose you are sorting millions of keys that consist of three decimal

More information

Algorithm Analysis. (Algorithm Analysis ) Data Structures and Programming Spring / 48

Algorithm Analysis. (Algorithm Analysis ) Data Structures and Programming Spring / 48 Algorithm Analysis (Algorithm Analysis ) Data Structures and Programming Spring 2018 1 / 48 What is an Algorithm? An algorithm is a clearly specified set of instructions to be followed to solve a problem

More information

Name: Lirong TAN 1. (15 pts) (a) Define what is a shortest s-t path in a weighted, connected graph G.

Name: Lirong TAN 1. (15 pts) (a) Define what is a shortest s-t path in a weighted, connected graph G. 1. (15 pts) (a) Define what is a shortest s-t path in a weighted, connected graph G. A shortest s-t path is a path from vertex to vertex, whose sum of edge weights is minimized. (b) Give the pseudocode

More information

22 Elementary Graph Algorithms. There are two standard ways to represent a

22 Elementary Graph Algorithms. There are two standard ways to represent a VI Graph Algorithms Elementary Graph Algorithms Minimum Spanning Trees Single-Source Shortest Paths All-Pairs Shortest Paths 22 Elementary Graph Algorithms There are two standard ways to represent a graph

More information

Analysis of Algorithms Prof. Karen Daniels

Analysis of Algorithms Prof. Karen Daniels UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Spring, 2010 Lecture 2 Tuesday, 2/2/10 Design Patterns for Optimization Problems Greedy Algorithms Algorithmic Paradigm Context

More information

CS 161 Fall 2015 Final Exam

CS 161 Fall 2015 Final Exam CS 161 Fall 2015 Final Exam Name: Student ID: 1: 2: 3: 4: 5: 6: 7: 8: Total: 1. (15 points) Let H = [24, 21, 18, 15, 12, 9, 6, 3] be an array of eight numbers, interpreted as a binary heap with the maximum

More information

l Heaps very popular abstract data structure, where each object has a key value (the priority), and the operations are:

l Heaps very popular abstract data structure, where each object has a key value (the priority), and the operations are: DDS-Heaps 1 Heaps - basics l Heaps very popular abstract data structure, where each object has a key value (the priority), and the operations are: l insert an object, find the object of minimum key (find

More information

UML CS Algorithms Qualifying Exam Fall, 2003 ALGORITHMS QUALIFYING EXAM

UML CS Algorithms Qualifying Exam Fall, 2003 ALGORITHMS QUALIFYING EXAM NAME: This exam is open: - books - notes and closed: - neighbors - calculators ALGORITHMS QUALIFYING EXAM The upper bound on exam time is 3 hours. Please put all your work on the exam paper. (Partial credit

More information

Analysis of Algorithms

Analysis of Algorithms Second Edition Design and Analysis of Algorithms Prabhakar Gupta Vineet Agarwal Manish Varshney Design and Analysis of ALGORITHMS SECOND EDITION PRABHAKAR GUPTA Professor, Computer Science and Engineering

More information

Advanced Algorithms and Data Structures

Advanced Algorithms and Data Structures Advanced Algorithms and Data Structures Prof. Tapio Elomaa Course Basics A new 7 credit unit course Replaces OHJ-2156 Analysis of Algorithms We take things a bit further than OHJ-2156 We will assume familiarity

More information

Graph: representation and traversal

Graph: representation and traversal Graph: representation and traversal CISC4080, Computer Algorithms CIS, Fordham Univ. Instructor: X. Zhang! Acknowledgement The set of slides have use materials from the following resources Slides for textbook

More information

I want my two dollars!

I want my two dollars! The goode workes that men don whil they ben in good lif al amortised by synne folwyng. Geoffrey Chaucer, The Persones [Parson s] Tale (c.1400) I will gladly pay you Tuesday for a hamburger today. I want

More information

COMP 251 Winter 2017 Online quizzes with answers

COMP 251 Winter 2017 Online quizzes with answers COMP 251 Winter 2017 Online quizzes with answers Open Addressing (2) Which of the following assertions are true about open address tables? A. You cannot store more records than the total number of slots

More information

( ) 1 B. 1. Suppose f x

( ) 1 B. 1. Suppose f x CSE Name Test Spring Last Digits of Student ID Multiple Choice. Write your answer to the LEFT of each problem. points each is a monotonically increasing function. Which of the following approximates the

More information

Lecture 3. Brute Force

Lecture 3. Brute Force Lecture 3 Brute Force 1 Lecture Contents 1. Selection Sort and Bubble Sort 2. Sequential Search and Brute-Force String Matching 3. Closest-Pair and Convex-Hull Problems by Brute Force 4. Exhaustive Search

More information

The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value

The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value 1 Possible implementations Sorted linear implementations o Appropriate if

More information

Algorithm Design and Analysis

Algorithm Design and Analysis Algorithm Design and Analysis LECTURE 7 Greedy Graph Algorithms Topological sort Shortest paths Adam Smith The (Algorithm) Design Process 1. Work out the answer for some examples. Look for a general principle

More information

UML CS Algorithms Qualifying Exam Fall, 2004 ALGORITHMS QUALIFYING EXAM

UML CS Algorithms Qualifying Exam Fall, 2004 ALGORITHMS QUALIFYING EXAM ALGORITHMS QUALIFYING EXAM This exam is open books & notes and closed neighbors & calculators. The upper bound on exam time is 3 hours. Please put all your work on the exam paper. Please write your name

More information

Lecture 8 13 March, 2012

Lecture 8 13 March, 2012 6.851: Advanced Data Structures Spring 2012 Prof. Erik Demaine Lecture 8 13 March, 2012 1 From Last Lectures... In the previous lecture, we discussed the External Memory and Cache Oblivious memory models.

More information

2 A Template for Minimum Spanning Tree Algorithms

2 A Template for Minimum Spanning Tree Algorithms CS, Lecture 5 Minimum Spanning Trees Scribe: Logan Short (05), William Chen (0), Mary Wootters (0) Date: May, 0 Introduction Today we will continue our discussion of greedy algorithms, specifically in

More information

Graph Algorithms: Chapters Part 1: Introductory graph concepts

Graph Algorithms: Chapters Part 1: Introductory graph concepts UMass Lowell Computer Science 91.503 Algorithms Dr. Haim Levkowitz Fall, 2007 Graph Algorithms: Chapters 22-25 Part 1: Introductory graph concepts 1 91.404 Graph Review Elementary Graph Algorithms Minimum

More information

CSE 548: (Design and) Analysis of Algorithms

CSE 548: (Design and) Analysis of Algorithms Intro Aggregate Charging Potential Table resizing Disjoint sets 1 / 33 CSE 548: (Design and) Analysis of Algorithms Amortized Analysis R. Sekar Intro Aggregate Charging Potential Table resizing Disjoint

More information

n 2 ( ) ( ) Ο f ( n) ( ) Ω B. n logn Ο

n 2 ( ) ( ) Ο f ( n) ( ) Ω B. n logn Ο CSE 220 Name Test Fall 20 Last 4 Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. 4 points each. The time to compute the sum of the n elements of an integer array is in:

More information

Course Review. Cpt S 223 Fall 2009

Course Review. Cpt S 223 Fall 2009 Course Review Cpt S 223 Fall 2009 1 Final Exam When: Tuesday (12/15) 8-10am Where: in class Closed book, closed notes Comprehensive Material for preparation: Lecture slides & class notes Homeworks & program

More information

Brute Force: Selection Sort

Brute Force: Selection Sort Brute Force: Intro Brute force means straightforward approach Usually based directly on problem s specs Force refers to computational power Usually not as efficient as elegant solutions Advantages: Applicable

More information

The resulting array is written as row i + 1 in our matrix:

The resulting array is written as row i + 1 in our matrix: Homework 5 Solutions Fundamental Algorithms, Fall 2004, Professor Yap Due: Thu December 9, in class SOLUTION PREPARED BY Instructor and T.A.s Ariel Cohen and Vikram Sharma INSTRUCTIONS: NOTICE: In the

More information

MA/CSSE 473 Day 12. Questions? Insertion sort analysis Depth first Search Breadth first Search. (Introduce permutation and subset generation)

MA/CSSE 473 Day 12. Questions? Insertion sort analysis Depth first Search Breadth first Search. (Introduce permutation and subset generation) MA/CSSE 473 Day 12 Interpolation Search Insertion Sort quick review DFS, BFS Topological Sort MA/CSSE 473 Day 12 Questions? Interpolation Search Insertion sort analysis Depth first Search Breadth first

More information

( ) ( ) C. " 1 n. ( ) $ f n. ( ) B. " log( n! ) ( ) and that you already know ( ) ( ) " % g( n) ( ) " #&

( ) ( ) C.  1 n. ( ) $ f n. ( ) B.  log( n! ) ( ) and that you already know ( ) ( )  % g( n) ( )  #& CSE 0 Name Test Summer 008 Last 4 Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time for the following code is in which set? for (i=0; i

More information

Introduction to Algorithms / Algorithms I Lecturer: Michael Dinitz Topic: Shortest Paths Date: 10/13/15

Introduction to Algorithms / Algorithms I Lecturer: Michael Dinitz Topic: Shortest Paths Date: 10/13/15 600.363 Introduction to Algorithms / 600.463 Algorithms I Lecturer: Michael Dinitz Topic: Shortest Paths Date: 10/13/15 14.1 Introduction Today we re going to talk about algorithms for computing shortest

More information

( D. Θ n. ( ) f n ( ) D. Ο%

( D. Θ n. ( ) f n ( ) D. Ο% CSE 0 Name Test Spring 0 Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to run the code below is in: for i=n; i>=; i--) for j=; j

More information

CS 373: Combinatorial Algorithms, Spring 1999

CS 373: Combinatorial Algorithms, Spring 1999 CS 373: Combinatorial Algorithms, Spring 1999 Final Exam (May 7, 1999) Name: Net ID: Alias: This is a closed-book, closed-notes exam! If you brought anything with you besides writing instruments and your

More information

( ) n 3. n 2 ( ) D. Ο

( ) n 3. n 2 ( ) D. Ο CSE 0 Name Test Summer 0 Last Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to multiply two n n matrices is: A. Θ( n) B. Θ( max( m,n, p) ) C.

More information

Graph Representations and Traversal

Graph Representations and Traversal COMPSCI 330: Design and Analysis of Algorithms 02/08/2017-02/20/2017 Graph Representations and Traversal Lecturer: Debmalya Panigrahi Scribe: Tianqi Song, Fred Zhang, Tianyu Wang 1 Overview This lecture

More information

Greedy Approach: Intro

Greedy Approach: Intro Greedy Approach: Intro Applies to optimization problems only Problem solving consists of a series of actions/steps Each action must be 1. Feasible 2. Locally optimal 3. Irrevocable Motivation: If always

More information

W4231: Analysis of Algorithms

W4231: Analysis of Algorithms W4231: Analysis of Algorithms 10/21/1999 Definitions for graphs Breadth First Search and Depth First Search Topological Sort. Graphs AgraphG is given by a set of vertices V and a set of edges E. Normally

More information

Direct Addressing Hash table: Collision resolution how handle collisions Hash Functions:

Direct Addressing Hash table: Collision resolution how handle collisions Hash Functions: Direct Addressing - key is index into array => O(1) lookup Hash table: -hash function maps key to index in table -if universe of keys > # table entries then hash functions collision are guaranteed => need

More information

Outline for Today. Analyzing data structures over the long term. Why could we construct them in time O(n)? A simple and elegant queue implementation.

Outline for Today. Analyzing data structures over the long term. Why could we construct them in time O(n)? A simple and elegant queue implementation. Amortized Analysis Outline for Today Amortized Analysis Analyzing data structures over the long term. Cartesian Trees Revisited Why could we construct them in time O(n)? The Two-Stack Queue A simple and

More information

Algorithm Theory, Winter Term 2015/16 Problem Set 5 - Sample Solution

Algorithm Theory, Winter Term 2015/16 Problem Set 5 - Sample Solution Albert-Ludwigs-Universität, Inst. für Informatik Prof. Dr. Fabian Kuhn M. Ahmadi, O. Saukh, A. R. Molla November, 20 Algorithm Theory, Winter Term 20/6 Problem Set - Sample Solution Exercise : Amortized

More information

Outline. Computer Science 331. Definitions: Paths and Their Costs. Computation of Minimum Cost Paths

Outline. Computer Science 331. Definitions: Paths and Their Costs. Computation of Minimum Cost Paths Outline Computer Science 33 Computation of Minimum-Cost Paths Dijkstra s Mike Jacobson Department of Computer Science University of Calgary Lecture #34 Dijkstra s to Find Min-Cost Paths 3 Example 4 5 References

More information

Multiple Choice. Write your answer to the LEFT of each problem. 3 points each

Multiple Choice. Write your answer to the LEFT of each problem. 3 points each CSE 0-00 Test Spring 0 Name Last 4 Digits of Student ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. Suppose f ( x) is a monotonically increasing function. Which of the

More information

Advanced Algorithms and Data Structures

Advanced Algorithms and Data Structures Advanced Algorithms and Data Structures Prof. Tapio Elomaa tapio.elomaa@tut.fi Course Prerequisites A seven credit unit course Replaced OHJ-2156 Analysis of Algorithms We take things a bit further than

More information

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA INTERNAL ASSESSMENT TEST 2 Date : 30/3/15 Max Marks : 50 Name of faculty : Sabeeha Sultana Subject & Code : ADA(13MCA41) Answer any five full question: 1.Illustrate Mergesort for the dataset 8,3,2,9,7,1,5,4.

More information

Review for Midterm Exam

Review for Midterm Exam Review for Midterm Exam 1 Policies and Overview midterm exam policies overview of problems, algorithms, data structures overview of discrete mathematics 2 Sample Questions on the cost functions of algorithms

More information

CS 532: 3D Computer Vision 14 th Set of Notes

CS 532: 3D Computer Vision 14 th Set of Notes 1 CS 532: 3D Computer Vision 14 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215 Lecture Outline Triangulating

More information

Lecture 1. Introduction

Lecture 1. Introduction Lecture 1 Introduction 1 Lecture Contents 1. What is an algorithm? 2. Fundamentals of Algorithmic Problem Solving 3. Important Problem Types 4. Fundamental Data Structures 2 1. What is an Algorithm? Algorithm

More information

Lecture 6 Basic Graph Algorithms

Lecture 6 Basic Graph Algorithms CS 491 CAP Intro to Competitive Algorithmic Programming Lecture 6 Basic Graph Algorithms Uttam Thakore University of Illinois at Urbana-Champaign September 30, 2015 Updates ICPC Regionals teams will be

More information

Homework 2. Sample Solution. Due Date: Thursday, May 31, 11:59 pm

Homework 2. Sample Solution. Due Date: Thursday, May 31, 11:59 pm Homework Sample Solution Due Date: Thursday, May 31, 11:59 pm Directions: Your solutions should be typed and submitted as a single pdf on Gradescope by the due date. L A TEX is preferred but not required.

More information

Fast Hierarchical Clustering via Dynamic Closest Pairs

Fast Hierarchical Clustering via Dynamic Closest Pairs Fast Hierarchical Clustering via Dynamic Closest Pairs David Eppstein Dept. Information and Computer Science Univ. of California, Irvine http://www.ics.uci.edu/ eppstein/ 1 My Interest In Clustering What

More information

9. Which situation is true regarding a cascading cut that produces c trees for a Fibonacci heap?

9. Which situation is true regarding a cascading cut that produces c trees for a Fibonacci heap? 1 1 Name Test 1 - Closed Book Student ID # Multiple Choice. Write your answer to the LEFT of each problem. points each 1. During which operation on a leftist heap may subtree swaps be needed? A. DECREASE-KEY

More information

CS 161 Lecture 11 BFS, Dijkstra s algorithm Jessica Su (some parts copied from CLRS) 1 Review

CS 161 Lecture 11 BFS, Dijkstra s algorithm Jessica Su (some parts copied from CLRS) 1 Review 1 Review 1 Something I did not emphasize enough last time is that during the execution of depth-firstsearch, we construct depth-first-search trees. One graph may have multiple depth-firstsearch trees,

More information