Sunteți pe pagina 1din 18

UNIVERSIDAD DE LIMA

FACULTAD DE INGENIERIA DE SISTEMAS


DEPARTAMENTO ACADEMICO DE INGENIERIA DE SISTEMAS
ASIGNATURA : INVESTIGACION OPERATIVA II
SECCION : 901, 902
PROFESORA : ANGELICA KAMIYAMA M.
PER. ACADEMICO: 2001-1

Programación Dinámica

El término proceso de decisiones secuenciales describe una actividad que involucra una
secuencia de decisiones para cumplir un determinado fin. Programación Dinámica es la
colección de herramientas matemáticas para el análisis de procesos de decisiones
secuenciales determinando los valores óptimos de dichas decisiones.

Aplicaciones :
Determinación de políticas de inventarios
Operación de reservorios
Selección de inversiones
Determinación de políticas de expansión de capacidad
Problema de caminos más cortos

I. Problema prototipo de Programación Dinámica:


Problema de caminos más cortos

Ejemplo: En la siguiente red hallar un camino más corto del nodo 1 al nodo 9

12 5
2 7

4 7
1 6 15

3
1 4 7
10
3 8 9
2 3
7 15
3 4

1
Sean
t i J = longitud del arco ( i, j )
f i = la mínima distancia de i a 9 (longitud de un camino más corto de i a 9)
Entonces,
t i J + f J= longitud total del camino de i a 9 que se inicia en el arco ( i, j ) y
luego toma el camino más corto de j a 9
fi < t iJ + fJ i≠9

Por lo tanto,
f i = min  t iJ + fJ i ≠ 9, puesto que un camino más corto de i a 9
j pasa por algún arco ( i, j )
Entonces, como f 9 = 0
f 8 = 10 + f 9 = 10
f7 = 3 + f9 =3
f 6 = min { 7 + f 8 , 15 + f 9 } = min { 7 + 10 , 15 + 0 } = 15
… … ..

f 1 = min { 1 + f 2 , 2 + f 3 } = min { 1 + 20 , 2 + 17 } = 19

Por lo tanto, la longitud de un camino más corto de 1 a 9 es 19.

II. Propiedades Recurrentes

El problema de caminos más cortos y una gran variedad de otros procesos de decisiones
secuenciales comparten varias propiedades :

1. El problema original está sumergido en un conjunto de problemas de optimización.

2. La solución óptima del problema de optimización está caracterizada por una ecuación
recursiva.

3. La solución óptima puede ser calculada evaluando la ecuación recursiva en los


estados en una secuencia predeterminada.

4. Se cumple el principio de optimalidad :

4.1 “ Sea P un camino óptimo de i a j. Cualquier subcamino de ip a i q contenido en


P es un camino óptimo de ip a i q “.

4.2 “ La mejor ruta desde cualquier nodo z al nodo final depende solo del nodo z y no
de la ruta usada para llegar a z ”.

2
4.3 “ Una ruta óptima tiene la propiedad de que cualquiera sea el nodo inicial y arco
inicial, los arcos restantes deben constituir una ruta óptima con respecto al primer
nodo alcanzado después del nodo inicial “.

III. Estructuración de la técnica

1. Estado

Un estado es un resumen de la historia del proceso que es suficientemente detallada


para poder tomar una decisión. Los estados son entonces los puntos donde se toman las
decisiones.

Las variables de estado son los elementos de un (vector de) estado.

Notación :
S = vector de estado
= ( s1, s2, … ., sn)
si = variable de estado i
E = conjunto de todos los estados

2. Decisión

D(S) = conjunto de decisiones para el estado S


{ d 1, d 2, … . , d n }

3. Función de transición

Es la función T que define el nuevo estado al tomar la decisión d en el estado actual S,


Sn = T( d, S )
Sn = nuevo estado

4. Generación de estados

Dado un estado inicial la aplicación repetida de la función de transición generará el


conjunto de todos los estados del problema siempre y cuando se tomen en cuenta las
restricciones del problema.

5. Función de valor óptimo

3
A cada estado se le asocia un subproblema del mismo tipo que el problema original pero
de menor tamaño. La función de valor óptimo es la regla que asigna al estado S el valor
óptimo de la función objetivo del subproblema asociado a él. Dicha función es denotada
como f (S).

6. Función de política óptima

Es la regla que asigna la mejor primera decisión a cada subproblema. Se denota por P
(S) .

7. Función de retorno

Sea a d ( S ) = valor (costo o utilidad) asociado a la decisión d tomada en el estado S

