programacion dinámica 1

46
Luis Medina Aquino PROGRAMACIÓN DINÁMICA

Transcript of programacion dinámica 1

Page 1: programacion dinámica 1

Luis Medina AquinoPROGRAMACIÓN DINÁMICA

Page 2: programacion dinámica 1

CONCEPTOS BÁSICOS

Método de optimización

Descomponer un problema

grande en

Problemas mas pequeños con resolución mas

fácil

Page 3: programacion dinámica 1

La Programación dinámica resuelve el problema en etapas (problemas multietápicos).

En cada etapa interviene una variable de optimización.

Los cálculos de las diferentes etapas se enlazan de forma recursiva para generar la solución óptima.

CARACTERÍSTICAS

Page 4: programacion dinámica 1

Cada etapa en una estructura en serie, se caracteriza por cuatro variables o funciones (Fig. 1). Estas son: variable de entrada, Sn; variable de decisión, dn; variable de salida, Sn+1 ; y función de retorno, Rn. Estas dos últimas dependen de la entrada y de las decisiones.

ANÁLISIS GENERAL

Etapa iSi Si+1

Ri

di

Page 5: programacion dinámica 1

Se tiene un contrato para entregar 3 unidades mensuales de cierto producto durante 4 meses, la capacidad de producción de la planta es de 5 unidades mensuales como máximo. El stock a fin de mes no puede ser mayor de 4 unidades. El costo de fabricación C(x) es como sigue:C(0) = 0, C(1) = 15, C(2) = 17, C(3) = 19, C(4) = 21, y C(5) = 23.El costo de almacenamiento por unidad-mes es 2.El inventario inicial (II) es cero.El inventario final (IF) es cero.Se pide optimizar la producción en un horizonte de 4 meses

ANÁLISIS GENERAL

Page 6: programacion dinámica 1

• Un inversionista tiene $7000 para invertir en tres riesgos. Él debe invertir en unidades de $1000. El retorno potencial a partir de la inversión en cualquier riesgo depende de la cantidad invertida, de acuerdo a la tabla siguiente:

ANÁLISIS GENERAL

A B C

0 0 0 0

1000 80 90 100

2000 170 200 190

3000 260 240 280

4000 320 340 320

5000 450 480 430

Determine cuánto tiene que invertir en cada riesgo para maximizar su retorno

Page 7: programacion dinámica 1

Determine, por programación dinámica, el número de cada uno de los siguientes artículos que deben incluirse en el cargamento de una camioneta de servicio rural, tal que el valor del cargamento se maximice. La capacidad de la camioneta es de 400 kilos. Además, debe haber por lo menos un artículo de cada tipo.

ANÁLISIS GENERAL

Artículo Descripción Peso Valor

1 Arroz Saco de 25 kg S/. 35

2 Azúcar Saco de 75 kg S/. 100

3 Frijol Saco de 100 kg S/. 140

Page 8: programacion dinámica 1

ANÁLISIS GENERAL En un proceso en serie de multietapas la salida de la

etapa n es la entrada en la etapa n+1 (Fig. 2)

FIGURA 2

Etapa 1

S1 S2

R1

d1

Etapa 2

S3

R2

d2

Etapa n-1

Sn-1 Sn

Rn-1

dn-1

Etapa n

Sn+1

Rn

dn

f2(S2) fn(Sn) f1(S1) fn-1(Sn-1)

Page 9: programacion dinámica 1

por tanto, la decisión que dé como resultado el óptimo para cada entrada posible, puede ser

determinada para cada etapa

La última etapa de un proceso en serie, no tiene ninguna variable de salida que afecte alguna otra

unidad del sistema

Por lo general, el análisis en programación dinámica comienza con la última etapa y termina con la

primera

ANÁLISIS GENERAL

Page 10: programacion dinámica 1

Richard Bellman, desarrolló en los años cincuenta las ideas básicas de la programación dinámica, postulando el principio de optimalidad que dice:

“Una política óptima tiene la propiedad de que cualquiera que sean su estado y decisión iniciales, las decisiones subsecuentes deben constituir una política óptima con respecto al estado resultante de la decisión inicial”

PRINCIPIO DE OPTIMALIDAD

