Está en la página 1de 21

Pregrado

SESIÓN: 08
Programación Dinámica Probabilística.
LA PROGRAMACIÒN DINAMICA PROBABILISTICA

• ¿QUÉ ES?
Es una técnica de programación matemática que proporciona un
procedimiento sistemático para determinar la combinación óptima de
una serie de decisiones interrelacionadas, se presenta cuando el estado
en la siguiente etapa no esta determinado por completo por el estado y
la política de decisión de la etapa actual.
Los cálculos de la programación dinámica probabilística se hacen de
manera recursiva en el sentido de que la solución de un subproblema se
utiliza como una entrada para el siguiente subproblema.
LA PROGRAMACIÒN DINAMICA PROBABILISTICA

• CONCEPTUALIZACIÒN DE PROGRAMACION DINAMICA


Se trata de un enfoque de tipo general para la solución de problemas y
las ecuaciones específicas que se usan se deben desarrollar para que
representen cada situación individual.
Se necesita un cierto grado de creatividad y un buen conocimiento de la
estructura general de los problemas de Programación Dinámica para
reconocer cuándo y cómo se puede resolver un problema por medio de
estos procedimientos.
TIPOS DE PROGRAMACIÒN DINAMICA
1. Programación dinámica determinística. El estado en la siguiente
etapa está completamente determinado por el estado y la política
de decisión de la etapa actual.

2. Programación dinámica probabilística. El estado en la siguiente


etapa no está completamente determinado por el estado y la
política de decisión de la etapa actual, existiendo en su lugar una
distribución de probabilidad para determinar cuál será el siguiente
estado.
ETAPAS
1.Etapas: El problema se puede dividir en etapas que requieren una política de
decisión en cada una de ellas.
2.Estados asociados: Cada etapa tiene cierto número de estados asociados con su
inicio.
3.Política de decisión: El efecto de la política de decisión en cada etapa es
transformar el estado actual en un estado asociado con el inicio de la siguiente
etapa.
4.Diseño de solución: El procedimiento de solución está diseñado para encontrar
una política óptima para el problema completo, es decir, una receta para la política
de decisión óptima en cada etapa para cada uno de los estados posibles.
5.Principio de optimalidad: Dado el estado actual, una política óptima para las
etapas restantes es independiente de la política adoptada en etapas anteriores. b.
La decisión inmediata óptima depende sólo del estado actual y no de cómo se
llegó ahí.
6. Inicio de solución: El procedimiento de solución se inicia al
encontrar una política óptima para la última etapa.
7. Relación recursiva: Se dispone de una relación recursiva que
identifica la política óptima para la etapa n, dada la política
óptima para la etapa n + 1.
8. Retroceso: Cuando se use esta relación recursiva, el
procedimiento de solución comienza al final y se mueve hacia
atrás etapa por etapa – encontrando cada vez la política óptima
para esa etapa – hasta que se encuentra la política óptima
desde la etapa inicial.
Diferencia entre la PDP y la PDD

La programación dinámica probabilística difiere de la


determinística en que el estado de la siguiente etapa no
está completamente determinado por el estado y la política
de decisión de la etapa actual. En este caso, existe una
distribución de probabilidad para determinar cuál será el
estado en la siguiente etapa.
N = número de etapas.
n = etiqueta de la etapa actual (n =1,2,...,N).
Sn = estado actual de la etapa n.
Xn = variable de decisión de la etapa n.

S = número de estados posibles en la etapa n+1