Entonces
R( S, d ) = valor de la ruta desd S al estado final dada la decisión d y la ruta
óptima desde Sn.
= a d( S ) + f (Sn)

8. Ecuación recursiva

f ( S ) = min { R(S,d) }
d∈ D(S)

9. Condición de contorno

Valor o valores de la función de valor optimo f que son obvios o que no requieren cálculo.

Tabla de generación de estados

4
Estado actual Decisión Nuevo estado
S d Sn
-------------------------------------------------------------------------
1 2 2
3 3
-------------------------------------------------------------------------
2 5 5
9 9
------------------------------------------------------------------------
3 4 4
6 6
-------------------------------------------------------------------------
4 5 5
6 6
7 7
8 8

-------------------------------------------------------------------------
5 7 7
-------------------------------------------------------------------------
6 8 8
9 9
-------------------------------------------------------------------------
7 9 9
-------------------------------------------------------------------------
8 9 9

Procedimiento tabular de solución

S d Sn a d(S) f(Sn) R(S,d) f(S) P(S)


5
9 0 ___

8 9 9 10 0 10 10 9_

7 9 9 3 0 3 3 9_

6 8 8 7 10 17 15 9
9 9 15 0 15 __

5 7 7 7 3 10 10 7_

4 5 5 4 10 14 14 5
7 7 15 3 18
8 8 7 10 17
6 6 3 15 18 __

3 4 4 3 14 17 17 4
6 6 4 15 19 __

2 5 5 12 10 22 20 4
4 4 6 14 20 __

1 2 2 1 20 21 19 3
3 3 2 17 19 __

6
El problema de la alforja

Se tienen N objetos de peso Pi y valor V i. Se desea escoger los objetos a llevar en una
alforja que puede llevar como máximo un peso W. La elección de los objetos debe
maximizar el valor total de la carga.

Modelo de Programación Matemática:

Max Σ Vi XI
s.a.
Σ Pi Xi < W
Xi = 0, 1 i = 1 ,… , N

Modelo de Programación Dinámica:

1. Estado :
S = ( s1, s2 )
s1 = el objeto que se va a decidir llevar o no
s2 = capacidad disponible de la alforja
2. Decisión:
d = llevar o no llevar el objeto s1.

= 1 si llevar el objeto s1
0 no llevar el objeto s1

D(S) = { 0, 1}
3. Transición :
sn1 = s1 + 1
sn2 = s2 – Ps1 * d

4. Generación de estados :
Estado inicial : S = (1,W)
Restricciones : sn1 < N, sn2 > 0

5. Función de valor óptimo :


Subproblema asociado a S = (s1,s2) : Determinar los objetos desde el s1-ésimo
objeto hasta el N-ésimo de valor total máximo, tomando en cuenta que la capacidad
disponible es s2.
f (s1,s2) = máximo valor que se puede obtener escogiendo entre los objetos desde el
s1-ésimo hasta el N-ésimo , y partiendo de una capacidad disponible de s2.

7. Función de retorno:
a d( S ) = beneficio inmediato que se obtiene al tomar la decisión d en el
estado S.
= Vs1 d

7
R(S, d) = maximo beneficio total que se obtiene al tomar la decisión d en el
estado S y desde el nuevo estado se toman las mejores decisiones.
= Vs1 * d + f ( Sn )
f ( Sn ) es el beneficio futuro que se obtiene al tomar la decisión d en el
estado S

8. Ecuación recursiva :
f ( S ) = max { R(S,d) }
d∈ D(S)
= máxima utilidad a obtener con los artículos desde el s1, partiendo con
una capacidad disponible s2.

9. Condiciones de contorno
0 si s2 < PN
f( N, s2) =
VN si s2 ≥ PN

Los estados (N, s2) son los estados de contorno.

Aplicación : Se dispone de un camión de 10 ton. de capacidad para trasladar 4 bultos. Se


desea determinar los bultos a trasladar de manera que se maximice el valor total que se
traslada :
Bulto 1 2 3 4
Peso Pi (ton) 3 6 7 5
Valor Vi ($) 7 16 19 15

Solución :

Conjunto de estados : no
(3,1) (4, 1)
si
(2, 7)

si no si (4, 0)
(3, 7)
(1,10) no (4, 7)

no (3, 4) no (4, 4)
si
(2,10) (4, 3)
no si
(3,10)
no (4,10)

Procedimiento tabular de solución

