Programacion dinámica Estocastica Investigación Operativa 2
Introduccion La programación dinámica es una técnica matemática útil para la toma de decisiones secuenciales interrelacionadas. Proporciona un procedimiento sistemático para determinar la combinación optima de decisiones, daremos a entender algunos conceptos de programación dinámica. Esto se realizara mediante la definición de conceptos principales que permitan su fácil comprensión En este informe se explica cómo usar la programación dinámica para resolver problemas en los que el costo del periodo actual o el estado del siguiente periodo son aleatorios. A estos problemas se les conoce como problemas de programación dinámica Estocastica (PDE). En una PDE, por lo general el objetivo de quien toma la decisión es minimizar el costo esperado en que se incurre o maximizar la recompensa esperada obtenida en un determinado horizonte de tiempo.
¿Qué es la programación dinámica? La programación dinámica es una técnica matemática que a menudo resulta útil a tomar una sucesión de decisiones interrelacionadas. Proporciona un procedimiento sistemático para determinar la combinación de decisiones que maximice la efectividad global. Contrastando con la programación lineal, no existe un planteamiento matemático estándar "del" problema de programación dinámica. Más bien, la programación dinámica es un tipo general de enfoque para resolver problemas y las ecuaciones particulares usadas deben desarrollarse para que se ajusten a cada situación individual. Por lo tanto, se requiere un cierto grado de ingenio y de visión de la estructura general de los problemas de programación dinámica, a fin de reconocer cuando un problema se puede resolver mediante los procedimientos de esta programación y cómo se haría. Probablemente se puedan desarrollar mejor estas aptitudes por medio de una exposición de una amplia variedad de aplicaciones de la programación dinámica y de un estudio de las características que son comunes a todas estas. Por fortuna, la programación dinámica suministra una solución con mucho menos esfuerzo que la enumeración exhaustiva. (Los ahorros de cálculo serían enormes para versiones más grandes de un problema.) La programación dinámica parte de una pequeña porción del problema y encuentra la solución óptima para este problema más pequeño. Entonces gradualmente agranda el problema, hallando la solución óptima en curso a partir de la anterior, hasta que se resuelve por completo el problema original. En seguida se dan los detalles involucrados en la implementación de esta filosofía general. ¿Qué es un proceso Estocástico? Un proceso estocástico es aquel en el que se representan todos y cada uno de los pasos necesarios para realizar una actividad, además de las formas o maneras en que cada uno de los pasos puede ser llevado a efecto y sus respectivas probabilidades, dicho de otra manera, cualquier proceso en el que se involucren probabilidades es un proceso estocástico. En el caso de la Programacion dinámica estocástica (o también llamada probabilística) existe una distribución de probabilidad del valor posible del siguiente estado. La programación dinámica estocástica difiere de la programación dinámica determinística 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. En lugar de ello existe una distribución de probabilidad para lo que será el estado siguiente. Sin embargo, esta distribución de probabilidad todavía esta completamente determinada por el estado y la decisión de la política del estado actual.
Contribución de la Etapa n
Etapa n+1 Sn+1 1
Etapa n
Probabilidad C1
f*n+1(1)
P1 Estado
Sn
Decisión
Xn
P2
C2
PN
fn(Sn,Xn)
2
f*n+1(2)
CN 3
f*n+1(3)
Cuando se desarrolla de esta forma para incluir todos los estados y decisiones posibles en todas las etapas, a veces recibe el nombre de árbol de decisión. Si el árbol de decisión no es demasiado grande, proporciona una manera útil de resumir las diversas posibilidades que pueden ocurrir
Historia La programación dinámica fue la creación de un matematico estadounidense, llamado Richard Bellman, que describió la forma de resolver los problemas en los que se necesitaba encontrar la mejor decisión a tomar, una tras otra. En los cuarenta y tantos años desde su su desarrollo el numero de usos y aplicaciones de programación dinámica se ha incrementado enormemente. Por ejemplo, en 1982 Davis Kohler utiliza programación dinámica para analizar la mejor manera d e jugar el juego de dardos
Ejemplos Programación Dinámica Probabilística.
En la programación dinámica probabilística, el estado en la etapa siguiente no queda completamente determinado por el estado y la decisión de la subpolítica en el estado actual, sino que existe una distribución de probabilidad para lo que sería el estado siguiente.
Gráficamente tenemos:
donde:
1
N es el número de estados posibles de la etapa n + 1
2
p1, p2, ..., p N. Distribución de probabilidad de lo que será el estado, dados Sn y Xn en la etapa n.
3
ci : es la contribución resultante de la función objetivo.
Por ejemplo, si el objetivo es minimizar la suma esperada de las contribuciones de las etapas individuales, la función objetivo quedaría:
f n ( sn , xn )
s
i 1
pi ci f *n 1 (i )
con f *n 1 (i ) mín f n 1 (i , xn 1 ) xn1
Donde esta minimización se toma sobre los valores factibles de Xn + 1
Ejemplo 1
Una compañía ha recibido un pedido para surtir un solo artículo muy especial y de una calidad tan rigurosa que es posible que el fabricante tenga que producir más de un artículo para obtener uno aceptable. La probabilidad estimada para que sea aceptable es 1/3 y de que sea defectuoso sin posibilidad de reparación 2/3. Por lo tanto la probabilidad de producir cero artículos aceptables en un lote de tamaño L es (2/3)L. Los costos marginales de producción son de $ 100 por artículo, incluso si es defectuoso (los artículos en exceso no tienen valor). El costo de preparación es $ 200, cada vez que se monte el proceso de producción de este artículo, el cual puede hacerlo como máximo 3 veces. Si no se ha obtenido un artículo aceptable al final de la tercera serie de producción, el costo por ventas perdidas y de penalización será de $ 1500. El objetivo es determinar la política referente al tamaño del lote para las series de producción de manera de minimizar el costo total esperado. Solución: Etapas: Series de producción (1, 2, 3). Variables de decisión: Xn: Son el tamaño del lote producción en la etapa n.
Sn : puede suceder que, Sn =0 si el articulo aceptable se logro en la etapa Estados: anterior. o Sn =1 que significa que en la etapa anterior no se logró el articulo aceptable.
f *n (Sn) = Mín f n(Sn,Xn)
Xn = 0, 1, ..., L
(tamaño del lote, costo marginal)
Donde: f *n (0) = 0 y S = 0 , cuando se ha obtenido en la etapa anterior un artículo aceptable, por lo tanto f *n (0) = 0, en esta etapa no es necesario que se incurra en gastos adicionales. (Prob. de 0 art. acept.
( prob de 1 art. Acept.)
f *n (Sn,Xn) = K + Xn + (2/3)Xn f n + 1 (1) + ( 1- (2/3)Xn) f n + 1 (0) donde: ( 1- (2/3)Xn) f n + 1 (0) = 0
costo marginal
luego f *n (1,Xn) = K + Xn + (2/3)Xn f *n + 1 (1). Considerando $ 100 como unidad monetaria y definiendo
0 Si Xn = 0 K= 2 Si Xn
(ETAPA ANTERIOR NO SE LOGRO ART. ACEPTABLE)
f *4 (1) = 15 , que es el costo de no obtener un artículo aceptable y perder la venta. f *4 (0)
SI SE LOGRO ART.ACEPT.
Luego, para n = 3 tendríamos:
f 3(1, X3) = K + X3 + (2/3) S3 /X3
0
0
0
1
15
15
1
2
3
4
5
f 3(1)
X
13
10 2/3
9 4/9
8 26/27
8 79/81
8 26/27
4
X
3
Para n = 2: F2(1, X2) = K + X2 + (2/3) S2 /X2 0
8 26/27
0
1
2
3
4
f 2(1)
8 26/27
8 79/81
7 239/243
7 478/729
7 1685/2187
7 478/729
3
4
f 1(1)
2
0 1
3
Para n = 1 f 1(1, X1) = K + X1 + (2/3) S1 /X1 1
0 7.655
7 478/729
1 8.1
2 7.4
7.27
7.51
7.27
Luego la solución del problema es la siguiente:
En la primera serie de producción deben fabricarse 3 artículos, si se obtiene un articulo aceptable, X2 = X3 = 0. Si son defectuosos en la segunda se debe fabricar 3 artículos, si se obtiene un articulo aceptable X3 = 0. Si son defectuosos en la tercera serie de producción deben fabricarse 4 artículos, todo con un costo esperado de $ 727.-
X 3
1
Ejemplo 2.-
Un joven estadístico cree que ha desarrollado un sistema para ganar en un juego de las vegas. Sus colegas no creen que esto sea posible, de modo que hacen una gran apuesta con él de que, empezando con dos fichas no podrá tener 5 o más fichas después de 4 jugadas. Cada jugada comprende la apuesta de cualquier Nº deseado de fichas, se gana o se pierde lo apostado, él estadístico cree que su sistema le dará una probabilidad de 2/3 de ganar cada jugada. Suponiendo que él estadístico está en lo correcto, se debe determinar cuántas fichas apostar en cada una de las cuatro jugadas. El objetivo es maximizar la probabilidad de ganar la apuesta. Solución: Etapas: jugadas ( 1, 2, 3 y 4 )
Xn : Nº de fichas que deben apostarse en la etapa n
Variable de decisión
Estados: Sn : Nº de fichas disponibles para apostar en esa etapa.
f *n (S ) = máx f n ( Sn, Xn ) Xn = 0, 1, ..., 5 f n( Sn, Xn ) = 1/3 f *n + 1 ( Sn - Xn ) + 2/3 f *n + 1 ( Sn + Xn ) f *4(S) = 0 , Si S < 5 f *4
Pierde la apuesta; Gana la apuesta.
La relación recursiva es:
f * n( Sn
Xn = 0, 1, 2, ..., 5
*
n + 1 (
Sn - Xn ) + 2/3 f *n + 1 ( Sn + Xn
Para n = 4 se tiene:
S4
f 4 (S4 )
X
0
0
0
1
0
0
2
0
0
3
2/3
2
4
2/3
1
1
0
4
Para n = 3 (3 ra apuesta)
Fichas que Apuesta!!!
tiene
f 3( S3, X3)=1/3 f 4 (S3 - X3) + 2/3 f 4 (S3+X3)
S3 /X3
0
1
2
3
0
0
1
0
0
2
0
4/9
4/9
3
2/3
4/9
2/3
2/3
4
2/3
8/9
2/3
2/3
5
1
4
2/3
f 3 ( S3 )
X
3
0
0
0
0
4/9
1,2
2/3
0,2,3,
8/9
1
1
0
Para n = 2
f 2( S2, X2)=1/3 f 3 (S2 - X2) + 2/3 f 3 (S2+X2) S2 /X2
0
1
2
3
0
0
1
0
8/27
2
4/9
4/9
16/27
3
2/3
20/27
2/3
2/3
4
8/9
8/9
22/27
2/3
4
f 2 ( S2 )
X
2
0
0
8/27
1
16/27
2
20/27
1
8/9
0,1
2/3
Para n = 1 f 1( S1, X1)=1/3 f 2 (S1 - X1) + 2/3 f 2 (S1+X1) S1 /X1 2
0
1
2
f 1(1)
X
16/27
16/27
16/27
16/27
0,1,2
Para x1=0
S1
s2
s3
s4 (5) (4)
G (gana AP)
(5) G( gana AP)
G x3=1 (2)
(2)
P (x4=2) (3)
X1=0
x2=2
(0) P (pierde AP)
P(pierde AP) (1)
1
Las políticas óptimas serían:
4
X*1 = 0
5
Si perde X*2 = 2 pierde apuesta
6
Si gana X*2 = 2 queda con 4....... X*3 = 1
7
Si gana X*3 = 1 gana la apuesta
8
Si pierde X*3 = 1 queda con 3.... X*4 = 2
9
Si gana X*4 = 2 gana apuesta.
10 Si
X*2 = 2
pierde X*4 = 2 `pierde la apuesta.
para x1 = 2..
Este esquema se repite para las otras dos posibilidades.