Вы находитесь на странице: 1из 15

Programacin Dinmica

Adaptado de Algorithm Design Goodrich and Tamassia

Programacin Dinmica

Calculando la serie de Fibonacci


1,1,2,3,5,8,13,21,.

# 1 si n = 0,1 fib( n ) = $ o.c . % fib( n " 1) + fib(n " 2)

Programacin Dinmica

Solucin recursivo
int fib(int n){ if (n==0 || n==1) return 1; return fib(n-1)+fib(n-2); }

Muy ineficiente pues recalcula el mismo resultado muchas veces.


Fib(5) Fib(4) Fib(3) Fib(2) Fib(1) Fib(2) Fib(3) Fib(2) Fib(0)

Fib(0) Fib(1)

Fib(0) Fib(1)
Programacin Dinmica

Fib(0)
3

Fib(0)

Solucin tabular
int fib(int n){ int * fibTab = new int[n]; fibTab[0]=fibTab[1]=1; for(int i=0;i<=n;i++) fibTab[i]=fibTab[i-1]+fibTab[i-2]; return fibTab[n]; }

Mucho ms eficiente!

Programacin Dinmica

Solucin usando memoizacin


int fib(int n){ int * fibTab = new int[n]; for(int i=0;i<=n;i++) fibTab[i]= -1; return lookupFib(fibTab,n); } int lookupFib(int fibTab[],int n){ if (fibTab[n]!= -1) return fibTab[n]; fibTab[n]=lookupFib(fibTab,n-1)+ lookupFib(fibTab,n-2); return fibTab[n]; }

Programacin Dinmica

Multiplicacin ptima de Matrices


Problema:
!

Cmo multiplicar una secuencia de matrices de manera ptima? C = A*B A is d!e and B is e!f
e "1

Repaso: Multiplicacin de matrices


! !

f B

C[i, j ] = ! A[i, k ] * B[k , j ]


k =0
!

e e

O(def ) time d A

i,j f
6

Programacin Dinmica

Matrix Chain-Products
Producto encadenado de matrices:
! ! !

Calcular A=A0*A1**An-1 Ai es di ! di+1 Problema: Cmo agrupar (poner parntesis)? B es 3 ! 100 C es 100 ! 5 D es 5 ! 5 (B*C)*D necesita 1500 + 75 = 1575 ops B*(C*D) necesita 1500 + 2500 = 4000 ops

Ejemplo
! ! ! ! !

Programacin Dinmica

Estrategia exhaustiva
Algoritmo:
!

! !

Intentar todas las posibles formas de agrupar A=A0*A1**An-1 Calcular el nmero de ops para cada una Escoger la mejor El nmero de parentizaciones es igual al nmero de rboles binarios con n nodos. Esto es exponencial Aproximadamente 4n (nmeros de Cataln).
Programacin Dinmica 8

Tiempo de ejecucin
!

! !

Estrategia voraz
Idea #1: repetidamente seleccionar el producto que use el mayor nmero de ops. Contra-ejemplo:
! ! ! ! !

A is 10 ! 5 B is 5 ! 10 C is 10 ! 5 D is 5 ! 10 Idea voraz #1 da (A*B)*(C*D), que produce 500+1000+500 = 2000 ops A*((B*C)*D) produce 500+250+250 = 1000 ops
Programacin Dinmica 9

Otra estrategia voraz


Idea #2: repetidamente seleccionar el producto que use el menor nmero de ops. Contra-ejemplo:
! ! ! ! !

A is 101 ! 11 B is 11 ! 9 C is 9 ! 100 D is 100 ! 99 Idea voraz #2 da A*((B*C)*D)), el cual produce 109989+9900+108900=228789 ops (A*B)*(C*D) produce 9999+89991+89100=189090 ops

Una estrategia voraz definitivamente no funciona.


Programacin Dinmica 10

Una estrategia Recursiva


Defina subproblemas:
! ! !

Encuentre la mejor parentizacin de Ai*Ai+1**Aj. Sea Ni,j el nmero de operaciones ptimas para este subproblema. La solucin ptima del problema total es es N0,n-1.

Subproblemas ptimos: La solucin ptima puede ser definida en trminos de subproblemas ptimos.
!