8
s1 s2 d a d(s) sn1 sn2 f(Sn) R(S,d) f(S) P(S)
4 0,1,3,4 0 0 0
4 7,10 1 15 1
3 1 0 0 4 1 0 0 0 0
3 7 0 0 4 7 15 15 19 1
1 19 4 0 0 19
3 4 0 0 4 4 0 0 0 0
3 10 0 0 4 10 15 15 19 1
1 19 4 3 0 19
2 7 0 0 3 7 19 19 19 0
1 16 3 1 0 16
2 10 0 0 3 10 19 19 19 0
1 16 3 4 0 16
1 10 0 0 2 10 19 19 26 1
1 7 2 7 19 26

Variaciones del problema de la alforja

I. Problema de la carga de bultos :


La única diferencia con el problema de la alforja es que en la alforja se pueden llevar
más de una unidad de cada tipo de objeto.

Modelo de Programación Dinámica:


Las diferencias con el modelo correspondiente al problema de la alforja son :

1. Estado :
s1 = objeto del cual se va a decidir cuántas unidades a cargar
s2 = capacidad disponible de la alforja

2. Decisión :
d = número de unidades del objeto s1 a cargar
D(S) = { 0,… ..,  s2 / Ps1 }

9. Condición de contorno
f(N,s2) = VN  s2 / PN

9
II. Problema de la carga de bultos con stock
Difiere del problema de la carga de bultos en que cada objeto existe solo en una cantidad
limitada, Sti.

Modelo de Programación Dinámica:


Las diferencias con el modelo correspondiente al problema de la carga de bultos son :

2. Decisión :
d = número de unidades del objeto s1 a cargar
D(S) = { 0,… .., min ( Sts1,  s2/Ps1 ) }

9. Condición de contorno
f(N,s2) = VN min ( StN,  s2/PN )

III. Problema de la carga de bultos con stock y requerimientos máximos y


mínimos
Difiere del problema de la carga de bultos con stock en que cada la cantidad de unidades
del objeto i debe además satisfacer un requerimiento mínimo Rmini y uno máximo Rmaxi.

Modelo de Programación Dinámica:


Las diferencias con el modelo correspondiente al problema de la carga de bultos con
stock son :

2. Decisión :
d = número de unidades del objeto s1 a cargar
D(S) = { Rmins1,… .., min ( Rmaxs1, Sts1,  s2/Ps1 ) }

10. Condición de contorno

VN min ( RmaxN, StN,  s2/PN ) si s2 > Rmin N PN


f (N,s2) =
-M si s2 < Rmin N PN

10
El problema de la asignación de recursos

Se tienen X unidades de un recurso que deben ser distribuidos entre N actividades. Se


conoce la utilidad Ui ( XI ) proveniente de asignar X i unidades del recurso a la actividad i.
El problema es asignar las X unidades del recurso a las actividades de tal modo que se
maximice la utilidad total.

Modelo de Programación Matemática:

Max Σ Ui ( X I )
s.a.
Σ Xi < X
Xi > 0 i = 1 ,… , N

Modelo de Programación Dinámica:

1. Estado :
S = ( s1, s2 )
s1 = la actividad a la cual se asignará el recurso
s2 = cantidad aún disponible del recurso

2. Decisión:
d = cantidad del recurso a asignar a la actividad s1.
D(S) = { 0, 1, … , s2 }

3. Transición :
sn1 = s1 + 1
sn2 = s2 – d

4. Generación de estados :
Estado inicial : S = ( 1, X )

Restricciones : sn1 < N, sn2 > 0

5. Función de valor óptimo :

Subproblema asociado a S = (s1, s2) : Determinar la asignación óptima de s2


unidades del recurso entre las actividades s1 hasta N.

f (s1,s2) = máxima utilidad total que puede obtenerse al asignar s2 unidades del
recurso entre las actividades s1 hasta N.

7. Función de retorno:

11
a d( S ) = beneficio inmediato que se obtiene al asignar d unidades del
recurso a la actividad s1.
= Us1 ( d )

R(S, d) = máxima utilidad ó beneficio total que se obtiene al asignar d


unidades a la actividad s1.
= Us1 ( d ) + f ( Sn )

f ( Sn ) es el beneficio futuro que se obtiene al tomar la decisión


d en el estado S

8. Ecuación recursiva :
f ( S ) = max { R(S,d) }
d∈ D(S)
= máxima utilidad total a obtener asignando las s2 unidades disponible
del recurso entre las actividades desde s1 hasta N.

9. Condiciones de contorno
f ( N, s2) = UN ( s2 )

Los estados (N, s2) son los estados de contorno.

