1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Sindrei [870]
3 years ago
14

You are given 4 matrices M1, M2, M3, M4 and you are asked to determine the optimal schedule for the product M1 ×M2 × M3 ×M4 that

minimizes the number of operations (addition/multiplication) involved. The dimensions of the four matrices are respectively 100 × 50, 50 × 200, 200 × 50, and 50 × 10. What is the best (cheapest) schedule to multiply all the matrices together and compute M1 × M2 × M3 × M4? What is the total cost for this schedule?

Mathematics
1 answer:
alexandr1967 [171]3 years ago
7 0

Answer:

Step-by-step explanation:

first method is to try out all possible combinations and pick out the best one which has the minimum operations but that would be infeasible method if the no of matrices increases  

so the best method would be using the dynamic programming approach.

A1 = 100 x 50

A2 = 50 x 200

A3 = 200 x 50

A4 = 50 x 10

Table M can be filled using the following formula

Ai(m,n)

Aj(n,k)

M[i,j]=m*n*k

The matrix should be filled diagonally i.e., filled in this order

(1,1),(2,2)(3,3)(4,4)

(2,1)(3,2)(4,3)

(3,1)(4,2)

(4,1)

<u>                  Table M[i, j]                                             </u>

             1                      2                  3                    4

4    250000          200000        100000                0  

3      

750000        500000            0

2      1000000             0

1            

0

Table S can filled this way

Min(m[(Ai*Aj),(Ak)],m[(Ai)(Aj*Ak)])

The matrix which is divided to get the minimum calculation is selected.

Table S[i, j]

           1          2         3        

4

4          1           2         3

3          

1          2

2            1

1

After getting the S table the element which is present in (4,1) is key for dividing.

So the matrix multiplication chain will be (A1 (A2 * A3 * A4))

Now the element in (4,2) is 2 so it is the key for dividing the chain

So the matrix multiplication chain will be (A1 (A2 ( A3 * A4 )))

Min number of multiplications: 250000

Optimal multiplication order: (A1 (A2 ( A3 * A4 )))

to get these calculations perform automatically we can use java

code:

public class MatrixMult

{

public static int[][] m;

public static int[][] s;

public static void main(String[] args)

{

int[] p = getMatrixSizes(args);

int n = p.length-1;

if (n < 2 || n > 15)

{

System.out.println("Wrong input");

System.exit(0);

}

System.out.println("######Using a recursive non Dyn. Prog. method:");

int mm = RMC(p, 1, n);

System.out.println("Min number of multiplications: " + mm + "\n");

System.out.println("######Using bottom-top Dyn. Prog. method:");

MCO(p);

System.out.println("Table of m[i][j]:");

System.out.print("j\\i|");

for (int i=1; i<=n; i++)

System.out.printf("%5d ", i);

System.out.print("\n---+");

for (int i=1; i<=6*n-1; i++)

System.out.print("-");

System.out.println();

for (int j=n; j>=1; j--)

{

System.out.print(" " + j + " |");

for (int i=1; i<=j; i++)

System.out.printf("%5d ", m[i][j]);

System.out.println();

}

System.out.println("Min number of multiplications: " + m[1][n] + "\n");

System.out.println("Table of s[i][j]:");

System.out.print("j\\i|");

for (int i=1; i<=n; i++)

System.out.printf("%2d ", i);

System.out.print("\n---+");

for (int i=1; i<=3*n-1; i++)

System.out.print("-");

System.out.println();

for (int j=n; j>=2; j--)

{

System.out.print(" " + j + " |");

for (int i=1; i<=j-1; i++)

System.out.printf("%2d ", s[i][j]);

System.out.println();

}

System.out.print("Optimal multiplication order: ");

MCM(s, 1, n);

System.out.println("\n");

System.out.println("######Using top-bottom Dyn. Prog. method:");

mm = MMC(p);

System.out.println("Min number of multiplications: " + mm);

}

public static int RMC(int[] p, int i, int j)

{

if (i == j) return(0);

int m_ij = Integer.MAX_VALUE;

for (int k=i; k<j; k++)

{

int q = RMC(p, i, k) + RMC(p, k+1, j) + p[i-1]*p[k]*p[j];

if (q < m_ij)

m_ij = q;

}

return(m_ij);

}

public static void MCO(int[] p)

{

int n = p.length-1;     // # of matrices in the product

m    =    new    int[n+1][n+1];        //    create    and    automatically initialize array m

s = new int[n+1][n+1];

for (int l=2; l<=n; l++)

{

for (int i=1; i<=n-l+1; i++)

{

int j=i+l-1;

m[i][j] = Integer.MAX_VALUE;

for (int k=i; k<=j-1; k++)

{

int 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;

}

}

}

}

}