Page 11: programacion dinámica 1

PRINCIPIO DE OPTIMALIDAD

Matemáticamente el principio de optimalidad es:

fn(Sn) = máx [Rn(Sn, dn) + fn+1(Sn+1)] dn

fn(Sn) = mín [Rn(Sn, dn) + fn+1(Sn+1)] dn

en caso de maximizar la función de retorno, ó

en caso de minimizar la función de retorno

*

*

Page 12: programacion dinámica 1

PRINCIPIO DE OPTIMALIDAD Para el caso de maximizar la función de retorno:

fn(Sn) = máx [Rn(Sn, dn) + fn+1(Sn+1)] dn

*

n = número de etapas subsecuentes en el proceso Sn = variables de entrada a la n-ésima etapa dn = variable de decisión en la n-ésima etapa fn(Sn) = retorno máximo de un proceso con n etapas y entradas Sn en la n-ésima etapa rn = Rn(Sn, dn) = función de retorno de la etapa n con entrada Sn y variable de decisión dn

Sn +1 = salida de la etapa n y entrada a la etapa n+1 fn+1(Sn+1) = función de retorno máximo desde la última etapa hasta la etapa n+1.*

Page 13: programacion dinámica 1

EJEMPLO 1

Page 14: programacion dinámica 1

Este problema se refiere a un vendedor mítico que tuvo que viajar hacia el oeste por diligencia, a través de tierras indias hostiles, aproximadamente hace 125 años. Aun cuando su punto de partida y destino eran fijos, tenía un número considerable de opciones para elegir, qué estados recorrer en su ruta.

*PROBLEMA DE LA DILIGENCIA

Page 15: programacion dinámica 1

• Los costos de la póliza estándar para el viaje en diligencia del estado i al j son:

SEGUROS DE PÓLIZAS

Page 16: programacion dinámica 1

A

D

C

B

G

F

E

I

H

J

2

1

4

3

3

6

3

1

4

3

4

5

4

23

64

7

4

3

*Diagrama: Red de las Rutas Posibles

Page 17: programacion dinámica 1

DESEOS DEL VENDEDOR VIAJERO

• Determinar cuál es la ruta más segura, es decir, desea correr el menor riesgo posible.

Page 18: programacion dinámica 1

¿Cuál es la ruta que minimiza el costo total?

DETERMINAR

Page 19: programacion dinámica 1

SOLUCIÓN

Una forma básica de resolver este problema es por tanteo.

Pero el número de rutas posibles es muy alto (en este caso 18) y por lo tanto son muchos los cálculos a realizar.

Page 20: programacion dinámica 1

SOLUCIÓN

La programación dinámica suministra una solución con mucho menos esfuerzo que la numeración exhaustiva

Page 21: programacion dinámica 1

DEFINIR

– Etapas– Variables de decisión– Variables de Estado– Función de retorno– Objetivo

Page 22: programacion dinámica 1

ETA

PAS

• El problema puede dividirse en etapas, con una decisión de la política requerida en cada etapa. Las etapas a considerar van a depender del tipo de problema a resolver.

Page 23: programacion dinámica 1

2

1

4

3

3

6

3

1

4

3

4

5

4

23

64

7

4

3

C

B

D

E

F

G

H

I

JA

Etapa 1 Etapa 2 Etapa 3 Etapa 4

Page 24: programacion dinámica 1

VAR

IAB

LES

DE

DE

CIS

IÓN

• Consideremos que las variables de decisión dn (n = 1, 2, 3, 4) son el destino inmediato en la etapa n.

Page 25: programacion dinámica 1

2

1

4

3

3

6

3

1

4

3

4

5

4

23

64

7

4

3

C

B

D

E

F

G

H

I

JA

Etapa 1 Etapa 2 Etapa 3 Etapa 4

d1={B,C,D} d2={E,F,G} d3={H,I} d4={J}

Page 26: programacion dinámica 1

VAR

IAB

LES

DE

ES

TAD

O• Cada etapa tiene cierto

número de variables de estado asociados a ella.

• En nuestro caso las variables de estado son:

S1, S2, S3, S4, S5

Page 27: programacion dinámica 1