Aplicación : Se tienen 4 proyectos de inversión y un presupuesto de 8 millones. La


utilidad en cada proyecto se muestra a continuación. Solo se invierte en múltiplos de
millón.:

Proyecto 0 1 2 3 4 5 6 7 8
1 0 3 7 10 12 13 14 14 14
2 0 1 2 4 8 13 17 19 20
3 0 2 4 6 8 10 12 14 16
4 0 1 3 6 9 12 14 16 17

12
El problema de producción e inventario

Existe la demanda Di para un producto durante N periodos consecutivos, la cual se


puede satisfacer mediante la producción de ese periodo o anteriores. El inventario al
comienzo del primer periodo es 0 y al final del último periodo debe ser 0. La capacidad
de almacenamiento es de Q unidades. Se tiene la función de costo de producción Ci y la
función de costo de inventario Hi para cada periodo i. El objetivo es programar la
producción a fin de satisfacer la demanda a mínimo costo.

Modelo de Programación Matemática:

Sean XK = nivel de producción durante periodo k


IK = nivel de inventario al inicio del periodo k

Min Σ [ CK ( XK ) + HK ( IK ) ]
s.a.
I1 = IN+1 = 0
IK + XK = DK + IK+1 k = 1,… , N
IK < Q k = 1,… ,N
X K , IK > 0 k = 1 ,… , N

Modelo de Programación Dinámica:

1. Estado :
S = ( s1, s2 )
s1 = periodo actual s1 ∈  1,… ,N 
s2 = nivel del inventario al inicio del periodo s1 s2 ∈  0,… ,Q 

2. Decisión:
d = nivel de producción del periodo s1.
N
D(S) = { max{0, Ds1 – s2], … , min { Ds1 – s2 + Q, ∑ Di - s2 } }
i=s1

3. Función de transición :
sn1 = s1 + 1
sn2 = s2 + d - Ds1

4. Generación de estados :
Estado inicial : S = ( 1, 0 )

Restricciones : sn1 < N, sn2 > 0, sn2 < Q

5. Función de valor óptimo :

13
Subproblema asociado a S = (s1, s2) : Determinar el programa óptimo de producción
desde el periodo s1 hasta el N, partiendo de un inventario de s2 unidades.

f (s1,s2) = mínimo costo de satisfacer la demanda durante los periodos s1 hasta N si


el inventario inicial en el periodo s1 es s2.

7.Función de retorno:
a d( S ) = costo inmediato en que se incurre al producir d unidades en el
periodo s1 y dado que hay s2 unidades en inventario al inicio de
ese periodo.
= Hs1 ( s2 ) + Cs1 ( d )

R(S, d) = mínimo costo total en que se incurre al producir d unidades en el


periodo s1 y dado que hay s2 unidades en inventario al inicio de
ese periodo.
= Hs1 ( s2 ) + Cs1 ( d ) + f (Sn )

f ( Sn ) es el costo futuro que se obtiene al tomar la decisión d


en el estado S

8. Ecuación recursiva :
f ( S ) = min { R(S,d) }
d∈ D(S)

= mínimo costo total de satisfacción de la demanda desde el periodo s1


hasta N , partiendo de un inventario de s2 unidades.

9. Condiciones de contorno
f( N, s2) = HN ( s2 ) + CN ( DN – s2 )

Los estados (N, s2) son los estados de contorno.

14
Problema del Reemplazo de Equipos

Se tiene un equipo de A años de antiguedad. El costo c(i) de operar un equipo por un


año depende de la edad i del equipo. Este puede ser reemplazado por uno nuevo
pagando una cantidad conocida p y dejando el equipo viejo como parte de pago
valorizado en una cantidad t(i) que depende de la edad del equipo. Al finalizar los N años
se recibe el valor de venta del camión v(i) que depende de su edad. Determinar la
política de reemplazos del equipo que incurra en el mínimo costo total.

Modelo de Programación Dinámica:

1. Estado :
S = ( s1, s2 )
s1 = año que comienza s1 ∈  1 ,… , N 
s2 = edad del equipo al inicio del periodo s1, s2 ∈  1 ,… , N+A-1 

2. Decisión:
d = comprar un equipo nuevo o no.
D(S) = { 0, 1 }

3. Función de transición :

sn1 = s1 + 1

sn2 = 1 si d = 1
s2 + 1 si d = 0

4. Generación de estados :
Estado inicial : S = ( 1, A )

Restricciones : sn1 < N

5. Función de valor óptimo :

