• No se han encontrado resultados

PROGRAMACIÓN DINÁMICA

N/A
N/A
Protected

Academic year: 2021

Share "PROGRAMACIÓN DINÁMICA"

Copied!
25
0
0

Texto completo

(1)

PROGRAMACIÓN

DINÁMICA

Optimización en Ingeniería II

Ing. Laura Bazán Díaz

(2)

Introducción

 La programación dinámica se utiliza para resolver

problemas donde se debe tomar decisiones interrelacionadas.

 La formulación matemática de la programación dinámica

no es estándar, ya que las ecuaciones se derivan de las condiciones individuales de los problemas.

(3)

El problema de la diligencia

 Un cazafortunas desea ir de la ciudad A a la ciudad J en

una diligencia, y quiere viajar de la forma más segura posible. Tiene múltiples opciones para viajar a través del territorio. Conoce la posibilidad de adquirir un seguro de vida como pasajero de la diligencia. Los costos de la póliza estándar Cij se muestran en las siguientes tablas:

E F G H I

B C D B 7 4 6 E 1 4 J A 2 4 3 C 3 2 4 F 6 3 H 3

D 4 1 5 G 3 3 I 4

(4)

El problema de la diligencia

A B C D E F G H I J

(5)

¿Cuál es la ruta que minimiza el costo

total de la póliza de seguro?

 Algunas alternativas de solución:

1. Enumeración exhaustiva: enumerar todas las rutas posibles, calcular su costo y elegir la de menor valor. En total son 18.

2. Elegir la ruta más barata en cada etapa. Esta solución no conduce al óptimo global. Un pequeño sacrificio en una etapa puede permitir mayores ahorros más adelante.

3. PROGRAMACIÓN DINÁMICA: Un problema completo es desagregado en problemas simples que se resuelven etapa por etapa.

 En el caso de la diligencia un problema simple sería

pensar qué pasaría si al viajero solo le faltara una jornada de viaje.

(6)

Problema de la diligencia

 Por programación dinámica, la solución sería entonces ir

desde el estado actual (cualquiera que sea) y llegar a su destino final (estado J) al costo Cij.

 Se hace lo mismo para cada jornada (etapa),

ensanchando el problema. Así encontramos la solución óptima del lugar al que debe dirigirse teniendo en cuenta la información de la iteración anterior.

(7)

Formulación

 Sea Xn (n=1, 2, 3 y 4) las variables que representan el

destino inmediato en la etapa n.

 Luego la ruta seleccionada será:

A  X 1 X2  X3  X4 Donde X4=J.

 Sea fn (S, Xn) el costo total de la mejor política global

para las etapas restantes, dado que el agente se encuentra en el estado S, listo para iniciar la etapa N y se dirige a Xn como destino inmediato.

 Dados S y n, sea Xn* el valor de Xn (no necesariamente

único), que minimiza fn (S, Xn), y sea fn*(S) el valor

mínimo correspondiente de fn (S, Xn) entonces: 7

(8)

Formulación

Costo Mínimo costo

fn(S, Xn) = inmediato + futuro (etapa (etapa n) n+1 en adelante) = CS, Xn + fn+1*(X

n) Costos por ir Costo óptimo de la ciudad i acumulado al destino j

fn*(S)= Mín

(9)

Procedimiento de solución hacia atrás

 Etapa n=4

 Como el destino final (estado J) se alcanza al terminar la

etapa 4, entonces f5*(J)=0.

 El objetivo es hallar f1*(A) y su ruta correspondiente.

 Cuando el cazafortunas tiene solo una etapa por recorrer

(n=4), su ruta de ahí en adelante, estará determinada por el estado actual (H o I) y su detino final X4= J.

 La ruta será: S  J donde S= H ó I

 Luego f4*(S)= CS, J + f5*(J) = CS, J  f4(H) = CH,J = 3  f4(I) = CI,J = 4 S f4*(S) X4* H 3 J I 4 J 9

(10)

Procedimiento de solución hacia atrás

 Etapa n=3

 El cazafortunas tiene dos etapas por recorrer (n=3),

