Sunteți pe pagina 1din 12

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE INGENIERIA INDUSTRIAL


CARRERA DE INGENIERIA EN TELEINFORMATICA

MATERIA:
INVESTIGACION DE OPERACIONES II

TEMA:

Resumen “Programación Dinámica”

ESTUDIANTE
ALVAREZ BAJAÑA MARLON XAVIER

DOCENTE:
ING. DENNIS ZAMBRANO

CURSO:
7 TIMO A

2017-2018
GUAYAQUIL – ECUADOR
Programación Dinámica

La programación dinámica es una técnica matemática útil para la toma de decisiones


secuencia- les interrelacionadas. Proporciona un procedimiento sistemático para
determinar la combinación óptima de decisiones.

Ejemplo 1: El problema de la diligencia

Este problema se refiere a un vendedor mítico que tuvo que viajar hacia el oeste utilizando
como medio de transporte una diligencia, a través de tierras hostiles, en el último cuarto
del siglo XIX. Aun cuando su punto de partida y destino eran fijos, tenía un número
considerable de opciones para elegir qué estados (o territorios que posteriormente se
convirtieron en estados) recorrer en su ruta. En la figura 10.1 se muestra el mapa de rutas
con sus costos respectivos. La atención se centrara en la pregunta ¿Cuál es la ruta que
minimiza el costo total de la póliza?

Solución al problema:

Eligiendo la ruta más barata en cada etapa sucesiva no conduce a una decisión optima
global, si se adopta esta estrategia se obtiene la ruta con su costo 𝐴 → 𝐵 → 𝐹 → 𝐼 → 𝐽 =
13. Sin embargo, un pequeño sacrificio en una etapa más adelante puede permitir ahorros
mas adelante. Por ejemplo, 𝐴 → 𝐷 → 𝐹, siendo en total más barato que → 𝐵 → 𝐹.

1
El número de rutas posibles es grande (18). Por fortuna, la programación dinámica
proporciona una solución con mucho menos esfuerzo que la enumeración exhaustiva. La
programación dinámica comienza con una pequeña porción del problema original y
encuentra la solución óptima para este problema pequeño. Después agranda de manera
gradual el problema y encuentra la solución óptima actual a partir de la que le precede,
hasta resolver el problema original completo.

Procedimiento de la solución

Etapa (n =4).- Su ruta está determinada por su estado actual


s (H o I), siendo su ruta final 𝑋4 = 𝐽, por lo tanto 𝑓 ∗ 4 (𝑠, 𝐽) =
𝑐𝑠,𝑗 :

Etapa (n=3).- Se encuentra en el Estado F, se debe ir al estado H


o I con costos inmediatos respectivos 𝑐𝐹,𝐻 = 6 o 𝑐𝐹,𝐽 = 3, eligiendo
el estado H como el mínimo al llegar ahí mostrando en la tabla
anterior 𝑓 ∗ 4 (𝐻) = 3. Por consiguiente el costo total de esa decisión
es 6+3=9. Si se elige el estado I el costo total es 3+4=7, siendo la
opción óptima 𝑋 ∗ 3 = 𝐼 siendo el costo mínimo 𝑓 ∗ 3 (𝐹) = 7.

Cálculos similares para los estados siguientes 𝑆 = 𝐸 𝑦 𝑆 = 𝐺 teniendo como diagrama


los resultados para n=3

Etapa (n=2).- Quedan tres jornadas por recorrer, 𝑓2 (𝑠, 𝑥2 ) = 𝑐𝑠𝑥2 +


𝑓 ∗ 3 (𝑥2 ), estando el cazafortunas en el estado C. Siendo el menor
costo 7.

2
Etapa (n=1).- A continuación se muestran los cálculos de los tres destinos inmediatos
posibles partidos de “A”

Mostrando en la siguiente figura un resumen del análisis de programación dinámica.