i = etiqueta de estado posible en la etapa n+1(i =1,..,S)
Pi = probabilidad de alcanzar el estado i desde el estado Sn con la decisión Xn
Cj = contribución de la etapa n a la función objetivo dependiente del estado i
fn (Sn , Xn ) = contribución a la función objetivo de las etapas n,n+1,...,N,
desde Sn con decisión Xn .
fn*(Sn ) = fn (Sn , Xn *) = contribución óptima, desde Sn con la mejor decisión.
fn*(Sn ) = min {fn (Sn , Xn ) } o fn*(Sn )= max {fn (Sn , Xn ) }
Imagine que tiene 5000 soles para invertir y que tendrá la oportunidad de hacerlo en cualquiera de las dos
inversiones (A o B) al principio de los próximos tres años. Existe incertidumbre respecto al rendimiento de
ambas inversiones, Si se invierte en A se puede perder todo el dinero o (con probabilidad mas alta) obtener
10000 soles (una ganancia de 5000 soles) al final de año. Si se invierte en B se puede obtener los mismos
5000 soles o (con probabilidad mas baja) obtener 10000 soles al terminar el año. Las probabilidades para
estos eventos son las siguientes:
Inversión Cantidad obtenida (S/.) Probabilidad
A 0 0.3
10000 0.7
B 5000 0.9
10000 0.1

Se le permite hacer (a lo sumo) una inversión al año y solo puede invertir 5000 soles cada vez. (cualquier
cantidad adicional de dinero acumulada queda inútil)
a) Utilice programación dinámica para encontrar la política de inversión que maximic3e la cantidad de
dinero esperada que tendrá después de tres años.
(Hillier 1998. p 574-575)
f4*(0 ) - 0
f3*(0) - ?

0
0
A
f2*(0) - ? 0.3

f4*(5000) -5000
0 f3*(5000) - ?
A B 500
0.3 500 0.9 0
0
A B
0.3 B
0.9
f2*(5000)- ? 0.1
f1*(5000)- ?
A A
500 f4*(10000) -10000
B B 0.3 0.7
500 0 f3*(10000)- ?
0.9 A 0.1
0 1000
0.7 B
1000 0
0 0.9
A A
0.7 B
0.3 A B
0.1 B
0.7 0.1
f2*(10000)- ? 0.9
A f4*(15000) -15000
1000 f3*(15000) - ? 0.3
0 B 1500
0.1 0
A 1500 B
0.7 0 0.9
A B
0.7 0.1
f4*(20000) -20000
2000
0
1. Dibujar la red
2. Establecer la función recursiva para todas las decisiones disponibles
Xn = Tipos de inversión (A o B).
fn = estados disponibles en la etapa n.

fn*(Sn ) = max {fn (Sn , XA ) } /{fn (Sn , XB ) }

