* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download assig4
Survey
Document related concepts
Transcript
CS3335 Design and Analysis of Algorithms Assignment 4. (Due on Dec 2. 2:30 p.m.) Question 1. (20 points) Give an O(n2) dynamic algorithm to find the longest monotonically increasing subsequence of a sequence of n numbers. (Assume that each integer appears once in the input sequence of n numbers) Example: Consider sequence 1,8, 2,9, 3,10, 4, 5. Both subsequences 1, 2, 3, 4, 5 and 1, 8, 9, 10 are monotonically increasing subsequences. However, 1,2,3, 4, 5 is the longest. Question 2. (40 points) Give an O(n2) dynamic algorithm to find the longest monotonically increasing subsequence of a sequence of n numbers, where an odd number in the monotonically increasing subsequence must be followed by an even number. Example: Consider sequence 1,7,8, 2,9, 3,10, 4, 5. Both subsequences 1, 2, 3, 4, 5 and 1, 8, 9, 10 are monotonically increasing subsequences. However, 1,2,3, 4, 5 is not the one that we are looking for since 5 is not followed by an even number. Question 3 (40 points) Let T be a rooted binary tree, where each internal node in the tree has two children and every node (except the root) in T has a parent. Each leaf in the tree is assigned a letter in ={A, C, G, T}. Figure 1 gives an example. Consider an edge e in T. If every end of e is assigned a letter, then the cost of e is 0 if the two letters are identical and the cost is 1 if the two letters are not identical. The problem here is to assign a letter in to each internal node of T such that the cost of the tree is minimized, where the cost of the tree is the total cost of all edges in the tree. Design a dynamic programming algorithm to solve the problem. A A C Figure 1