Tiene que haber una multiplicacin final (raz del rbol de la expresin) para la solucin ptima. Digamos que la multiplicacin final sea en el ndice i: (A0**Ai)*(Ai+1**An-1). La solucin ptima N0,n-1 es la suma de 2 subproblemas ptimos, N0,i and Ni+1,n-1 mas el nmero de operaciones de la ltima multiplicacin. S el ptimo global no tiene estos componentes ptimos nosotros podemos definir una mejor solucin ptima.
Programacin Dinmica 11

Ecuacin recursiva
El ptimo global se debe definir en trminos de subproblemas ptimos, dependiendo en el lugar de la ltima multiplicacin. Consideremos todas los posibles lugares para la multiplicacin final: ! Recuerde que Ai es una matriz di ! di+1.
!

De manera que una definicin recursiva de Ni,j es la siguiente:

N i , j = min{N i ,k + N k +1, j + d i d k +1d j +1}


i !k < j

Note que los subproblemas son no independientes -los subproblemas se sobreponen.


Programacin Dinmica

12

Un algoritmo de programacin dinmica


Puesto que los subproblemas se Algorithm matrixChain(S): sobreponen, no se usa Input: sequence S of n matrices to be multiplied recursin. Output: number of operations in an optimal En cambio, se paranethization of S construyen los subproblemas ptimos for i " 1 to n-1 do de abajo hacia arriba Ni,i " 0 bottom-up. for b " 1 to n-1 do Los Ni,is son fciles, for i " 0 to n-b-1 do de manera que se empieza con ellos. j " i+b Seguir con Ni,j " +infinity subproblemas de for k " i to j-1 do longitud 2,3, etc. Ni,j " min{Ni,j , Ni,k +Nk+1,j +di dk+1 dj+1} Tiempo de ejecucin: O(n3)
Programacin Dinmica 13

Algoritmo en accin
La estrategia bottom-up llena la matriz N por diagonales Ni,j obtiene valores basados en valores previos en la i-sima fila y la j-sima columna La obtencin de la parentizacin ptima puede ser hecho recordando la k correspondiente a cada casilla

N i , j = min{N i ,k + N k +1, j + d i d k +1d j +1}

N
0 1 i

i !k < j

1 2

n-1

solucin

n-1

Programacin Dinmica

14

Tcnica General de Programacin Dinmica


Aplica a un problema que inicialmente pareciera requerir una gran cantidad de tiempo (posiblemente exponencial) y que debe cumplir:
!

Subproblemas simples: los subproblemas puden ser definidos en trminos de pocas variables. Optimalidad de subproblemas: El ptimo global puede ser definido en trminos de subproblemas ptimos Sobrelapamiento de subproblemas: Los problemas no son independientes (por lo tanto, la solucin debe construirse de abajo hacia arriba).
Programacin Dinmica 15