fn (Sn , XA )= 0.3 [fn+1*( (Sn - 5000)]+ 0.7[fn+1*( (Sn + 5000)]

fn (Sn , XB )= 0.9 [fn+1*( (Sn)]+ 0.1[fn+1*( (Sn +5000)]

3. Aplicar la función recursiva


f3*(0) - ?
f4*(0 ) - 0

0
0
f2*(0) - ?

A f4*(5000) -5000
0 f3*(5000) - ? 0.3
A B 500
0.3 500 0.9 0
0
A B B
0.3 A
0.9 0.1
f2*(5000)- ? 0.7
f1*(5000)- ?
500 A f4*(10000) -10000
B B
500 0 f3*(10000)- ? 0.3
0.9 A 0.1
0 1000
0.7 B
1000 0
0.9
A A 0
0.7 B B
0.3 A
0.1 B 0.1
0.7
f2*(10000)- ? 0.9
f4*(15000) -15000
1000 A
f3*(15000) - ? 0.3
0 B 1500
0.1 0
1500 B
A 0.9
0.7 0
A B
0.7 0.1 f4*(20000) -20000

2000
0
Etapa 3 Sn , Xn A B f3*(S3 ) xn*
n=3 0 0 0 0 / 
n=3 5000 7000 5500 7000 A
n=3 10000 12000 10500 12000 A
n=3 15000 17000 15500 17000 A
           
Etapa 2 Sn , Xn A B f2*(S2 ) xn*
n=2 0 0 0 0  /
n=2 5000 8400 7500 8400 A
n=2 10000 14000 12500 14000 A
           
Etapa 3 Sn , Xn A B f1*(S3 ) xn*
n=1 5000 9800 8960 9800 A
Problema 2: Considere un sistema electrónico con cuatro componentes, cada uno de los
cuales debe trabajar para que el sistema funcione. La confiabilidad del sistema se puede
mejorar si se instalan varias unidades paralelas en uno o más de los componentes.
Unidades Probabilidad de Funcionamiento
Paralelas Componente 1 Componente 2 Componente Componente 4
3
1 0.5 0.6 0.7 0.5
2 0.6 0.7 0.8 0.7
3 0.8 0.8 0.9 0.9
La probabilidad de que el sistema funcione es el producto de las probabilidades de que los
componentes respectivos funcionen.
En la siguiente tabla se presenta el costo (en dólares) de instalar una, dos o tres unidades
paralelas en los componentes respectivos:
Costo
Unidades
paralelas Componente 1 Componente 2 Componente 3 Componente 4

1 100 200 100 200


2 200 400 300 300
3 300 500 400 400
Dadas las limitaciones de presupuesto, se puede gastar un máximo de $1000.
Use programación dinámica para determinar cuántas unidades paralelas instalar en cada uno
de los cuatro componentes para maximizar la probabilidad de que el sistema funcione.
1. Dibujar la red
2. Establecer la función recursiva para todas las decisiones disponibles
Xn = Tipos de inversión (A o B).
fn = estados disponibles en la etapa n.

fn*(Sn ) = max {fn (Sn , XA ) } /{fn (Sn , XB ) }

fn (Sn , XA )= 0.3 [fn+1*( (Sn - 5000)]+ 0.7[fn+1*( (Sn + 5000)]

fn (Sn , XB )= 0.9 [fn+1*( (Sn)]+ 0.1[fn+1*( (Sn +5000)]

3. Aplicar la función recursiva


f3*(0) - ?
f4*(0 ) - 0

0
0
f2*(0) - ?

A f4*(5000) -5000
0 f3*(5000) - ? 0.3
A B 500
0.3 500 0.9 0
0
A B B
0.3 A
0.9 0.1
f2*(5000)- ? 0.7
f1*(5000)- ?
500 A f4*(10000) -10000
B B
500 0 f3*(10000)- ? 0.3
0.9 A 0.1
0 1000
0.7 B
1000 0
0.9
A A 0
0.7 B B
0.3 A
0.1 B 0.1
0.7
f2*(10000)- ? 0.9
f4*(15000) -15000
1000 A
f3*(15000) - ? 0.3
0 B 1500
0.1 0
1500 B
A 0.9
0.7 0
A B
0.7 0.1 f4*(20000) -20000

2000
0
Etapa 3 Sn , Xn A B f3*(S3 ) xn*
n=3 0 0 0 0 / 
n=3 5000 7000 5500 7000 A
n=3 10000 12000 10500 12000 A
n=3 15000 17000 15500 17000 A
           
Etapa 2 Sn , Xn A B f2*(S2 ) xn*
n=2 0 0 0 0  /
n=2 5000 8400 7500 8400 A
n=2 10000 14000 12500 14000 A
           
Etapa 3 Sn , Xn A B f1*(S3 ) xn*
n=1 5000 9800 8960 9800 A
Problema 2: Considere un sistema electrónico con cuatro componentes, cada uno de los
cuales debe trabajar para que el sistema funcione. La confiabilidad del sistema se puede
mejorar si se instalan varias unidades paralelas en uno o más de los componentes.
Unidades Probabilidad de Funcionamiento
Paralelas Componente 1 Componente 2 Componente Componente 4
3
1 0.5 0.6 0.7 0.5
2 0.6 0.7 0.8 0.7
3 0.8 0.8 0.9 0.9
La probabilidad de que el sistema funcione es el producto de las probabilidades de que los
componentes respectivos funcionen.
En la siguiente tabla se presenta el costo (en dólares) de instalar una, dos o tres unidades
paralelas en los componentes respectivos:
Costo
Unidades
paralelas Componente 1 Componente 2 Componente 3 Componente 4

1 100 200 100 200


2 200 400 300 300
3 300 500 400 400
Dadas las limitaciones de presupuesto, se puede gastar un máximo de $1000.
Use programación dinámica para determinar cuántas unidades paralelas instalar en cada uno
de los cuatro componentes para maximizar la probabilidad de que el sistema funcione.

También podría gustarte