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 15, Problem 4P
Program Plan Intro
To give an
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Let l be a line in the x-yplane. If l is a vertical line, its equation is x = a for some real number a.
Suppose l is not a vertical line and its slope is m. Then the equation of l is y = mx + b, where b is the y-intercept.
If l passes through the point (x₀, y₀), the equation of l can be written as y - y₀ = m(x - x₀).
If (x₁, y₁) and (x₂, y₂) are two points in the x-y plane and x₁ ≠ x₂, the slope of line passing through these points is m = (y₂ - y₁)/(x₂ - x₁).
Instructions
Write a program that prompts the user for two points in the x-y plane. Input should be entered in the following order:
Input x₁
Input y₁
Input x₂
Computer Science
There is an n × n grid of squares. Each square is either special, or has a positive integer costassigned to it. No square on the border of the grid is special.A set of squares S is said to be good if it does not contain any special squares and, starting fromany special square, you cannot reach a square on the border of the grid by performing up, down,left and right moves without entering a cell belonging to S.
5
3
4
9
4
X
3
6
1
9
X
4
1
2
3
5
- Design an algorithm which receives an arbitrary n × n grid, runs in time poly-nomial in n and determines a good set of squares with minimum total cost.
Simulated annealing is an extension of hill climbing, which uses randomness to avoid getting stuck in local maxima and plateaux.
a) As defined in your textbook, simulated annealing returns the current state when the end of the annealing schedule is reached and if the annealing schedule is slow enough. Given that we know the value (measure of goodness) of each state we visit, is there anything smarter we could do?
(b) Simulated annealing requires a very small amount of memory, just enough to store two states: the current state and the proposed next state. Suppose we had enough memory to hold two million states. Propose a modification to simulated annealing that makes productive use of the additional memory.
In particular, suggest something that will likely perform better than just running simulated annealing a million times consecutively with random restarts. [Note: There are multiple correct answers here.]
(c) Gradient ascent search is prone to local optima just like hill climbing.…
Chapter 15 Solutions
Introduction to Algorithms
Ch. 15.1 - Prob. 1ECh. 15.1 - Prob. 2ECh. 15.1 - Prob. 3ECh. 15.1 - Prob. 4ECh. 15.1 - Prob. 5ECh. 15.2 - Prob. 1ECh. 15.2 - Prob. 2ECh. 15.2 - Prob. 3ECh. 15.2 - Prob. 4ECh. 15.2 - Prob. 5E
Ch. 15.2 - Prob. 6ECh. 15.3 - Prob. 1ECh. 15.3 - Prob. 2ECh. 15.3 - Prob. 3ECh. 15.3 - Prob. 4ECh. 15.3 - Prob. 5ECh. 15.3 - Prob. 6ECh. 15.4 - Prob. 1ECh. 15.4 - Prob. 2ECh. 15.4 - Prob. 3ECh. 15.4 - Prob. 4ECh. 15.4 - Prob. 5ECh. 15.4 - Prob. 6ECh. 15.5 - Prob. 1ECh. 15.5 - Prob. 2ECh. 15.5 - Prob. 3ECh. 15.5 - Prob. 4ECh. 15 - Prob. 1PCh. 15 - Prob. 2PCh. 15 - Prob. 3PCh. 15 - Prob. 4PCh. 15 - Prob. 5PCh. 15 - Prob. 6PCh. 15 - Prob. 7PCh. 15 - Prob. 8PCh. 15 - Prob. 9PCh. 15 - Prob. 10PCh. 15 - Prob. 11PCh. 15 - Prob. 12P
Knowledge Booster
Similar questions
- If the first number in a sequence is a positive integer, x Let ao= x, an is defined as follows if an is even, then an+1 = an/2 if an is odd, then an+1 =3 *an+ 1 Then there exists an integer k, such that ak =1 For example, if: 75, then k = 14 and the numbers in the sequence are: 75, 226, 113, 340, 170, 85, 256, 128, 64, 32, 16, 8, 4, 2, 1. The largest number in the sequence is 340 and it is a position 4 in the sequence (assuming 75 is at position 1) Design and implement a complete C++ program that will • read a series of integers (greater than 0) from a file and for each integer display (to the screen) − the integer − the number of steps it takes to reach 1 − the largest value in the sequence and its positionarrow_forwardDynamic Programming) Recall the rod cutting problem. We are given a non-negative integer n and an array P[1..n] of prices. We wish to cut the rod into a number of pieces whose lengths sum to n in order to sell the pieces. We are paid P[i] for selling a piece of length i. Our goal is to find the maximum total selling price for our pieces of rod. Consider a variant of the problem where we can cut the rod into at most k pieces where k ≤ n is given as part of the input. Describe an efficient algorithm for this version of the problem.arrow_forwardImagine there are N teams competing in a tournament, and that each team plays each of the other teams once. If a tournament were to take place, it should be demonstrated (using an example) that every team would lose to at least one other team in the tournament.arrow_forward
- Imagine a collection of nuts and bolts that are all together in one pile on a table. Describe, in pseudocode, how you would find all matching pairs of nuts and bolts. You need to find one solution for each of the problem-solving approaches given below. For each of your solution, determine how many comparisons of pairs of nuts and bolts you might have to make in the best- and worst- case scenario. You can assume that there are complete pairs, no single nuts or bolts, and that for each bolt, there is exactly one nut that fits. Describe a solution to the nuts and bolts problem (in pseudocode) using a Divide and Conquer Approach.arrow_forwardImagine a collection of nuts and bolts that are all together in one pile on a table. Describe, in pseudocode, how you would find all matching pairs of nuts and bolts. You need to find one solution for each of the problem-solving approaches given below. For each of your solutions, determine how many comparisons of pairs of nuts and bolts you might have to make in the best- and worst-case scenario. You can assume that there are complete pairs, no single nuts or bolts and that for each bolt, there is exactly one nut that fits. Describe a solution to the nuts and bolts problem (in pseudocode) using a Divide and Conquer Approach.arrow_forwardA matrix is an array of numbers of size m by n (i.e., m x n). When we multiply 2 matrices, we multiply the matching numbers, then sum them up. Multiplying a matrix of size m x n with another matrix of size n x q will result in a matrix of size m x q. An example is shown in Figure 1: [ ? ? ? ? ? ? ] x [ ? ? ? ? ] = [ ?? +?? ?? + ?? ?? + ?? ?? + ?? ?? + ?? ?? + ?? ] Matrix 3 x 2 Matrix 2 x 2 Matrix 3 x 2 Figure 1: Multiplication of Matrix 3 x 2 and 2 x 2 Write a C++ program that multiplies 2 matrices and return the sum of the transposed matrix. Your program shall include the following: a) Define two 2 dimensional arrays, M and N that each represents a matrix of size 3 x 2 and a matrix of size 2 x 2. Request the user to enter the values for the 2 arrays using advanced pointer notations (refer to your slides for the list of array pointer notations). b) Create a function named multMatrix() that passes as arguments, the values of array M and N, multiplies them and store the results in a new…arrow_forward
- Problem Alice was given a number line containing every positive integer, x, where 1<=x<=n. She was also given m line segments, each having a left endpoint, l (1<=l<=n), a right endpoint, r (1<=r<=n), and an integer weight, w. Her task is to cover all numbers on the given number line using a subset of the line segments, such that the maximum weight among all the line segments in the chosen subset is minimal. In other words, let S=(l1,r1,w1),(l2,r2,w2),....,(lk,rk,wk), represent a set of k line segments chosen by Alice, max(w1,w2,...,wk) should be minimized. All numbers 1,2,....n should be covered by at least one of k the chosen line segments. It is okay for the chosen line segments to overlap. You program should output the minimized maximum weight in the chosen subset that covers all the numbers on the number line, or -1 if it is not possible to cover the number line. Input format The first line of the input contains an integer, n - denoting the range of numbers…arrow_forwardJava Programming Consider a set of n intervals I1,...,In, each given as an integer tuple (si,fi) with si<fi, such that the ith interval starts at si and ends at fi. We want to determine the maximum number of nonoverlapping intervals. More formally, we want to determine the size of a largest subset S⊆{1,...,n} such that for i, j∈S, with i≠j we have fj≤si or fi≤sj. Note that the intervals [1,2] and [2,3] are not considered to be overlapping. Input The first line of input consists of an integer n∈{1,...,105}, the number of intervals. Each of the following n lines consists of two space-separated integers ss and ff, indicating an interval starting at s and ending at f, with 0≤s<f≤109. requirements: CPU Time limit: 4 seconds Memory limit: 1024 MB Output Output a single integer, the largest number of nonoverlapping intervals.arrow_forwardD1) Suppose that we have t = 5 treatments and we can only have blocks of size three. .(a) Find the smallest BIBD (fewest number of blocks). Give the values of r and λ .(b) If we could have blocks of size four, can we run a BIBD? Is there an advantage over the design in part (a)? .(c) Write out the layout of the design from part (b) showing how to arrange the treatments in blocks.arrow_forward
- * Assignment: Longest increasing subsequence * * Sequences are a natural source of computational problems. One such * family of problems involves finding subsequences with specified * properties in a given sequence. This exercise asks you to write * a program that, given a sequence * * s(0), s(1), ..., s(n-1) * * of integers as input, finds a ___longest increasing subsequence___ * of the sequence s. * * For example, suppose we are given as input the sequence * * 72, 16, 51, 17, 6, 21, 92, 59, 54, 78, 41, 33, 94, * 85, 83, 56, 2, 46, 57, 44, 73, 6, 47, 47, 0. * * In this sequence, a longest increasing subsequence has length 7. * One example of such an increasing subsequence is * * 16 < 17 < 21 < 54 < 56 < 57 < 73. * * More generally, your program must be such that * given a sequence * * s(0), s(1), ..., s(n-1) * * of integers as input, the program returns a subsequence * * s(i_1), s(i_2), ..., s(i_k) * * that meets all…arrow_forwardIN PYTHON A tridiagonal matrix is one where the only nonzero elements are the ones on the main diagonal and the ones immediately above and below it.Write a function that solves a linear system whose coefficient matrix is tridiag- onal. In this case, Gauss elimination can be made much more efficient because most elements are already zero and don't need to be modified or added. As an example, consider a linear system Ax = b with 100,000 unknowns and the same number of equations. The coefficient matrix A is tridiagonal, with all elements on the main diagonal equal to 3 and all elements on the diagonals above and below it equal to 1. The vector of constant terms b contains all ones, except that the first and last elements are zero. You can use td to find that x1= −0.10557. The following code format should help: def td(l, m, u, b): '''Solve a linear system Ax = b where A is tridiagonal Inputs: l, lower diagonal of A, n-1 vector m, main diagonal of A, n vector u,…arrow_forwardConsider 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…arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrC++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning