Input: n jobs (associated start time s j, finish time f j, and value v j ) for j = 1 to n M[j] = empty M[0] = 0. M-Compute-Opt(n)
|
|
- Avis Perkins
- 6 years ago
- Views:
Transcription
1 Objec&ves Dnamic Programming Ø Wrapping up: weighted interval schedule Ø Ø Subset Sums Summar: Proper&es of Problems for DP Polnomial number of subproblems Solu&on to original problem can be easil computed from solu&ons to subproblems Natural ordering of subproblems, eas to compute recurrence ar 25, 216 SI211 - Sprenkle 1 ar 25, 216 SI211 - Sprenkle 2 Review: Weighted Interval Scheduling Job j starts at s j, finishes at f j, and has weight or value v j Two jobs are compa&ble if the don't overlap Goal: find maimum weight subset of mutuall compa&ble jobs ar 25, 216 SI211 - Sprenkle 3 Weighted Interval Scheduling: emoiza&on nalsis Input: n jobs (associated start time s j, finish time f j, and value v j ) Sort jobs b finish times so that f 1 f 2... f n O(n log n) ompute p(1), p(2),, p(n) O(n log n) [j] = empt [] = -ompute-opt(j): if [j] is empt: [j] = ma(v j + -ompute-opt(p(j)), -ompute-opt(j-1)) return [j] -ompute-opt(n) ar 25, 216 SI211 - Sprenkle 4 Weighted Interval Scheduling: Finding a Solu&on Dnamic programming algorithms compute op#mal value What if we want the solu#on itself (not simpl the value)? Do some post-processing -ompute-opt(n) Find-Solution(n) Runtime? def Find-Solution(j): if j = : output nothing elif v j + [p(j)] > [j-1]: print j Find-Solution(p(j)) else: ar 25, 216 Find-Solution(j-1) SI211 - Sprenkle 5 Turning it round We solved the Fibonacci problem as both recursive/memoized and an itera+ve algorithm an we write this algorithm as an iterative solution? Input: n jobs (associated start time s j, finish time f j, and value v j ) Sort jobs b finish times so that f 1 f 2... f n ompute p(1), p(2),, p(n) [j] = empt [] = -ompute-opt(j): if [j] is empt: [j] = ma(v j + -ompute-opt(p(j)), -ompute-opt(j-1)) return [j] -ompute-opt(n) ar 25, 216 SI211 - Sprenkle 6 1
2 Towards Itera&ve Solu&on p(j) D F G H Itera&ve Solu&on uild up solu&on from subproblems instead of breaking down Input: n, s 1,,s n, f 1,,f n, v 1,,v n Sort jobs b finish times so that f 1 f 2... f n. ompute p(1), p(2),, p(n) [] = [j] = ma(v j + [p(j)], [j-1]) Runtime? Tpicall, we ll take itera&ve approach ar 25, 216 SI211 - Sprenkle 7 ar 25, 216 SI211 - Sprenkle 8 ample: Itera&vel p(j) ample: Itera&vel [j] = ma(v j + [p(j)], [j-1]) D F G H ar 25, 216 SI211 - Sprenkle 9 D F G H ar 25, 216 SI211 - Sprenkle 1 ample: Itera&vel [j] = ma(v j + [p(j)], [j-1]) ample: Itera&vel [j] = ma(v j + [p(j)], [j-1]) D F G H 1 ar 25, 216 SI211 - Sprenkle 11 D F G H 1 ar 25, 216 SI211 - Sprenkle 12 2
3 ample: Itera&vel [j] = ma(v j + [p(j)], [j-1]) ample: Itera&vel [j] = ma(v j + [p(j)], [j-1]) D F G H 1 2 ar 25, 216 SI211 - Sprenkle 13 D F G H ar 25, 216 SI211 - Sprenkle 14 ample: Itera&vel [j] = ma(v j + [p(j)], [j-1]) ample: Itera&vel [j] = ma(v j + [p(j)], [j-1]) D F G H ar 25, 216 SI211 - Sprenkle 15 D F G H ar 25, 216 SI211 - Sprenkle nd so on. 16 ample: Itera&vel [j] = ma(v j + [p(j)], [j-1]) Find the solution? D F G H ar 25, 216 SI211 - Sprenkle 17 Review: Weighted Interval Scheduling 1. Determine op&mal substructure of problem Ø Define the recurrence rela&on 2. Define algorithm to find the value of op&mal solu&on 3. Op&onall, change algorithm to an itera#ve rather than recursive solu&on 4. Define algorithm to find op#mal solu#on 5. nalze running &me of algorithms ap to weighted-interval scheduling ar 25, 216 SI211 - Sprenkle 18 3
4 SGNTD LST SQURS Founda&onal problem in sta&s&c and numerical analsis Given n points in the plane: ( 1, 1 ), ( 2, 2 ),..., ( n, n ) Find a line = a + b that minimizes the sum of the squared error Ø line of best fit Sum of squared error n SS = ( i a i b) 2 i=1 ar 25, 216 SI211 - Sprenkle 19 ar 25, 216 SI211 - Sprenkle 2 Founda&onal problem in sta&s&c and numerical analsis Given n points in the plane: ( 1, 1 ), ( 2, 2 ),..., ( n, n ) Find a line = a + b that minimizes the sum of the squared error Ø line of best fit What happens to the error if we tr to fit one line to these points? Sum of squared error n SS = ( i a i b) 2 i=1 losed form solu&on. alculus min error is achieved when a = n i i i ( i i ) ( i i ) i, b = n 2 i ( i ) 2 i i i a i i ar 25, 216 SI211 - Sprenkle 21 n What paiern does it seem like these points have? ar 25, 216 SI211 - Sprenkle 22 What happens to the error if we tr to fit one line to these points? Ø Large error Points lie roughl on a sequence of line segments Given n points in the plane ( 1, 1 ), ( 2, 2 ),..., ( n, n ) with 1 < 2 <... < n, find a sequence of line segments that minimizes f() If I want the best fit, how man lines should I use? Paiern: ore like 3 lines ar 25, 216 SI211 - Sprenkle 23 ar 25, 216 SI211 - Sprenkle 24 4
5 Points lie roughl on a sequence of line segments Given n points in the plane ( 1, 1 ), ( 2, 2 ),..., ( n, n ) with 1 < 2 <... < n, find a sequence of line segments that minimizes f() What's a reasonable choice for f() to balance accurac and parsimon? goodness of fit number of lines Points lie roughl on a sequence of several line segments. Given n points in the plane ( 1, 1 ), ( 2, 2 ),..., ( n, n ) with 1 < 2 <... < n, find a sequence of line segments that minimizes: Ø : sum of the sums of the squared errors in each segment Ø L: the number of lines Tradeoff func+on: + c L, for some constant c >. How should we define an optimal solution? ar 25, 216 SI211 - Sprenkle 25 ar 25, 216 SI211 - Sprenkle 26 What made it seem like the points were in 3 lines? What happened? What made it seem like the points were in 3 lines? What happened? ar 25, 216 SI211 - Sprenkle 27 rror increased Looking for change in linear approima&on Ø Where to par&&on points into line segments ar 25, 216 SI211 - Sprenkle 28 Recall: Proper&es of Problems for DP Polnomial number of subproblems Solu&on to original problem can be easil computed from solu&ons to subproblems Natural ordering of subproblems, eas to compute recurrence We need to: Figure out how to break the problem into subproblems Figure out how to compute solution from subproblems Define the recurrence relation between the problems Toward a Solu&on onsider just the first or last point What do we know about those points? their segments? cost of a segment? ar 25, 216 SI211 - Sprenkle 29 ar 25, 216 SI211 - Sprenkle 3 5
6 Toward a Solu&on p n can onl belong to one segment Ø Segment: p i,, p n Ø ost: c (cost for segment) + error of segment What is the remaining problem? Toward a Solu&on p n can onl belong to one segment Ø Segment: p i,, p n Ø ost: c (cost for segment) + error of segment What is the remaining problem? Ø Solve for p 1,, p i-1 Net: Formulate as a recurrence ar 25, 216 SI211 - Sprenkle 31 ar 25, 216 SI211 - Sprenkle 32 Dnamic Programming: ul&wa hoice Nota&on. Ø OPT(j) = minimum cost for points p 1, p i+1,, p j. Ø e(i, j) = minimum sum of squares for points p i, p i+1,, p j. How do we compute OPT(j)? Ø Last problem: binar decision (include job or not) Ø This &me: mul+wa decision Which op&on do we choose? ar 25, 216 SI211 - Sprenkle 33 Dnamic Programming: ul&wa hoice Nota&on. Ø OPT(j) = minimum cost for points p 1, p i+1,, p j. Ø e(i, j) = minimum sum of squares for points p i, p i+1,, p j. To compute OPT(j): Ø Last segment contains points p i, p i+1,, p j for some i Ø ost = e(i, j) + c + OPT(i-1). $ & if j = OPT( j) = % min { e(i, j) + c + OPT(i 1) } otherwise '& 1 i j ar 25, 216 SI211 - Sprenkle 34 : lgorithm INPUT: n, p 1,,p N, c Segmented-Least-Squares() [] = e[][] = # needed? for i = 1 to j e[i][j] = least square error for the segment p i,, p j [j] = min 1 i j (e[i][j] + c + [i-1]) return [n] osts? ar 25, 216 SI211 - Sprenkle 35 : lgorithm nalsis INPUT: n, p 1,,p N, c can be improved to O(n 2 ) b Segmented-Least-Squares() pre-computing various statistics [] = e[][] = for i = 1 to j O(n 3 ) e[i][j] = least square error for the segment p i,, p j O(n 2 ) [j] = min 1 i j (e[i][j] + c + [i-1]) return [n] How do we find the solution? can be improved to O(n 2 ) b pre-computing various statistics oileneck: compu&ng e(i, j) for O(n 2 ) pairs, per pair using previous formula ar 25, 216 SI211 - Sprenkle 36 6
7 Post-Processing: Finding the Solu&on FindSegments(j): if j = : output nothing else: Find an i that minimizes e i,j + c + [i-1] Output the segment {p i,, p j } FindSegments(i-1) ost? O(n 2 ) Dnamic Programming Process Determine op&mal substructure of problem Ø Define the recurrence rela&on Define algorithm to find the value of op&mal solu&on Op&onall, change algorithm to an itera#ve rather than recursive solu&on Define algorithm to find op#mal solu#on nalze running &me of algorithms ar 25, 216 SI211 - Sprenkle 37 ar 25, 216 SI211 - Sprenkle 38 Looking head Wiki onda Ø Sec&ons Problem Set 8 due Frida ar 25, 216 SI211 - Sprenkle 39 7
Dynamic Programming. Applications. Applications. Applications. Algorithm Design 6.1, 6.2, 6.3
Set of weighted intervals with start and finishing times Goal: find maimum weight subset of non-overlapping intervals Dnamic Programming Algorithm Design.,.,. j j j j8 Given n points in the plane find
More informationAlgorithmic Paradigms
Algorithmic Paradigms Greedy. Build up a solution incrementally, myopically optimizing some local criterion. Divide-and-conquer. Break up a problem into two or more sub -problems, solve each sub-problem
More informationmemoization or iteration over subproblems the direct iterative algorithm a basic outline of dynamic programming
Dynamic Programming 1 Introduction to Dynamic Programming weighted interval scheduling the design of a recursive solution memoizing the recursion 2 Principles of Dynamic Programming memoization or iteration
More informationChapter 6. Dynamic Programming. Modified from slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 6 Dynamic Programming Modified from slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 Think recursively (this week)!!! Divide & conquer and Dynamic programming
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 16 Dynamic Programming (plus FFT Recap) Adam Smith 9/24/2008 A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne Discrete Fourier Transform
More informationAlgorithmic Paradigms. Chapter 6 Dynamic Programming. Steps in Dynamic Programming. Dynamic Programming. Dynamic Programming Applications
lgorithmic Paradigms reed. Build up a solution incrementally, only optimizing some local criterion. hapter Dynamic Programming Divide-and-conquer. Break up a problem into two sub-problems, solve each sub-problem
More informationDynamic Programming. Introduction, Weighted Interval Scheduling, Knapsack. Tyler Moore. Lecture 15/16
Dynamic Programming Introduction, Weighted Interval Scheduling, Knapsack Tyler Moore CSE, SMU, Dallas, TX Lecture /6 Greedy. Build up a solution incrementally, myopically optimizing some local criterion.
More informationSpecial Topics on Algorithms Fall 2017 Dynamic Programming. Vangelis Markakis, Ioannis Milis and George Zois
Special Topics on Algorithms Fall 2017 Dynamic Programming Vangelis Markakis, Ioannis Milis and George Zois Basic Algorithmic Techniques Content Dynamic Programming Introduc
More informationOutline. CS38 Introduction to Algorithms. Fast Fourier Transform (FFT) Fast Fourier Transform (FFT) Fast Fourier Transform (FFT)
Outline CS8 Introduction to Algorithms Lecture 9 April 9, 0 Divide and Conquer design paradigm matrix multiplication Dynamic programming design paradigm Fibonacci numbers weighted interval scheduling knapsack
More informationCMSC 451: Lecture 10 Dynamic Programming: Weighted Interval Scheduling Tuesday, Oct 3, 2017
CMSC 45 CMSC 45: Lecture Dynamic Programming: Weighted Interval Scheduling Tuesday, Oct, Reading: Section. in KT. Dynamic Programming: In this lecture we begin our coverage of an important algorithm design
More information12 Dynamic Programming (2) Matrix-chain Multiplication Segmented Least Squares
12 Dynamic Programming (2) Matrix-chain Multiplication Segmented Least Squares Optimal substructure Dynamic programming is typically applied to optimization problems. An optimal solution to the original
More informationChapter 6. Dynamic Programming
Chapter 6 Dynamic Programming We began our study of algorithmic techniques with greedy algorithms, which in some sense form the most natural approach to algorithm design. Faced with a new computational
More informationLectures 12 and 13 Dynamic programming: weighted interval scheduling
Lectures 12 and 13 Dynamic programming: weighted interval scheduling COMP 523: Advanced Algorithmic Techniques Lecturer: Dariusz Kowalski Lectures 12-13: Dynamic Programming 1 Overview Last week: Graph
More informationDivide and conquer algorithms. March 12, 2018 CSCI211 - Sprenkle. What is a recurrence rela&on? How can you compute D&C running &mes?
Objec&ves Divide and conquer algorithms Ø Coun&ng inversions Ø Closest pairs of points March 1, 018 CSCI11 - Sprenkle 1 Review What is a recurrence rela&on? How can you compute D&C running &mes? March
More informationObjec&ves. Review. Directed Graphs: Strong Connec&vity Greedy Algorithms
Objec&ves Directed Graphs: Strong Connec&vity Greedy Algorithms Ø Interval Scheduling Feb 7, 2018 CSCI211 - Sprenkle 1 Review Compare and contrast directed and undirected graphs What is a topological ordering?
More informationCS583 Lecture 10. Graph Algorithms Shortest Path Algorithms Dynamic Programming. Many slides here are based on D. Luebke slides.
// S58 Lecture Jana Kosecka Graph lgorithms Shortest Path lgorithms Dynamic Programming Many slides here are based on D. Luebke slides Previously Depth first search DG s - topological sort - strongly connected
More informationCMSC 451: Dynamic Programming
CMSC 41: Dynamic Programming Slides By: Carl Kingsford Department of Computer Science University of Maryland, College Park Based on Sections 6.1&6.2 of Algorithm Design by Kleinberg & Tardos. Dynamic Programming
More informationDynamic Programming. Nothing to do with dynamic and nothing to do with programming.
Dynamic Programming Deliverables Dynamic Programming basics Binomial Coefficients Weighted Interval Scheduling Matrix Multiplication /1 Knapsack Longest Common Subsequence 6/12/212 6:56 PM copyright @
More informationReview implementation of Stable Matching Survey of common running times. Turn in completed problem sets. Jan 18, 2019 Sprenkle - CSCI211
Objectives Review implementation of Stable Matching Survey of common running times Turn in completed problem sets Jan 18, 2019 Sprenkle - CSCI211 1 Review: Asymptotic Analysis of Gale-Shapley Alg Not explicitly
More informationIntroduction to Algorithms / Algorithms I Lecturer: Michael Dinitz Topic: Dynamic Programming I Date: 10/6/16
600.463 Introduction to Algorithms / Algorithms I Lecturer: Michael Dinitz Topic: Dynamic Programming I Date: 10/6/16 11.1 Introduction Dynamic programming can be very confusing until you ve used it a
More informationLeast Squares; Sequence Alignment
Least Squares; Sequence Alignment 1 Segmented Least Squares multi-way choices applying dynamic programming 2 Sequence Alignment matching similar words applying dynamic programming analysis of the algorithm
More information4.1 Interval Scheduling
41 Interval Scheduling Interval Scheduling Interval scheduling Job j starts at s j and finishes at f j Two jobs compatible if they don't overlap Goal: find maximum subset of mutually compatible jobs a
More informationCSE 421: Introduction to Algorithms
Dynamic Programming SE : Introduction to lgorithms Dynamic Programming Paul Beame Dynamic Programming ive a solution of a problem using smaller sub-problems where all the possible sub-problems are determined
More informationGreedy algorithms is another useful way for solving optimization problems.
Greedy Algorithms Greedy algorithms is another useful way for solving optimization problems. Optimization Problems For the given input, we are seeking solutions that must satisfy certain conditions. These
More informationOp#miza#on Problems, John Gu7ag MIT Department of Electrical Engineering and Computer Science LECTURE 2 1
Op#miza#on Problems, John Gu7ag MIT Department of Electrical Engineering and Computer Science 6.0002 LECTURE 2 1 Relevant Reading for Today s Lecture Chapter 13 6.0002 LECTURE 2 2 The Pros and Cons of
More informationCSE 421: Introduction to Algorithms
CSE 421: Introduction to Algorithms Dynamic Programming Paul Beame 1 Dynamic Programming Dynamic Programming Give a solution of a problem using smaller sub-problems where the parameters of all the possible
More informationCS 170 DISCUSSION 8 DYNAMIC PROGRAMMING. Raymond Chan raychan3.github.io/cs170/fa17.html UC Berkeley Fall 17
CS 170 DISCUSSION 8 DYNAMIC PROGRAMMING Raymond Chan raychan3.github.io/cs170/fa17.html UC Berkeley Fall 17 DYNAMIC PROGRAMMING Recursive problems uses the subproblem(s) solve the current one. Dynamic
More informationDynamic Programming II
June 9, 214 DP: Longest common subsequence biologists often need to find out how similar are 2 DNA sequences DNA sequences are strings of bases: A, C, T and G how to define similarity? DP: Longest common
More informationCS 303 Design and Analysis of Algorithms
inal Exam S 0 esign and nalsis of lgorithms Review or inal Exam ong Xu (Based on class note of avid Luebke) am-0am, onda, a 0 lose book Bring our calculator 40% of our final score Office hours during final
More informationUnit-5 Dynamic Programming 2016
5 Dynamic programming Overview, Applications - shortest path in graph, matrix multiplication, travelling salesman problem, Fibonacci Series. 20% 12 Origin: Richard Bellman, 1957 Programming referred to
More informationDynamic Programming Algorithms Greedy Algorithms. Lecture 29 COMP 250 Winter 2018 (Slides from M. Blanchette)
Dynamic Programming Algorithms Greedy Algorithms Lecture 29 COMP 250 Winter 2018 (Slides from M. Blanchette) Return to Recursive algorithms: Divide-and-Conquer Divide-and-Conquer Divide big problem into
More informationAlgorithms for Data Science
Algorithms for Data Science CSOR W4246 Eleni Drinea Computer Science Department Columbia University Thursday, October 1, 2015 Outline 1 Recap 2 Shortest paths in graphs with non-negative edge weights (Dijkstra
More information16.Greedy algorithms
16.Greedy algorithms 16.1 An activity-selection problem Suppose we have a set S = {a 1, a 2,..., a n } of n proposed activities that with to use a resource. Each activity a i has a start time s i and a
More information9/17/2009. Wenyan Li (Emily Li) Sep. 15, Introduction to Clustering Analysis
Introduction ti to K-means Algorithm Wenan Li (Emil Li) Sep. 5, 9 Outline Introduction to Clustering Analsis K-means Algorithm Description Eample of K-means Algorithm Other Issues of K-means Algorithm
More informationDiscussion 8: Link State Routing. CSE 123: Computer Networks Marti Motoyama & Chris Kanich
iscussion 8: Link State Routing S : omputer Networks Marti Motoyama & hris Kanich Schedule Project Questions: mail hris, post to moodle, or attend his OH Homework Questions? Link State iscussion S iscussion
More informationApproximation Algorithms
Approximation Algorithms Given an NP-hard problem, what should be done? Theory says you're unlikely to find a poly-time algorithm. Must sacrifice one of three desired features. Solve problem to optimality.
More informationCSC236 Week 4. Larry Zhang
CSC236 Week 4 Larry Zhang 1 Announcements PS2 is out Larry s office hours in the reading week: as usual Tuesday 12-2, Wednesday 2-4 2 NEW TOPIC Recursion To really understand the math of recursion, and
More informationRecursive Helper functions
11/16/16 Page 22 11/16/16 Page 23 11/16/16 Page 24 Recursive Helper functions Some%mes it is easier to find a recursive solu%on if you make a slight change to the original problem. Consider the palindrome
More informationChapter 3 Part 1 Combinational Logic Design
Universit of Wisconsin - Madison EE/omp Sci 352 igital Sstems undamentals Kewal K. Saluja and Yu Hen Hu Spring 22 hapter 3 Part ombinational Logic esign Originals b: harles R. Kime and Tom Kamisnski Modified
More information15110 Principles of Computing, Carnegie Mellon University - CORTINA. Binary Search. Required: List L of n unique elements.
UNIT 5B Binary Search 1 Binary Search Required: List L of n unique elements. The elements must be sorted in increasing order. Result: The index of a specific element (called the key) or None if the key
More informationLecture 22: Dynamic Programming
Lecture 22: Dynamic Programming COSC242: Algorithms and Data Structures Brendan McCane Department of Computer Science, University of Otago Dynamic programming The iterative and memoised algorithms for
More informationDynamic Programming. An Introduction to DP
Dynamic Programming An Introduction to DP Dynamic Programming? A programming technique Solve a problem by breaking into smaller subproblems Similar to recursion with memoisation Usefulness: Efficiency
More informationPROBLEM 3/31/2014. Fibonacci numbers (an aside) Fibonacci numbers. Pascal s Triangle. Pascal s Triangle F = {0,1,1, 2,3, 5,8,13, 21,34, 55,89,144,...
PROBLEM subsequence is a sequence derived from another sequence by deleting some elements without changing the order of the remaining elements. DYNMI PRORMMIN n introduction Using code or pseudocode, write
More informationDist(Vertex u, Vertex v, Graph preprocessed) return u.dist v.dist
Design and Analysis of Algorithms 5th September, 2016 Practice Sheet 3 Solutions Sushant Agarwal Solutions 1. Given an edge-weighted undirected connected chain-graph G = (V, E), all vertices having degree
More information15.4 Longest common subsequence
15.4 Longest common subsequence Biological applications often need to compare the DNA of two (or more) different organisms A strand of DNA consists of a string of molecules called bases, where the possible
More informationAlgorithms: COMP3121/3821/9101/9801
NEW SOUTH WALES Algorithms: COMP3121/3821/9101/9801 Aleks Ignjatović School of Computer Science and Engineering University of New South Wales TOPIC 5: DYNAMIC PROGRAMMING COMP3121/3821/9101/9801 1 / 38
More information1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors
1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors on an EREW PRAM: See solution for the next problem. Omit the step where each processor sequentially computes the AND of
More informationGreedy Algorithms. Algorithms
Greedy Algorithms Algorithms Greedy Algorithms Many algorithms run from stage to stage At each stage, they make a decision based on the information available A Greedy algorithm makes decisions At each
More information11. APPROXIMATION ALGORITHMS
Coping with NP-completeness 11. APPROXIMATION ALGORITHMS load balancing center selection pricing method: weighted vertex cover LP rounding: weighted vertex cover generalized load balancing knapsack problem
More informationLecture 13: Chain Matrix Multiplication
Lecture 3: Chain Matrix Multiplication CLRS Section 5.2 Revised April 7, 2003 Outline of this Lecture Recalling matrix multiplication. The chain matrix multiplication problem. A dynamic programming algorithm
More informationCS201 Discussion 7 MARKOV AND RECURSION
CS201 Discussion 7 MARKOV AND RECURSION Before we begin Any questions about the midterm solutions? Making a Markov Map Recall that in Markov, we re trying to make a map of all k-grams to all k-grams that
More informationScribe: Virginia Williams, Sam Kim (2016), Mary Wootters (2017) Date: May 22, 2017
CS6 Lecture 4 Greedy Algorithms Scribe: Virginia Williams, Sam Kim (26), Mary Wootters (27) Date: May 22, 27 Greedy Algorithms Suppose we want to solve a problem, and we re able to come up with some recursive
More informationCPSC W2 Midterm #2 Sample Solutions
CPSC 320 2014W2 Midterm #2 Sample Solutions March 13, 2015 1 Canopticon [8 marks] Classify each of the following recurrences (assumed to have base cases of T (1) = T (0) = 1) into one of the three cases
More information/463 Algorithms - Fall 2013 Solution to Assignment 3
600.363/463 Algorithms - Fall 2013 Solution to Assignment 3 (120 points) I (30 points) (Hint: This problem is similar to parenthesization in matrix-chain multiplication, except the special treatment on
More informationAnalysis of Algorithms. Unit 4 - Analysis of well known Algorithms
Analysis of Algorithms Unit 4 - Analysis of well known Algorithms 1 Analysis of well known Algorithms Brute Force Algorithms Greedy Algorithms Divide and Conquer Algorithms Decrease and Conquer Algorithms
More information1 Non greedy algorithms (which we should have covered
1 Non greedy algorithms (which we should have covered earlier) 1.1 Floyd Warshall algorithm This algorithm solves the all-pairs shortest paths problem, which is a problem where we want to find the shortest
More informationPresentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, Dynamic Programming
Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 25 Dynamic Programming Terrible Fibonacci Computation Fibonacci sequence: f = f(n) 2
More informationCSE 101- Winter 18 Discussion Section Week 6
CSE 101- Winter 18 Discussion Section Week 6 Administrative Introducing 1:1 Sessions: https://docs.google.com/spreadsheets/d/1kgxt_rzbzlibbdijiczs_ o1wxdwa9hhvxccprn8_bwk/edit?usp=sharing Please see the
More informationDynamic Programming. Outline and Reading. Computing Fibonacci
Dynamic Programming Dynamic Programming version 1.2 1 Outline and Reading Matrix Chain-Product ( 5.3.1) The General Technique ( 5.3.2) -1 Knapsac Problem ( 5.3.3) Dynamic Programming version 1.2 2 Computing
More information1 Dynamic Programming
Recitation 13 Dynamic Programming Parallel and Sequential Data Structures and Algorithms, 15-210 (Spring 2013) April 17, 2013 1 Dynamic Programming Dynamic programming is a technique to avoid needless
More information11. APPROXIMATION ALGORITHMS
11. APPROXIMATION ALGORITHMS load balancing center selection pricing method: vertex cover LP rounding: vertex cover generalized load balancing knapsack problem Lecture slides by Kevin Wayne Copyright 2005
More informationCSC 373 Lecture # 3 Instructor: Milad Eftekhar
Huffman encoding: Assume a context is available (a document, a signal, etc.). These contexts are formed by some symbols (words in a document, discrete samples from a signal, etc). Each symbols s i is occurred
More informationRecursion defining an object (or function, algorithm, etc.) in terms of itself. Recursion can be used to define sequences
Section 5.3 1 Recursion Recursion defining an object (or function, algorithm, etc.) in terms of itself. Recursion can be used to define sequences Previously sequences were defined using a specific formula,
More informationCS 580: Algorithm Design and Analysis. Jeremiah Blocki Purdue University Spring 2018
CS 580: Algorithm Design and Analysis Jeremiah Blocki Purdue University Spring 2018 Chapter 11 Approximation Algorithms Slides by Kevin Wayne. Copyright @ 2005 Pearson-Addison Wesley. All rights reserved.
More informationD-Calib: Calibration Software for Multiple Cameras System
D-Calib: Calibration Software for Multiple Cameras Sstem uko Uematsu Tomoaki Teshima Hideo Saito Keio Universit okohama Japan {u-ko tomoaki saito}@ozawa.ics.keio.ac.jp Cao Honghua Librar Inc. Japan cao@librar-inc.co.jp
More informationDynamic Programming Part One
Dynamic Programming Part One Announcements Problem Set Four due right now if you're using a late period. Solutions will be released at end of lecture. Problem Set Five due Monday, August 5. Feel free to
More informationCOMP251: Greedy algorithms
COMP251: Greedy algorithms Jérôme Waldispühl School of Computer Science McGill University Based on (Cormen et al., 2002) Based on slides from D. Plaisted (UNC) & (goodrich & Tamassia, 2009) Disjoint sets
More informationEfficient Sequential Algorithms, Comp309. Problems. Part 1: Algorithmic Paradigms
Efficient Sequential Algorithms, Comp309 Part 1: Algorithmic Paradigms University of Liverpool References: T. H. Cormen, C. E. Leiserson, R. L. Rivest Introduction to Algorithms, Second Edition. MIT Press
More informationChapter 3 Dynamic programming
Chapter 3 Dynamic programming 1 Dynamic programming also solve a problem by combining the solutions to subproblems. But dynamic programming considers the situation that some subproblems will be called
More informationHypergraph Sparsifica/on and Its Applica/on to Par//oning
Hypergraph Sparsifica/on and Its Applica/on to Par//oning Mehmet Deveci 1,3, Kamer Kaya 1, Ümit V. Çatalyürek 1,2 1 Dept. of Biomedical Informa/cs, The Ohio State University 2 Dept. of Electrical & Computer
More informationDesign and Analysis of Algorithms
Design and Analysis of Algorithms CSE 5311 Lecture 16 Greedy algorithms Junzhou Huang, Ph.D. Department of Computer Science and Engineering CSE5311 Design and Analysis of Algorithms 1 Overview A greedy
More informationAnnouncements. Tutorial this week Life of the polygon A1 theory questions
Announcements Assignment programming (due Frida) submission directories are ied use (submit -N Ab cscd88 a_solution.tgz) theor will be returned (Wednesda) Midterm Will cover all o the materials so ar including
More information11. APPROXIMATION ALGORITHMS
11. APPROXIMATION ALGORITHMS load balancing center selection pricing method: vertex cover LP rounding: vertex cover generalized load balancing knapsack problem Lecture slides by Kevin Wayne Copyright 2005
More informationSorting is a problem for which we can prove a non-trivial lower bound.
Sorting The sorting problem is defined as follows: Sorting: Given a list a with n elements possessing a total order, return a list with the same elements in non-decreasing order. Remember that total order
More informationTeach A level Compu/ng: Algorithms and Data Structures
Teach A level Compu/ng: Algorithms and Data Structures Eliot Williams @MrEliotWilliams Course Outline Representa+ons of data structures: Arrays, tuples, Stacks, Queues,Lists 2 Recursive Algorithms 3 Searching
More informationDivide-and-Conquer. Divide-and conquer is a general algorithm design paradigm:
Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9
More information16 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 informationProblem Strategies. 320 Greedy Strategies 6
Problem Strategies Weighted interval scheduling: 2 subproblems (include the interval or don t) Have to check out all the possibilities in either case, so lots of subproblem overlap dynamic programming:
More informationCOMP/ELEC 429/556 Introduction to Computer Networks
OMP/ELE 49/6 Introduction to omputer Networks Intra-domain routing Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang T. S. Eugene Ng eugeneng at cs.rice.edu
More informationICS 161 Algorithms Winter 1998 Final Exam. 1: out of 15. 2: out of 15. 3: out of 20. 4: out of 15. 5: out of 20. 6: out of 15.
ICS 161 Algorithms Winter 1998 Final Exam Name: ID: 1: out of 15 2: out of 15 3: out of 20 4: out of 15 5: out of 20 6: out of 15 total: out of 100 1. Solve the following recurrences. (Just give the solutions;
More informationAlgorithms Dr. Haim Levkowitz
91.503 Algorithms Dr. Haim Levkowitz Fall 2007 Lecture 4 Tuesday, 25 Sep 2007 Design Patterns for Optimization Problems Greedy Algorithms 1 Greedy Algorithms 2 What is Greedy Algorithm? Similar to dynamic
More informationGetting to places from my house...
Reductions, Self-Similarity, and Recursion Relations between problems Notes for CSC 100 - The Beauty and Joy of Computing The University of North Carolina at Greensboro Getting to places from my house...
More information1 Dynamic Programming
CS161 Lecture 13 Dynamic Programming and Greedy Algorithms Scribe by: Eric Huang Date: May 13, 2015 1 Dynamic Programming The idea of dynamic programming is to have a table of solutions of subproblems
More informationECE608 - Chapter 16 answers
¼ À ÈÌ Ê ½ ÈÊÇ Ä ÅË ½µ ½ º½¹ ¾µ ½ º½¹ µ ½ º¾¹½ µ ½ º¾¹¾ µ ½ º¾¹ µ ½ º ¹ µ ½ º ¹ µ ½ ¹½ ½ ECE68 - Chapter 6 answers () CLR 6.-4 Let S be the set of n activities. The obvious solution of using Greedy-Activity-
More informationAmol Deshpande, University of Maryland Lisa Hellerstein, Polytechnic University, Brooklyn
Amol Deshpande, University of Maryland Lisa Hellerstein, Polytechnic University, Brooklyn Mo>va>on: Parallel Query Processing Increasing parallelism in compu>ng Shared nothing clusters, mul> core technology,
More informationCSC 505, Spring 2005 Week 6 Lectures page 1 of 9
CSC 505, Spring 2005 Week 6 Lectures page 1 of 9 Objectives: learn general strategies for problems about order statistics learn how to find the median (or k-th largest) in linear average-case number of
More informationSolving NP-hard Problems on Special Instances
Solving NP-hard Problems on Special Instances Solve it in poly- time I can t You can assume the input is xxxxx No Problem, here is a poly-time algorithm 1 Solving NP-hard Problems on Special Instances
More informationCMPS 2200 Fall Dynamic Programming. Carola Wenk. Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk
CMPS 00 Fall 04 Dynamic Programming Carola Wenk Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk 9/30/4 CMPS 00 Intro. to Algorithms Dynamic programming Algorithm design technique
More informationSecond Midterm Exam, CMPSC 465, Spring 2009 Practice problems
Second idterm Exam, S 465, Spring 2009 ractice problems idterm will be on Tuesday, arch 31, 8:15, in 60 and 61 Willard. This will be open book exam, you can also have notes (several sheets or one notebook).
More informationRoberto s Notes on Differential Calculus Chapter 8: Graphical analysis Section 5. Graph sketching
Roberto s Notes on Differential Calculus Chapter 8: Graphical analsis Section 5 Graph sketching What ou need to know alread: How to compute and interpret limits How to perform first and second derivative
More informationUnsupervised Learning. Supervised learning vs. unsupervised learning. What is Cluster Analysis? Applications of Cluster Analysis
7 Supervised learning vs unsupervised learning Unsupervised Learning Supervised learning: discover patterns in the data that relate data attributes with a target (class) attribute These patterns are then
More informationDesign and Analysis of Algorithms
CSE 101, Winter 018 D/Q Greed SP s DP LP, Flow B&B, Backtrack Metaheuristics P, NP Design and Analysis of Algorithms Lecture 8: Greed Class URL: http://vlsicad.ucsd.edu/courses/cse101-w18/ Optimization
More informationLECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS
Department of Computer Science University of Babylon LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS By Faculty of Science for Women( SCIW), University of Babylon, Iraq Samaher@uobabylon.edu.iq
More informationCS473-Algorithms I. Lecture 11. Greedy Algorithms. Cevdet Aykanat - Bilkent University Computer Engineering Department
CS473-Algorithms I Lecture 11 Greedy Algorithms 1 Activity Selection Problem Input: a set S {1, 2,, n} of n activities s i =Start time of activity i, f i = Finish time of activity i Activity i takes place
More informationIntroduction to Algorithms Massachusetts Institute of Technology Professors Erik D. Demaine and Charles E. Leiserson.
Introduction to Algorithms Massachusetts Institute of Technolog Professors Erik D. Demaine and Charles E. Leiserson October 24, 2005 6.046J/18.410J Handout 16 Problem Set 5 MIT students: This problem set
More information14 Dynamic. Matrix-chain multiplication. P.D. Dr. Alexander Souza. Winter term 11/12
Algorithms Theory 14 Dynamic Programming (2) Matrix-chain multiplication P.D. Dr. Alexander Souza Optimal substructure Dynamic programming is typically applied to optimization problems. An optimal solution
More informationTU/e Algorithms (2IL15) Lecture 2. Algorithms (2IL15) Lecture 2 THE GREEDY METHOD
Algorithms (2IL15) Lecture 2 THE GREEDY METHOD x y v w 1 Optimization problems for each instance there are (possibly) multiple valid solutions goal is to find an optimal solution minimization problem:
More informationLast week: Breadth-First Search
1 Last week: Breadth-First Search Set L i = [] for i=1,,n L 0 = {w}, where w is the start node For i = 0,, n-1: For u in L i : For each v which is a neighbor of u: If v isn t yet visited: - mark v as visited,
More informationMergeSort. Algorithm : Design & Analysis [5]
MergeSort Algorithm : Design & Analysis [5] In the last class Insertion sort Analysis of insertion sorting algorithm Lower bound of local comparison based sorting algorithm General pattern of divide-and-conquer
More information******** Chapter-4 Dynamic programming
repeat end SHORT - PATHS Overall run time of algorithm is O ((n+ E ) log n) Example: ******** Chapter-4 Dynamic programming 4.1 The General Method Dynamic Programming: is an algorithm design method that
More information