Programacion dinamica

13
Profesora Amelia Malave Bachiller Narlyn Díaz Instituto Universitario Politécnico Santiago Mariño Extensión Maturín Escuela de Ingeniería Industrial

Transcript of Programacion dinamica

Page 1: Programacion dinamica

ProfesoraAmelia Malave

BachillerNarlyn Díaz

Instituto Universitario Politécnico Santiago MariñoExtensión Maturín

Escuela de Ingeniería Industrial

Page 2: Programacion dinamica

Es una técnica que parte del principio de no calcular dos veces

la misma información, por lo tanto se utilizan estructuras de

almacenamiento como vectores, tablas, arreglos, archivos, con el fin de

almacenarlos resultados parciales, que contribuyan a la solución final.

Page 3: Programacion dinamica

A pesar de esta característica de toma de decisiones

secuenciales, los problemas que pueden ser atacados con la PD

tienen otras dos propiedades adicionales.

Sólo un número reducido de variables se debe conocer en

cualquier etapa con el fin de describir al problema. En efecto, los

problemas de la PD se caracterizan por la dependencia de los

resultados derivados de decisiones sobre un número reducido de

variables.

El resultado de una decisión en cualquier etapa altera los valores

numéricos de un número reducido de variables relevantes al

problema.

Page 4: Programacion dinamica

Este algoritmo evita calcular dos veces la misma

información, manteniendo una tabla de resultados conocidos, la

cual se va llenando a medida que se resuelven los sub-casos. La

programación dinámica se aplica no solo por razones de

eficiencia, sino porque permite resolver de manera eficiente

problemas que no se pueden resolver por otras metodologías.

Page 5: Programacion dinamica

Programación de producción e inventarios

Problema de la

mochila

Problema de la

diligencia

Page 6: Programacion dinamica

Se emplea típicamente para resolver problemas de optimización.

Permite resolver problemas mediante una secuencia de decisiones, Comoel esquema voraz.

A diferencia del esquema voraz, se producen varias secuencias dedecisiones y solamente al final se sabe cuál es la mejor de ellas.

Está basada en el principio de optimalidad de Bellman.

Page 7: Programacion dinamica

La programación dinámica se adapta bien a problemas de

carácter secuencial como por ejemplo:

Búsqueda del camino mas corto entre dos puntos.

Planificación de tarea.

Gestión de recursos escasos.

Gestión de Stocks.

Coordinación Hidrotermica .

Page 8: Programacion dinamica

Hay dos condiciones que se deben cumplir antes de comenzar a pensar enuna solución a un problema de optimización usando programacióndinámica.

Sub-estructura optima. Un problema tiene sub-estructura ´optimacuando la solución ´optima a un problema se puede componer a partir desoluciones optimas de sus sub-problemas.

Superposición de Problemas. El calculo de la solución optima implicaresolver muchas veces un mismo sub-problemas. La cantidad de sub-problema es “pequeña”.

Page 9: Programacion dinamica

Ejemplo de un problema de camino simple;

Suponga que usted vive en una ciudad cuyas calles están distribuidas de la

manera siguiente: Todas las calles son de un solo sentido y que el número

mostrado en el mapa representa el esfuerzo, (usualmente tiempo y algunas veces

costo de distancia) requerido para atravesar cada bloque ,individualmente. Se

desea encontrar el mínimo de esfuerzo total para ir de A a B. Este problema puede

ser resuelto enumerando todos los posibles caminos de A a B; sumando esfuerzos,

bloque tras bloque de cada camino y escogiendo la suma más pequeña.

Existen 20 caminos diferentes ,100 adiciones y 19 comparaciones.

No. de caminos diferentes = 20

Numero de adiciones = 100

Numero de comparaciones = 19

donde N es el numero de etapas (vértices) de A a B. (numero de elementos a

sumar) A esta enumeración se le denomina FUERZA BRUTA

Page 10: Programacion dinamica

Aplicando PROGRAMACION DINAMICA Denote Sc como el

esfuerzo mínimo de C a B. SD como el esfuerzo mínimo de D a B.

No se sabe si ir diagonalmente hacia arriba o diagonalmente hacia

abajo; adicionalmente se conocen 2 números;

a) El esfuerzo total requerido para llegar a C a B por el mejor camino

(mínimo esfuerzo).

b) El esfuerzo total requerido para llegar de D a B por el mejor

camino. Se añade Sc el esfuerzo requerido para ir de A a C

obteniendo el esfuerzo requerido de el mejor camino empezando

diagonalmente hacia arriba.

Lo mismo se le hace a SD mas el esfuerzo para ir de A a D pero

diagonalmente hacia abajo. Se comparan las sumas para encontrar

el esfuerzo total mínimo la primera mejor decisión. Pero Sc y SD aun

son desconocidas. Sin embargo una de las principales ideas de

PROGRAMACION DINAMICA a hecho una inofensiva aparición.

Page 11: Programacion dinamica

I) Únicamente los esfuerzos a lo largo del mejor camino de C a B y de D a B

son relevantes para los cálculos anteriores y los esfuerzos de los restantes

caminos (9 de cada uno) no necesitan ser calculados. Esta observación es

llamada El principio de Optimalidad el cual dice; El mejor camino de A a B

tiene la propiedad de que cualesquiera que sea la decisión inicial en A, el

camino restante a B, empezando del próximo punto después de A, debe ser

el mejor camino desde ese punto a B. Principio de optimalidad de Bellman;

Un camino óptimo tiene la siguiente propiedad; Una vez que el primer paso

es tomado, los pasos restantes deberán ser una solución óptima para el

nuevo problema, con un reducido número de etapas

ahora escribiendo la formula 1+Sc SA = min 0+SD esta justifica lo anterior

enunciado

II) La segunda de las principales ideas dice que mientras los dos números Sc

y SD son desconocidos inicialmente, se puede calcular Sc si son

desconocidos SE y SF (mínimo esfuerzo de E y F a B.)

5+SE 7+SF Sc= min y SD =min 4+SF 3+SG Para poder obtener SE,SF y

SG es necesario calcular SI, SJ, SH y SK y estos dependen de SL, SM y SN

los cuales a su vez dependen de So y SP. SO y SP pueden ser fácilmente

calculados y trabajado en forma de Retroceso (hacia atrás) de O y P a A

podemos obtener los deseados cálculos. SO=2 SP=1 2+SO =4 ← SL

=5+SO=7 SM= min

Page 12: Programacion dinamica

8+SP =9

SH =3+SL=10

SN= 4+SP = 5

2+SM = 6 ←

SK=2+SN=7

SJ =min

2+SN = 7

3+SL = 10

SI= min

4+SM = 8 ←

2+SH = 12

1+SI = 9

SE= min 1+SI = 9←

SF= min 2+SJ = 8 ←

5+SJ = 11

7+SF = 15

SG= min 4+SK = 11←

SD =min3+SG = 14 ←

5+SE = 14

1+SC = 13

SC=min 4+SF = 12 ←

SA =min 0+SD = 14 ←

Page 13: Programacion dinamica

Punto óptimo próximo de cada punto inicial

PO =B

PP =B

PL =O

PM =O

PN =P

PH =L

PI =M

PJ =M

PK =N

PE =I

PF =J

PG =J o K

PA =C

PD =G

Pc =F

CAMINO OPTIMO A - C - F - J - M - O - B; 1 + 4 + 2 + 2 + 2 + 2 = 13