Subproblema asociado a S = (s1, s2) : Determinar la política óptima de reemplazo de


costo mínimo desde el año s1 hasta el N-ésimo, partiendo con un equipo de edad s2.

f (s1,s2) = mínimo costo de total de reemplazo desde el año s1 partiendo con un


equipo de edad s2.

7. Función de retorno:

15
a d( S ) = costo inmediato en que se incurre al tomar la decisión d sobre el
equipo que se posee a inicios del año s1 y que tiene s2 años de
antigüedad.
= c ( s2 ) si d = 0
p – t(s2) + c(0) si d = 1

R(S, d) = mínimo costo total de reemplazo en que se incurre al tomar la


decisión d sobre el equipo de edad s2 al inicio del año s1.
= ad ( S ) + f (Sn )

f ( Sn ) es el costo futuro que se obtiene al tomar la decisión d


en el estado S

8. Ecuación recursiva :

f(S) = min { R(S,d) }


d∈ D(S)

= mínimo costo total de reemplazo desde el año s1 hasta N , partiendo


de un equipo de edad s2.

9. Condiciones de contorno

f( N+1, s2) = - V ( s2 )

Los estados (N+1, s2) son los estados de contorno.

Ejercicio : Considere el siguiente caso: A = 2, N = 5, p = 50

i 0 1 2 3 4 5 6 7
c(i) 10 13 20 40 70 100 100
t(i) 32 21 11 5 0 0
v(i) 25 17 8 0 0 0 0

16
El problema de confiabilidad

Considere el diseño de un dispositivo electrónico que consta de 3 componentes


dispuestos en serie, de manera que la falla de una de ellas hará que falle el dispositivo.
La confiabilidad (probabilidad de que no haya falla) del dispositivo se puede mejorar a
través de la instalación de unidades de reserva en cada componente. El diseño requiere
el uso de uno o dos unidades de reserva, lo que significa que cada componente puede
incluir hasta 3 unidades en paralelo. El capital disponible para el diseño del dispositivo es
de $10. Los datos de confiabilidad Rj(kj) y el costo Cj(kj) de la j-ésima componente dadas
kj unidades en paralelo se dan a continuación. El objetivo consiste en determinar el
número de unidades en paralelo kj en la componente j que maximice la confiabilidad del
dispositivo sin exceder el capital asignado.

Componente 1 Componente 2 Componente 3


kj R1 C1 R2 C2 R3 C3
1 .6 1 .7 3 .5 2
2 .8 2 .8 5 .7 4
3 .9 3 .9 6 .9 5

Modelo de Programación Matemática:

Sea KJ = número de unidades paralelas de la componente J a instalar

Max Π[ RJ ( KJ ) ]
s.a.
Σ [ CJ ( KJ ) ] < C
KJ = 1, 2, 3 J = 1 ,2, 3

Modelo de Programación Dinámica:

1. Estado :
S = ( s1, s2 )
s1 = componente sobre el cual se está decidiendo s1 ∈  1, 2, 3 
s2 = disponibilidad de capital

2. Decisión:
d = cantidad de unidades en paralelo a colocar en la componente s1.
D(S) = { 1, 2, 3 }

17
3. Función de transición :
sn1 = s1 + 1
sn2 = s2 - Cs1(d)

4. Generación de estados :
Estado inicial : S = ( 1, C )

Restricciones : sn1 < 4, sn2 > 0

5. Función de valor óptimo :

Subproblema asociado a S = (s1, s2) : Determinar el número óptimo de unidades en


paralelo a colocar en las componente s1 hasta el último, partiendo de un capital s2.
f (s1,s2) = máxima confiabilidad a obtener con las componentes a partir de la s1-
ésima contando con un capital de s2.

7. Función de retorno:
a d( S ) = beneficio inmediato que se obtiene al colocar d unidades en
paralelo de la componente s1
= Rs1(d)

R(S, d) = máximo beneficio total que se obtiene al colocar d unidades en


paralelo de la componente s1 y dado que hay s2 unidades
disponibles de capital.
= Rs1 ( d ) * f (Sn )

f ( Sn ) es el beneficio futuro que se obtiene al tomar la decisión


d en el estado S

8.Ecuación recursiva :
f ( S ) = max { R(S,d) }
d∈ D(S)

= confiabilidad máxima que se puede obtener entre las componentes


s1 hasta la última con una disponibilidad de s2 de capital.

9. Condiciones de contorno
f( 4, s2) = 1

Los estados (4, s2) son los estados de contorno.

18

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