Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Programación Dinámica: Un Enfoque para la Toma de Decisiones, Apuntes de Matemáticas Aplicadas

En informática, la programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas, como se describe a continuación.

Tipo: Apuntes

2020/2021

Subido el 22/06/2022

luis-ramos-auque
luis-ramos-auque 🇵🇪

3 documentos

1 / 34

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
HERRAMIENTAS PARA LA
TOMA DE DECISIONES
2022-1
SESION 7
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22

Vista previa parcial del texto

¡Descarga Programación Dinámica: Un Enfoque para la Toma de Decisiones y más Apuntes en PDF de Matemáticas Aplicadas solo en Docsity!

HERRAMIENTAS PARA LA

TOMA DE DECISIONES

SESION 7

LA PROGRAMACIÒN DINAMICA

  • (^) ¿Qué es?

Es una técnica de programación matemática que proporciona un

procedimiento sistemático para determinar la combinación óptima de

una serie de decisiones interrelacionadas.

  • (^) CONCEPTUALIZACIÒN DE PROGRAMACION DINAMICA

Se trata de un enfoque de tipo general para la solución de problemas y

las ecuaciones específicas que se usan se deben desarrollar para que

representen cada situación individual.

Se necesita un cierto grado de creatividad y un buen conocimiento de la

estructura general de de los problemas de Programación Dinámica para

reconocer cuándo y cómo se puede resolver un problema por medio de

estos procedimientos.

HERRAMIENTAS PARA LA TOMA DE DECISIONES ING. JORGE CACERES T 2

ETAPAS

  • (^) 1. Etapas: El problema se puede dividir en etapas que requieren una

política de decisión en cada una de ellas.

  • (^) 2. Estados asociados: Cada etapa tiene cierto número de estados

asociados con su inicio.

  • (^) 3. Política de decisión: El efecto de la política de decisión en cada etapa

es transformar el estado actual en un estado asociado con el inicio de la

siguiente etapa.

  • (^) 4. Diseño de solución: El procedimiento de solución está diseñado para

encontrar una política óptima para el problema completo, es decir, una

receta para la política de decisión óptima en cada etapa para cada uno de

los estados posibles.

HERRAMIENTAS PARA LA TOMA DE DECISIONES ING. JORGE CACERES T 4

  • (^) 5. Principio de optimalidad: Dado el estado actual, una política óptima

para las etapas restantes es independiente de la política adoptada en

etapas anteriores. b. La decisión inmediata óptima depende sólo del

estado actual y no de cómo se llegó ahí.

  • (^) 6. Inicio de solución: El procedimiento de solución se inicia al encontrar

una política óptima para la última etapa.

    1. Relación recursiva: Se dispone de una relación recursiva que identifica

la política óptima para la etapa n, dada la política óptima para la etapa n +

  • (^) 8. Retroceso: Cuando se use esta relación recursiva, el procedimiento de

solución comienza al final y se mueve hacia atrás etapa por etapa –

encontrando cada vez la política óptima para esa etapa – hasta que se

encuentra la política óptima desde la etapa inicial.

HERRAMIENTAS PARA LA TOMA DE DECISIONES ING. JORGE CACERES T 5

ING. JORGE CACERES T 7 HERRAMIENTAS PARA LA TOMA Ahora considere el siguiente caso:

  • (^) Una persona debe conducir desde Lima (nodo 1) hacia su ciudad natal

(nodo 10), pasando por ciertas ciudades intermedias.

  • (^) Los números que se indican sobre cada arco representan el tiempo (en

horas) que demora conducir entre una ciudad y otra.

  • El problema es determinar la ruta que demande el menor tiempo.

ING. JORGE CACERES T 8 HERRAMIENTAS PARA LA TOMA Una manera de resolver el problema sería la siguiente:

  • (^) Enumerar exhaustivamente cada ruta posible desde el nodo 1

hasta el nodo 10, hallar el tiempo total y elegir aquella que

posea el menor tiempo total (puede haber más de una

solución)

  • (^) Las rutas 7, 13 y 16 son las que demandan el menor tiempo (11 horas) Ruta # Secuencia Tiempo Total Ruta # Secuencia Tiempo Total 1 1-2-5-8-10 2+7+1+3 =13 10 1-3-6-9-10 4+2+3+4 = 2 1-2-5-9-10 2+7+3+4 =16 11 1-3-7-8-10 4+4+3+3 = 3 1-2-6-8-10 2+4+6+3 =15 12 1-3-7-9-10 4+4+3+4 = 4 1-2-6-9-10 2+4+3+4 =13 13 1-4-5-8-10 3+4+1+3 = 5 1-2-7-8-10 2+6+3+3 =14 14 1-4-5-9-10 3+4+3+4 = 6 1-2-7-9-10 2+6+3+4 =15 15 1-4-6-8-10 3+1+6+3 = 7 1-3-5-8-10 4+3+1+3 =11 16 1-4-6-9-10 3+1+3+4 = 8 1-3-5-9-10 4+3+3+4 =14 17 1-4-7-8-10 3+5+3+3 = 9 1-3-6-8-10 4+2+6+3 =15 18 1-4-7-9-10 3+5+3+4 =

