Introduction to Algorithms
3rd Edition
ISBN: 9780262033848
Author: Thomas H. Cormen, Ronald L. Rivest, Charles E. Leiserson, Clifford Stein
Publisher: MIT Press
expand_more
expand_more
format_list_bulleted
Question
Chapter 35, Problem 7P
a
Program Plan Intro
To argue that the solution to instance I of the 0-1 knapsack problem is one of
b
Program Plan Intro
To prove that an optimal solution
c
Program Plan Intro
To prove that that an optimal solution
c
Program Plan Intro
Toprove that
d
Program Plan Intro
To give a polynomial-time algorithm that returns a maximum-value solution from the set
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Consider the problem of making change for n cents using the fewest number of coins. Assume that we live in a country where coins come in k dierent denominations c1, c2, . . . , ck, such that the coin values are positive integers, k ≥ 1, and c1 = 1, i.e., there are pennies, so there is a solution for every value of n. For example, in case of the US coins, k = 4, c1 = 1, c2 = 5, c3 = 10, c4 = 25, i.e., there are pennies, nickels, dimes, and quarters. To give optimal change in the US for n cents, it is sufficient to pick as many quarters as possible, then as many dimes as possible, then as many nickels as possible, and nally give the rest in pennies.
Design a bottom-up (non-recursive) O(nk)-time algorithm that makes change for any set of k different coin denominations. Write down the pseudocode and analyze its running time. Argue why your choice of the array and the order in which you fill in the values is the correct one. Notice how it is a lot easier to analyze the running time of…
Consider the problem of making change for n cents using the fewest number of coins. Assume that we live in a country where coins come in k dierent denominations c1, c2, . . . , ck, such that the coin values are positive integers, k ≥ 1, and c1 = 1, i.e., there are pennies, so there is a solution for every value of n. For example, in case of the US coins, k = 4, c1 = 1, c2 = 5, c3 = 10, c4 = 25, i.e., there are pennies, nickels, dimes, and quarters. To give optimal change in the US for n cents, it is sufficient to pick as many quarters as possible, then as many dimes as possible, then as many nickels as possible, and nally give the rest in pennies.
Design a bottom-up (non-recursive) O(nk)-time algorithm that makes change for any set of k different coin denominations. Write down the pseudocode and analyze its running time. Argue why your choice of the array and the order in which you ll in the values is the correct one.
Consider the problem of making change for n cents using the fewest number of coins. Assume that we live in a country where coins come in k dierent denominations c1, c2, . . . , ck, such that the coin values are positive integers, k ≥ 1, and c1 = 1, i.e., there are pennies, so there is a solution for every value of n. For example, in case of the US coins, k = 4, c1 = 1, c2 = 5, c3 = 10, c4 = 25, i.e., there are pennies, nickels, dimes, and quarters. To give optimal change in the US for n cents, it is sufficient to pick as many quarters as possible, then as many dimes as possible, then as many nickels as possible, and nally give the rest in pennies.
Prove that the coin changing problem exhibits optimal substructure. Design a recursive backtracking (brute-force) algorithm that returns the minimum number of coins needed to make change for n cents for any set of k different coin denominations. Write down the pseudocode and prove that your algorithm is correct.
Chapter 35 Solutions
Introduction to Algorithms
Ch. 35.1 - Prob. 1ECh. 35.1 - Prob. 2ECh. 35.1 - Prob. 3ECh. 35.1 - Prob. 4ECh. 35.1 - Prob. 5ECh. 35.2 - Prob. 1ECh. 35.2 - Prob. 2ECh. 35.2 - Prob. 3ECh. 35.2 - Prob. 4ECh. 35.2 - Prob. 5E
Ch. 35.3 - Prob. 1ECh. 35.3 - Prob. 2ECh. 35.3 - Prob. 3ECh. 35.3 - Prob. 4ECh. 35.3 - Prob. 5ECh. 35.4 - Prob. 1ECh. 35.4 - Prob. 2ECh. 35.4 - Prob. 3ECh. 35.4 - Prob. 4ECh. 35.5 - Prob. 1ECh. 35.5 - Prob. 2ECh. 35.5 - Prob. 3ECh. 35.5 - Prob. 4ECh. 35.5 - Prob. 5ECh. 35 - Prob. 1PCh. 35 - Prob. 2PCh. 35 - Prob. 3PCh. 35 - Prob. 4PCh. 35 - Prob. 5PCh. 35 - Prob. 6PCh. 35 - Prob. 7P
Knowledge Booster
Similar questions
- The algorithm of Euclid computes the greatest common divisor (GCD) of two integer numbers a and b. The following pseudo-code is the original version of this algorithm. Algorithm Euclid(a,b)Require: a, b ≥ 0Ensure: a = GCD(a, b) while b ̸= 0 do t ← b b ← a mod b a ← tend whilereturn a We want to estimate its worst case running time using the big-Oh notation. Answer the following questions: a. Let x be a integer stored on n bits. How many bits will you need to store x/2? b. We note that if a ≥ b, then a mod b < a/2. Assume the values of the input integers a and b are encoded on n bits. How many bits will be used to store the values of a and b at the next iteration of the While loop? c. Deduce from this observation, the maximal number iterations of the While loop the algorithm will do.arrow_forwardImplement the algorithm for an optimal parenthesization of a matrix chain product as dis-cussed in the class.Use the following recursive function as part of your program to print the outcome, assumethe matrixes are namedA1, A2, ..., An.PRINT-OPTIMAL-PARENS(s, i, j){if (i=j) thenprint “A”i else{print “(”PRINT-OPTIMAL-PARENS(s,i,s[i, j])PRINT-OPTIMAL-PARENS(s, s[i, j] + 1, j)print “)”} }a- Test your algorithm for the following cases:1. Find and print an optimal parenthesization of a matrix-chain product whose sequenceof dimensions is<5,10,3, X,12,5,50, Y,6>.2. Find and print an optimal parenthesization of a matrix-chain product whose sequenceof dimensions is<5,10,50,6, X,15,40,18, Y,30,15, Z,3,12,5>. 3. Find and print an optimal parenthesization of a matrix-chain product whose sequenceof dimensions is<50,6, X,15,40,18, Y,5,10,3,12,5, Z,40,10,30,5>. X=10 Y=20 Z=30arrow_forwardThe algorithm of Euclid computes the greatest common divisor (GCD) of two integer numbers a and b. The following pseudo-code is the original version of this algorithm. Algorithm Euclid(a,b)Require: a, b ≥ 0Ensure: a = GCD(a, b) while b ̸= 0 do t ← b b ← a mod b a ← tend whilereturn a We want to estimate its worst case running time using the big-Oh notation. Assuming the Euclidian division of two integers of n bits is executed in O(n^2), give a big-Oh notation of the worst-case running time of the algorithm Euclid.arrow_forward
- In this exercise we will develop a dynamic programming algorithm for finding the maximum sum of consecutive terms of a sequence of real numbers. Thatis, given a sequence of real numbers a1, a2,… , an,the algorithm computes the maximum sum ∑k(top) i=j(bottom) a_iwhere 1 ≤ j ≤ k ≤ n. b) Let M(k) be the maximum of the sums of consecutiveterms of the sequence ending at ak. That is, M(k) =max1≤j≤k∑ki=j ai. Explain why the recurrence relationM(k) = max(M(k − 1) + ak, ak) holds for k = 2, ..., n.c) Use part (b) to develop a dynamic programming algorithm for solving this problem.d) Show each step your algorithm from part (c) uses tofind the maximum sum of consecutive terms of thesequence 2,−3, 4, 1,−2, 3.e) Show that the worst-case complexity in terms of thenumber of additions and comparisons of your algorithm from part (c) is linear.arrow_forwardThis problem exercises the basic concepts of game playing, using tic-tac-toe (noughtsand crosses) as an example. We define Xn as the number of rows, columns, or diagonals with exactly n X’s and no O’s. Similarly, On is the number of rows, columns, or diagonals with just n O’s. The utility function assigns +1 to any position with X3 = 1 and −1 to any position with O3 = 1. All other terminal positions have utility 0. For nonterminal positions, we use a linear evaluation function defined as Eval (s) = 3X2(s)+X1(s)−(3O2(s)+O1(s))."Mark on your tree the evaluations of all the positions at depth 2."arrow_forwardPLEASE HELP ME. kindly show all your work 1. Prove that∀k ∈ N, 1k + 2k + · · · + nk ∈ Θ(nk+1). 2. Suppose that the functions f1, f2, g1, g2 : N → R≥0 are such that f1 ∈ Θ(g1) and f2 ∈ Θ(g2).Prove that (f1 + f2) ∈ Θ(max{g1, g2}). Here (f1 + f2)(n) = f1(n) + f2(n) and max{g1, g2}(n) = max{g1(n), g2(n)}. 3. Let n ∈ N \ {0}. Describe the largest set of values n for which you think 2n < n!. Use induction toprove that your description is correct.Here m! stands for m factorial, the product of first m positive integers. 4. Prove that log2 n! ∈ O(n log2 n). Thank you. But please show all work and all stepsarrow_forward
- we consider a problem where we are given a set of coins andour task is to form a sum of money n using the coins. The values of the coins arecoins = {c1, c2,..., ck}, and each coin can be used as many times we want. Whatis the minimum number of coins needed?For example, if the coins are the euro coins (in cents){1,2,5,10,20,50,100,200}and n = 520, we need at least four coins. The optimal solution is to select coins200+200+100+20 whose sum is 520.arrow_forwardConsider the problem of counting, in a given text, the number of substrings that start with an A and end with a B. For example, there are four such substrings in CABAAXBYA.a. Design a brute-force algorithm for this problem and determine its efficiency class.b. Design a more efficient algorithm for this problem with complexity O (n)arrow_forwardthe closest-pair problem can be posted in the 3-dimensional space, in which the euclidean distance between two points p1(x1, y1, z1) and p2(x2, y2, z2) is defined as d = √(x1−x2)^2+(y1−y2)^2+(z1−z2)^2 what is the time-efficiency class of the brute-force algorithm for the 3-dimensional closest-pair problem?arrow_forward
- We know that when we have a graph with negative edge costs, Dijkstra’s algorithm is not guaranteed to work. (a) Does Dijkstra’s algorithm ever work when some of the edge costs are negative? Explain why or why not. (b) Find an algorithm that will always find a shortest path between two nodes, under the assumption that at most one edge in the input has a negative weight. Your algorithm should run in time O(m log n), where m is the number of edges and n is the number of nodes. That is, the runnning time should be at most a constant factor slower than Dijkstra’s algorithm. To be clear, your algorithm takes as input (i) a directed graph, G, given in adjacency list form. (ii) a weight function f, which, given two adjacent nodes, v,w, returns the weight of the edge between them. For non-adjacent nodes v,w, you may assume f(v,w) returns +1. (iii) a pair of nodes, s, t. If the input contains a negative cycle, you should find one and output it. Otherwise, if the graph contains at least one…arrow_forwardAn agent is trying to eat all the food in a maze that contains obstacles, but he now has the help of his friends! An agent cannot occupy a squarethat has an obstacle. There are initially k pieces of food (represented by dots), at positions (f1,...,fk). Thereare also n agents at positions (p1,...,pn). Initially, all agents start at random locations in the maze. Consider a search problem in which all agents move simultaneously;that is, in each step each agent moves into some adjacent position (N, S, E, or W, or STOP). Note that any number of agents may occupy the same position. Figure 1: A maze with 3 agents Give a search formulation to the problem of looking for both gold and diamondin a maze (wirte step with detail)? Knowing that you have M squares in the maze that do not have an What is the maximum size of the state space.arrow_forwardAlgorithm A search using the heuristic h(n) = α for some fixed constant α > 0 is guaranteed to find an optimal solution Select one: True Falsearrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning