Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Prog Dinam
Prog Dinam
Sturla
PROGRAMACIN DINMICA
PARTE II
Para formular el problema de Finco como de programacin dinmica, comenzaremos identificando la
etapa.
Como en los ejemplos de inentario ! de tra!ectoria ms corta, la etapa se debe elegir de tal modo "ue
cuando "uede una etapa el problema sea fcil de resoler.
#ntonces, en ista de "ue se $a resuelto el problema para el caso en el "ue "ueda una etapa, debe ser
fcil resolerlo cuando "ueden dos etapas, ! as% sucesiamente.
#s eidente "ue ser%a fcil resoler un problema en el cual slo se dispusiera de una inersin, por lo
"ue definiremos la etapa t como representatia de un caso en el "ue los fondos se deban asignar a las
inersiones
& , , ' , + t t
Para una etapa dada, ("u) debemos conocer para determinar la cantidad ptima por inertir*
Simplemente cunto dinero "ueda disponible para las inersiones
& , , ' , + t t
#ntonces definiremos el estado en cual"uier etapa como la cantidad de dinero, en miles, disponible para
las inersiones
& , , ' , + t t
Como nunca tendremos ms de +.,,, -. disponibles, los estados posibles en cual"uier etapa son ,, ',
/, &, 0, 1 ! +.
2efiniremos a
( )
t t
d f
como el alor actual neto m3imo 45678 "ue se puede obtener inirtiendo
t
d
miles de -. en las inersiones
& , , ' , + t t
9ambi)n definiremos a
( )
t t
d x
como la cantidad "ue se debe inertir en t para alcanzar
( )
t t
d f
Iniciamos aanzando $acia atrs ! calculamos
( ) ( ) ( ) + , , ' , ,
& & &
f f f
! a continuacin determinamos
( ) ( ) ( ) + , , ' , ,
/ / /
f f f
Como se dispone de +.,,, -. para inertir en ', / ! &, terminamos los clculos al llegar a ( ) +
'
f
#ntonces olemos sobre nuestros pasos ! determinamos la cantidad "ue se deber%a asignar a cada in:
ersin 4al igual "ue cuando olimos sobre nuestros pasos para determinar el niel ptimo de produc:
cin en cada mes, en el Ejemplo 48.
Clculos de la etapa 3
Primero determinamos
( ) ( ) ( ) + , , ' , ,
& & &
f f f
5emos "ue
( )
& &
d f
se logra inirtiendo todo el dinero disponible
( )
&
d
en la inersin &.
; sea
( ) , ,
&
f ( ) , ,
'
x
( ) < '
&
f ( ) ' '
'
x
( ) '& /
&
f ( ) / /
'
x
( ) '= &
&
f ( ) & &
'
x
( ) /' 0
&
f ( ) 0 0
'
x
( ) /1 1
&
f ( ) 1 1
'
x
( ) /< +
&
f ( ) + +
'
x
prog_dinamica-2.doc
'1
Prof. Ing. Claudio L. R. Sturla
Clculo de la etapa 2
Para determinar ( ) ( ) ( ) + , , ' , ,
/ / /
f f f emos todas las cantidades posibles "ue se puedan colocar en la
inersin /.
Para determinar ( )
/ /
d f , sea
/
x la cantidad inertida en /.
#ntonces, se obtendr un 567 de ( )
/ /
x r debido a la inersin /, ! un 567 igual a
( )
/ / &
x d f
de la
inersin &.
Recuerde el principio de optimalidad.
Como
/
x se debe elegir para ma3imizar el alor actual neto ganado con las inersiones / ! &, escribi:
mos
( ) ( ) ( ) { }
/ / & / / / /
/
m3 x d f x r d f
x
+
418
en la "ue
/
x debe ser elemento de >,, ',...,
/
d ?
Los clculos para ( ) ( ) ( ) + , , ' , ,
/ / /
f f f ! ( ) ( ) ( ) + , , ' , ,
/ / /
x x x se presentan en la Tabla 6.
/
d
/
x ( )
/ /
x r ( )
/ / &
x d f 567 2# I75#RSI;7#S
/, &
( )
( )
/ /
/ /
d x
d f
, , , , ,@ ( )
( ) , ,
, ,
/
/
x
f
' , , < <
' ' ', , ',@
( )
( ) ' '
', '
/
/
x
f
/ , , '& '&
/ ' ', < '<@
/ / '& , '&
( )
( ) ' /
'< /
/
/
x
f
& , , '= '=
& ' ', '& /&@
& / '& < //
& & '+ , '+
( )
( ) ' &
/& &
/
/
x
f
0 , , /' /'
0 ' ', '= /=@
0 / '& '& /+
0 & '+ < /1
0 0 '< , '<
( )
( ) ' 0
/= 0
/
/
x
f
1 , , /1 /1
1 ' ', /' &'@
1 / '& '= &,
1 & '+ '& /<
1 0 '< < /A
1 1 // , //
( )
( ) ' 1
&' 1
/
/
x
f
+ , , /< /<
+ ' ', /1 &1@
+ / '& /' &0
+ & '+ '= &&
+ 0 '< '& &/
+ 1 // < &'
+ + /1 , /1
( )
( ) ' +
&1 +
/
/
x
f
Tabla 6
prog_dinamica-2.doc
'+
Prof. Ing. Claudio L. R. Sturla
Clculos para ( ) ( ) ( ) ( ) + , , / , ' , ,
/ / / /
f f f f
Clculos para la etapa 1
SegBn la Ecuacin (5), escribimos
( ) ( ) ( ) { }
' / ' ' '
+ m3 +
'
x f x r f
x
+
en la cual
'
x debe ser elemento de >,, ', /, &, 0, 1, +?.
Los clculos para ( ) +
'
f aparecen en la Tabla 7.
'
d
'
x ( )
' '
x r ( )
' /
+ x f 567 2# I75#RSI;7#S
', /, &
( )
( ) +
+
'
'
x
f
+ , , &1 &1
+ ' < &' 0,
+ / '+ /= 0&
+ & /& /& 0+
+ 0 &, '< 0<@
+ 1 &= ', 0=
+ + 00 , 00
( )
( ) 0 +
0< +
'
'
x
f
Tabla 7
Clculos para ( ) +
'
f
eterminacin de la !si"nacin #ptima de $ecursos
Como ( ) 0 +
'
x , Finco inierte 0.,,, -. en la inersin '.
#sto deja +.,,, C 0.,,, D /.,,, -. para las inersiones / ! &.
Por lo tanto, Finco debe inertir ( ) ,,, . ' /
/
x -. en la inersin /.
#ntonces "uedan '.,,, -. por inertir en & !, por lo tanto, Finco inierte
( ) ,,, . ' '
&
x
-. en ella.
Por consiguiente, Finco puede alcanzar un 567 m3imo ( ) ,,, . 0< +
'
f -. inirtiendo 0.,,, -. en
', '.,,, -. en / ! '.,,, -. en &.
$epresentacin en %orma de $ed del Ejemplo de los $ecursos
#l problema de Finco tiene una representacin como red, e"uialente a determinar la ruta ms larga de
4', +8 a 40, ,8 en la %i"ura 6.
#n esa figura, el nodo 4t, d8 representa el caso en el "ue se dispone de d miles de -. para inertir en
& , , ' , + t t
#l arco "ue une los nodos 4t, d8 ! 4t E ', d x8 tiene una longitud ( ) x r
'
"ue corresponde al alor actual
neto obtenido por inertir x miles de dlares en la inersin t
Por ejemplo, el arco "ue une a los nodos 4/, 08 ! 4&, '8 tiene una longitud ( ) &
/
r D '+.,,, -., "ue co:
rresponde al alor actual neto de '+.,,, -. "ue se puede obtener inirtiendo &.,,, -. en la iner:
sin /.
7tese "ue no todos los pares de nodos en las etapas ad!acentes estn unidos con arcos.
Por ejemplo, no $a! arco "ue una los nodos 4/, 08 ! 4&, 18.
Si usted slo tiene 0.,,, -. disponibles para las inersiones / ! &, (cmo puede tener 1.,,, dlares
para la inersin &*
SegBn los clculos, emos "ue la ruta ms larga desde 4', +8 a 40, ,8 es la 4', +8C4/, /8C4&, '8C40, ,8.
prog_dinamica-2.doc
'=
Prof. Ing. Claudio L. R. Sturla
%i"ura 6
Representacin en red del ejemplo de Finco
Problema General de Asignacin de Recursos
6 continuacin analizamos la ersin generalizada del Ejemplo 5.
Suponga "ue tenemos w unidades de un recurso disponibles, ! T actiidades a las "ue se puede asignar
ese recurso.
Si la actiidad t se realiza en un niel
t
x
4suponemos "ue
t
x
debe ser nBmero no negatio8, entonces la
actiidad t usa
( )
t t
x g
unidades del recurso, ! se obtiene el beneficio
( )
t t
x r
#l problema de determinar la asignacin de recursos "ue ma3imiza el beneficio total, sujeto a la dispo:
nibilidad de recursos se puede formular como sigueF
( )
T t
t
t t
x r
'
m3
4+8
sujeto a
( ) w x g
T t
t
t t
'
4+8
donde
t
x
debe ser elemento de >,, ', /, G?
#n la Tabla & se dan algunas interpretaciones posibles de
( ) ( ) w x g x r
t t t t
! ,
I79#RPR#96CIH7 de
( )
t t
x r
I79#RPR#96CIH7 de
( )
t t
x g I79#RPR#96CIH7 de w
Ieneficio por colocar
t
x
art%cu:
los tipo t en una moc$ila
Peso de
t
x
art%culos del tipo t
Peso m3imo "ue puede resistir
la moc$ila.
prog_dinamica-2.doc
'A
Prof. Ing. Claudio L. R. Sturla
Calificacin "ue obtenemos en el
curso t si lo estudiamos
t
x
$oras
por semana
7Bmero de $orasJsemana
t
x
"ue
pasamos estudiando el curso t
7Bmero total de $oras disponi:
bles por semana.
5entas de un producto en la re:
gin t si se asignan
t
x
endedo:
res a la regin t
Costo por asignar
t
x
endedores
a la regin t
Presupuesto total del personal de
entas.
7Bmero de alarmas contra in:
cendio por semana a las "ue res:
ponden dentro de un minuto si al
recinto se le asignan
t
x
e3tinto:
res automticos
Costo semanal por mantener
t
x
e3tintores automticos en el re:
cinto t
Presupuesto semanal total para el
mantenimiento de e3tintores au:
tomticos.
Tabla &
#jemplos de un problema generalizado de asignacin de recursos
Para resoler la Ecuacin 6 con programacin dinmica, definimos a
( ) d f
t
como el beneficio m3imo
"ue se puede obtener de las actiidades
T t t , , ' , +
, si se asignan d unidades del recurso a las actii:
dades
T t t , , ' , +
Podemos generalizar las frmulas recursias del Ejemplo 5 para este caso escribiendo
( ) ( ) ( ) ( ) { }
t t t t t
x
t
T
x g d f x r d f
d f
t
+
+
+
'
'
m3
toda para ,
4=8
donde
t
x
debe ser un nBmero entero no negatio "ue cumple con
( ) d x g
t t
Sea
( ) d x
t
cual"uier alor de
t
x
"ue alcance
( ) d f
t
Para usar las Ecuaciones (7) para determinar una asignacin ptima de recursos a las actiidades ',
/, ..., T comenzamos por determinar todas las ( ) ( )
T T
x f las !
Luego usamos las Ecuaciones (7) para determinar todas las ( )
' T
f ! las ( )
' T
x , continuando el aance
$acia atrs de este modo $asta "ue se $a!an determinado todas las ( ) ( ) . ! .
/ /
x f
Para relacionar las cosas calculamos ( ) ( ) w x w f
' '
!
2espu)s establecemos la actiidad ' a un niel ( ) w x
'
#n este punto tendremos ( ) ( ) w x g w
' '
unidades del recurso disponibles para las actiidades /, &, ..., T
#ntonces la actiidad / se debe organizar al niel ( ) [ ] { } w x g w x
' /
Continuaremos de este modo $asta $aber determinado el niel al cual se deben realizar todas las actii:
dades.
Solucin de Problemas de Mocila Median!e Programacin Din"mica
.ostraremos las aplicaciones de las Ecuaciones (7) resoliendo un problema sencillo de moc$ila.
Ejemplo 6
Suponga "ue se $a de llenar una moc$ila de ', libras con los art%culos "ue aparecen en la Tabla '.
Para ma3imizar el beneficio total, (cmo se llena la moc$ila*
prog_dinamica-2.doc
'<
Prof. Ing. Claudio L. R. Sturla
P#S; I#7#FICI;
6rt%culo ' 0 libras ''
6rt%culo / & libras =
6rt%culo & 1 libras '/
Tabla '
Pesos ! beneficios para el problema de la moc$ila
(olucin
9enemos "ue
( ) ( ) ( ) , '/ , = , ''
& & & / / / ' ' '
x x r x x r x x r
( ) ( )
/ / / ' ' '
& , 0 x x g x x g , !
( )
& & &
1 x x g
2efinimos "ue
( ) d f
t
sea el beneficio m3imo "ue se puede ganar con una moc$ila de d libras llena
con art%culos del tipo t, t E', ..., &
Clculos de la etapa 3
#n este caso las Ecuaciones (7) son
( ) { }
& &
'/ m3
&
x d f
x
donde
& &
! 1 x d x
es un entero no negatio.
#sto produce
( )
( ) ( ) ( ) ( ) ( ) '/ < A = + 1
/0 ',
& & & & &
&
f f f f f
f
( ) ( ) ( ) ( ) ( )
( ) / ',
, 0 & / ' ,
&
& & & & &
x
f f f f f
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) , 0 & / ' ,
' 1 + = A <
& & & & &
& & & & &
x x x x x
x x x x x
Clculos de la etapa 2
#n este caso las Ecuaciones (7) son
( ) ( ) { }
/ & / /
& = Km3
/
x d f x d f
x
+
donde
/
x debe ser entero no negatio "ue cumpla con d x
/
&
;btenemos a$ora
( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
'
+
+
+
+
'
+
+
+
+
'
+
+
+
/ '0 / / =
' @ '< 1 ' =
, '/ A , =
m3 A
/ &
/ &
/ &
/
x f
x f
x f
f
; sea, ( ) ( ) ' A ! '< A
/ /
x f
( )
( ) ( )
( ) ( )
( ) ( )
'
+
+
+
/ @ '0 ' / =
' = 0 ' =
, '/ = , =
=
/ &
/ &
/ &
/
x f
x f
x f
mx f
#ntonces, ( ) ( ) / = ! '0 =
/ /
x f
( )
( ) ( )
( ) ( )
( ) ( )
'
+
+
+
/ @ '0 , / =
' = & ' =
, '/ + , =
+
/ &
/ &
/ &
/
x f
x f
x f
f
; sea, ( ) ( ) / + ! '0 +
/ /
x f
( )
( ) ( )
( ) ( )
'
+
+
' = / ' =
, @ '/ 1 , =
1
/ &
/ &
/
x f
x f
f
#ntonces ( ) ( ) , 1 ! '/ 1
/ /
x f
( )
( ) ( )
( ) ( )
'
+
+
'
+
+
' @ = , ' =
, , & , =
m3 &
/ &
/ &
/
x f
x f
f
#ntonces
( ) ( ) ' & ! = &
/ &
x f
( ) ( ) ( ) , , / , = /
/ & /
+ x f f
prog_dinamica-2.doc
/'
Prof. Ing. Claudio L. R. Sturla
; sea, ( ) ( ) , / /
/ /
x f
( ) ( ) ( ) , , ' , = '
/ & /
+ x f f
#ntonces ( ) ( ) , ' ! , '
/ /
x f
( ) ( ) ( ) , , , , = ,
/ & /
+ x f f
; sea ( ) ( ) , , , ,
/ /
x f
Clculos de la etapa 1
Por Bltimo, determinamos ( ) ',
'
f
( )
( ) ( )
( ) ( )
( ) ( )
'
+
+
+
/ // / / ''
' @ /1 + ' ''
, /0 ', , ''
m3 ',
' /
' /
' /
'
x f
x f
x f
f
eterminacin de la (olucin #ptima al )roblema de la *oc+ila
9enemos "ue ( ) ( ) ' ', ! /1 ',
' '
x f
Por lo tanto, debemos poner un art%culo del tipo ' en la moc$ila.
Luego tenemos lugar para ', C 0 D + libras para art%culos tipo / ! tipo & !, por lo tanto, debemos po:
ner ( ) / +
/
x art%culos del tipo /.
Por Bltimo, tenemos + C /@& D , libras de lugar para art%culos del tipo &, ! colocamos
( ) , ,
&
x
art%culos del tipo &.
#n resumen, el beneficio m3imo "ue se puede ganar con una moc$ila de ', libras es
( ) /1 ',
&
f
.
Para obtener un beneficio de /1, se deben poner un art%culo del tipo ' ! / del tipo /.
Re#resen!acin con una Red del Problema de la Mocila
#ncontrar la solucin ptima del Ejemplo 6 e"uiale a determinar la tra!ectoria ms larga, en la %i,
"ura 7, del nodo 4',, '8 a un nodo de la etapa 0.
#n la %i"ura 7, para & t , el nodo (d, t8 representa un caso en el cual se puede asignar lugar para d li:
bras a los art%culos del tipo
& , , ' , + t t
#l nodo (d, 08 representa d libras de espacio no usado.
Cada arco de un nodo de etapa t a otro de etapa t E ' representa una decisin acerca de cuntos art%cu:
los del tipo t se colocan en la moc$ila.
Por ejemplo, el arco de 4',, '8 a 4+, /8 representa la colocacin de un art%culo del tipo ' en la moc$ila.
Con ello se deja ', C 0 D + libras para art%culos de tipos / ! &.
#ste arco tiene una longitud de '' "ue representa el beneficio obtenido por la colocacin de un art%culo
tipo ' en la moc$ila.
La solucin al Ejemplo 6 muestra "ue la tra!ectoria ms larga, en la %i"ura 7, del nodo 4',, '8 a un
nodo de etapa 0 es la tra!ectoria 4',, '8C4+, /8C4,, &8C4,, 08.
;bsere "ue la solucin ptima a un problema de moc$ila no siempre usa todo el espacio disponible.
Por ejemplo, usted debe comprobar "ue si un art%culo tipo ' ganara '+ unidades de beneficio, la solu:
cin ptima incluir%a dos art%culos del tipo ', "ue corresponder%a a la tra!ectoria 4',, '8C4/, /8C4/, &8
C4/, 08.
Con esta solucin se tiene un espacio de / libras sin usar.
prog_dinamica-2.doc
//
Prof. Ing. Claudio L. R. Sturla
O!ra Solucin Recursi$a #ara Problemas de Mocila
Se pueden utilizar otros m)todos para resoler problemas de moc$ila con programacin dinmica.
#l m)todo "ue e3plicaremos forma la moc$ila ptima determinando primero cmo llenar de manera
ptima una moc$ila !, a continuacin, con esta informacin, cmo llenar de manera ptima una mo:
c$ila ms grande.
2efinimos ( ) w g como el beneficio m3imo "ue se puede obtener de una moc$ila de w libras.
#n lo "ue sigue,
j
b
es el beneficio ganado de un art%culo Bnico del tipo j, !
j
w
es el peso de un solo ar:
t%culo del tipo j
#s eidente "ue ( ) , para ! , , w g
( ) ( ) { }
j j
j
w w g b w g + m3
4A8
donde j debe ser elemento de > ', /, &? ! se debe cumplir "ue
w w
j
#l razonamiento "ue apo!a la Ecuacin (&) es el siguienteF para llenar de modo ptimo una moc$ila de
w libras, debemos comenzar por colocar algBn art%culo en ella.
Si colocamos un art%culo tipo j en una moc$ila de w libras, lo mejor "ue podemos $acer es ganar
j
b
+
4lo mejor "ue podamos $acer con una moc$ila de
( )
j
w w
libras8.
2efinimos a ( ) w x como cual"uier tipo de art%culo "ue alcance el m3imo en la Ecuacin (&) !
( ) , w x cuando ningBn art%culo se pueda meter !a en una moc$ila de w libras.
Para mostrar la aplicacin de la Ecuacin (&) oleremos a resoler el Ejemplo 6.
Como no se puede meter art%culo alguno en una moc$ila de ' o / libras, tenemos "ue
( ) ( ) ( ) , / ' , g g g ! ( ) ( ) ( ) , / ' , x x x
Como slo cabe un art%culo del tipo / en una moc$ila de & libras, tenemos "ue ( ) ( ) / & ! = & x g
6l continuar, emos "ue
( )
( )
( )
'
+
+
'
+
+
+
'
+
+
+
'
+
+
+
'
+
+
+
'
+
+
+
'
+
+
+
,
_
/
/
' '
' ' @
w
c
w c
w c
w
6s%, para el problema de la moc$ila
0 & / '
A '/ // '+ m3 x x x x z + + +
sujeto a
w x x x x + + +
0 & / '
0 1 = 1
negatio no entero nBmero
i
x
se usar al menos un art%culo tipo ' si
( )
/A,
=
//
1 '+
1 '+
@
,
_
w
Con este resultado se reducen muc$o los clculos necesarios para resoler un problema de moc$ila.
Por ejemplo, suponga "ue w D 0.,,,.
Como sabemos "ue para /A, w , la solucin ptima tendr por lo menos un articulo tipo ', podernos
llegar a la conclusin de "ue la forma ptima de llenar una moc$ila de 0.,,, libras consistir en un art%:
culo tipo ' ms la forma ptima de llenar una moc$ila de 0.,,, C 1 D &.<<1 libras.
prog_dinamica-2.doc
/+
Prof. Ing. Claudio L. R. Sturla
Si repetimos este razonamiento se demuestra "ue la manera ptima de llenar una moc$ila de 0.,,, li:
bras consistir en =00
1
/A, ,,, . 0
'
+ +
+ +
'
+
+ +
+ +