Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INTRODUCCIN
Existe una serie de problemas cuyas soluciones pueden ser expresadas
recursivamente en trminos matemticos, y posiblemente la manera ms natural de
resolverlos es mediante un algoritmo recursivo. Sin embargo, el tiempo de ejecucin
de la solucin recursiva, normalmente de orden exponencial y por tanto
impracticable, puede mejorarse substancialmente mediante la Programacin
Dinmica.
La programacin dinmica es un mtodo para reducir el tiempo de ejecucin de un
algoritmo mediante la utilizacin de subproblemas superpuestos y subestructuras
ptimas, como se describe a continuacin.
Una subestructura ptima significa que soluciones ptimas de subproblemas pueden
ser usadas para encontrar las soluciones ptimas del problema en su conjunto. Por
ejemplo, el camino ms corto entre dos vrtices de un grafo se puede encontrar
calculando primero el camino ms corto al objetivo desde todos los vrtices
adyacentes al de partida, y despus usando estas soluciones para elegir el mejor
camino de todos ellos. En general, se pueden resolver problemas con
subestructuras ptimas siguiendo estos tres pasos:
Usar estas soluciones ptimas para construir una solucin ptima al problema
original.
Subproblemas superpuestos
Subestructuras ptimas
Memorizacin
QU ES LA PROGRAMACIN DIMMICA?
La Programacin Dinmica es una tcnica de programacin que se emplea
tpicamente para resolver problemas de optimizacin en los cuales el problema
principal se encuadra en varios sub problemas, solucionando cada uno de ellos y
luego ligando las soluciones de una forma ptima, donde la solucin final permita
resolver y tomar decisiones correctas a problemas actuales y futuros.
A QU PROBLEMAS SE APLICA?
Esta tcnica se aplica sobre problemas que a simple vista necesitan un alto coste
computacional (posiblemente exponencial) donde:
QU SE LOGRA?
Por tanto, es ms eficiente que la fuerza bruta que resuelve el mismo sub
problema una y otra vez.
Evita calcular lo mismo varias veces. Usualmente se utiliza una matriz que se
rellena conforme las soluciones a los Sub problemas que son calculados
(espacio vs. tiempo).
CARACTERSTICAS DE UN PROBLEMA DE PD
Para que un problema pueda ser resuelto con la tcnica de programacin dinmica,
debe cumplir con ciertas caractersticas:
A continuacin veremos una explicacin sobre las caractersticas que son comunes
en la mayor parte de las aplicaciones de la programacin dinmica.
CARACTERSTICA 1
El problema se puede dividir en etapas; cada etapa requiere una decisin. En
muchos problemas de programacin dinmica, la etapa es la cantidad de tiempo que
pasa desde el inicio del problema, en ciertos casos no se necesitan decisiones en
cada etapa.
CARACTERSTICA 2
Cada etapa tiene un nmero de estados asociados con ella. Por estado se entiende
la informacin que se necesita en cualquier etapa para tomar una decisin ptima.
CARACTERSTICA 3
La decisin tomada en cualquier etapa indica cmo se transforma el estado en la
etapa actual en el estado en la siguiente etapa. En muchos problemas, una decisin
no determina con certeza el estado de la siguiente etapa; en lugar de ello, la
decisin actual slo determina la distribucin de probabilidad del estado en la etapa
siguiente.
CARACTERSTICA 4
Dado el estado actual, la decisin ptima para cada una de las etapas restantes no
debe depender de estados previamente alcanzados o de decisiones previamente
tomadas. A esta idea se le conoce como principio de optimalidad.
CARACTERSTICA 5
Si los estados del problema se han clasificado en uno de T etapas, debe haber una
formula recursiva que relacione el costo o recompensa durante las etapas t, t+1,, T
con el costo o recompensa de las etapas t +1, t +2,, T En esencia, la frmula
recursiva formaliza el procedimiento de marcha atrs.
RESOLUCIN DE UN PROBLEMA DE PD
Para resolver un problema de programacin dinmica debemos al menos cumplir
con: Identificacin de etapas, estados y variable de decisin:
Un juego aleatorio
Problema de inversin
Maximizacin del evento de lograr una meta.
DEFINICION
Tcnica matemtica que permite dar soluciones secunciales con las que mediante
clculos recursivos se obtiene la solucin ptima del problema.
La programacin dinmica consiste en una tcnica que permite determinar de
manera eficiente las decisiones que optimizan el comportamiento de un sistema que
evoluciona a lo largo de una serie de etapas. En otras palabras, trata de encontrar la
secuencia de decisiones que optimiza el comportamiento de un proceso polietpico.
Proporciona un procedimiento sistemtico para determinar la combinacin de
decisiones para resolver problemas divididos en etapas, de tal forma que se
maximice la efectividad total. Es caracterstico de estos problemas que deba
adoptarse una poltica general de decisin, y que sta pueda ser aplicada en cada
etapa, arrojando un resultado ptimo para el problema en general, y un resultado
factible para cada etapa en que se divide el problema.
En cada etapa, las decisiones para las etapas restantes son independientes de las
decisiones tomadas anteriormente, aunque hay que tomar en cuenta que se lleg a
sta etapa debido a las decisiones tomadas con anterioridad. La programacin
dinmica es, pues, una tcnica muy til para tomar el mejor conjunto de decisiones
interrelacionadas.
Decisin(es)
Di
Variable de
Estado
(Entrada)
Xi
Fi
Funcin de Transformacin
Ri
Medida de
Rendimiento
Xi+1
Variable de
Estado
(Salida)
Ao 2013
COMPONENTE
DESCRIPCION
INFORMACION
N de empleados
1000
Depositos Bancarios
$ 158000
100
Trigo Almacenado
5000 TM
Ao 2014
COMPONENTE
DESCRIPCION
INFORMACION
N de empleados
1000
Depositos Bancarios
$ 325000
100
Trigo Almacenado
6500TM
FUNCIN DE TRANSFORMACIN
[N de empleados en Tn] = [N de empleados en to] + [empleados contratados en tnto] - [empleados dados debajo en tn-to]
Entonces:
Xn = fn (Xn-1 )
APLICACIONES:
APLICACIN 1: MODELO DE LA RUTA MS CORTA
En la ciudad 1 queda un aeropuerto internacional con afluencia de muchos turistas
que desean conocer los centros tursticos indicados en la red de la figura mostrada
en la parte inferior.
La red muestra la distancia (en kilmetros) de un centro a otro, as mismo muestra
las alternativas de traslado.
Una agencia de CityTour internacional desea determinar lo siguiente:
Para los turistas que desean conocer nicamente el centro turstico nmero 10 hallar
la trayectoria de menor distancia.
SOLUCIN:
Estructura:
Donde:
Xi: Estado actual en el que se encuentra el turista en la etapa i
X1={1}
X2={2, 3, 4}
X3={5, 6, 7}
X4={8, 9}
X3={5, 6, 7}
X4={8, 9}
X5={10}
En la tabla anterior se muestra las distancias ms cortas que hay desde el nodo
donde se encuentra actualmente (8 9) al nodo final (10).
En la tabla precedente se muestra tambin las distancias ms cortas que hay desde
el nodo donde se encuentra actualmente (5, 6 7) hasta el nodo final (10), pasando
por 8 9. Estas distancias se determinan aplicando la ecuacin recursiva f4* + g34.
Por ejemplo para determinar la distancia que hay entre X3=5 y el nodo final (10),
tomando la decisin K3=8, ser igual a la distancia que entre la ciudad 5 a la ciudad
8 mas la distancia que hay entre la ciudad 8 hasta la ciudad 10, o sea
610+1030=1640.
La tabla final nos muestra las distancias que desde el nodo 1 hasta el nodo 10,
pasando por 2, 3 4 y son 2870, 3120 y 2920 kilmetros, respectivamente.
Donde
Por lo tanto la solucin ptima en detalle ser:
Etapa
1
2
3
4
nodo actual
1
2
5
8
2
5
8
10
nodo destino
Interpretacin
i = 1, 2, , n
El costo de una mquina nueva es de $ 2 000 000. La vida til de las instalaciones
que realizan este proceso de produccin es de 5 aos al final de lo cual toda la
instalacin ser rescatada. La mquina actual completar 3 aos en la prxima
inspeccin. Determine el plan de mantenimiento y reemplazo de esta mquina.
SOLUCIN:
Estructura:
Donde:
Xi: Edad del activo al inicio de la etapa i
Xi+1: Decisin de Conservar o Reemplazar en la etapa i
fi*: Valor acumulado de la funcin objetivo (menor costo) para el estado del activo Xi
desde la etapa i hasta el final del horizonte de vida.
rij : Costo de reemplazar o conservar el activo en tramo ij.
Kix: Decisin optima en la etapa i dado el estado Xi en el que se encuentra el activo
en la etapa i
A continuacin presentamos la red del problema en trminos de costos de
reemplazar o conservar el activo.
ETAPA 6
ETAPA 5
ETAPA 4
ETAPA 3
ETAPA 1
Por lo tanto las polticas ptimas en base a las tablas de recursividad sern: (dos
soluciones ptimas)
AO Alternativa 1 Alternativa 2
1
R
R
2
C
C
3
C
R
4
R
C
5
C
C
V
V
Analizando la solucin ptima de la alternativa 1, se tiene:
En el ao 1 la decisin ptima ser de Reemplazar (R), esto implica comprar una
mquina nueva, la cual al final del ao tendr 1 ao de edad.
En el ao 2, dado que se tiene una mquina de 1 ao de edad, la decisin ptima
ser Conservar (C), por lo tanto al final del ao 2 la mquina tendr 2 aos de edad,
y as sucesivamente se rescata las mejores decisiones en las dems etapas del
problema.
Entonces si la empresa quiere a la larga optimizar sus costos de operacin y
mantenimiento, deber aplicar cualquiera de las dos alternativas de polticas de
reemplazo para sus activos.
MTODO ALTERNATIVO
Aplicando el proceso grfico
ETAPA 6
ETAPA 5
ETAPA 4
ETAPA 3
ETAPA 1
SOLUCIN:
Estructura:
Donde:
Xi: Capital disponible en la etapa i.
X1: Capital disponible para las 4 plantas
X2: Capital disponible para las plantas 2, 3 y 4
X3: Capital disponible para las plantas 3 y 4
X4: Capital disponible para la planta 4
Ki: Propuesta elegida para la planta i
fi* : Valor acumulado de la funcin objetivo (mayor rendimiento) desde la etapa i
hasta el final
ri : Rendimiento en la etapa i
Kix: Decisin optima en la etapa i dado el estado Xi en el que se encuentra el monto
del capital disponible en la etapa i
A continuacin presentamos las iteraciones recursivas del problema:
Etapa 4
Etapa 3
Etapa 2
Etapa 1
l puede construir hasta 4 barcos en cualquier mes, y puede guardar hasta 3 barcos
en stock. El costo de construccin de los barcos considera un costo fijo de 10 000
dlares y un costo variable de 4 000 dlares por barco construido. Para mantener un
barco en stock durante el periodo de un mes, el constructor gasta $ 1 000. Cul
debe ser el plan optimo de construccin, de modo que se minimice el costo total del
constructor? Formule un modelo de programacin dinmica para obtener la solucin.
SOLUCIN:
Estructura:
Donde:
Xi: Inventario al inicio del mes i
Xi+1: Inventario final del mes i
Ki: Nmero de unidades a producir en el mes i
fi*: Valor acumulado de la funcin objetivo (menor costo) desde la etapa i hasta el
final
10 4 Ki, siKi 0
Cp(Ki) =
0, siKi 0
Etapa 5: Noviembre
Para esta etapa debe observarse que 2 X5+K5 3; 2 porque al menos hay que
satisfacer la demanda del mes y 3 por que a lo ms se puede almacenar 1 barco
para el siguiente mes:
X5+K5-d51 X5+K51+d5, como d5=2, se tiene que X5+K53.
Etapa 4: Octubre
Para esta etapa debe observarse que 3X4+K46; 3 por que la demanda del mes es
3 y 6 por que se puede almacenar hasta 3 barcos para los posteriores meses:
X4+K4-d43 X4+K43+d4, como d4=3, se tiene que X5+K56.
Etapa 3: Septiembre
PROBLEMA.- La compaa cervecera del sur ha compilado los siguientes datos para
los futuros requerimientos mensuales de produccin y costos:
Donde:
Xi: Nmero de trabajadores disponibles al inicio de la semana i
Ki: Nmero de trabajadores a mantener en la semana i
fi*: Valor acumulado de la funcin objetivo (menor costo) desde la etapa i hasta el
final
ri : Costo de contratacin + costo de despido +costo de exceso
Kix: Decisin optima en la etapa i dado el estado Xi en el que se encuentra el
nmero de trabajadores disponibles en la etapa i
400 200 * NroTrabaja doresContratados,
ETAPA 4
ETAPA 3
ETAPA 2
ETAPA 1
Poltica ptima:
El capital total disponible para el diseo del dispositivo es $15 000. Los datos de la
confiabilidad Ri(ki) y el costo ci(ki) del i-simo componente ( i = 1, 2, 3, 4) dadas ki
unidades en paralelo se resumen a continuacin. Suponiendo que el dispositivo
debe tener como mnimo 1 unidad de cada componente, determine el nmero de
unidades paralelas, ki, que debe tener el dispositivo de cada componente i de tal
forma que se maximice su probabilidad de funcionamiento (confiabilidad) sin exceder
el capital asignado.
Donde:
Xi: Capital disponible para la etapa i
X1: Capital disponible para los 4 componentes
X2: Capital disponible para los componentes 2, 3 y 4
X3: Capital disponible para los componentes 3 y 4
X4: Capital disponible para el componente 4
Ki: Nmero de unidades en paralelo asignadas del componente i
Fi*: Valor acumulado de la funcin objetivo (mayor probabilidad de funcionamiento)
desde la etapa i hasta el final
ri : probabilidad de funcionamiento en la etapa i
Kix: Decisin optima en la etapa i dado el estado Xi en el que se encuentra el capital
disponible en la etapa i
Entonces las iteraciones recursivas del problema son:
ETAPA 4
ETAPA 3
ETAPA 2
ETAPA 1
POLITICA OPTIMA
Donde:
Xi: Capacidad disponible en la etapa i
X1: Capacidad disponible para las 3 cargas
X2: Capacidad disponible para las cargas B y C
X3: Capacidad disponible para la carga C
Ki: Nmero de unidades a incluir en el barco de la carga i
fi*: Valor acumulado de la funcin objetivo (mayor utilidad) desde la etapa i hasta el
final
ri : Utilidad en la etapa i
Kix: Decisin optima en la etapa i dado el estado Xi en el que se encuentra la
capacidad disponible del barco en la etapa i
Entonces las iteraciones recursivas del problema son:
ETAPA 3
ETAPA 2
ETAPA 1
POLITICA OPTIMA
Por lo tanto se debe incluir 1 carga del tipo A y 2 cargas del tipo B, alcanzando una
utilidad de S/.2500.00.
APLICACIN 9.- DISTRIBUCIN DE PERSONAL
Una compaa dispone de 7 vendedores que deben trabajar en tres regiones. La
siguiente tabla muestra el nmero de ventas que resulta al asignar n vendedores a
una regin:
ETAPA 2
ETAPA 1
Respuesta:
Se deber asignar a cada Regin el nmero de vendedores como sigue:
SOLUCION
En el problema se tienen datos de ventas pesimistas y optimistas, se desarrollar la
solucin pesimista, para lo cual se tomar en cuenta en presupuesto de publicidad
de $ 22000, como sigue:
OTRAS APLICACIONES
APLICACIN 1.- Modelo del viajero
Javier vive en la ciudad A, pero est pensando en conducir hasta la ciudad k para
visitar a su amada, su dinero es escaso y por lo tanto a decidido pasar cada noche
de su viaje en un hotel de visitantes que son muy baratos, como se muestra en la
figura. Javier sabe que despus de conducir un da puede dormirse y causar un
accidente as que no sabe que ruta sera la ms corta para llegar hasta donde su
amada en la ciudad K podras ayudarle con la ms corta ruta?
Solucin
Etapa I
Etapa II
Etapa III
Etapa IV
La mejor opcin es la ruta ACFJK con un valor de 15, siendo esta la ms corta para
nuestro viajero.
SOLUCIN
Respuesta:
ETAPA 1
ETAPA 2
ETAPA 3
ETAPA 4
SOLUCION PTIMA
Respuesta:
El extraterrestre deber asignar 1, 0 y 2 actores desempleados al Impulsor,
Revelador solar y Dulcera respectivamente, obteniendo una probabilidad de 17.6%
de tener un buen viaje de regreso.
APLICACIN 5.- Modelo Distribucin de Inversiones
El propietario de 3 tiendas ha comprado 5 cestas de cerezas, para satisfacer la
demanda en las diferentes tiendas. El propietario desea determinar la forma de
distribuir los canastos, de manera de maximizar el beneficio total. Los retornos
(utilidades) en funcin del nmero de canastos distribuidos (se asume vendidos) en
las 3 tiendas estn dados en la siguiente tabla:
Solucin:
Etapa 3:
Etapa 2:
Etapa 1:
Solucin ptima:
APLICACIN 6.- Una Corporacin petrolera tiene 4 millones de dlares para invertir
en tres campos petroleros. Las utilidades que gana el sitio i (i=1, 2, 3) dependen de
la cantidad invertida en l, tal como se muestra en la siguiente tabla:
Si se supone que la cantidad invertida en cada campo debe ser mltiplo exacto de 1
milln de dlares, determine con programacin dinmica una poltica de inversiones
que eleve al mximo las utilidades que gana la corporacin con sus tres campos
petroleros.
SOLUCIN
A continuacin se muestran las iteraciones recursivas del problema:
SOLUCIN
A continuacin se muestran las iteraciones recursivas del problema:
Solucin:
Para ir de
1 a
13 hay 48 rutas posibles. Una posibilidad para encontrar la
solucin es calcular el valor asociado a cada una y ver cual es la que proporciona el
menor costo. Y si fuesen miles de rutas?. Por se descarta esa alternativa y se usa
el mtodo de la programacin Dinmica, donde se resuelve desde el final hacia el
inicio, y hay etapas y estados.
Etapas: Son 4. La etapa 1 es decidir ir del estado inicial 1 al estado 2,3,4 o 5 que
son los puntos posibles en el sector siguiente. La etapa 2 es decidir ir a 6, 7 u 8. La
etapa 3 es decidir ir a 9, 10, 11 o 12. La etapa 4 es decidir a 13.
Estado: Lugar donde se encuentra. La etapa 1 tiene 1 estado: el 1. La etapa 2 tiene
4 estados: 2, 3, 4, 5. La etapa 3 tiene 3 estados: 6,7,8. La etapa 4 tiene 4 estados: 9,
10, 11, 12.
Clculos:
n=4
n=3
n=2
n=1
El ptimo es: 24
La solucin ptima es: X1 = 3; X2 = 8; X3= 9; X4= 13.
La ruta ptima es:
Los clculos:
n=3
n=2
n=1
Solucin:
Etapas: son 4 etapas. La etapa 1,2,3,4 es el proceso de decisin de envos de
cargamento al destino 1, destino 2, destino 3 y destino 4 respectivamente.
Estados: La cantidad de cargamentos disponibles para ser enviados en cada etapa.
El modelo en este caso es: (Son 2 problemas en uno).
P: Mx ( g(xi); i=1,2,3,4) s.a: X1+X2+X3 +X4 5 ; Xi 0,1,2,3,4; i=1,2,3,4.
P: Mx ( g(xi); i=1,2,3,4) s.a: X1+X2+X3 +X4 4 ; Xi 0,1,2,3,4; i=1,2,3,4.
Los Clculos.
n=4
n=3
n=2
n=1
Respuesta:
A) Si enva 4 cargamentos, el ptimo es: MM$ 22, y la solucin ptima es: X 1 = 3 ;
X2 = 0 ; X3= 1; X4= 0;
La ruta ptima es:
n=2
n=1
Cuntas brigadas asignar a cada sector para hacer mxima la suma de aumento
de la productividad?.
Una brigada no asignada no tiene valor asociado en la productividad. Esto equivale
a decir que el valor al horizonte de una brigada no asignada es de cero, ya que ese
valor no influye sobre el valor de la funcin objetivo.
Solucin:
Las etapas: Son tres etapas
Los Estados: Son el nmero de brigadas disponibles al inicio de la etapa.
Estado inicial: Es uno slo, y es tener 6 brigadas disponibles.
Variables de decisin: Son 3, indicadas por: X1 , X2 , X3 y el valor de ellas es un
elemento del conjunto: 0,1,2,3, 4
El modelo: P: Mx ( f (Xi ); i=1,2,3) s.a: X1+X2+X3 6 ; Xi 0,1,2,3,4; i=1,2,3.
Los clculos:
n=3
n=2
n=1
PROGRAMACIN DINMICA.
La programacin dinmica es un enfoque general para la solucin de
problemas en los que es necesario tomar decisiones en etapas sucesivas. Las
decisiones tomadas en una etapa condicionan la evolucin futura del sistema,
afectando a las situaciones en las que el sistema se encontrar en el futuro
(denominadas estados), y a las decisiones que se plantearn en el futuro.
Conviene resaltar que a diferencia de la programacin lineal, el modelado de
problemas de programacin dinmica no sigue una forma estndar. As, para cada
problema ser necesario especificar cada uno de los componentes que
caracterizan un problema de programacin dinmica.
El procedimiento general de resolucin de estas situaciones se divide en el
anlisis recursivo de cada una de las etapas del problema, en orden inverso, es
decir comenzando por la ltima y pasando en cada iteracin a la etapa antecesora.
El anlisis de la primera etapa finaliza con la obtencin del ptimo del problema.
La programacin dinmica es un enfoque general para la solucin de problemas
en los que es necesario tomar decisiones en etapas sucesivas.
Existen tres modelos diferentes manejados por Winqsb.
Problema de la diligencia (Stagecoach Problem).
Problema de la mochila
(Snapsack Problem).
programacin de produccin e inventarios (Production and Inventory Scheduling)
Problema de la diligencia.
El problema de la diligencia es un prototipo literal de los problemas de
programacin dinmica. Por tanto una manera de reconocer una situacin que se
puede formular
como
un
problema
de
programacin
dinmica
es
poder
4.- El procedimiento de solucin est diseado para encontrar una poltica ptima
para el problema completo.
5.- Dado el estado actual, una poltica ptima para las etapas restantes es
independiente de la poltica adoptada en etapas anteriores. Este es el principio de
optimalidad para programacin dinmica.
6.- El procedimiento de solucin se inicia al encontrar la poltica ptima para la
ltima etapa.
7.- Se dispone de una relacin recursiva que identifica la poltica ptima para la
etapa n, dada la poltica ptima para la etapa n+1.
La programacin dinmica es un enfoque general para la solucin de problemas
en los que es necesario tomar decisiones en etapas sucesivas.
Existen tres modelos diferentes manejados por Winqsb.
Problema de la diligencia (Stagecoach Problem).
Problema de la mochila
(Snapsack Problem).
programacin de produccin e inventarios (Production and Inventory Scheduling)
La funcin recursiva: Dados unos nodos y unos arcos que conectan estos
nodos, el problema de la diligencia intenta encontrar la ruta ms corta que conecta
un nodo de arranque con el nodo final (el destino).
Problema de la mochila.
La idea bsica es que existen N tipos distintos de artculos que pueden
cargarse en una mochila; cada artculo tiene asociados un peso y un valor. El
problema consiste en determinar cuntas unidades de cada artculo se deben
colocar en la mochila para maximizar el valor total.
La solucin indica que se deben transportar los tems 3, 4 y 5 con un retorno total
de 17800 u.m. y utilizacin plena de la capacidad (en peso), disponible del avin.
Teniendo en cuenta slo el volumen, el nuevo modelo es:
La solucin es:
las capacidades
de
almacenaje
son
4,
3,
unidades
costos
variables.
La
tabla tambin
muestra
el
juego
de
inventarios