What do you mean by dynamic programming? Write the algorithm of chain matrix multiplication.
Dynamic Programming:
It is a problem solving technique like divide and conquer where problems are divided into subproblems. Dynamic programming is used when the subproblems are not independent. It can solve optimization problem as well as the multistage decision problems. It is a bottom-up mechanism-we solve all possible small problems and then combine them to obtain solutions for bigger problems.
Algorithm of chain matrix multiplication:
Matrix-Chain(array p[1 .. n], int n) { Array s[1 .. n − 1, 2 .. n]; for i = 1 to n do m[i, i] = 0; // initialize for L = 2 to n do { // L=length of subchain for i = 1 to n − L + 1 do { j = i + L − 1; m[i, j] = infinity; for k = i to j − 1 do { // check all splits q = m[i, k] + m[k + 1, j] + p[i − 1] p[k] p[j]; if (q < m[i, j]) { m[i, j] = q; s[i, j] = k; } } } } return m[1, n](final cost) and s (splitting markers); }
where p is the input array, m is the auxiliary array and s is the splitting array.
What do you mean by dynamic programming? Write the algorithm of chain matrix multiplication.
Write the string matching algorithm due to Knuth,Moris and Pratt. Analyze its time complexity.
Write short notes on
Define software quality. Briefly explain McCall’s quality factors.
Write a C program to check a number is even or odd.
Briefly Discuss about Requirements Analysis
What are Halstead’s metrics?
What is linear searching?
What is the Modularity of a Software System ?