You are on page 1of 23

MULTIPLICACION DE MATRICES

Programacin Dinmica o a

Manchego Quispe Yusn e

Poma Pumacayo Erick

Velasco Aasco Hossmell n

22 de agosto de 2011

Agenda
MULTIPLICACION DE MATRICES

Introduction Multiplicacin de matrices o Costo de Multiplicacin de matrices o Multiplicacin de una Sucesin matrices o o Multiplicacin de una Sucesin matrices o o Programacin Dinmica o a Solucin Optima o Recursion Ejemplo Implementacion
23

Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion Ejemplo Implementacion

Introduction
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell 3 Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion Ejemplo Implementacion

Supongamos que queremos multiplicar 4 matrices: A1 A2 A3 A4 Existen 5 maneras distintas de realizarlo: (A1 (A2 (A3 A4 ))) (A1 ((A2 A3 )A4 )) ((A1 A2 )(A3 A4 )) ((A1 (A2 A3 ))A4 ) (((A1 A2 )A3 )A4 ) La multiplicacin de matrices es asociativa. o

23

Multiplicacin de matrices o
MULTIPLICACION DE MATRICES

Utilizando el algoritmo estndar de multiplicacin de matrices: a o Multiplicar Matrices (A,B) if columnas [A] != filas [B] then error "dimensiones incompatibles" else for i=1 to filas[A] do for j =1 to columnas[B] do C[i,j] = 0 for k = 1 to columnas[A] do c[i,j] = c[i,j]+A [i,k] *B[k,j] return C La complejidad se mide en trminos de multiplicaciones, cuyo e costo es (pqr ) si A es de orden pxq y B de orden qxr .
23

Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction 4 Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion Ejemplo Implementacion

Costo de Multiplicacin de matrices o


MULTIPLICACION DE MATRICES

Ilustremos los diferentes costos en que incurren la parentizacin de o la multiplicacin de matrices, consideremos el problema de o multiplicar 3 matrices (A1 , A2 , A3 ), entonces el costo (nmero de u multiplicaciones) de calcular A1 A2 A3 de las 2 maneras posible es: Costo de A2 A3 = 100x5x50 = 25000+ costo de
100x5 5x50
5

Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion Ejemplo Implementacion

A1 (A2 A3 ) = 10x100x50 = 50000 = 75000


10x100 100x50

Costo de A1

A2 = 10x100x5 = 5000+ costo de

10x100 100x5

A1 A2 (A3 ) = 10x5x50 = 2500 = 7500


10x5 5x50

Hay una considerable diferencia entre utilizar la solucin 1 y la 2. o

23

Multiplicacin de Sucesin matrices o o


MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices 6 Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion Ejemplo Implementacion

El problema de la multiplicacin de una sucesin de matrices o o (MSM) es: ENTRADA: Una sucesin < A1 , ..., An > de n matrices, o donde la matriz Ai , 1 i n, tiene dimensin pi1 pi . o SALIDA: La manera ptima de multiplicar las matrices o (ptimo m o nimo nmero de multiplicaciones) Note que la u salida se puede ver como una manera de poner parntesis a la e expresin A1 A2 ...An de tal suerte que indique en qu orden o e realizar las multiplicaciones.

23

Multiplicacin de Sucesin matrices o o


MULTIPLICACION DE MATRICES

Una solucin ingenua al problema MSM: o Enumerar todas las posibles maneras de multiplicar las n matrices, calculando su costo respectivo. Escoger la de menor costo. Esta solucin es ingenua pues el nmero de posibles maneras de o u multiplicar las n matrices es:

Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o 7 Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion Ejemplo Implementacion

23

Programacin Dinmica o a
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o 8 Programacin o Dinmica a Solucin Optima o Recursion Ejemplo Implementacion