Suponga que sale de E.

+ f4*(H)=f3(E) = C E,H + f4*(H) =1+3=4 + f4*(I)=f3(E) = C E,I + f4*(I) =4+4=8

 Luego f3*(E)= 4 y X3*=E . En general para la etapa 3 se

tiene: X3 S f3*(S, X3)=CS,X3+f4 *(X 3) f 3*(S) X3* H I E 4 8 4 H F 9 7 7 I G 6 7 6 H E H I

(11)

Procedimiento de solución hacia atrás

 Etapa n=2

 En la segunda etapa, el cazafortunas tiene 3 jornadas por

recorrer (n=2). Suponga que sale de C.

+ f3*(E)=f2(C) = C C,E + f3*(E) =3+4=7 + f3*(F)=f2(C) = C C,F + f3*(F) =2+7=9 + f3*(G)=f2(C) = C C,G + f3*(G) =4+6=10

 Luego f2*(C)= 7 y X2*=E . En general para la etapa 2 se

tiene: X2 S f2*(S, X2)=CS,X2+f3 *(X 2) f2*(S) X2* E F G B 11 11 12 11 E ó F C 7 9 10 7 E D 8 8 11 8 E ó F C E F G 11

(12)

Procedimiento de solución hacia atrás

 Etapa n=1

 En la primera etapa, el cazafortunas tiene todas las jornadas

por recorrer (n=1). Necesariamente debe salir de A.

+ f2*(B)=f1(A) = C A,B + f2*(B) =2+11=13 + f2*(C)=f1(A) = C A,C + f2*(C) =4+7=11 + f2*(D)=f1(A) = C A,D + f2*(D) =3+8=11

 Luego f1*(A)= 11 y X1*=C ó D . Veamos:

X1 S f2*(S, X2)=CS,X2+f3 *(X 2) f2*(S) X2* B C D A 13 11 11 11 C ó D A B C D

(13)

Solución

 Podemos apreciar que existen 3 rutas óptimas.

A C D E F H I J 4 3 3 4 1 1 3 3 4 13

(14)

Características de la

programación Dinámica

1. EL problema se puede dividir por etapas, que requieren una política de decisión en cada una de ellas.

2. Cada etapa tiene un cierto número de estados asociados a su inicio. (Estados son las diferentes condiciones posibles en las que se puede encontrar el sistema en cada etapa del problema).

3. 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. El procedimiento pretende hallar la política óptima para el problema completo. Esto quiere decir, la política a emplear desde cualquier posible estado del problema.

(15)

Características de la

programación Dinámica

5. Dado el estado actual, la política óptima desde este estado es independiente de las políticas adoptadas en las etapas anteriores. (La solución óptima depende únicamente del estado actual y no de cómo se llegó allí).

6. El procedimiento de la solución termina cuando se obtiene la política óptima de la última etapa.

7. Siempre se dispone de una relación recursiva, esto es lo que permite trabajar las decisiones interrelacionadas. La relación recursiva será:

fn*(Sn)= Max Xn {fn(S,Xn)} o también fn*(Sn)= Mín Xn {fn(S,Xn)}

(16)

N: número de etapas

n: etiqueta para la etapa actual (1,2, …, N) Sn: Estado actual para la etapa n.

Xn: Variable de decisión para la etapa n.

8. Cuando se tiene una relación recursiva como la de la función, el procedimiento de solución “hacia atrás” inicia en la última etapa y se mueve hacia la primera, etapa por etapa.

Xn*: Valor Óptimo de Xn dado Sn.

Xn S fn*(S, Xn)=CS,Xn+fn+1 *(X N) fn*(S) Xn*

Características de la

programación Dinámica

16

(17)
(18)

Ejemplo

Un barco de 4 toneladas puede cargarse con uno o

más de tres artículos. La siguiente tabla da el peso

unitario wi en toneladas y el ingreso unitario en miles

de dólares , ri para el artículo i. El objetivo es

determinar la cantidad de unidades de cada artículo

que maximizará el rendimiento total.

Articulo i wi ri

