9/29/09 Comp /Comp Fall
|
|
- Joseph Burns
- 5 years ago
- Views:
Transcription
1 9/29/9 Comp 9-9/Comp 79-9 Fall 29 1
2 So far we ve tried: A greedy algorithm that does not work for all inputs (it is incorrect) An exhaustive search algorithm that is correct, but can take a long time A branch-and-bound algorithm that is correct, and works well for most cases, but might be as slow as an exhaustive search for some inputs. Is there anything else we can try? Coin-change problem 9/29/9 Comp 9-9/Comp 79-9 Fall 29 2
3 If it is costly to compute the answer for a given input, then there may be advantages to caching the result of previous calculations in a table This trades-off time-complexity for space How could we fill in the table in the first place? Run our best correct algorithm Can the table itself be used to speed up the process? Amt Amt /29/9 Comp 9-9/Comp 79-9 Fall 29
4 Suppose you are asked to fill-in the unknown table entry for 6 It must differ from previous known optimal result by at most one coin So what are the possibilities? BestChange(6 ) = 2 + BestChange(4 ), or BestChange(6 ) = 2 + BestChange(4 ), or BestChange(6 ) = 1 + BestChange( ), or BestChange(6 ) = + BestChange(6 ), or BestChange(6 ) = 1 + BestChange(64 ) Looks like a recursive definition Forget the table! This gives me another idea!. 9/29/9 Comp 9-9/Comp 79-9 Fall 29 4
5 def RecursiveChange(M, c): if (M == ): return [ for i in xrange(len(c))] smallestnumberofcoins = M+1 for i in xrange(len(c)): if (M >= c[i]): thischange = RecursiveChange(M - c[i], c) thischange[i] += 1 if (sum(thischange) < smallestnumberofcoins): bestchange = thischange smallestnumberofcoins = sum(thischange) return bestchange The only problem is this is still too slow Let s see why 9/29/9 Comp 9-9/Comp 79-9 Fall 29
6 We saw this before with RecursiveFibonacci( ) Recursion often results in many redundant calls Even after only two levels of recursion 6 different change values are repeated multiple times Change(4) = 2 + Change(1) Change() Change(1) 2 + Change(2) Change() Change(1) Change(1) 1 + Change() Change() How can we avoid Change(1) Change(2) this repetition? Change(2) + Change() Cache precomputed Change(1) results in a table! Change(1) Change(2) + + Change() 9/29/9 Comp 9-9/Comp 79-9 Fall 29 6
7 When do we fill in the values of the table? We could do it lazily as needed as each call to BestChange() progresses from M down to 1 Or we could do it from the bottom-up tabulating all values from 1 up to M Thus, instead of just trying to find the minimal number of coins to change M cents, we attempt the solve the superficially harder problem of solving for the optimal change for all values from 1 to M 1 = [,,,,1] 2 = [,,,,2] = [,,,,] M = [?,?,?,?,?] 9/29/9 Comp 9-9/Comp 79-9 Fall 29 7
8 def DPChange(M, c): change = [[ for i in xrange(len(c))]] for m in xrange(1,m+1): bestnumcoins = m+1 for i in xrange(len(c)): if (m >= c[i]): thischange = [x for x in change[m - c[i]]] thischange[i] += 1 if (sum(thischange) < bestnumcoins): change[m:m] = [thischange] bestnumcoins = sum(thischange) return change[m] M d Recall, BruteForceChange( ) was O(M d ) DPChange( ) is O(Md) While computing bestchange solutions for all values from 1 to M *seems* like a lot of wasted work, we frequently reuse results 9/29/9 Comp 9-9/Comp 79-9 Fall 29 8
9 Dynamic Programming is a technique for computing recurrence relations efficiently by storing partial or intermediate results Three keys to constructing a dynamic programming solution: 1. Formulate the answer as a recurrence relation 2. Consider all instances of the recurrence at each step. Order evaluations so you will always have the needed partial results 9/29/9 Comp 9-9/Comp 79-9 Fall 29 9
10 Imagine seeking a path from source to sink in a Manhattan-like city grid that maximizes the number of attractions (*) passed. With the following caveat at every step you must make progress towards the goal. Source * * We treat the city map as a graph, with a vertices at each corner, and weighted edges along each block. The weights are the number of attractions along each block. Sink 9/29/9 Comp 9-9/Comp 79-9 Fall 29 1 * * * * * * * * * *
11 Goal: Find the maximum weighted path in a grid. Input: A weighted grid G with two distinct vertices, one labeled source and the other labeled sink Output: A longest path in G from source to sink 9/29/9 Comp 9-9/Comp 79-9 Fall 29 11
12 Greedy Algorithm: At each step select the maximum weight block. Greed has a short horizon source promising start, but leads to bad choices! sink 18 9/29/9 Comp 9-9/Comp 79-9 Fall 29 12
13 source j coordinate i coordinate sink 9/29/9 Comp 9-9/Comp 79-9 Fall 29 1
14 Instead of solving the Manhattan Tourist problem directly, (i.e. the path from (,) to (n,m)) we will solve a more general problem: find the longest path from (,) to any arbitrary vertex (i,j). If the longest path from (,) to (n,m) passes through some vertex (i,j), then the path from (,) to (i,j) must be the longest. Otherwise, you could increase your path by changing it. 9/29/9 Comp 9-9/Comp 79-9 Fall 29 14
15 MT(n,m) if n = and m = return if n = return MT(,m-1) + len(edge) from (,m-1) to (,m) if m = return MT(n-1, ) + len(edge) from (n-1,) to (n,) x MT(n-1,m) + len(edge) from (n- 1,m) to (n,m) y MT(n,m-1) + len(edge) from (n,m-1) to (n,m) return max{x,y} What s wrong with this approach? We saw this in our recursive change algorithm. It computes the same paths multiple times 9/29/9 Comp 9-9/Comp 79-9 Fall 29 1
16 i source j 1 1 First, fill in the easy ones! Those 1 block from the source 1 S,1 = 1 1 S 1, = Calculate optimal path score for each vertex in the graph Each vertex s score is the maximum of the prior vertices score plus the weight of the connecting edge in between 9/29/9 Comp 9-9/Comp 79-9 Fall 29 16
17 source j 1 2 First, fill in the easy ones! i S 2, = S,2 = 4 S 1,1 = 4 9/29/9 Comp 9-9/Comp 79-9 Fall Then grow the solution a block at a time while tabulating the results for each intersection Note: We ll use our table to keep track of two things. The value of the best path to the given intersection, and the direction from where it came
18 source j 1 2 i S, = S 1,2 = S 2,1 = 9 Keep growing ( blocks) 8 S, = 8 9/29/9 Comp 9-9/Comp 79-9 Fall 29 18
19 source j i S 1, = /29/9 Comp 9-9/Comp 79-9 Fall S,1 = 9 12 S 2,2 = 12 And growing (4 blocks)
20 source j i S 2, = 1-8 9/29/9 Comp 9-9/Comp 79-9 Fall And growing ( blocks) 9 S,2 = 9
21 i source j Once the sink node (intersection) is reached, we re done Our table will have the answer of the maximum number of attractions stored - 2 in the entry associated with the sink We use the links back in the table to recover the path (Backtracking) sink S, = 16 9/29/9 Comp 9-9/Comp 79-9 Fall 29 21
22 Computing the score for a point (i,j) by the recurrence relation: Path to the intersection from the left s i, j = max s i-1, j + weight of the edge between (i-1, j) and (i, j) s i, j-1 + weight of the edge between (i, j-1) and (i, j) Path to the intersection from above The running time is n x m for a n by m grid (You visit all intersections once, and performed 2 tests) (n = # of rows, m = # of columns) 9/29/9 Comp 9-9/Comp 79-9 Fall 29 22
23 A 2 A A 1 B What about diagonals? Broadway, Greenwich, etc. Easy to fix. Just adds more recursion cases. The score at point B is given by: s B = max s A1 + weight of the edge (A 1, B) s A2 + weight of the edge (A 2, B) s A + weight of the edge (A, B) 9/29/9 Comp 9-9/Comp 79-9 Fall 29 2
24 Computing the score for point x is given by the recurrence relation: s x = max of s y + weight of vertex (y, x) where y є Predecessors(x) Predecessors (x) set of vertices having edges leading to x The running time for a graph G(V, E) (V is the set of all vertices and E is the set of all edges) is O(E) since each edge is considered once 9/29/9 Comp 9-9/Comp 79-9 Fall 29 24
25 The only hitch is that one must decide on an order to visit the vertices We must assure that by the time the vertex x is analyzed, the values, s y, for all its predecessors, y, should be computed otherwise we are in trouble. We need to traverse the vertices in some order How to find such order for any directed graph???? 9/29/9 Comp 9-9/Comp 79-9 Fall 29 2
26 Since most cities are not perfect regular grids, we represent paths in them as a DAGs DAG for Dressing in the morning problem 9/29/9 Comp 9-9/Comp 79-9 Fall 29 26
27 A numbering of vertices of the graph is called topological ordering of the DAG if every edge of the DAG connects a vertex with a smaller label to a vertex with a larger label In other words, if vertices are positioned on a line in an increasing order of labels then all edges go from left to right. 9/29/9 Comp 9-9/Comp 79-9 Fall 29 27
28 2 different topological orderings of the DAG 9/29/9 Comp 9-9/Comp 79-9 Fall 29 28
29 Goal: Find a longest path between two vertices in a weighted DAG Input: A weighted DAG G with source and sink vertices Output: A longest path in G from source to sink 9/29/9 Comp 9-9/Comp 79-9 Fall 29 29
30 Suppose vertex v has indegree and predecessors {u 1, u 2, u } Longest path to v from source is: s v = max of In General: su 1 + weight of edge from u 1 to v su 2 + weight of edge from u 2 to v su + weight of edge from u to v s v = max u (s u + weight of edge from u to v) 9/29/9 Comp 9-9/Comp 79-9 Fall 29
31 We chose to evaluate our table in a particular order. Uniform distances from the source (all points one block away, then 2 blocks, etc.) Other strategies: a) Column by column b) Row by row c) Along diagonals This choice can have performance implications c) a) b) 9/29/9 Comp 9-9/Comp 79-9 Fall 29 1
32 Return to biology Solving sequence alignments using Dynamic Programming 9/29/9 Comp 9-9/Comp 79-9 Fall 29 2
Returning to Dynamic Programming
Returning to Dynamic Programming 1 What is an Algorithm? An algorithm is a sequence of instructions that one must perform in order to solve a well-formulated problem. 2 Correctness An algorithm is correct
More information1. Basic idea: Use smaller instances of the problem to find the solution of larger instances
Chapter 8. Dynamic Programming CmSc Intro to Algorithms. Basic idea: Use smaller instances of the problem to find the solution of larger instances Example : Fibonacci numbers F = F = F n = F n- + F n-
More informationDynamic Programming: Edit Distance
Dynamic Programming: Edit Distance Outline. DNA Sequence Comparison and CF. Change Problem. Manhattan Tourist Problem. Longest Paths in Graphs. Sequence Alignment 6. Edit Distance Section : DNA Sequence
More informationDynamic Programming: Sequence alignment. CS 466 Saurabh Sinha
Dynamic Programming: Sequence alignment CS 466 Saurabh Sinha DNA Sequence Comparison: First Success Story Finding sequence similarities with genes of known function is a common approach to infer a newly
More information3/5/2018 Lecture15. Comparing Sequences. By Miguel Andrade at English Wikipedia.
3/5/2018 Lecture15 Comparing Sequences By Miguel Andrade at English Wikipedia 1 http://localhost:8888/notebooks/comp555s18/lecture15.ipynb# 1/1 Sequence Similarity A common problem in Biology Insulin Protein
More informationFinding sequence similarities with genes of known function is a common approach to infer a newly sequenced gene s function
Outline DNA Sequence Comparison: First Success Stories Change Problem Manhattan Tourist Problem Longest Paths in Graphs Sequence Alignment Edit Distance Longest Common Subsequence Problem Dot Matrices
More informationEECS 4425: Introductory Computational Bioinformatics Fall Suprakash Datta
EECS 4425: Introductory Computational Bioinformatics Fall 2018 Suprakash Datta datta [at] cse.yorku.ca Office: CSEB 3043 Phone: 416-736-2100 ext 77875 Course page: http://www.cse.yorku.ca/course/4425 Many
More informationDynamic Programming Part I: Examples. Bioinfo I (Institut Pasteur de Montevideo) Dynamic Programming -class4- July 25th, / 77
Dynamic Programming Part I: Examples Bioinfo I (Institut Pasteur de Montevideo) Dynamic Programming -class4- July 25th, 2011 1 / 77 Dynamic Programming Recall: the Change Problem Other problems: Manhattan
More informationDynamicProgramming. September 17, 2018
DynamicProgramming September 17, 2018 1 Lecture 11: Dynamic Programming CBIO (CSCI) 4835/6835: Introduction to Computational Biology 1.1 Overview and Objectives We ve so far discussed sequence alignment
More informationDynamic Programming Comp 122, Fall 2004
Dynamic Programming Comp 122, Fall 2004 Review: the previous lecture Principles of dynamic programming: optimization problems, optimal substructure property, overlapping subproblems, trade space for time,
More informationPairwise Sequence alignment Basic Algorithms
Pairwise Sequence alignment Basic Algorithms Agenda - Previous Lesson: Minhala - + Biological Story on Biomolecular Sequences - + General Overview of Problems in Computational Biology - Reminder: Dynamic
More information6.1 The Power of DNA Sequence Comparison
6 Dynamic Programming Algorithms We introduced dynamic programming in chapter 2 with the Rocks problem. While the Rocks problem does not appear to be related to bioinformatics, the algorithm that we described
More informationDivide and Conquer Algorithms. Problem Set #3 is graded Problem Set #4 due on Thursday
Divide and Conquer Algorithms Problem Set #3 is graded Problem Set #4 due on Thursday 1 The Essence of Divide and Conquer Divide problem into sub-problems Conquer by solving sub-problems recursively. If
More information1 More on the Bellman-Ford Algorithm
CS161 Lecture 12 Shortest Path and Dynamic Programming Algorithms Scribe by: Eric Huang (2015), Anthony Kim (2016), M. Wootters (2017) Date: May 15, 2017 1 More on the Bellman-Ford Algorithm We didn t
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 informationDynamic Programming. Lecture Overview Introduction
Lecture 12 Dynamic Programming 12.1 Overview Dynamic Programming is a powerful technique that allows one to solve many different types of problems in time O(n 2 ) or O(n 3 ) for which a naive approach
More informationSubsequence Definition. CS 461, Lecture 8. Today s Outline. Example. Assume given sequence X = x 1, x 2,..., x m. Jared Saia University of New Mexico
Subsequence Definition CS 461, Lecture 8 Jared Saia University of New Mexico Assume given sequence X = x 1, x 2,..., x m Let Z = z 1, z 2,..., z l Then Z is a subsequence of X if there exists a strictly
More informationLecture 12: Divide and Conquer Algorithms
Lecture 12: Divide and Conquer Algorithms Study Chapter 7.1 7.4 1 Divide and Conquer Algorithms Divide problem into sub-problems Conquer by solving sub-problems recursively. If the sub-problems are small
More informationPractice Problems for the Final
ECE-250 Algorithms and Data Structures (Winter 2012) Practice Problems for the Final Disclaimer: Please do keep in mind that this problem set does not reflect the exact topics or the fractions of each
More information11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions
Introduction Chapter 9 Graph Algorithms graph theory useful in practice represent many real-life problems can be slow if not careful with data structures 2 Definitions an undirected graph G = (V, E) is
More informationChapter 9 Graph Algorithms
Chapter 9 Graph Algorithms 2 Introduction graph theory useful in practice represent many real-life problems can be slow if not careful with data structures 3 Definitions an undirected graph G = (V, E)
More informationCMSC Introduction to Algorithms Spring 2012 Lecture 16
CMSC 351 - Introduction to Algorithms Spring 2012 Lecture 16 Instructor: MohammadTaghi Hajiaghayi Scribe: Rajesh Chitnis 1 Introduction In this lecture we will look at Greedy Algorithms and Dynamic Programming.
More informationQB LECTURE #1: Algorithms and Dynamic Programming
QB LECTURE #1: Algorithms and Dynamic Programming Adam Siepel Nov. 16, 2015 2 Plan for Today Introduction to algorithms Simple algorithms and running time Dynamic programming Soon: sequence alignment 3
More information15-451/651: Design & Analysis of Algorithms January 26, 2015 Dynamic Programming I last changed: January 28, 2015
15-451/651: Design & Analysis of Algorithms January 26, 2015 Dynamic Programming I last changed: January 28, 2015 Dynamic Programming is a powerful technique that allows one to solve many different types
More information1 Dynamic Programming
Recitation 13 Dynamic Programming Parallel and Sequential Data Structures and Algorithms, 15-210 (Fall 2013) November 20, 2013 1 Dynamic Programming Dynamic programming is a technique to avoid needless
More informationOutline. Graphs. Divide and Conquer.
GRAPHS COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges books. Outline Graphs.
More informationCSE 417: Algorithms and Computational Complexity
CSE : Algorithms and Computational Complexity More Graph Algorithms Autumn 00 Paul Beame Given: a directed acyclic graph (DAG) G=(V,E) Output: numbering of the vertices of G with distinct numbers from
More informationOnline Graph Exploration
Distributed Computing Online Graph Exploration Semester thesis Simon Hungerbühler simonhu@ethz.ch Distributed Computing Group Computer Engineering and Networks Laboratory ETH Zürich Supervisors: Sebastian
More information5.1 The String reconstruction problem
CS125 Lecture 5 Fall 2014 5.1 The String reconstruction problem The greedy approach doesn t always work, as we have seen. It lacks flexibility; if at some point, it makes a wrong choice, it becomes stuck.
More informationmywbut.com Informed Search Strategies-II
Informed Search Strategies-II 1 3.3 Iterative-Deepening A* 3.3.1 IDA* Algorithm Iterative deepening A* or IDA* is similar to iterative-deepening depth-first, but with the following modifications: The depth
More informationLecture 9 Graph Traversal
Lecture 9 Graph Traversal Euiseong Seo (euiseong@skku.edu) SWE00: Principles in Programming Spring 0 Euiseong Seo (euiseong@skku.edu) Need for Graphs One of unifying themes of computer science Closely
More informationComputer Science 385 Design and Analysis of Algorithms Siena College Spring Topic Notes: Dynamic Programming
Computer Science 385 Design and Analysis of Algorithms Siena College Spring 29 Topic Notes: Dynamic Programming We next consider dynamic programming, a technique for designing algorithms to solve problems
More informationData Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data
More informationCMU-Q Lecture 2: Search problems Uninformed search. Teacher: Gianni A. Di Caro
CMU-Q 15-381 Lecture 2: Search problems Uninformed search Teacher: Gianni A. Di Caro RECAP: ACT RATIONALLY Think like people Think rationally Agent Sensors? Actuators Percepts Actions Environment Act like
More informationChapter 3, Algorithms Algorithms
CSI 2350, Discrete Structures Chapter 3, Algorithms Young-Rae Cho Associate Professor Department of Computer Science Baylor University 3.1. Algorithms Definition A finite sequence of precise instructions
More informationCSE 417 Network Flows (pt 2) Modeling with Max Flow
CSE 47 Network Flows (pt 2) Modeling with Max Flow Reminders > HW6 is due on Friday start early may take time to figure out the sub-structure Review of last lecture > Defined the maximum flow problem find
More informationLecture 26: Graphs: Traversal (Part 1)
CS8 Integrated Introduction to Computer Science Fisler, Nelson Lecture 6: Graphs: Traversal (Part ) 0:00 AM, Apr, 08 Contents Introduction. Definitions........................................... Representations.......................................
More informationDivide and Conquer. Bioinformatics: Issues and Algorithms. CSE Fall 2007 Lecture 12
Divide and Conquer Bioinformatics: Issues and Algorithms CSE 308-408 Fall 007 Lecture 1 Lopresti Fall 007 Lecture 1-1 - Outline MergeSort Finding mid-point in alignment matrix in linear space Linear space
More informationEECS730: Introduction to Bioinformatics
EECS730: Introduction to Bioinformatics Lecture 04: Variations of sequence alignments http://www.pitt.edu/~mcs2/teaching/biocomp/tutorials/global.html Slides adapted from Dr. Shaojie Zhang (University
More informationCPS 170: Artificial Intelligence Search
CPS 170: Artificial Intelligence http://www.cs.duke.edu/courses/spring09/cps170/ Search Instructor: Vincent Conitzer Search We have some actions that can change the state of the world Change resulting
More informationDynamic Programming Algorithms
CSC 364S Notes University of Toronto, Fall 2003 Dynamic Programming Algorithms The setting is as follows. We wish to find a solution to a given problem which optimizes some quantity Q of interest; for
More informationChapter 6. Dynamic Programming
Chapter 6 Dynamic Programming CS 573: Algorithms, Fall 203 September 2, 203 6. Maximum Weighted Independent Set in Trees 6..0. Maximum Weight Independent Set Problem Input Graph G = (V, E) and weights
More informationDivide & Conquer Algorithms
Divide & Conquer Algorithms Outline 1. MergeSort 2. Finding the middle vertex 3. Linear space sequence alignment 4. Block alignment 5. Four-Russians speedup 6. LCS in sub-quadratic time Section 1: MergeSort
More informationDivide & Conquer Algorithms
Divide & Conquer Algorithms Outline MergeSort Finding the middle point in the alignment matrix in linear space Linear space sequence alignment Block Alignment Four-Russians speedup Constructing LCS in
More informationCOMP4128 Programming Challenges
COMP4128 Challenges School of Computer Science and Engineering UNSW Australia 2D Table of Contents 2 2D 1 2 3 4 5 6 2D 7 Divide 3 2D Wikipedia: an algorithm design paradigm based on multi-branched recursion
More informationFigure 1: A directed graph.
1 Graphs A graph is a data structure that expresses relationships between objects. The objects are called nodes and the relationships are called edges. For example, social networks can be represented as
More informationDirected Graphs. DSA - lecture 5 - T.U.Cluj-Napoca - M. Joldos 1
Directed Graphs Definitions. Representations. ADT s. Single Source Shortest Path Problem (Dijkstra, Bellman-Ford, Floyd-Warshall). Traversals for DGs. Parenthesis Lemma. DAGs. Strong Components. Topological
More informationBasic Graph Definitions
CMSC 341 Graphs Basic Graph Definitions A graph G = (V,E) consists of a finite set of vertices, V, and a finite set of edges, E. Each edge is a pair (v,w) where v, w V. V and E are sets, so each vertex
More informationDynamic Programming 1
Dynamic Programming 1 Jie Wang University of Massachusetts Lowell Department of Computer Science 1 I thank Prof. Zachary Kissel of Merrimack College for sharing his lecture notes with me; some of the examples
More informationShortest Paths. Nishant Mehta Lectures 10 and 11
Shortest Paths Nishant Mehta Lectures 0 and Finding the Fastest Way to Travel between Two Intersections in Vancouver Granville St and W Hastings St Homer St and W Hastings St 6 Granville St and W Pender
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 informationCS Algorithms and Complexity
CS 350 - Algorithms and Complexity Dynamic Programming Sean Anderson 2/20/18 Portland State University Table of contents 1. Homework 3 Solutions 2. Dynamic Programming 3. Problem of the Day 4. Application
More informationSeach algorithms The travelling salesman problem The Towers of Hanoi Playing games. Comp24412: Symbolic AI. Lecture 4: Search. Ian Pratt-Hartmann
Comp24412: Symbolic AI Lecture 4: Search Ian Pratt-Hartmann Room KB2.38: email: ipratt@cs.man.ac.uk 2016 17 Outline Seach algorithms The travelling salesman problem The Towers of Hanoi Playing games Typical
More informationDesign and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Module 02 Lecture - 45 Memoization
Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute Module 02 Lecture - 45 Memoization Let us continue our discussion of inductive definitions. (Refer Slide Time: 00:05)
More information1 Computing alignments in only linear space
1 Computing alignments in only linear space One of the defects of dynamic programming for all the problems we have discussed is that the dynamic programming tables use Θ(nm) space when the input strings
More informationITCS 6150 Intelligent Systems. Lecture 5 Informed Searches
ITCS 6150 Intelligent Systems Lecture 5 Informed Searches Informed Searches We are informed (in some way) about future states and future paths We use this information to make better decisions about which
More informationDesign and Analysis of Algorithms
CSE, Winter 8 Design and Analysis of Algorithms Lecture : Graphs, DFS (Undirected, Directed), DAGs Class URL: http://vlsicad.ucsd.edu/courses/cse-w8/ Graphs Internet topology Graphs Gene-gene interactions
More informationBacktracking and Branch-and-Bound
Backtracking and Branch-and-Bound Usually for problems with high complexity Exhaustive Search is too time consuming Cut down on some search using special methods Idea: Construct partial solutions and extend
More informationAlgorithms IV. Dynamic Programming. Guoqiang Li. School of Software, Shanghai Jiao Tong University
Algorithms IV Dynamic Programming Guoqiang Li School of Software, Shanghai Jiao Tong University Dynamic Programming Shortest Paths in Dags, Revisited Shortest Paths in Dags, Revisited The special distinguishing
More informationSo far... Finished looking at lower bounds and linear sorts.
So far... Finished looking at lower bounds and linear sorts. Next: Memoization -- Optimization problems - Dynamic programming A scheduling problem Matrix multiplication optimization Longest Common Subsequence
More informationParallel Programming. Parallel algorithms Combinatorial Search
Parallel Programming Parallel algorithms Combinatorial Search Some Combinatorial Search Methods Divide and conquer Backtrack search Branch and bound Game tree search (minimax, alpha-beta) 2010@FEUP Parallel
More information1 Achieving IND-CPA security
ISA 562: Information Security, Theory and Practice Lecture 2 1 Achieving IND-CPA security 1.1 Pseudorandom numbers, and stateful encryption As we saw last time, the OTP is perfectly secure, but it forces
More informationCS 512: Comments on Graph Search 16:198:512 Instructor: Wes Cowan
CS 512: Comments on Graph Search 16:198:512 Instructor: Wes Cowan 1 General Graph Search In general terms, the generic graph search algorithm looks like the following: def GenerateGraphSearchTree(G, root):
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 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 informationCIS 121 Data Structures and Algorithms Midterm 3 Review Solution Sketches Fall 2018
CIS 121 Data Structures and Algorithms Midterm 3 Review Solution Sketches Fall 2018 Q1: Prove or disprove: You are given a connected undirected graph G = (V, E) with a weight function w defined over its
More informationLecture 20 : Trees DRAFT
CS/Math 240: Introduction to Discrete Mathematics 4/12/2011 Lecture 20 : Trees Instructor: Dieter van Melkebeek Scribe: Dalibor Zelený DRAFT Last time we discussed graphs. Today we continue this discussion,
More informationTreewidth and graph minors
Treewidth and graph minors Lectures 9 and 10, December 29, 2011, January 5, 2012 We shall touch upon the theory of Graph Minors by Robertson and Seymour. This theory gives a very general condition under
More informationLecture 16: Introduction to Dynamic Programming Steven Skiena. Department of Computer Science State University of New York Stony Brook, NY
Lecture 16: Introduction to Dynamic Programming Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Problem of the Day
More informationChapter 9 Graph Algorithms
Chapter 9 Graph Algorithms 2 Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures 3 Definitions an undirected graph G = (V, E) is a
More informationLecture 3, Review of Algorithms. What is Algorithm?
BINF 336, Introduction to Computational Biology Lecture 3, Review of Algorithms Young-Rae Cho Associate Professor Department of Computer Science Baylor University What is Algorithm? Definition A process
More informationChapter 8. NP-complete problems
Chapter 8. NP-complete problems Search problems E cient algorithms We have developed algorithms for I I I I I finding shortest paths in graphs, minimum spanning trees in graphs, matchings in bipartite
More informationShortest Paths. Nishant Mehta Lectures 10 and 11
Shortest Paths Nishant Mehta Lectures 0 and Communication Speeds in a Computer Network Find fastest way to route a data packet between two computers 6 Kbps 4 0 Mbps 6 6 Kbps 6 Kbps Gbps 00 Mbps 8 6 Kbps
More informationSCHEDULING II Giovanni De Micheli Stanford University
SCHEDULING II Giovanni De Micheli Stanford University Scheduling under resource constraints Simplified models: Hu's algorithm. Heuristic algorithms: List scheduling. Force-directed scheduling. Hu's algorithm
More informationLecturers: Sanjam Garg and Prasad Raghavendra March 20, Midterm 2 Solutions
U.C. Berkeley CS70 : Algorithms Midterm 2 Solutions Lecturers: Sanjam Garg and Prasad aghavra March 20, 207 Midterm 2 Solutions. (0 points) True/False Clearly put your answers in the answer box in front
More informationLongest Common Subsequence, Knapsack, Independent Set Scribe: Wilbur Yang (2016), Mary Wootters (2017) Date: November 6, 2017
CS161 Lecture 13 Longest Common Subsequence, Knapsack, Independent Set Scribe: Wilbur Yang (2016), Mary Wootters (2017) Date: November 6, 2017 1 Overview Last lecture, we talked about dynamic programming
More informationAlgorithms and Data Structures (INF1) Lecture 15/15 Hua Lu
Algorithms and Data Structures (INF1) Lecture 15/15 Hua Lu Department of Computer Science Aalborg University Fall 2007 This Lecture Minimum spanning trees Definitions Kruskal s algorithm Prim s algorithm
More informationCS 231: Algorithmic Problem Solving
CS 231: Algorithmic Problem Solving Naomi Nishimura Module 5 Date of this version: June 14, 2018 WARNING: Drafts of slides are made available prior to lecture for your convenience. After lecture, slides
More informationTrees, Trees and More Trees
Trees, Trees and More Trees August 9, 01 Andrew B. Kahng abk@cs.ucsd.edu http://vlsicad.ucsd.edu/~abk/ How You ll See Trees in CS Trees as mathematical objects Trees as data structures Trees as tools for
More informationCSE Winter 2015 Quiz 2 Solutions
CSE 101 - Winter 2015 Quiz 2 s January 27, 2015 1. True or False: For any DAG G = (V, E) with at least one vertex v V, there must exist at least one topological ordering. (Answer: True) Fact (from class)
More informationSection 08: Solutions
Section 08: Solutions 1. Limitations and properties of shortest path algorithms (a) Draw an example of a directed graph where (a) there exists a path between two vertices s and t but (b) there is no shortest
More informationChapter 9 Graph Algorithms
Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures Chapter 9 Graph s 2 Definitions Definitions an undirected graph is a finite set
More informationTopics. Ray Tracing II. Intersecting transformed objects. Transforming objects
Topics Ray Tracing II CS 4620 Lecture 16 Transformations in ray tracing Transforming objects Transformation hierarchies Ray tracing acceleration structures Bounding volumes Bounding volume hierarchies
More informationGreedy Algorithms CLRS Laura Toma, csci2200, Bowdoin College
Greedy Algorithms CLRS 16.1-16.2 Laura Toma, csci2200, Bowdoin College Overview. Sometimes we can solve optimization problems with a technique called greedy. A greedy algorithm picks the option that looks
More informationChapter 3 Trees. Theorem A graph T is a tree if, and only if, every two distinct vertices of T are joined by a unique path.
Chapter 3 Trees Section 3. Fundamental Properties of Trees Suppose your city is planning to construct a rapid rail system. They want to construct the most economical system possible that will meet the
More informationMemoization/Dynamic Programming. The String reconstruction problem. CS124 Lecture 11 Spring 2018
CS124 Lecture 11 Spring 2018 Memoization/Dynamic Programming Today s lecture discusses memoization, which is a method for speeding up algorithms based on recursion, by using additional memory to remember
More informationAlgorithmic patterns
Algorithmic patterns Data structures and algorithms in Java Anastas Misev Parts used by kind permission: Bruno Preiss, Data Structures and Algorithms with Object-Oriented Design Patterns in Java David
More informationAlgorithm classification
Types of Algorithms Algorithm classification Algorithms that use a similar problem-solving approach can be grouped together We ll talk about a classification scheme for algorithms This classification scheme
More informationNotes on Non-Chronologic Backtracking, Implication Graphs, and Learning
Notes on Non-Chronologic Backtracking, Implication Graphs, and Learning Alan J. Hu for CpSc 5 Univ. of British Columbia 00 February 9 These are supplementary notes on these aspects of a modern DPLL-style
More informationCentralities (4) By: Ralucca Gera, NPS. Excellence Through Knowledge
Centralities (4) By: Ralucca Gera, NPS Excellence Through Knowledge Some slide from last week that we didn t talk about in class: 2 PageRank algorithm Eigenvector centrality: i s Rank score is the sum
More informationAlgorithms for Decision Support. Integer linear programming models
Algorithms for Decision Support Integer linear programming models 1 People with reduced mobility (PRM) require assistance when travelling through the airport http://www.schiphol.nl/travellers/atschiphol/informationforpassengerswithreducedmobility.htm
More informationFinal Exam Solutions
Introduction to Algorithms December 14, 2010 Massachusetts Institute of Technology 6.006 Fall 2010 Professors Konstantinos Daskalakis and Patrick Jaillet Final Exam Solutions Final Exam Solutions Problem
More informationDirected acyclic graphs
Directed acyclic graphs Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan March, 2 Directed Graphs 2 3 4 5 x v y Edges have direction. Cannot be traversed
More informationPaul's Online Math Notes Calculus III (Notes) / Applications of Partial Derivatives / Lagrange Multipliers Problems][Assignment Problems]
1 of 9 25/04/2016 13:15 Paul's Online Math Notes Calculus III (Notes) / Applications of Partial Derivatives / Lagrange Multipliers Problems][Assignment Problems] [Notes] [Practice Calculus III - Notes
More informationBST Deletion. First, we need to find the value which is easy because we can just use the method we developed for BST_Search.
BST Deletion Deleting a value from a Binary Search Tree is a bit more complicated than inserting a value, but we will deal with the steps one at a time. First, we need to find the value which is easy because
More informationCMSC 380. Graph Terminology and Representation
CMSC 380 Graph Terminology and Representation GRAPH BASICS 2 Basic Graph Definitions n A graph G = (V,E) consists of a finite set of vertices, V, and a finite set of edges, E. n Each edge is a pair (v,w)
More informationGeometric data structures:
Geometric data structures: Machine Learning for Big Data CSE547/STAT548, University of Washington Sham Kakade Sham Kakade 2017 1 Announcements: HW3 posted Today: Review: LSH for Euclidean distance Other
More informationCS1 Lecture 31 Apr. 3, 2019
CS Lecture 3 Apr. 3, 209 HW6 due Fri. Q3: think carefully about overlaps draw pictures Think dimension by dimension three D problems if they don t overlap in x, they don t overlap» Express this in terms
More informationCS 374 Fall 2014 Homework 5 Due Tuesday, October 14, 2014 at noon
CS 374 Fall 2014 Homework 5 Due Tuesday, October 14, 2014 at noon 1. Dance Dance Revolution is a dance video game, first introduced in Japan by Konami in 1998. Players stand on a platform marked with four
More informationData Structures (CS 1520) Lecture 28 Name:
Traeling Salesperson Problem (TSP) -- Find an optimal (ie, minimum length) when at least one exists A (or Hamiltonian circuit) is a path from a ertex back to itself that passes through each of the other
More information