Вам также может понравиться

  • Zacarias
    Zacarias
    Документ10 страниц
    Zacarias
    anfetor
    Оценок пока нет
  • Job
    Job
    Документ45 страниц
    Job
    anfetor
    Оценок пока нет
  • Tito
    Tito
    Документ3 страницы
    Tito
    anfetor
    Оценок пока нет
  • Las Lamentaciones, de Jeremias
    Las Lamentaciones, de Jeremias
    Документ8 страниц
    Las Lamentaciones, de Jeremias
    anfetor
    Оценок пока нет
  • Hechos de Los Apostoles
    Hechos de Los Apostoles
    Документ55 страниц
    Hechos de Los Apostoles
    anfetor
    Оценок пока нет
  • Hebreos
    Hebreos
    Документ17 страниц
    Hebreos
    anfetor
    Оценок пока нет
  • Hageo
    Hageo
    Документ3 страницы
    Hageo
    anfetor
    Оценок пока нет
  • Joel
    Joel
    Документ5 страниц
    Joel
    anfetor
    Оценок пока нет
  • Rut
    Rut
    Документ6 страниц
    Rut
    anfetor
    100% (1)
  • Hageo
    Hageo
    Документ3 страницы
    Hageo
    anfetor
    Оценок пока нет
  • Judas
    Judas
    Документ2 страницы
    Judas
    anfetor
    Оценок пока нет
  • Jonás
    Jonás
    Документ3 страницы
    Jonás
    anfetor
    Оценок пока нет
  • Esdras
    Esdras
    Документ17 страниц
    Esdras
    anfetor
    Оценок пока нет
  • UML Clase 02 UML Casos de Uso
    UML Clase 02 UML Casos de Uso
    Документ45 страниц
    UML Clase 02 UML Casos de Uso
    estcar
    100% (1)
  • Cronicas
    Cronicas
    Документ45 страниц
    Cronicas
    anfetor
    Оценок пока нет
  • Cantar de Los Cantares de Salomon
    Cantar de Los Cantares de Salomon
    Документ7 страниц
    Cantar de Los Cantares de Salomon
    anfetor
    Оценок пока нет
  • Deuteron o Mio
    Deuteron o Mio
    Документ57 страниц
    Deuteron o Mio
    anfetor
    Оценок пока нет
  • Efes Ios
    Efes Ios
    Документ8 страниц
    Efes Ios
    anfetor
    Оценок пока нет
  • Eclesiastes o El Predicador
    Eclesiastes o El Predicador
    Документ13 страниц
    Eclesiastes o El Predicador
    anfetor
    Оценок пока нет
  • Colo Senses
    Colo Senses
    Документ6 страниц
    Colo Senses
    anfetor
    Оценок пока нет
  • 3 Juan
    3 Juan
    Документ1 страница
    3 Juan
    anfetor
    Оценок пока нет
  • Amós
    Amós
    Документ9 страниц
    Amós
    anfetor
    Оценок пока нет
  • Abdías
    Abdías
    Документ2 страницы
    Abdías
    anfetor
    Оценок пока нет
  • 2 Tesalonicenses
    2 Tesalonicenses
    Документ3 страницы
    2 Tesalonicenses
    anfetor
    Оценок пока нет
  • 2 Juan
    2 Juan
    Документ1 страница
    2 Juan
    anfetor
    Оценок пока нет
  • 2 Timoteo
    2 Timoteo
    Документ5 страниц
    2 Timoteo
    anfetor
    Оценок пока нет
  • 2 Pedro
    2 Pedro
    Документ4 страницы
    2 Pedro
    anfetor
    Оценок пока нет
  • 2 Corintios
    2 Corintios
    Документ15 страниц
    2 Corintios
    anfetor
    Оценок пока нет
  • 1 Timoteo
    1 Timoteo
    Документ6 страниц
    1 Timoteo
    anfetor
    Оценок пока нет
  • Evolución de Las Carreteras
    Evolución de Las Carreteras
    Документ8 страниц
    Evolución de Las Carreteras
    Cristhian Diaz
    Оценок пока нет
  • Gestión de Inventarios y Pronóstico de La Demanda - Versión 1 Diapositiva
    Gestión de Inventarios y Pronóstico de La Demanda - Versión 1 Diapositiva
    Документ44 страницы
    Gestión de Inventarios y Pronóstico de La Demanda - Versión 1 Diapositiva
    Luis
    Оценок пока нет
  • Funciones de Stella
    Funciones de Stella
    Документ29 страниц
    Funciones de Stella
    jhon
    Оценок пока нет
  • Carrion Gonzales
    Carrion Gonzales
    Документ53 страницы
    Carrion Gonzales
    rojas gallegos
    Оценок пока нет
  • Funciones de La Cadena de Suministros
    Funciones de La Cadena de Suministros
    Документ3 страницы
    Funciones de La Cadena de Suministros
    Jesus Roberto Angulo Anguamea
    Оценок пока нет
  • Planeacion Preguntas Evidencia U1
    Planeacion Preguntas Evidencia U1
    Документ9 страниц
    Planeacion Preguntas Evidencia U1
    Miriam Borrego
    Оценок пока нет
  • Tubos Gruesos
    Tubos Gruesos
    Документ33 страницы
    Tubos Gruesos
    Patricia Vallone
    100% (1)
  • Sistema de Tratamiento de Agua Potable Seda Huanuco
    Sistema de Tratamiento de Agua Potable Seda Huanuco
    Документ76 страниц
    Sistema de Tratamiento de Agua Potable Seda Huanuco
    yhordyn Beltran chavez cajaleon
    Оценок пока нет
  • Ejemplo Diagrama de Caracterización - SIPOC
    Ejemplo Diagrama de Caracterización - SIPOC
    Документ2 страницы
    Ejemplo Diagrama de Caracterización - SIPOC
    Sergio Arista Inga
    100% (1)
  • Prueba Mecanicos Preguntas
    Prueba Mecanicos Preguntas
    Документ4 страницы
    Prueba Mecanicos Preguntas
    Juan Molina
    Оценок пока нет
  • Gobierno de Bolivia
    Gobierno de Bolivia
    Документ511 страниц
    Gobierno de Bolivia
    Alfredo Rojas
    Оценок пока нет
  • Version Pública ACB Tren Maya vF4
    Version Pública ACB Tren Maya vF4
    Документ46 страниц
    Version Pública ACB Tren Maya vF4
    jorge
    Оценок пока нет
  • Cadena de Valor BCP
    Cadena de Valor BCP
    Документ19 страниц
    Cadena de Valor BCP
    Ana Isabel Vasquez Lopez
    Оценок пока нет
  • Examen Gas A Plantilla Publicacion
    Examen Gas A Plantilla Publicacion
    Документ4 страницы
    Examen Gas A Plantilla Publicacion
    Ozkar Socualaya Mantari
    Оценок пока нет
  • Bull y Wheel
    Bull y Wheel
    Документ27 страниц
    Bull y Wheel
    Carlos Gonzalez
    100% (2)
  • Unidad 2. Diseño Orientado A Objetos
    Unidad 2. Diseño Orientado A Objetos
    Документ11 страниц
    Unidad 2. Diseño Orientado A Objetos
    Robert Valerio
    Оценок пока нет
  • Calderas Thermomaster Condens Manual Usuario 150291
    Calderas Thermomaster Condens Manual Usuario 150291
    Документ20 страниц
    Calderas Thermomaster Condens Manual Usuario 150291
    Macarena Pueyrredon
    Оценок пока нет
  • 1.4 Toma de Decisiones
    1.4 Toma de Decisiones
    Документ3 страницы
    1.4 Toma de Decisiones
    Brandon Reyes Garcia
    Оценок пока нет
  • Contactos
    Contactos
    Документ12 страниц
    Contactos
    Carlos Meneses
    Оценок пока нет
  • Cuadro de Variables de Inventarios
    Cuadro de Variables de Inventarios
    Документ1 страница
    Cuadro de Variables de Inventarios
    spprojects
    100% (1)
  • D 1036-17, Drones
    D 1036-17, Drones
    Документ33 страницы
    D 1036-17, Drones
    Manuel
    Оценок пока нет
  • Malla Hexagonal
    Malla Hexagonal
    Документ1 страница
    Malla Hexagonal
    BrayanFarfanLoayza
    100% (1)
  • Aditivo Superfluidificante Reductor Agua Sikament 307
    Aditivo Superfluidificante Reductor Agua Sikament 307
    Документ2 страницы
    Aditivo Superfluidificante Reductor Agua Sikament 307
    José Alberto Garcia Cordova
    Оценок пока нет
  • IF2 Programacion 2UNIDAD
    IF2 Programacion 2UNIDAD
    Документ8 страниц
    IF2 Programacion 2UNIDAD
    Armando Quiñones
    Оценок пока нет
  • Informe Cerámica Alex Aldaz
    Informe Cerámica Alex Aldaz
    Документ29 страниц
    Informe Cerámica Alex Aldaz
    Deivid Rafa
    Оценок пока нет
  • Capacitacion - Riesgos en Las Vias de Transito
    Capacitacion - Riesgos en Las Vias de Transito
    Документ16 страниц
    Capacitacion - Riesgos en Las Vias de Transito
    Ricardo Lizanova
    Оценок пока нет
  • El Proceso de Programación
    El Proceso de Programación
    Документ2 страницы
    El Proceso de Programación
    Leobardo Gabriel Gutiérrez Pérez
    Оценок пока нет
  • Ejercicio #3 de Costeo Tradicional y Basado en Actividades
    Ejercicio #3 de Costeo Tradicional y Basado en Actividades
    Документ6 страниц
    Ejercicio #3 de Costeo Tradicional y Basado en Actividades
    Patricio Avila Zarate
    100% (1)
  • Arqueo Acp
    Arqueo Acp
    Документ17 страниц
    Arqueo Acp
    Gamaliel Ortega Samaniego
    Оценок пока нет
  • Actividad 6 - Estructura de La Industria de La Transformacion
    Actividad 6 - Estructura de La Industria de La Transformacion
    Документ5 страниц
    Actividad 6 - Estructura de La Industria de La Transformacion
    Oscar Damian Jimenez Reyes
    Оценок пока нет