2

1

4

3

3

6

3

1

4

3

4

5

4

23

64

7

4

3

C

B

D

E

F

G

H

I

JA

S5={J}Etapa 1

S2={B,C,D}Etapa 2 Etapa 3 Etapa 4

S3={E,F,G} S4={H,I}S1={A}

d1={B,C,D} d2={E,F,G} d3={H,I} d4={J}

S2 = d1 S5 = d4S4 = d3S3 = d2

Page 28: programacion dinámica 1

FUNCIÓN DE RETORNO

• Se dispone de una relación recursiva que identifica la política óptima para cada estado en la etapa n, dada la política óptima para cada estado en la etapa (n + 1).

Page 29: programacion dinámica 1

2

1

4

3

3

6

3

1

4

3

4

5

4

23

64

7

4

3

C

B

D

E

F

G

H

I

JA

S5={J}Etapa 1

S2={B,C,D}Etapa 2 Etapa 3 Etapa 4

S3={E,F,G} S4={H,I}S1={A}

d1={B,C,D} d2={E,F,G} d3={H,I} d4={J}

R1(S1,d1) R2(S2,d2) R3(S3,d3) R4(S4,d4)

S2 = d1 S5 = d4S4 = d3S3 = d2

Page 30: programacion dinámica 1

OBJETIVO

Minimizar los costos totales

Hallar f*1 (A) y la política óptima correspondiente.

*Procedimiento

Page 31: programacion dinámica 1

2

1

4

3

3

6

3

1

4

3

4

5

4

23

64

7

4

3

C

B

D

E

F

G

H

I

JA

S5={J}Etapa 1

S2={B,C,D}Etapa 2 Etapa 3 Etapa 4

S3={E,F,G} S4={H,I}S1={A}

d1={B,C,D} d2={E,F,G} d3={H,I} d4={J}

R1(S1,d1) R2(S2,d2) R3(S3,d3) R4(S4,d4)

S2 = d1 S5 = d4S4 = d3S3 = d2

f*1 (A) f*2(S2) f*3 (S3) f*4(S4)

Page 32: programacion dinámica 1

El proceso de calculo es de atrás hacia adelante

*Procedimiento

Page 33: programacion dinámica 1

I

H

J

Estados posibles

S4=H y S4= I

S5={J}Etapa 4

S4={H,I}

d4={J}

R4(S4,d4)

3

4

*Etapa n = 4

Page 34: programacion dinámica 1

f4(S4) = R4(S4, d4 ) + f5*(S5) minf4*(S4) d4*d4 =J

H 3 + 0 = 3 3 J

I 4 + 0 = 4 4 J

ETAPA N = 4

d4

S4

0

S5={J}Etapa 1

S2={B,C,D}Etapa 2 Etapa 3 Etapa 4

S3={E,F,G} S4={H,I}S1={A}

d1={B,C,D} d2={E,F,G} d3={H,I} d4={J}

R1(S1,d1) R2(S2,d2) R3(S3,d3) R4(S4,d4)

S2 = d1 S5 = d4S4 = d3S3 = d2

Page 35: programacion dinámica 1

Estados posibles

S3 = E, S3=F y S3= J

G

F

E

I

H

J

Decisiones posibles: d3 = H y

d3 = I

Etapa 3S3={E,F,G} S4={H,I}

d3={H,I}

R3(S3,d3)

1

3

4

6

3

3

ETAPA N = 3

Page 36: programacion dinámica 1

ETAPA N = 3

f3(S3) = R3(S3, d3 ) + f4*(S4) f3*(S3) d3*d3 = H d3 = I

E 1+ 3 = 4 4 +4 = 8 4 H

F 6+ 3 = 9 3 + 4 = 7 7 I

G 3 +3 = 6 3 + 4 = 7 6 H

d3

S3S4 f4*(S4) d4*

H 3 J

I 4 J

ETAPA 4

S5={J}Etapa 1

S2={B,C,D}Etapa 2 Etapa 3 Etapa 4

S3={E,F,G} S4={H,I}S1={A}

d1={B,C,D} d2={E,F,G} d3={H,I} d4={J}

