Professional Documents
Culture Documents
Programacin Dinmica o a
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
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
Costo de A1
10x100 100x5
23
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
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
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
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
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
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
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