Supongamos que tenemos la forma optima de multiplicar las matrices (A1 , ..., An ). Al nivel mas alto, la solucin se vera o como la multiplicacin de dos matrices que resultan de o calcular los productos (A1 , ..., Ak ) y (Ak+1 , ..., An ) ambos en forma optima, para algn k(1 k n). u Lo anterior implica que el problema tiene subestructura optima.

23

Solucin Optima o
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction

Entonces el costo de una solucin ptima es la suma de: o o Costo de una solucin ptima para A1..k o o Costo de una solucin ptima para Ak+1..n o o Costo de multiplicar A1..k por Ak+1..n

Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a 9 Solucin Optima o Recursion Ejemplo Implementacion

23

Solucin Optima o
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a 10 Solucin Optima o Recursion Ejemplo Implementacion

Observacin clave: La solucin para el problema A1..k o o implicita dentro de una solucin ptima para A1..n , es una o o solucin ptima para ese subproblema (A1..k ). o o Si esto no fuera asi, entonces la solucin para A1..n que se o est proclamando como ptima no lo seria. a o Entonces: toda solucin ptima para el problema A1..n , o o contiene dentro de s, soluciones ptimas para los o subproblemas encontrados. Propiedad de las subestructuras ptimas dentro de soluciones o o ptimas, es uno de los sellos de la viabilidad de una solucin o por programacin dinmica. o a

23

Recursion
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction

La recurrencia para resolver el problema seria:

Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o 11 Recursion Ejemplo Implementacion

23

Ejemplo
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 12 Ejemplo Implementacion

Se quiere multiplicar la secuencia de matrices A1 A2 A3 A4 cuyas dimensiones son: A1 = 10x20 A2 = 20x50 A3 = 50x1 A4 = 1x100 Entonces nuestro vector d sera: d = [10, 20, 50, 1, 100]

23

Ejemplo
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction

Nuestra tabla M sera: 1 M= 2 3 4 1 0 2 * 0 3 * * 0 4 * * * 0

Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 13 Ejemplo Implementacion

Donde * representa el valor optimo para un subproblema. M(i, j) = 0, i = j por que el costo de multiplicar una matriz una sola vez es 0;

23

Ejemplo
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction

d = [10, 20, 50, 1, 100] Hallaremos el valor de M(1, 2): Donde i = 1,j = 2 ademas k = i y calculamos mientras k < j k=1 M(1, 2) = M(i, k) + M(k + 1, j) + d[i 1]d[k]d[j] M(1, 2) = M(1, 1) + M(2, 2) + d[0]d[1]d[2] M(1, 2) = 0 + 0 + 10 20 50 M(1, 2) = 10000 Como k no puede seguir aumentando(k < 2), solo tendremos un unico valor, el cual a la vez es m nimo.

Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 14 Ejemplo Implementacion

23

Ejemplo
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction

d = [10, 20, 50, 1, 100] Hallaremos el valor de M(2, 3): Donde i = 2,j = 3 ademas k = i y calculamos mientras k < j k=2 M(2, 3) = M(i, k) + M(k + 1, j) + d[i 1]d[k]d[j] M(2, 3) = M(2, 2) + M(3, 3) + d[1]d[2]d[3] M(2, 3) = 0 + 0 + 20 50 1 M(2, 3) = 1000 Como k no puede seguir aumentando(k < 3), solo tendremos un unico valor, el cual a la vez es m nimo.

Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 15 Ejemplo Implementacion

23

Ejemplo
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction

d = [10, 20, 50, 1, 100] Hallaremos el valor de M(3, 4): Donde i = 3,j = 4 ademas k = i y calculamos mientras k < j k=3 M(3, 4) = M(i, k) + M(k + 1, j) + d[i 1]d[k]d[j] M(3, 4) = M(3, 3) + M(4, 4) + d[2]d[3]d[4] M(3, 4) = 0 + 0 + 50 1 100 M(3, 4) = 5000 Como k no puede seguir aumentando(k < 4), solo tendremos un unico valor, el cual a la vez es m nimo.

Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 16 Ejemplo Implementacion