R1(S1,d1) R2(S2,d2) R3(S3,d3) R4(S4,d4)

S2 = d1 S5 = d4S4 = d3S3 = d2

ETAPA 3: Variable de enlace S4 = d3

Page 37: programacion dinámica 1

Etapa n= 2

Estados posibles

S2 = B, S2 = C y S2 = D

G

F

E

I

H

J

Decisiones posibles: d2 = E,

d2 = F y d2 = G

D

C

B

S2={B,C,D} Etapa 2

S3={E,F,G}

d2={E,F,G}

R2(S2,d2)

7

6

4

4

4

2

3

1

5

ETAPA N = 2

Page 38: programacion dinámica 1

ETAPA N = 2

f2(S2) = R2(S2, d2 ) + f3*(S3) f2*(S2) d2* d2 = E d2 = F d2 = G

B 7+ 4 = 11 4 + 7 = 11 6 + 6 = 12 11 E ó F

C 3 + 4 = 7 2 + 7= 9 4 + 6 = 10 7 E

D 4 + 4 = 8 1 + 7 = 8 5 + 6 = 11 8 E ó F

S2

d2

S5={J}Etapa 1

S2={B,C,D}Etapa 2 Etapa 3 Etapa 4

S3={E,F,G} S4={H,I}S1={A}

d1={B,C,D} d2={E,F,G} d3={H,I} d4={J}

R1(S1,d1) R2(S2,d2) R3(S3,d3) R4(S4,d4)

S2 = d1 S5 = d4S4 = d3S3 = d2

S3 f3*(S3) d3*

E 4 H

F 7 I

G 6 H

ETAPA 3 ETAPA 2: Variable de enlace S3 = d2

Page 39: programacion dinámica 1

Etapa n= 1

Estado posibleS1 = A G

F

E

I

H

J

Decisiones posibles: d1

= B, d1 = C y

d1 = D

D

C

B

A

Etapa 1

S2={B,C,D}S1={A}

d1={B,C,D}

R1(S1,d1)

2

4

3

ETAPA N = 1

Page 40: programacion dinámica 1

ETAPA N = 1

f1(S1) = R1(S1, d1 ) + f2*(S2) f1*(S1) d1* d1 = B d1 = C d1 = D

A 2 +11 = 13 4 + 7 = 11 3 + 8 = 11 11 C ó D

ETAPA 1: variable de enlace S2 = d1 S2 f2*(S2) d2*

B 11 E ó F

C 7 E

D 8 E ó F

ETAPA 2

S5={J}Etapa 1

S2={B,C,D}Etapa 2 Etapa 3 Etapa 4

S3={E,F,G} S4={H,I}S1={A}

d1={B,C,D} d2={E,F,G} d3={H,I} d4={J}

R1(S1,d1) R2(S2,d2) R3(S3,d3) R4(S4,d4)

S2 = d1 S5 = d4S4 = d3S3 = d2

S1

d1

Page 41: programacion dinámica 1

SOLUCION

S1 f1*(S1) d1*

A 11 C ó D

ETAPA 1S2 = d1

S2 f2*(S2) d2*

B 11 E ó F

C 7 E

D 8 E ó F

ETAPA 2S3 = d2

S3 f3*(S3) d3*

E 4 H

F 7 I

G 6 H

ETAPA 3S4 = d3

S4 f4*(S4) d4*

H 3 J

I 4 J

ETAPA 4

Etapa i di Ri

1 C 4

2 E 3

3 H 1

4 J 3

Etapa i di Ri

1 D 3

2 E 4

3 H 1

4 J 3

Etapa i di Ri

1 D 3

2 F 1

3 I 3

4 J 4

SOLUCION 1 SOLUCION 2 SOLUCION 3

COSTO TOTAL = 11

Page 42: programacion dinámica 1

A C

E

H

J

Ruta N º 1(Alternativa 1)

4

31

3

Page 43: programacion dinámica 1

A

D

E

H

J

Ruta N º 2(Alternativa 2)

3

4

1

3

Page 44: programacion dinámica 1

A

D

F

I

J

Ruta N º 3(Alternativa 3)

3 13 4

Page 45: programacion dinámica 1
Page 46: programacion dinámica 1