public static void MCM(int[][] s, int i, int j)

{

if (i == j) System.out.print("A_" + i);

else

{

System.out.print("(");

MCM(s, i, s[i][j]);

MCM(s, s[i][j]+1, j);

System.out.print(")");

}

}

public static int MMC(int[] p)

{

int n = p.length-1;

m = new int[n+1][n+1];

for (int i=0; i<=n; i++)

for (int j=i; j<=n; j++)

m[i][j] = Integer.MAX_VALUE;

return(LC(p, 1, n));

}

public static int LC(int[] p, int i, int j)

{

if (m[i][j] < Integer.MAX_VALUE) return(m[i][j]);

if (i == j) m[i][j] = 0;

else

{

for (int k=i; k<j; k++)

{

int   q   =   LC(p,   i,   k)   +   LC(p,   k+1,   j)   +   p[i-1]*p[k]*p[j];

if (q < m[i][j])

m[i][j] = q;

}

}

return(m[i][j]);

}

public static int[] getMatrixSizes(String[] ss)

{

int k = ss.length;

if (k == 0)

{

System.out.println("No        matrix        dimensions        entered");

System.exit(0);

}

int[] p = new int[k];

for (int i=0; i<k; i++)

{

try

{

p[i] = Integer.parseInt(ss[i]);

if (p[i] <= 0)

{

System.out.println("Illegal input number " + k);

System.exit(0);

}

}

catch(NumberFormatException e)

{

System.out.println("Illegal input token " + ss[i]);

System.exit(0);

}

}

return(p);

}

}

output:

You might be interested in
Question 12 (2 points)
elena55 [62]

Answer:

A box plot is drawn with end points at 24 and 49.The box extends from 28 to 44 and a vertical line is drawn inside the box at 34.

Step-by-step explanation:

Ordering the data given :

24,28,32,34,40,44,49

We can calculate the 5 number summary required to give the appropriate boxplot that can be produced :

Minimum = 24

Maximum = 49

Median = 1/2(n+1)th term

n = 7

Median = 1/2(8) = 4th term

Median = 34

Lower quartile, Q1 = 1/4(n+1)th term

n = 7

1/4(8) = 2nd term

Q1 = 28

Upper quartile : 3/4(n+1)th term

n = 7

Q3 = 3/4(8) = 6th term

Q3= 44

3 0
3 years ago
The test scores for the exam in statistics class have a mean of 78 points and standard deviation of 9 points. A student is rando
frutty [35]

Answer: the answer is 809

Step-by-step explanation:

3 0
2 years ago
Which expression represents the composition [g-f. h](x) for the functions below?
ss7ja [257]

Answer:

the composition of the expression [g-f.h](x) is g(x)=5x2

7 0
3 years ago
Caleb has driven 820 miles of his road trip. He has 20% of his trip left to go. How many miles does he have left to go? Need asp
Neporo4naja [7]
He has 164 miles left
5 0
3 years ago
help me please i dont understand the associative, distributive, and commutative property i also cant figure out which one it is
lorasvet [3.4K]

Answer:

Step-by-step explanation:

3 0
3 years ago
Other questions:
  • True or false: to obtain the graph of f(x)=square root x+2 shift the graph of y=square root X horizontally to the right 2 units.
    10·1 answer
  • Twelve boys collected 16 aluminum cans each. Fifteen girls collected 14 aluminum cans each. How many more cans did the girls col
    5·2 answers
  • Solve<br>5(2+4m)=-2(5-10m)
    12·1 answer
  • Point P(2, 3) is reflected across the y-axis to create point P'. Determine the quadrant of the image.
    7·2 answers
  • Any help would be appreciated
    12·1 answer
  • Which expression shows the result of applying the distributive property to 3(1/5 x - 1/7)
    13·1 answer
  • Cheryl moves houses. Her old house is 3 kilometers from her new house. How many meters is it from the old house to the new house
    6·1 answer
  • Factor completely.<br> 28 – 7x2
    13·1 answer
  • Use the midpoint formula to estimate the sales of Cars, Inc. in 2009, given the sales in 2008 and 2010. Assume that the sales of
    6·1 answer
  • HELP SOLVE PLS. Find the Volume of the sphere shown. Give each answer rounded to the nearest cubic unit. Answer choices: 442 cm,
    11·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!