1 2 31 2 3 47 3 1 14

(19)

ETAPA 3

 Como el peso unitario wi y el peso máximo W son enteros, el estado xi asume solo valores enteros.

ETAPA 3

 El peso exacto a ser asignado a la etapa 3 (artículo 3) no se

conoce con anticipación pero puedo suponer

uno de los valores 0, 1, 2, 3 y 4 (porque W=4 toneladas y w3=1.

 Un valor de m3 es factible solo si

w3*m3<=x3. Por lo

tanto se excluyen todos los valores no factibles (con w3*m3>x3). El ingreso para el artículo 3 es 14m3. En

consecuencia, la

ecuación recursiva para la etapa 3 es:

f3(x3)= máx 14m3, para m3=0,1,..4

(20)

Cálculos para la ETAPA 3

14m3

Solución

óptima

x3 m3=0

m3=1

m3=2

m3=3

m3=4

f3(x3)

m*3

0

0

-

-

-

-

0

0

1

0

14

-

-

-

14

1

2

0

14

28

-

-

28

2

3

0

14

28

42

-

42

3

4

0

14

28

42

56

56

4

(21)

Cálculos para la ETAPA 2

47m2+f3(x2-3m2) Solución óptima

X2

m2=0

m2=1

f2(x2)

m*2

0

0+0=0

-

0

0

1 0+14=14

-

14

0

2 0+28=28

-

28

0

3 0+42=42 47+0=47

47

1

4 0+56=56 47+14=61

61

1

 Max{m2}=4/3=1 o m2=0 o 1  f2(x2)=max 47m2+f3(x2-3m2) 21

(22)

Cálculos para la ETAPA 1

31m1+f2(x1-2m1)

Solución

óptima

x1

m1=0

m1=1

m1=2

f1(x1) m*1

0

0+0=0

-

-

0

0

1 0+14=14

-

-

14

0

2 0+28=28 31+0=31

-

31

1

3 0+47=47 31+14=45

-

47

0

4 0+61=61 31+28=59 62+0=62

62

2

 Max{m1}=4/2=2 o m1=0 o 1 o 2  f1(x1)=max 31m1+f2(x1-2m1)

(23)

SOLUCIÓN ÓPTIMA

Dado que W=4 toneladas, del estado 1, x1=4, se

da la alternativa óptima m*1=2; es decir que en el

barco se cargarán dos unidades del artículo 1. Esta

asignación deja, x2=x1-2m1=4-2*2=0 para las

etapas 2 y 3. De la etapa 2, x2=0 da por resultado

m2=0,

lo

cual

deja

x3=x2-3m2=0-3*0=0

unidades para la etapa 3. Luego a partir de la

etapa 3, x3=0 da m*3=0. Por lo tanto, la solución

óptima completa es: m1*=2, m*2=0 y m*3=0. El

rendimiento asociado es f1(4)=$62000.

(24)

¿Qué sucede si la capacidad del barco es

de 3 toneladas en lugar de 4? La nueva

solución óptima puede determinarse como

(x1=3)(m1*=0)

(x2=3)(m2*=1)

(x3=0)(m3*=0)

Por lo tanto la solución óptima es (m*1,

m*2, m*3)=(0,1,0) y el ingreso óptimo es

f1(3)=$47000

(25)

EJERCICIO

Un excursionista debe empacar 3 artículos:

alimento, botiquín de primeros auxilios y ropa. La

mochila tiene una capacidad de 3 pies cúbicos.

Cada unidad de alimento ocupa 1 pie cúbico, el

botiquín ocupa ¼ de pie cúbico y cada pieza de

ropa ocupa aproximadamente ½ pie cúbico. El

excursionista asigna pesos de prioridad de 3, 4 y 5

al alimento, el botiquín y la ropa, respectivamente,

lo que significa que la ropa es lo más valioso de los

tres artículos. Por experiencia, el excursionista

debe llevar al menos una unidad de cada artículo y

no más de dos botiquines. ¿Cuántas unidades de

cada artículo debe llevar el excursionista?

Referencias

Documento similar