23

Ejemplo
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell

Actualizamos nuestra tabla M: 1 M= 2 3 4 1 0 2 10000 0 3 * 1000 0 4 * * 5000 0

Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 17 Ejemplo Implementacion

23

Ejemplo
MULTIPLICACION DE MATRICES

Ahora hallaremos el valor de M(1, 3): i = 1,j = 3 ademas k = 1..,2 k=1 M(1, 3) = M(i, k) + M(k + 1, j) + d[i 1]d[k]d[j] M(1, 3) = M(0, 0) + M(2, 3) + d[0]d[1]d[3] M(1, 3) = 0 + 1000 + 10 20 1 M(1, 3) = 1200 k=2 M(1, 3) = M(i, k) + M(k + 1, j) + d[i 1]d[k]d[j] M(1, 3) = M(1, 2) + M(3, 3) + d[1]d[2]d[3] M(1, 3) = 10000 + 0 + 20 50 1 M(1, 3) = 11000 M(1, 3) = MIN(1200, 11000) = 1200

Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 18 Ejemplo Implementacion

23

Ejemplo
MULTIPLICACION DE MATRICES

Ahora hallaremos el valor de M(2, 4): i = 2,j = 4 ademas k = 2..,3 k=2 M(2, 4) = M(i, k) + M(k + 1, j) + d[i 1]d[k]d[j] M(2, 4) = M(2, 2) + M(3, 4) + d[1]d[2]d[4] M(2, 4) = 0 + 5000 + 20 50 100 M(2, 4) = 105000 k=3 M(2, 4) = M(i, k) + M(k + 1, j) + d[i 1]d[k]d[j] M(2, 4) = M(2, 3) + M(4, 4) + d[1]d[3]d[4] M(2, 4) = 1000 + 0 + 20 1 100 M(2, 4) = 3000 M(2, 4) = MIN(105000, 3000) = 3000

Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 19 Ejemplo Implementacion

23

Ejemplo
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell

Actualizamos nuestra tabla M: 1 M= 2 3 4 1 0 2 10000 0 3 1200 1000 0 4 * 3000 5000 0

Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 20 Ejemplo Implementacion

23

Ejemplo
MULTIPLICACION DE MATRICES

Ahora hallaremos el valor de M(1, 4) el costo optimo total: i = 1,j = 4 ademas k = 1..,3 k=1 M(1, 4) = M(1, 1) + M(2, 4) + d[0]d[1]d[4] M(1, 4) = 0 + 3000 + 10 20 100 M(1, 4) = 23000 k=2 M(1, 4) = M(1, 2) + M(3, 4) + d[0]d[2]d[4] M(1, 4) = 10000 + 5000 + 10 50 100 M(1, 4) = 65000 k=3 M(1, 4) = M(1, 3) + M(4, 4) + d[0]d[3]d[4] M(1, 4) = 1200 + 0 + 10 1 100 M(1, 4) = 2200 M(2, 4) = MIN(23000, 65000, 2200) = 2200
23

Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 21 Ejemplo Implementacion

Ejemplo
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell

Actualizamos nuestra tabla M: 1 M= 2 3 4 1 0 2 10000 0 3 1200 1000 0 4 2200 3000 5000 0

Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion 22 Ejemplo Implementacion

Entonces el orden de multiplicacin sera: o (A1 x(A2 xA3 ))xA4 El costo asociado sera 2200.

23

Implementacion
MULTIPLICACION DE MATRICES Manchego Quispe Yusn, Poma e Pumacayo Erick, Velasco Aasco n Hossmell Introduction Multiplicacin de o matrices Costo de Multiplicacin de o matrices Multiplicacin de una o Sucesin matrices o Multiplicacin de una o Sucesin matrices o Programacin o Dinmica a Solucin Optima o Recursion Ejemplo 23 Implementacion

23

You might also like