Question

Transcribed Image Text:Design a recursive version of dynamic programming algorithm (Top-down) to construct the actual solution
of the matrix chain multiplication problem (i.e., the parentheses order). For this problem, please write down
the recursive function in pseudocode and Write down the dynamic table and matrix output on the following
examples:
(a) Three matrices (A, B, and C) with dimensions 10 × 50 × 5 × 100, respectively.
(b) Four matrices (A, B, C, and D) with dimensions 20 × 5 × 10 × 30 × 10, respectively.
SAVE
AI-Generated Solution
info
AI-generated content may present inaccurate or offensive content that does not represent bartleby’s views.
Unlock instant AI solutions
Tap the button
to generate a solution
to generate a solution
Click the button to generate
a solution
a solution
Knowledge Booster
Similar questions
- The Lucas numbers are a series of numbers where the first two Lucas numbers (i.e., at indices 0 and 1) are 2 and 1 (respectively) and the kth Lucas number L_k (where k>1) is L_(k-1) + L_(k-2). Consider the following recursive definition for a function that is supposed to find the nth element of the Lucas numbers. Select the best option that identifies the line of code that prevents this function from running recursively and provides the correct code. Question options: line 5 should be return recursive_function(n-1) + recursive_function(n-2) line 3 should be return [2,1][n-1][n-2] line 3 should be return [2,1][n-1] line 2 should be if n <= 2: line 5 should be return recursive_function(n-1 + n-2) None of these optionsarrow_forwardWrite the code implementation for the pageRank algorithem stated in the image below(java, python or c)arrow_forwardThis is a matlab coding problem Implement a recursive function, called isPalindrome, that takes a as input an array of characters and returns true or false depending on if the character array contains a palindrome. A palindrome is a series of characters that can be read the same forwards and backwards. For example: disp(isPalindrome('')) % truedisp(isPalindrome('a')) % truedisp(isPalindrome('aa')) % truedisp(isPalindrome('aaba')) % falsedisp(isPalindrome('tacocat')) % truearrow_forward
- Using Python Recursion is the concept of a function calling itself until the problem is solved when the Base Case is met. Study Recursion: See slides in Modules, Practice Slides, lab12 and also Recursion is in chapter 9 of the textbook. Some examples of recursion are: compute [ factorial of a number, towers of Hanoi, fractals (as shown in the textbook), and many more]. Example: See slides Page 2 For this assignment we'll use Collatz Cojecture (see Wikipedia). Collatz Conjecture algorithm: Given a number n, first call to the function: f(n): In the function: if n == 1 return 1: if n is even then f(n/2), i.e. call self with the new value. else (n is odd) call self with the new value, f((n*3)+1) and repeat. All numbers eventually end up with 1. The program should test for the base case which is: if n == 1, in which case it returns to the caller with 1. This problem is perfect to demonstrate Recursion.Create a list with random numbers (you can just do this part manually) in the list as 1,…arrow_forwardIn this programming assignment, you are expected to design an experimental study for thecomparison between Hoare’s partitioning and Lomuto’s partitioning in Quicksort algorithm.You must implement the recursive Quicksort algorithm using two partitioning algorithms inJava. You must design the experiments for the comparison of two algorithms both theoreticallyand empirically. You must write a detailed report including the pseudo-code of the algorithms,the time complexity of the algorithms, the experimental design, and your results. You canprovide some plots (scatter, line etc.) to illustrate your results.arrow_forward8- Determine if each of the following recursive definition is a valid recursive definition of a function f from a set of non-negative integers. If f is well defined, find a formula for f(n) where n is non- negative and prove that your formula is valid. a. f(0) = 2,f(1) = 3, f(n) = f(n-1)-1 for n ≥ 2 b. f(0) = 1,f(1) = 2, f(n) = 2f (n-2) for n = 2arrow_forward
- a. Correctness of dynamic programming algorithm: Usually, a dynamic programming algorithm can be seen as a recursion and proof by induction is one of the easiest way to show its correctness. The structure of a proof by strong induction for one variable, say n, contains three parts. First, we define the Proposition P(n) that we want to prove for the variable n. Next, we show that the proposition holds for Base case(s), such as n = 0, 1, . . . etc. Finally, in the Inductive step, we assume that P(n) holds for any value of n strictly smaller than n' , then we prove that P(n') also holds. Use the proof by strong induction properly to show that the algorithm of the Knapsack problem above is correct. b. Bounded Knapsack Problem: Let us consider a similar problem, in which each item i has ci > 0 copies (ci is an integer). Thus, xi is no longer a binary value, but a non-negative integer at most equal to ci , 0 ≤ xi ≤ ci . Modify the dynamic programming algorithm seen at class for this…arrow_forwardYour main task is to write a recursive function sierpinski() that plots a Sierpinski triangle of order n to standard drawing. Think recursively: sierpinski() should draw one filled equilateral triangle (pointed downwards) and then call itself recursively three times (with an appropriate stopping condition). It should draw 1 filled triangle for n = 1; 4 filled triangles for n = 2; and 13 filled triangles for n = 3; and so forth. Sierpinski.java When writing your program, exercise modular design by organizing it into four functions, as specified in the following API: public class Sierpinski { // Height of an equilateral triangle with the specified side length. public static double height(double length) // Draws a filled equilateral triangle with the specified side length // whose bottom vertex is (x, y). public static void filledTriangle(double x, double y, double length) // Draws a Sierpinski triangle of order n, such that the largest filled //…arrow_forwardCan you please help me solve problem 2?arrow_forward
- In any CAS or programmng languagearrow_forwardThe 4th problem mimics the situation where eagles flying in the sky can be spotted and counted.FindEagles: a recursive function that examines and counts the number of objects (eagles) in aphotograph. The data is in a two-dimensional grid of cells, each of which may be empty (value 0) orfilled (value 1 to 9). Maximum grid size is 50 x 50. The filled cells that are connected form an object(eagle). Two cells are connected if they are vertically, horizontally, or diagonally adjacent. Thefollowing figure shows 3 x 4 grids with 3 eagles. 0 0 1 21 0 0 01 0 3 1 FindEagle function takes as parameters the 2-D array and the x-y coordinates of a cell that is a part ofan eagle (non-zero value) and erases (change to 0) the image of an eagle. The function FindEagleshould return an integer value that counts how many cells has been counted as part of an eagle and havebeen erased. The following sample data has two pictures, the first one is 3 x 4, and the second one is 5 x 5 grids. Notethat your program…arrow_forwardUsing recursion, write a Python function def before(k,A) which takes an integer k and an array A of integers as inputs and returns a new array consisting of all the integers in A which come before the last occurrence of k in A, in the same order they are in A. For example, if A is [1,2,3,6,7,2,3,4] then before(3,A) will return [1,2,3,6,7,2]. If k does not occur in A, the function should return None.arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios