Note: Please use the recommended text book as Introduction to Algorithms (3rd Edition).
Please post the answers in text format.
Dynamic programming and greedy algorithm: 5. Review the textbook on the matrix chain multiplication problem. Find an optimal parenthesization of a matrix-chain product whose sequence of dimensions is p. Follow the textbook convention and show all intermediate results (including tables m and s). [10 points]
Expert Answer
The below code is in java which takes your dimensions displays minimum multiplications.
Source code:
public class TestMatrixChainMultiplication {
static int getChainMatrixOrder(int objP[], int objN) {
int objM[][] = new int[objN][objN];
int objI, objJ, objK, objL, objQ;
for (objI = 1; objI < objN; objI++)
objM[objI][objI] = 0;
for (objL = 2; objL < objN; objL++) {
for (objI = 1; objI < objN – objL + 1; objI++) {
objJ = objI + objL – 1;
if (objJ == objN)
continue;
objM[objI][objJ] = Integer.MAX_VALUE;
for (objK = objI; objK <= objJ – 1; objK++) {
objQ = objM[objI][objK] + objM[objK + 1][objJ] + objP[objI – 1] * objP[objK] * objP[objJ];
if (objQ < objM[objI][objJ])
objM[objI][objJ] = objQ;
}
}
}
return objM[1][objN – 1];
}
public static void main(String args[]) {
int objArr[] = new int[] { 2,6,5,3,4,7 };
int objSize = objArr.length;
System.out.println(“Result : Minimum number of multiplications is “+ getChainMatrixOrder(objArr, objSize));
}
}
Time complexity:
The time complexity for the above code is O(n^3)
output screenshot: