Está en la página 1de 44

Programación Dinámica

Investigación de Operaciones 2, Unidad 3


Ing. Eduardo López Sandoval
pcinelop@upc.edu.pe
Definición

• Es una técnica de optimización


matemática.
• La programación dinámica:
• Descompone un problema de optimización en
una secuencia finita de subproblemas de
optimización (problemas más pequeños)
interrelacionados entre sí.
• Luego, resuelve cada subproblema de
optimización.
• Una vez resueltos los subproblemas, encuentra Richard Bellman (1920-1984) Año de la
Padre de la Programación Dinámica publicación: 1957
la solución óptima del problema.
Tipos de aplicaciones

• Problemas de la alforja
• Problemas de carga de bultos.
• Problemas de asignación de recursos.
• Problemas de inventarios.
• Problemas de secuenciación:
• Agente viajero.
• Carga de máquinas.
• Programa de mantenimiento de máquinas.
• Problemas con función objetivo probabilística:
• “Revenue Management” (Gestión de Rédito)
1. Problema de la Alforja

• Se caracteriza porque la decisión es binaria (Sí o No, Llevar o no llevar,


A ó B, 1 ó 2, etc.)
• Veamos el siguiente ejemplo:
• Suponga que una empresa tiene el pedido de 4 clientes distintos, cada pedido
posee un peso determinado y una utilidad que se obtendría si se traslada a un
puerto determinado:
Pedido # 1 2 3 4
Peso (kg) 500 800 600 700
Utilidad ($) 5800 6700 4800 5500

• La empresa posee un contenedor cuya capacidad es de 2000 kg. La empresa


desea saber qué pedidos debe llevar con el fin de maximizar su utilidad total.
Solución

• La descripción del problema de optimización es:


Determinar qué pedidos llevar, desde el pedido #1 al #4,
Significado de La secuencia
la decisión
en un camión con 2000 kg de capacidad disponible,
El recurso(s) y su disponibilidad

con el fin de maximizar la utilidad total.


La función objetivo
El objetivo

• Ahora, el problema debe ser descompuesto en un conjunto


secuencial finito de subproblemas.
Solución:

• El problema y cada subproblema se representará mediante estados. Cada


estado contendrá la información necesaria para poder tomar una decisión.
• Cada estado se representa mediante variables de estado:
• Se denotan mediante los símbolos: 𝒔𝟏 , 𝒔𝟐 , 𝒔𝟑 , …
• La primera variable de estado (𝒔𝟏 ) representa la etapa o secuencia del problema.
• Las demás variables de estado (𝒔𝟐 , 𝒔𝟑 , …) que pudiera tener el caso, representan la
capacidad disponible de algún recurso.
• Para este caso, las variables de estado son:
• 𝒔𝟏 : 𝑵𝒓𝒐. 𝒅𝒆 𝒑𝒆𝒅𝒊𝒅𝒐
• 𝒔𝟐 : 𝑪𝒂𝒑𝒂𝒄𝒊𝒅𝒂𝒅 𝒅𝒊𝒔𝒑𝒐𝒏𝒊𝒃𝒍𝒆 𝒅𝒆𝒍 𝒄𝒐𝒏𝒕𝒆𝒏𝒆𝒅𝒐𝒓
• El estado que representa al problema principal sería:
• (s1,s2) = (1, 2000)
• Ahora, para generar los estados que representarán a los subproblemas, se
requiere de un segundo elemento: La decisión que se deba tomar en cada
estado.
• Se denota por la letra: d.
• Su concepto es equivalente al “significado de las variables de decisión” que se vió en
programación lineal y no lineal.
• En su significado se menciona a la variable 𝒔𝟏
• Para este caso, la decisión es:
𝟎: 𝑵𝒐 𝒍𝒍𝒆𝒗𝒂𝒓 𝒆𝒍 𝒑𝒆𝒅𝒊𝒅𝒐 𝒔𝟏
𝒅=ቊ
𝟏: 𝑳𝒍𝒆𝒗𝒂𝒓 𝒆𝒍 𝒑𝒆𝒅𝒊𝒅𝒐 𝒔𝟏
• Los estados se generarán gráficamente mediante una red de estados, a
partir del estado que representa al problema principal y a las decisiones
posibles a tomar
Red de estados

Etapa I Etapa II Etapa III Etapa IV


Para resolver la red de estados

• Para encontrar la solución óptima del problema principal, P.D. debe


encontrar primero la solución óptima de los subproblemas.
• En cada estado, se debe aplicar una función de valor óptimo, que se
denota mediante: 𝒇(𝒔𝟏 , 𝒔𝟐 , … )

𝒇 𝒔𝟏 , 𝒔𝟐 : Máxima utilidad total,


La función objetivo
desde el pedido # 𝒔𝟏 hasta el pedido # 4,
La secuencia (en función de 𝒔𝟏 )
con 𝒔𝟐 kg de capacidad disponible en el contenedor.
El recurso(s) y su disponibilidad en función de la(s) otra(s) variable(s) de estado
Aplicando la función de valor óptimo en
cada estado, por etapas:
Etapa I : Etapa I :
d  0 : 0  f (2,2000) d  0 : 0  f (2,2000)
f (1,2000)  Max  f (1,2000)  Max 
d  1 : 5800  f (2,1500) d  1 : 5800  f (2,1500)
Etapa II : Etapa II :
d  0 : 0  f (3,2000) d  0 : 0  f (3,2000)
f (2,2000)  Max  f (2,2000)  Max 
d  1 : 6700  f (3,1200) d  1 : 6700  f (3,1200)
d  0 : 0  f (3,1500) d  0 : 0  f (3,1500)
f (2,1500)  Max  f (2,1500)  Max 
d  1 : 6700  f (3,700 d  1 : 6700  f (3,700
Etapa III : Etapa III :
d  0 : 0  f (4,2000) d  0 : 0  f (4,2000)
f (3,2000)  Max  f (3,2000)  Max 
d  1 : 4800  f (4,1400) d  1 : 4800  f (4,1400)
d  0 : 0  f (4,1200) d  0 : 0  f (4,1200)
f (3,1200)  Max  f (3,1200)  Max 
d  1 : 4800  f (4,600) d  1 : 4800  f (4,600)
d  0 : 0  f (4,1500) d  0 : 0  f (4,1500)
f (3,1500)  Max  f (3,1500)  Max 
d  1 : 4800  f (4,900) d  1 : 4800  f (4,900)
d  0 : 0  f (4,700) d  0 : 0  f (4,700)
f (3,700)  Max  f (3,700)  Max 
d  1 : 4800  f (4,100) d  1 : 4800  f (4,100)
Resolviendo las ecuaciones anteriormente
generadas
• Se resuelven por simple sustitución empezando por la última etapa
hasta llegar a la etapa I
• En cada estado de la etapa IV, se determinará la máxima utilidad
(valor 𝒇) y la decisión óptima p(s):
• Se llevará el pedido #4, siempre y cuando la capacidad disponible del
contenedor sea mayor o igual al peso del pedido #4 (700 kg)
Etapa IV :
f (4,2000)  5500 p( s)  1 f (4,1500)  5500 p( s)  1
f (4,1400)  5500 p( s)  1 f (4,900)  5500 p( s)  1
f (4,1200)  5500 p( s)  1 f (4,700)  5500 p( s)  1
f (4,600)  0 p( s)  0 f (4,100)  0 p( s)  0
Resolviendo la Etapa III:

• Luego, en cada estado de la etapa III, se determinará:


• La máxima utilidad desde el pedido #3 hasta el pedido #4.
• La decisión óptima correspondiente.
Etapa III :
d  0 : 0  f (4,2000)  5500 
f (3,2000)  Max    10300 p( s )  1
d  1 : 4800  f (4,1400)  10300
d  0 : 0  f (4,1200)  5500 
f (3,1200)  Max    5500 p( s )  0
d  1 : 4800  f (4,600)  4800
d  0 : 0  f (4,1500)  5500 
f (3,1500)  Max    10300 p( s )  1
d  1 : 4800  f (4,900)  10300
d  0 : 0  f (4,700)  5500 
f (3,700)  Max    5500 p( s )  0
d  1 : 4800  f (4,100)  4800
Resolviendo la Etapa II

• Luego, en cada estado de la etapa II, se determinará:


• La máxima utilidad desde el pedido #2 hasta el pedido #4.
• La decisión óptima correspondiente.

Etapa II :
d  0 : 0  f (3,2000)  10300 
f (2,2000)  Max    12200 p( s )  1
d  1 : 6700  f (3,1200)  12200
d  0 : 0  f (3,1500)  10300 
f (2,1500)  Max    12200 p( s )  1
d  1 : 6700  f (3,700)  12200
Finalmente se resuelve la Etapa I:

• En el único estado de esta etapa, se determinará:


• La máxima utilidad desde el pedido #1 hasta el pedido #4.
• Su correspondiente decisión óptima.
Etapa I :
d  0 : 0  f (2,2000)  12200 
f (1,2000)  Max    18000 p( s)  1
d  1 : 5800  f (2,1500)  18000
• Por ende, la utilidad óptima desde el pedido #1 al #4 es
$18000.
Construyendo la solución óptima

• El mejor valor de la utilidad total en el estado (1,2000) se logra


llevando el pedido #1 (p(s) = 1). Esa decisión lleva al estado (2,1500).
• El mejor valor de la utilidad total en el estado (2,1500) se logra
llevando el pedido #2 (p(s) = 1). Esa decisión lleva al estado (3,700).
• El mejor valor de la utilidad total en el estado (3,700) se logra no
llevando el pedido #3 (p(s) = 0). Esa decisión lleva al estado (4,700).
• El mejor valor de la utilidad total en el estado (4,700) es $5500, lo que
significa que se lleva el pedido #4 (p(s) = 1).
Secuencia óptima de
decisiones:
Informe administrativo

• Informe administrativo:
• Llevar los pedidos #1, 2, y 4. La utilidad óptima sería $18000
• Generalización de las ecuaciones que permitieron dar
solución al problema:

𝒇 𝒔𝟏 , 𝒔𝟐 = 𝑴𝒂𝒙 𝑼𝒕𝒊𝒍𝒊𝒅𝒂𝒅 𝒔𝟏 × 𝒅 + 𝒇 𝒔𝟏 + 𝟏, 𝒔𝟐 − 𝑷𝒆𝒔𝒐(𝒔𝟏 × 𝒅


Eficiencia computacional

• En este problema, para encontrar la solución óptima por


Programación Dinámica, se han empleado:
• 14 sumas (= # de signos + que aparecen en las ecuaciones)
• 7 comparaciones.
• Pero si se hubiese enumerado exhaustivamente todas las rutas
posibles de la red de estados, para encontrar la solución óptima se
necesitaría:
• 24 sumas (= 8 rutas x 3 sumas / ruta)
• 7 comparaciones (= 8 rutas – 1)
• La programación dinámica resultó ser más eficiente en sumas.
2. Problema de la carga de bultos

• Ahora, la decisión ya no es qué pedidos (o bultos) llevar; más bien la


decisión es: cuántas unidades de cada tipo de pedido (o bulto) se debe
llevar.
• Regresando al caso anterior:
• Suponga que la empresa puede llevar hasta 2 unidades de cada tipo de pedido, en un
contenedor cuya capacidad es de 2000 kg. cada pedido posee un peso determinado
y una utilidad que se obtendría si se traslada a un puerto determinado:
Pedido # 1 2 3 4
Peso (kg) 500 800 600 700
Utilidad ($/unidad) 5800 6700 4800 5500
• La empresa desea saber cuántas unidades de cada tipo de pedido debe llevar con el
fin de maximizar su utilidad total.
Solución

• La descripción del problema de optimización es:


Determinar cuántas unidades llevar,
Significado de la decisión

desde el pedido #1 al #4,


La secuencia

en un camión con 2000 kg de capacidad disponible,


El recurso(s) y su disponibilidad

con el fin de maximizar la utilidad total.


La función objetivo
El objetivo
Solución:

• Aplicando la regla dada en el problema anterior para la definición de


variables de estado:
• 𝒔𝟏 : 𝑵𝒓𝒐. 𝒅𝒆 𝒑𝒆𝒅𝒊𝒅𝒐
• 𝒔𝟐 : 𝑪𝒂𝒑𝒂𝒄𝒊𝒅𝒂𝒅 𝒅𝒊𝒔𝒑𝒐𝒏𝒊𝒃𝒍𝒆 𝒅𝒆𝒍 𝒄𝒐𝒏𝒕𝒆𝒏𝒆𝒅𝒐𝒓
• El significado de la decisión para este problema es:
𝒅 = 𝑵ú𝒎𝒆𝒓𝒐 𝒅𝒆 𝒖𝒏𝒊𝒅𝒂𝒅𝒆𝒔 𝒂 𝒍𝒍𝒆𝒗𝒂𝒓 𝒅𝒆𝒍 𝒑𝒆𝒅𝒊𝒅𝒐 𝒔𝟏
• El estado que representa el problema principal sería:
• (s1, s2) = (1, 2000)
Etapa IV
S1=4
Etapa III S2=2000
d=0
S1=3 S1=4
d=1
S2=2000 S2=1400
d=2
S1=4
Etapa I Etapa II S2=800
Red de estados
d=0
S1=4
S2=1200
d=0
S1=2 S1=3 S1=4
d=1 d=1
S2=2000 S2=1200 S2=600
d=2
S1=4
d=2
S2=0

S1=3 S1=4
d=0
S2=400 S2=400
d=0
S1=4
S2=1500
d=0
S1=3 S1=4
d=1
S2=1500 S2=900
d=0
d=2
S1=1 S1=2 S1=4
d=1 d=1
S2=2000 S2=1500 S2=300
d=1
S1=3 S1=4
d=0
S2=700 S2=700
d=1
d=2 S1=4
S2=100

S1=3 S1=4
d=0
d=0 S2=1000 S2=1000
S1=2
S2=1000 d=1 S1=3 S1=4
d=0
S2=200 S2=200
Para resolver la red de estados

• La función de valor óptimo a aplicar en cada estado es:


𝒇 𝒔𝟏 , 𝒔𝟐 : Máxima utilidad total,
La función objetivo
desde el pedido # 𝒔𝟏 hasta el pedido # 4,
La secuencia (en función de 𝒔𝟏 )
con 𝒔𝟐 kg de capacidad disponible en el contenedor.
El recurso(s) y su disponibilidad en función de la(s) otra(s) variable(s) de estado
Aplicando la función de valor óptimo en
cada estado, por etapas:
Etapa I :
d  0 : 0  f (2,2000)
 d  0 : 0  f (4,1200)
f (1,2000)  Max d  1 : 5800  f (2,1500)
d  2 : 11600  f (2,1000) 
 f (3,1200)  Max d  1 : 4800  f (4,600)
d  2 : 9600  f (4,0)
Etapa II : 
d  0 : 0  f (3,2000) f (3,400)  Maxd  0 : 0  f (4,400)

f (2,2000)  Max d  1 : 6700  f (3,1200) d  0 : 0  f (4,1500)
d  2 : 13400  f (3,400) 
 f (3,1500)  Max d  1 : 4800  f (4,900)
d  0 : 0  f (3,1500) d  2 : 9600  f (4,300)
f (2,1500)  Max  
d  1 : 6700  f (3,700) d  0 : 0  f (4,700)
f (3,700)  Max 
d  0 : 0  f (3,1000) d  1 : 4800  f (4,100)
f (2,1000)  Max 
d  1 : 6700  f (3,200)
d  0 : 0  f (4,1000)
Etapa III : f (3,1000)  Max 
d  1 : 4800  f (4,400)
d  0 : 0  f (4,2000) f (3,200)  Maxd  0 : 0  f (4,200)

f (3,2000)  Max d  1 : 4800  f (4,1400)
d  2 : 9600  f (4,800)

Resolviendo las ecuaciones anteriormente
generadas
• Se resuelven por simple sustitución empezando por la última etapa
hasta llegar a la etapa I
• En cada estado de la etapa IV, se determinará la máxima utilidad
(valor 𝒇) y la decisión óptima p(s):
• Se llevarán tantas unidades del pedido #4, sin exceder de 2 unidades,
siempre y cuando la capacidad disponible del contenedor sea mayor o igual
al peso de las unidades del pedido #4 que se llevarán.
Etapa IV : f (4,600)  0 p( s)  0 f (4,300)  0 p( s)  0
f (4,2000)  11000 p ( s )  2 f (4,0)  0 p( s)  0 f (4,700)  5500 p( s)  1
f (4,1400)  11000 p ( s )  2 f (4,400)  0 p( s)  0 f (4,100)  0 p( s)  0
f (4,800)  5500 p ( s )  1 f (4,1500)  11000 p( s)  2 f (4,1000)  5500 p( s)  1
f (4,1200)  5500 p ( s )  1 f (4,900)  5500 p( s)  1 f (4,200)  0 p( s)  0
Resolviendo la Etapa III:

• Luego, en cada estado de la etapa III, se determinará:


• La máxima utilidad desde el pedido #3 hasta el pedido #4.
• La decisión óptima correspondiente.

Etapa III : d  0 : 0  f (4,1500)  11000 


 
d  0 : 0  f (4,2000)  11000  f (3,1500)  Max d  1 : 4800  f (4,900)  10300  11000 p( s)  0
  d  2 : 9600  f (4,300)  9600 
f (3,2000)  Max d  1 : 4800  f (4,1400)  15800  15800 p( s)  1  
d  2 : 9600  f (4,800)  15100 
  d  0 : 0  f (4,700)  5500 
f (3,700)  Max    5500 p( s)  0
d  0 : 0  f (4,1200)  5500   d  1 : 4800  f ( 4 ,100 )  4800 
 
f (3,1200)  Max d  1 : 4800  f (4,600)  4800  9600 p( s)  2 d  0 : 0  f (4,1000)  5500 
d  2 : 9600  f (4,0)  9600  f (3,1000)  Max    5500 p( s)  0
   d  1 : 4800  f ( 4 , 400 )  4800 
f (3,400)  Maxd  0 : 0  f (4,400)  0  0 p( s)  0 f (3,200)  Maxd  0 : 0  f (4,200)  0  0 p( s)  0
Resolviendo la Etapa II

• Luego, en cada estado de la etapa II, se determinará:


• La máxima utilidad desde el pedido #2 hasta el pedido #4.
• La decisión óptima correspondiente.
Etapa II :
d  0 : 0  f (3,2000)  15800 
 
f (2,2000)  Max d  1 : 6700  f (3,1200)  16300   16300 p( s)  1
d  2 : 13400  f (3,400)  13400
 
d  0 : 0  f (3,1500)  11000 
f (2,1500)  Max    12200 p( s)  1
d  1 : 6700  f (3,700)  12200
d  0 : 0  f (3,1000)  5500 
f (2,1000)  Max    6700 p( s)  1
 d  1 : 6700  f (3, 200)  6700 
Finalmente se resuelve la Etapa I:

• En el único estado de esta etapa, se determinará:


• La máxima utilidad desde el pedido #1 hasta el pedido #4.
• Su correspondiente decisión óptima.

Etapa I :
d  0 : 0  f (2,2000)  12200 
 
f (1,2000)  Max d  1 : 5800  f (2,1500)  18000   18300 p( s)  2
d  2 : 11600  f (2,1000)  18300
 

• Por ende, la utilidad óptima desde el pedido #1 al #4 es $18300.


Construyendo la solución óptima

• El mejor valor de la utilidad total en el estado (1,2000) se logra


llevando 2 unidades del pedido #1 (p(s) = 2). Esa decisión lleva al
estado (2,1000).
• El mejor valor de la utilidad total en el estado (2,1000) se logra
llevando 1 unidad del pedido #2 (p(s) = 1). Esa decisión lleva al
estado (3,200).
• El mejor valor de la utilidad total en el estado (3,200) se logra no
llevando el pedido #3 (p(s) = 0). Esa decisión lleva al estado (4,200).
• El mejor valor de la utilidad total en el estado (4,200) es $0, lo que
significa que no se lleva el pedido #4 (p(s) = 0).
S1=4
S2=2000
d=0
S1=3 S1=4
Secuencia óptima de S2=2000
d=1
S2=1400
d=2
S1=4
S2=800
d=0
S1=4
S2=1200
d=0
decisiones:
S1=2 S1=3 S1=4
d=1 d=1
S2=2000 S2=1200 S2=600
d=2
S1=4
d=2
S2=0

S1=3 S1=4
d=0
S2=400 S2=400
d=0
S1=4
S2=1500
d=0
S1=3 S1=4
d=1
S2=1500 S2=900
d=0
d=2
S1=1 S1=2 S1=4
d=1 d=1
S2=2000 S2=1500 S2=300
d=1
S1=3 S1=4
d=0
S2=700 S2=700
d=1
d=2 S1=4
S2=100

S1=3 S1=4
d=0
d=0 S2=1000 S2=1000
S1=2
S2=1000 d=1 S1=3 S1=4
d=0
S2=200 S2=200
Informe administrativo

• Informe administrativo:
• Llevar 2 unidades del pedido #1, y una unidad del pedido #2. La utilidad
óptima sería $18300
• Generalización de las ecuaciones que permitieron dar solución al
problema:

𝒇 𝒔𝟏 , 𝒔𝟐 = 𝑴𝒂𝒙 𝑼𝒕𝒊𝒍𝒊𝒅𝒂𝒅 𝒔𝟏 × 𝒅 + 𝒇 𝒔𝟏 + 𝟏, 𝒔𝟐 − 𝑷𝒆𝒔𝒐(𝒔𝟏 × 𝒅


Eficiencia computacional

• En este problema, para encontrar la solución óptima por


Programación Dinámica, se han empleado:
• 11 sumas (= # de signos + que aparecen en las ecuaciones)
• 13 comparaciones.
• Pero si se hubiese enumerado exhaustivamente todas las rutas
posibles de la red de estados, para encontrar la solución óptima se
necesitaría:
• 45 sumas (= 15 rutas x 3 sumas / ruta)
• 14 comparaciones (= 15 rutas – 1)
• La programación dinámica resultó también ser más eficiente en
sumas.
Características de los problemas que se
resuelven por programación dinámica

• El problema siempre es uno solo, y debe dividirse en un número finito


de problemas más pequeños.
• Las decisiones posibles a tomar en cada estado son finitas y el
significado de la decisión es uno solo.
• La decisión óptima (p(s)) que se toma en un estado es independiente
a las decisiones anteriores a ese estado (Principio de Optimalidad de
Bellman)
Modelo estructurado de programación
dinámica
• Consta de 8 elementos, y permite modelar cualquier tipo de problema con
el fin de ser resuelto por computadora:
• Para generar la red de estados
• 1) Variables de estado.
• 2) Conjunto decisión.
• 3) Estado inicial.
• 4) Función de transición.
• 5) Restricciones.
• Para encontrar la solución óptima a partir de la red de estados.
• 6) Función de retorno y valor asociado a la decisión.
• 7) Ecuación recursiva.
• 8) Condiciones de contorno
• Para explicar cada elemento, se tomará como ejemplo el Ejercicio 3.1 de la
separata de ejercicios.
1) Variables de estado

• Son las variables que describen cualquier estado de la red.


• Un estado cualquiera se representa mediante la letra: S
• Utilice la siguiente regla empírica:
• La primera variable de estado es aquella que representa la etapa o secuencia
del problema.
• Las demás variables de estado representan la capacidad disponible de cada
recurso que el problema presente.
• En el Ejercicio 3.1:
• S1: Tipo de bulto
• S2: Capacidad disponible en el camión.
2) Conjunto decisión

• Es un conjunto finito, que se denota mediante el símbolo: D(S)


• Representa el conjunto de decisiones posibles que se puede tomar en
cada estado.
• Los elementos del conjunto van entre llaves y separado por comas.
• En el Ejercicio 3.1, el Conjunto Decisión se representa de la siguiente
manera:
• D(S) = { 0 , 1 }
• La letra d, representa a un elemento cualquiera del conjunto decisión;
donde 0 = No llevar el bulto s1; 1 = llevar el bulto s1.
3) Estado inicial

• Es el valor de las variables de estado en la Etapa I de la red.


• En el ejercicio 3.1, el estado inicial se representa de la siguiente
manera:
• S1 = 1
• S2 = 10
4) Función de transición

• Permite generar los siguientes estados de la red, a partir de un estado


actual y de las decisiones posibles.
• En el Ejercicio 3.1: d=0
Sn1 = 2 • La función de transición
No llevar bulto 1
...
Sn2 = 10
es:
Estado siguiente
Sn = (sn1, sn2)
• Sn1 = s1 + 1
Estado actual S1 = 1
S = (s1, s2) S2 = 10 • Sn2 = s2 – Peso(s1) * d

d=1
Llevar bulto 1 Sn1 = 2
...
Sn2 = 7

Estado siguiente
Sn = (sn1, sn2)
5) Restricciones

• Son condiciones lógicas que delimitan la generación de estados.


• Siempre se expresan en función de las variables Sn1, Sn2, etc.
• Ejemplo:
• Sn1 ≤ 4 [Son solo 4 tipos de bulto]
• Sn2 ≥ 0 [La capacidad disponible no puede ser negativa]
6) Función de retorno y valor asociado a la
decisión.
d=0
• La función de retorno se denota No llevar bulto 1 Sn1 = 3
Sn2 = 10
f(3,10) = 19
R(s1,s2,d) = R(2,10,0) = 0 + f(3,10) = 19
mediante el símbolo: R(s1, s2,
Estado siguiente
s3,…,d), es decir, depende del Sn = (sn1, sn2)

valor de las variables de estado y Estado actual


S = (s1, s2)
S1 = 2
S2 = 10
de la decisión que se tome.
• Esta función calcula el valor que
se gana cuando a partir de un d=1
Llevar bulto 1 Sn1 = 3
f(3,4) = 0
estado se toma una determinada R(s1,s2,d) = R(2,10,1) = 16 + f(3,4) = 16
Sn2 = 4

decisión. Estado siguiente


Sn = (sn1, sn2)

• En el Ejercicio 3.1: • La función de retorno es:


• R(S,d) = Ad(S) + f(sn)
• La expresión denotada como: Ad(S) recibe el nombre de valor
asociado a la decisión.
• En el ejemplo, el valor asociado a la decisión es el siguiente:

• Ad(S) = Valor(s1) * d
7. Ecuación recursiva

• Es aquella que determina el valor óptimo en cada estado, el cual es


igual al máximo o al mínimo de los retornos que posea, dependiendo
del caso.
• En el Ejercicio 3.1, la ecuación recursiva sería:

• f(s1,s2) = f(S) = Máximo{R(S,d)} ,  d  D(S)


8. Condiciones de contorno

• Permite determinar el valor de la función de valor óptimo y la política


de decisión óptima en cada uno de los estados de contorno (los
estados a partir de los cuales ya no se pueden generar más estados)
• Para simplificar las condiciones de contorno, se definirá una etapa
adicional en las restricciones del modelo. En el ejemplo:
• Antes: Sn1 ≤ 4
• Ahora: Sn1 ≤ 5
• Por lo tanto, como la etapa 5° es ficticia, esta etapa no genera ningún
valor. Por ende las condiciones de contorno serían:
• f(S) = 0
Los elementos del modelo estructurado
aparecen en la generalización de las ecuaciones:

f(s) ad(s) + f(sn)

𝒇 𝒔𝟏 , 𝒔𝟐 = 𝑴𝒂𝒙 𝑽𝒂𝒍𝒐𝒓 𝒔𝟏 × 𝒅 + 𝒇 𝒔𝟏 + 𝟏, 𝒔𝟐 − 𝑷𝒆𝒔𝒐(𝒔𝟏 × 𝒅

sn1 sn2

R(s,d)

También podría gustarte