Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Facultad de Ingeniería
Departamento de Ingeniería Industrial
Alumno: Elirio Tordecilla Guerrero
Antofagasta, 01 Marzo de 2011
INDICE
Contenido Página
Objetivo Trabajo……………………………………………………………………………………………………… 3
¿Que es la programación Dinámica?............................................................................ 3
Etapas…………………………………………………………………………………………………………… 3
Estados………………………………………………………………………………………………………… 3
Variables de decisión y políticas…………………………………………………………………… 4
Función Recurrencia……………………………………………………………………………………… 4
El objetivo de la programación Dinámica…………………………………………………………………. 4
Estructura básica de la Programación Dinámica Deterministica……………………………….. 5
Tipos de Programación Dinámica……………………………………………………………………………… 5
Programación dinámica homogénea y no homogénea…………………………………… 5
Programación dinámica determinista y aleatoria…………………………………………… 6
Aplicaciones de la Programación Dinámica………………………………………………………………. 6
Ejemplo # 1………………………………………………………………………………………………………………. 7
Ejemplo # 2………………………………………………………………………………………………………………. 10
¿Cuál es la diferencia entre Programación Dinámica Probabilística y Deterministica 12
Desarrollo de problema Programación Dinámica……………………………………………………… 12
Conclusión………………………………………………………………………………………………………………….. 16
Bibliografía…………………………………………………………………………………………………………………. 17
Pág. -2-
Trabajo de Investigación y Aplicación de Conceptos
Programación Matemática
Tutoría
Objetivo: Lograr que el alumno aprenda las técnicas de programación dinámica (segunda
unidad de la asignatura programación matemática) que actualmente existen en la
Investigación Operativa.
Fecha de entrega: 1 de Marzo 2011
Forma de entrega: Informe Digital
1. Investigue la Programación Dinámica y conteste las siguientes preguntas de la forma
más completa que pueda. (30 puntos)
a. ¿Qué es la Programación Dinámica?
La programación dinámica fue desarrollada por el matemático Richard Bellman en 1953 y
está considerada como una potente herramienta de optimización de carácter muy
general. Constituye una disciplina muy importante de las matemáticas aplicadas y la
investigación operativa, su método estándar se aplica en áreas tan dispares como
ingeniería, inteligencia artificial, economía, gestión, administración, etc. Esta técnica
consiste en poder determinar de manera eficiente las decisiones que optimizan el
comportamiento de un sistema que evoluciona a lo largo de una serie de etapas, es decir,
trata de encontrar la secuencia de decisiones que optimiza el comportamiento de un
proceso polietàpico. Para abordar y resolver cualquier problema de esta naturaleza, se
debe definir el modelo, para lo cual se debe considerar lo siguiente:
1.‐ Etapas
En primer lugar se debe establecer la naturaleza de las etapas del proceso. En ocasiones,
dichas etapas son el resultado de una evolución natural del modelo a lo largo del tiempo
y en otras ocasiones estas etapas tienen que ver con el razonamiento empleado para
resolver el problema.
2.‐ Estados
La variable de estado del sistema (Generalmente la más difícil de determinar) debe ser tal
que describa la información necesaria para conocer la evolución del sistema desde la
primera etapa hasta la etapa actual. La programación dinámica admite múltiples
formulaciones de las variables de estado, en cada etapa podemos tener un número finito
o infinito de estados y los estados pueden ser los mismos en cada etapa o ser diferentes
para cada una de ellas.
Pág. -3-
3.‐ Variables de decisión y políticas
Lo más fundamental de la programación dinámica es la necesidad de tomar una decisión,
en que etapa, esta decisión debe representarse con una variable de decisión que describa
la decisión a tomar. El rango de valores que puede tomar la variable de decisión puede ser
diferente para cada uno de los estados del sistema, en función de sus características, y el
número de variables de decisión para cada etapa puede ser finito o infinito.
Resolver un modelo de programación dinámica exige hallar, para cada uno de los estados
del sistema en cada una de las etapas, el valor óptimo de la variable de decisión. En otras
palabras, deberemos obtener la política óptima para cada una de las etapas del sistema.
4.‐ Función de recurrencia
Se supone que las decisiones que debemos tomar en cada una de las etapas deben
conducir a optimizar (hacer máxima o mínima) una determinada función descriptiva del
comportamiento del sistema. A diferencia de la programación lineal, no existen
restricciones acerca de la forma de esta función: puede ser lineal, cuadrática, exponencial,
pueden multiplicarse variables, etc. La función a optimizar debe cumplir una condición
importante; la función a optimizar debe ser recursiva. Esto significa que el valor de la
función a optimizar en la etapa n debe ser función del valor de la función óptima para
alguno (o algunos) de los estados en la etapa n+1. En consecuencia, debemos conocer
también cómo será la evolución del sistema en la etapa n, para cada una de las
combinaciones posibles de variables de estado y de decisión.
El Objetivo de la Programación Dinámica
El objetivo de la programación dinámica es resolver una familia de problemas de
optimización con restricciones conocidos como problemas de decisión secuencial o
multietapa. La principal característica de estos procedimientos es que cualquier decisión
realizada en un instante de tiempo se ve afectada por las decisiones predecesoras y
afectas a sus sucesoras. La programación dinámica se basa en el Principio de Óptimo de
Bellman, tal como se muestra en la siguiente figura
Pág. -4-
Estructura Básica Programación Dinámica Deterministica
Etapa n Etapa (n+1)
Xn
Estado Sn Sn+1
Contribución de Xn,
variable decisión
Función
Recurrencia fn (Sn ,Xn) fn+1 (Sn+1)
Tipos de Programación Dinámica
Esta técnica permite abordar un gran número de formulaciones y resolver problemas de
muy diversa naturaleza.
Una clasificación de las diferentes situaciones puede ser de ayuda para explorar de
manera más sistemática las diferentes posibilidades. En principio, los problemas de
programación dinámica pueden clasificarse según dos criterios:
a) Homogéneo o no homogéneo
b) Determinista o aleatorio
Programación dinámica homogénea y no homogénea
Un modelo de programación dinámica es homogéneo si presenta la misma estructura
para todas las etapas del sistema, es decir:
•El sistema puede presentar los mismos estados en cualquiera de sus etapas.
•Los valores posibles de las variables de decisión para cada uno de los estados son las
mismas para todas las etapas del sistema.
•La función a optimizar es la misma para todas las etapas del sistema.
•La evolución del sistema, para un determinado estado y para un determinado valor de la
variable de decisión de los disponibles para dicho estado, es la misma para todas las
etapas del sistema.
Una consecuencia de esta definición es que un modelo de programación dinámica
homogénea puede evolucionar indefinidamente en el tiempo, esto es, el número posible
de etapas es infinito. Entonces podemos plantearnos analizar su evolución para un
número infinito de etapas (problema de horizonte infinito) o para un número finito de
éstas (problema de horizonte finito).
Pág. -5-
Cuando el modelo no cumple alguna de estas condiciones, tenemos programación
dinámica no homogénea. Todos aquellos modelos que tengan un número finito de etapas
posibles entrarán dentro de esta categoría. También puede suceder que el número de
etapas sea infinito, aunque los problemas de programación dinámica no homogénea
suelen ser de horizonte finito.
Programación dinámica determinista y aleatoria
Esta categoría tiene que ver con la naturaleza de la evolución del sistema, una vez se ha
tomado la decisión. Cuando, en una etapa determinada, podemos conocer con certeza la
evolución del sistema para un determinado estado y un determinado valor de la variable
de decisión, tenemos un modelo de programación dinámica determinista. Para estos modelos,
podremos determinar las decisiones que, en cada etapa, dan el valor óptimo de la función de
recurrencia.
Si, para una etapa determinada, en un estado cualquiera i, al escoger un determinado valor de la
Variable de decisión, encontramos que el sistema puede evolucionar hacia diferentes estados j de
la siguiente etapa con una probabilidad conocida Pi, entonces el modelo es de programación
dinámica aleatoria. En este caso, podremos determinar las decisiones que optimicen el valor
esperado de la función de recurrencia.
A continuación se muestra un cuadro resumen de las posibles situaciones que podemos encontrar
en programación dinámica (PD), según esta clasificación:
Programación Dinámica Programación Dinámica
Homogénea No homogénea
Programación Dinámica Horizonte Finito No Homogénea
Deterministica Horizonte Infinito
Programación Dinámica Horizonte Finito No Homogénea
Aleatoria Horizonte Infinito
Aplicaciones Programación Dinámica
En general la programación dinámica ayuda a resolver problemas de diversas aplicaciones
en la industria y en el mundo académico, pero dentro de las aplicaciones mas conocidas y
recurrentes se encuentran las siguientes:
‐ Modelo de ruta mas corta
‐ Modelo de Volumen‐Carga “Mochila”
‐ Modelo Asignación Recursos
‐ Modelo asignación de Nº empleados
‐ Modelo de inventarios
‐ Reemplazo de equipos
Pág. -6-
b. Muestre dos ejemplos donde se utilice la Programación Dinámica
Ejemplo # 1
Copec S.A. dispone de 4 millones de dólares para invertir en tres campos petroleros
ubicados en medio oriente. Las utilidades que gana en el sitio i (i=1, 2 , 3) dependen de la
cantidad invertida en el, así:
Si Se supone que la cantidad invertida en cada campo debe ser un múltiplo exacto de 1
millón de dólares. Determinar una política de inversiones que eleva al máximo las
utilidades que gana Copec S.A en sus tres campos petroleros del medio oriente.
Solución:
El primer paso para resolver este problema de asignación de recursos. Es definir el
modelamiento, definir sus etapas, estados, variable de decisión y función de recurrencia o
función utilidad en este caso.
Etapa n: Campo petrolero al cual se le va asignar una cantidad de millones como inversión
a cada uno de los pozos petroleros (n=1,2,3).
Estado Sn: Cantidad de millones disponibles para asignar a los campos restantes.
Variable decisión Xn: Cantidad de millones invertidos en la etapa
Función Ui(Xi): Utilidad obtenida en cada campo por asignarle xi cantidad de dólares
como inversión (i=1,2,3).
Función Objetivo
3 3
MAX: ∑ U i ( X i ) ; Sujeta : ∑ X i = 4
i =1 i =1
Xi Son enteros Positivos
Pág. -7-
Calculo Etapa n=3
Calculo Etapa n=2
Calculo Etapa n=1
Solución:
X 1* = 1 ; X 2* = 2 ; X 3* = 1
Respuesta:
Para que Copec S.A obtenga el máximo de utilidades, se debe invertir los 4 millones de
dólares de acuerdo a la política de inversión obtenida; es decir,
‐ Pozo 1 ‐‐> 1 Millón
‐ Pozo 2 ‐‐> 2 Millones
‐ Pozo 3 ‐‐> 1 Millón
Con esta política de inversión Copec S.A obtiene el máximo de utilidades, que asciende a
24 millones de dólares.
Pág. -8-
Ejemplo # 2
Un proyecto espacial necesita investigar un problema de ingeniería para mandar seres
Humanos a Marte. Existen 3 equipos que analizan el problema desde 3 puntos de vista
diferentes. En las circunstancias actuales, la probabilidad de que los equipos 1,2,3,
fracasen es 0.4, 0.6 y 0.8 respectivamente. La probabilidad de que los tres equipos
fracasen es 0.192. Se debe minimizar la probabilidad de fracaso, por lo cual se decide
adicionar 2 científicos de alto nivel.
¿Como adicionar los científicos de tal forma que se minimice la probabilidad de fracaso?
Solución:
Este problema claramente es de asignación de recursos (Científicos) a los tres equipos
actuales para disminuir la probabilidad de fracaso. Entonces se requiere saber a que
equipos serán asignados estos dos nuevos científicos.
Etapa n: Equipos a los cuales se debe adicionar los científicos. (n=1, 2,3).
Estado Sn: Número de científicos aún disponibles para asignarse a los equipos restantes.
Variable de decisión Xn: Numero de científicos asignados al equipo n
Función Pi (Xi) : Función de probabilidad de fracaso al asignar Xi científicos al equipo i
3 3
Función Objetivo MIN Z : ∏ P (X
i =1
i i ) , Sujeto a: ∑ X i = 2
i =1
Xi Son enteros Positivos
Pág. -9-
Etapa n=3
Como el estado final (cero científicos para asignar) se alcanza al terminar la etapa 3,
entonces f4 * = 1, se asignan todos los científicos disponibles.
Etapa n=2, Equipo 2
Etapa n=1 , Equipo 1
Solución:
X 1* = 1 ; (S1 – X1) = 1 = S2
X 2* = 0 ; (S2 – X2) = 1 = S3
X 3* = 1
Respuesta
La minima probabilidad de fracaso ( Z=0,06) se obtiene con esta asignación de científicos a
los equipos; es decir, al equipo nº1 y nº 3 se debe asignar un científico respectivamente.
Pág. -10-
c. ¿Cuál es la diferencia entre la programación Dinámica Deterministica y la
probabilística?
Programación Dinámica Probabilística
La programación dinámica probabilistica se origina para el tratamiento de los modelos
estocásticos de inventarios. En este tipo de modelos, el estado y las contribuciones
obedecen a una distribución estadística.
En la siguiente figura se describe la estructura básica que resulta para la programación
dinámica probabilística, en donde n denota el número de estados posibles en la etapa
n+1.
Etapa n+1
Contribución Sn+1
de la Etapa n
1
Etapa n C1
Probabilidad
f*n+1(1)
P1
Decisión C2
Sn Xn P2
Estado 2
PN f*n+1(2)
fn(Sn,Xn)
CN
3
f*n+1(3)
Programación Dinámica Deterministica
En la programación dinámica Deterministica, el estado en la siguiente etapa está
completamente determinado por el estado y la política de decisión de la etapa actual.
La programación dinámica Deterministica se puede describir en forma de diagrama de la
siguiente forma.
Etapa Etapa
n n+1
Contribución
Estado: Sn Sn+1
de Xn
fn(Sn,Xn) Fn*+1(Sn+1)
Pág. -11-
Diferencia Programación Dinámica Probabilística y Deterministica
La programación dinámica probabilística difiere de la programación dinámica
Deterministica en que el estado de la etapa siguiente no queda completamente
determinado por el estado y la decisión de la política en el estado actual. Esto debido a
que queda condicionado a una distribución de probabilidades.
2. Resuelva el siguiente problema aplicando contenidos entregados (30 puntos)
La Dole empresa exportadora de fruta y vegetales, posee un tractor de 2 años de
antigüedad, y desea establecer una política de reemplazo para su tractor durante los 5
años siguientes. Se debe tener un servicio mínimo del tractor de 3 años, pero después de
un máximo de 5 años se debe reemplazar. El precio actual de un tractor es de $ 40.000 y
aumenta un 10% por año. El valor de recuperación de un tractor con un año de uso es de
$ 30.000 y disminuye 10% por año. El costo anual de operación del tractor es de $ 1.300 y
se espera que aumente 10% por año. El tractor proporciona un ingreso fijo de $50.000
Determine la política óptima de reemplazo del tractor durante los próximos 5 años.
Solución:
Este problema claramente es del tipo Programación dinámica Deterministica, y de la
categoría de reemplazo de equipo; por lo tanto, se requiere conocer la política óptima de
reemplazo para el tractor que posee empresa Dole en los próximos 5 años, obteniendo el
máximo beneficio económico.
Datos e información del problema
‐ 02 años de Antigüedad del tractor
‐ Política reemplazo tractor 05 años ( Reemplazar)
‐ Tiempo mínimo servicio tractor 03 años
‐ Precio actual de un tractor ( I ) $ 40.000, incremento del 10% anual ( El costo de
adquirir un tractor nuevo en cualquier año)
‐ Precio de recuperación con 01 año uso S(t) = $ 30.000, disminuyendo a 10% anual
‐ Costos anuales de operación C(t) = $ 1300, incremento anual del 10%
‐ Ingreso anual fijo R(t) = $ 50.000
Pág. -12-
Modelo Programación Dinámica
1.‐ Etapa i, es representada por el año i, (i=1, 2,3,.., n)
2.‐ Alternativas en la etapa (año) i son de conservar o reemplazar (K o R) el tractor al
comenzar cada año i
3.‐ El estado en la etapa (año), es la antigüedad del tractor al comienzo del año (i)
Función fi (t): Función de ingreso para los años (i), dado que el tractor tiene (t) años de
antigüedad al comenzar el año (i).
Función Recursiva
i) f i (t ) = Max{r (t ) − c(t ) + f i +1 (t + 1)} , Conservar el tractor
ii) f i (t ) = Max{r (0) + s (t ) − I − c(0) + f i +1 (1)} , Reemplazar tractor
iii) Se debe cumplir t ≥ 0 , entero
Para desarrollar esta ecuación recursiva, se requiere conocer las funciones de costos,
ingresos, y precios de recuperación y tractor nuevo a través de los años. A continuación se
muestra los valores en la siguiente tabla.
Tpo. Años Ingresos Anuales Costos Operación Anual Precio Recuperacion
(t) R(t) $ C(t) $ S(t) $
0 50000 1300
1 50000 1430 30000
2 50000 1573 27000
3 50000 1730 24300
4 50000 1903 21870
5 50000 2094 19683
6 50000 2303 17715
Pág. -13-
Representación de la edad del tractor en función del año de decisión
Años de Decisión
5
5
K
4 R
4
K
3 R
S FIN
3 3
Edad del Tractor (Años) K S
K
2 R S
2 2 2
K K
1
1 1 1
R R
1 2 3 4 5 6
Pág. -14-
Desarrollo
Etapa # 5 K R Solucion Optima
t r(t) + S(t+1) - C(t) r(0) + S(t) + S(1) - C(0) - I f5(t) Decision
1 $ 75.570 $ 64.700 $ 75.570 K
2 $ 72.727 $ 57.300 $ 72.727 K
3 $ 70.140 $ 49.760 $ 70.140 K
( t=1 ) ( t=2 )
K K K
( t=1 )
( t=2 ) K R Vender
( t=3 )
( t=2 ) K ( t=1 )
R K
( t=4)
Pág. -15-
CONCLUSION
A través de esta investigación, revisión de literatura, estudio y desarrollo de los problemas
planteados en este trabajo, se puede apreciar la potencialidad de esta técnica y lo útil que
es al momento de plantear modelos económicos, productivos y asignación recursos, entre
otros.
Con el avance de la ciencia y la tecnología, se pueden resolver grandes problemas con una
cantidad de variables considerables a través de los distintos algoritmos matemáticos que
se utilizan en software especializados para este tipo de técnicas, como son LINGO,
WINQSB, LINDO, GAMS, etc. lo cual permite agilizar el proceso de calculo una enormidad;
sin embargo, es necesario conocer la forma de modelar y la correcta definición de sus
variables para cada problema.
Finalmente concluir que esta técnica es una herramienta muy poderosa al momento de la
toma de decisiones donde se requiere maximizar las utilidades o dicho de otra manera
minimizar el costo. Personalmente esta asignatura ha sido de gran apoyo en aspectos
laborales.
Pág. -16-
BIBLIOGRAFIA
1.‐ Hillier, Lieberman Gerald. Investigación de Operaciones. 7ª ed.
México: Mc Graw Hill, 2001. 533, 568 p.
2.‐ Fonollosa, Joan. Métodos Cuantitativos de Organización Industrial II/Jose Sallan.
Albert Suñe, Barcelona: Ediciones UPC, 2002, 99, 131 p.
3.‐ Taha, Hamdy. Investigación de Operaciones. 7ª ed.
México: Pearson Educación, 2004, 401, 547 p.
4.‐ Taha, Hamdy. Operations Research An Introduction. 8ª ed.
EE.UU: Pearson Educación, 2007, 399, 531 p.
5.- Fonollosa, Joan. Formulación y Resolución de Modelos de Programación Matemática
en Ingeniería y Ciencia/Antonio Conejo, Pablo Pedregal, España 2002.
WWW
Bellini, Franco “Investigación de Operaciones”
http://www.investigacion‐operaciones.com/operaciones.htm (Septiembre 2004)
Pág. -17-