3
Ejercicio Propuesto: ingeniero forestal
Un Ingeniero Forestal, requiere saber: i)
Cuál es el costo mínimo, y ii) Cuál es la
ruta con ese costo mínimo, para ir desde
su oficina hasta el lugar donde está la
cosecha. En su camino debe pasar por 3
sectores o ciudades antes de llegar a su
destino, y lugares posibles en esos
sectores o ciudades. Las posibles rutas, y
el costo asociado por Kms. de distancia y
otros en $, se ven en el siguiente
esquema:

Cálculos
n=4 S \ X4 13 F4* X4*
9 12 12 13
10 16 16 13
11 15 15 13
12 14 14 13

n=3 S\ 9 10 11 12 F3* X3*


X3
6 3+12=15 2+16=18 1+15=16 3+14=17 15 9
7 4+12=16 1+16=17 4+15=19 6+14=20 16 9
8 2+12=14 3+16=19 6+15=21 5+14=19 14 9

n=2 S \ X2 6 7 8 F2* X2*


2 9+15=24 4+16=20 6+14=20 20 7-8
3 5+15=20 7+16=23 4+14=18 18 8
4 9+15=24 10+16=26 8+14=22 22 8
5 9+15=24 10+16=26 11+14=25 24 6

n=1 S \ X1 2 3 4 5 F1* X1*


1 7+20=27 6+18=24 5+22=27 6+24=30 24 3

Respuesta: El óptimo es: 24


La solución óptima es: X1 = 3; X2 = 8; X3= 9; X4= 13.
La ruta óptima es: 1  3  8  9  13

4
Características de los problemas de programación dinámica

1. El problema se puede dividir en etapas, cada una de las cuales requiere de una
política de decisión.
2. Cada etapa tiene cierto número de estados asociados a su inicio. Los estados son
las distintas condiciones posibles en las que se puede encontrar el sistema en cada
etapa del problema. El número de estados puede ser finito o infinito.
3. Cada nodo corresponde a un estado. La red consistiría en columnas de nodos,
donde cada columna corresponde a una etapa, en forma tal que el flujo que sale
de un nodo sólo puede ir a un nodo de la siguiente columna a la derecha. El valor
asignado a cada rama que conecta dos nodos puede interpretarse algunas veces
como la contribución inmediata a la función objetivo que se obtiene al tomar esa
política de decisión. En la mayor parte de los casos, el objetivo corresponde a
encontrar la trayectoria más corta o bien la más larga a través de la red.
4. El procedimiento de solución se basa en construir una tabla de cada etapa (n) que
prescribe la decisión óptima (x*n) para cada estado posible (s). Así, además de
identificar las tres soluciones óptimas (rutas óptimas) del problema completo, En
cualquier problema, la programación dinámica proporciona este tipo de receta
política sobre qué hacer en todas las circunstancias posibles (a esto se debe que la
decisión real que se toma al llegar a un estado en particular se llama política de
decisión). Proporcionar esta información adicional, en vez de sólo especificar
una solución óptima —secuencia óptima de decisiones—, puede ser muy valioso
en muchas situaciones que incluyen el análisis de sensibilidad.
5. En general, en los problemas de programación dinámica, el conocimiento del
estado actual del sistema expresa toda la información sobre su comportamiento
anterior, información que es necesaria para determinar la política óptima de ahí
en adelante. (Esta propiedad es la propiedad markoviana). Un problema que
carezca de esta propiedad no se puede formular como un problema de
programación dinámica.
6. 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+1.

5
7. Para todos los problemas de programación dinámica, se obtiene una tabla como
se muestra a continuación:

Programación Dinámica Determinística

La programación dinámica determinística se puede describir en un diagrama como el que


se muestra en la figura. En la etapa n el proceso está en algún estado 𝑺𝒏 . Al tomar la
decisión 𝑿𝒏 se mueve a algún estado 𝑺𝒏+𝟏 en la etapa n+1. La contribución a la función
objetivo de ese punto en adelanta se calcula como 𝒇 ∗𝒏+𝟏 (𝑺𝒏+𝟏 ) La política de decisión
𝑿𝒏 también contribuye a la función objetivo.

Al combinar estas dos cantidades en la forma apropiada se obtiene 𝒇𝒏 (𝑺𝒏 . 𝑿𝒏 ), la