ING. JORGE CACERES T 10 HERRAMIENTAS PARA LA TOMA ¿Existe una manera más eficiente para resolver el problema?

  • (^) Por supuesto que sí.
  • (^) En vez de resolver el problema desde el nodo 1 al nodo 10, lo resolveremos “de atrás hacia adelante” (del nodo 10 al nodo 1): - (^) Sea f(i): El tiempo total más corto

desde el nodo i al nodo 10.

  • (^) El tiempo total más corto desde el

nodo 8 al nodo 10 es: f(8) = 3 y

desde el nodo 9 al nodo 10 es: f(9)

f( 8 ) = 3

f( 9 ) = 4

ING. JORGE CACERES T 11 HERRAMIENTAS PARA LA TOMA Luego:

  • (^) Debido a que hay dos rutas que parten desde el nodo 5, el

tiempo total más corto desde el nodo 5 al nodo 10 es el mínimo

entre el tiempo total pasando por el nodo 8 y el tiempo total

pasando por el nodo 9, es decir: f(5) = Mín{1+3, 3+4} = 4

  • (^) Se aplica el mismo razonamiento en los nodos 6 y 7: 5 6 7

f( 8 ) = 3 f( 9 ) = 4 f( 5 ) = Mín { 1 + 3 ; 3 + 4 } f( 5 ) = Mín { 4 ; 7 } = 4 f( 6 ) = Mín { 6 + 3 ; 3 + 4 } = 7 f( 7 ) = Mín { 3 + 3 ; 3 + 4 } = 6

ING. JORGE CACERES T 13 HERRAMIENTAS PARA LA TOMA Finalmente, se procede de manera similar con el nodo 1 1 2 3 4 5 6 7 8 9 10 3 4 2 7 2 5 4 4 3 1 4 6 1 3 6 3 3 3 3 4 f( 8 ) = 3 f( 9 ) = 4 f( 5 ) = 4 f( 6 ) = 7 f( 7 ) = 6 f( 2 ) = 11 f( 3 ) = 7 f( 4 ) = 8 f( 1 ) = Mín { 2 + 11 ; 4 + 7 ; 3 + 8 } = 11

ING. JORGE CACERES T 14 HERRAMIENTAS PARA LA TOMA El tiempo más corto desde el nodo 1 hacia el nodo 10 es de 11 horas.

  • (^) El tiempo más corto lo poseen 3 rutas:
f( 8 ) = 3
f( 9 ) = 4
f( 5 ) = 4
f( 6 ) = 7
f( 7 ) = 6
f( 2 ) = 11
f( 3 ) = 7
f( 4 ) = 8
f( 1 ) = 11

ING. JORGE CACERES T 16 HERRAMIENTAS PARA LA TOMA ¿Y si se tuviese la siguiente red?

  • (^) ¿Cuántas sumas y cuántas comparaciones se debe hacer para

hallar el camino más corto entre el nodo 1 y el nodo 27?

  • (^) Compare por enumeración exhaustiva y “de atrás hacia delante”. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

ING. JORGE CACERES T 17 HERRAMIENTAS PARA LA TOMA

  • (^) Principio de optimalidad
    • (^) En una sucesión óptima de decisiones u opciones, toda subsecuencia debe ser también óptima - (^) En el algoritmo de devolver el cambio - (^) c[i,j] forma óptima de devolver j con monedas 1..i  - (^) c[i-1,j] y c[i,j-di] son también soluciones óptimas de los casos que representan - (^) Sólo nos interesaba c[n,N], pero el resto de entradas también proporcionan soluciones óptimas
    • Si el principio no es aplicable en un escenario, es probable que no sea posible utilizar programación dinámica - Cuando se trata de utilización óptima de recursos no se aplica del mismo modo - (^) Camino más corto entre A-C que pasa por B: A-B y B-C son también los más cortos - Camino más rápido entre A-C que pasa por B: no implica necesariamente que A-B o B-C tengan que ser también los más rápidos - (^) Los subcasos tienen que ser independientes

Problema de la Mochila en Programación Entera resuelto con Solver HERRAMIENTAS PARA LA TOMA DE DECISIONES ING. JORGE CACERES T 19

ING. JORGE CACERES T 20 HERRAMIENTAS PARA LA TOMA

  • (^) El problema de la mochila
    • (^) N objetos, i=1,...,n  wi>0 y vi>0 (peso y valor)
    • W: peso máximo de la mochila
    • Objetivo: llenar la mochila maximizando el valor y respetando la limitación de capacidad - (^) xi=0 no cogemos el objeto i; xi=1 si cogemos el objeto i - (^) Maximizar: xivi cumpliendo que xiwiW - (^) No se pueden fragmentar los objetos - (^) El algoritmo voraz no funcionaba sin fragmentar (...)
    • (^) PD:
      • (^) Tabla V[1..n,0..W]: una fila por objeto; una columna por peso
      • (^) V[i,j]: valor máximo de los objetos que podemos transportar con un límite de peso j, 0 j W, incluyendo los objetos numerados desde 1 a i, 1 i n
      • Solución: V[n,W]
      • (^) V[i,j]=max(V[i-1,j],V[i-1,j-wi]+vi)
        • (^) V[i,0]=0 si j0; V[0,j]=0 cuando j 0 y V[i,j]=-, i cuando j<0 (...)
      • Análisis del algoritmo con p.d.:
        • Construir la tabla (n·W)
        • (^) Composición de la carga óptima O(n+w)