Programacion dinamica
-
Upload
narlyn-diaz -
Category
Documents
-
view
150 -
download
2
Transcript of Programacion dinamica
ProfesoraAmelia Malave
BachillerNarlyn Díaz
Instituto Universitario Politécnico Santiago MariñoExtensión Maturín
Escuela de Ingeniería Industrial
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.
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.
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.
Programación de producción e inventarios
Problema de la
mochila
Problema de la
diligencia
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.
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 .
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”.
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
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.
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
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 ←
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