contribución de la etapa n en adelante. De la optimización respecto a 𝑿𝒏 se obtiene
entonces 𝒇 ∗𝒏 (𝑺𝒏 ) = 𝒇𝒏 (𝑺𝒏 . 𝑿𝒏 ∗). Una vez determinados 𝑿 ∗𝒏 y 𝒇 ∗𝒏 (𝑺𝒏 ) para cada
valor posible 𝑆𝑛 , el procedimiento se mueve hacia atrás una etapa.

6
Una manera de clasificar los problemas de programación dinámica determinística es con
base en la forma de la función objetivo. Por ejemplo, el objetivo puede ser minimizar la
suma de las contribuciones en cada etapa individual o maximizar esa suma, o bien
minimizar el producto de los términos, etc.
Ejericio 2: Problema de la Wyndor Glass Company

Estructura básica

7
Ejercicio Propuesto (Modelo: Volumen de carga)
Un barco de 4 toneladas es cargado con uno o más de tres artículos. La tabla siguiente
muestra el peso unitario pn, en toneladas y el ingreso por unidad in , en miles de $, para el
artículo n. ¿Cómo se debe cargar el barco para maximizar los ingresos totales?

Artículo n pn in
1 2 31
2 3 47
3 1 14

Tener en cuenta que el barco puede cargar estos artículos en cualquier orden, además,
como el peso unitario y el peso permisible son enteros, las variables sólo deben tener
valores enteros.

8
Solución:
Etapa: Cada tipo de artículo hace referencia a una etapa.
Estado: La disponibilidad respecto a la capacidad del barco
Decisión: Cuántas unidades de cada tipo de artículo llevar
Función recursiva: Representa el total de ingreso que se quiere maximizar.

Etapa 3
s3 f3(s3,x3)=14x3 Solución óptima
x3 =0 x3 =1 x3 =2 x3 =3 x3 =4 f3*(s3) x3*
0 14(0)=0 - - - - 0 0
1 14(0)=0 14(1)=14 - - - 14 1
2 14(0)=0 14(1)=14 14(2)=28 - - 28 2
3 14(0)=0 14(1)=14 14(2)=28 14(3)=42 - 42 3
4 14(0)=0 14(1)=14 14(2)=28 14(3)=42 14(4)=56 56 4
s3=0; significa que el barco está lleno, disponibilidad cero.
s3=4; significa que el barco está vacío, disponibilidad 4 ton.

Etapa 2
s2 f2(s2,x2)=47x2+f3*(s2-3x2) Solución óptima
x2 =0 x2 =1 f2*(s2) x2*
0 47(0)+0=0 - 0 0
1 47(0)+14=14 - 14 0
2 47(0)+28=28 - 28 0
3 47(0)+42=42 47(1)+0=47 47 1
4 47(0)+56=56 47(1)+14=61 61 1

Etapa 1
s1 f1(s1,x1)=31x1+ f2*(s1-2x1) Solución óptima
x1 =0 x1 =1 x1 =2 f1*(s1) x1*
0 31(0)+0=0 - - 0 0
1 31(0)+14=14 - - 14 0
2 31(0)+28=28 31(1)+0=31 - 31 1
3 31(0)+47=47 31(1)+14=45 - 47 0
4 31(0)+61=61 31(1)+28=59 31(2)+0=62 62 2

Para obtener la solución óptima, se observa que el máximo ingreso generado en la etapa
1, es decir $62 mil, se produce cuando se decide llevar 2 unidades del artículo 1.

Programación Dinámica Probabilística


La programación dinámica probabilística difiere de la determinística en que el estado de
la siguiente etapa no está determinado por completo por el estado y la política de decisión
de la etapa actual. En su lugar, existe una distribución de probabilidad para determinar
cuál será el siguiente estado.
Sin embargo, esta distribución de probabilidad queda completamente determinada por el
estado y la política de decisión de la etapa actual. En el diagrama de la figura mostrada

9
se describe la estructura básica que resulta para los problemas de programación dinámica
probabilística.

Ejercicio 3: Ganadora en Las Vegas

10
Conclusiones

11

S-ar putea să vă placă și