Introducción a la Programación Dinámica
Introducción a la Programación Dinámica
Programación Dinámica
Por ahora basta con suponer que N < ∞, veremos el caso contrario más adelante en el apunte.
Como se menciono en el capítulo anterior, cuando se consideran políticas de decisión dinámi-
cas, se debe tener cuidado en representar adecuadamente el conjunto A de acciones posibles.
Programación dinámica nos ayuda a resolver este dilema. Para entender a esto, veamos primero
la formulación del problema cuando nos limitamos a implementar decisiones estáticas o open
loop.
Dentro de nuestra formulación prototípica (2.1) tenemos que una acción a := (an , n ≤ N ) incluye
una acción a tomar en cada período n. Una acción open-loop es aquella que se decide antes del
horizonte de planificación y no se cambia después. En términos técnicos, a puede corresponder
a un secuencia de elementos aleatorios (esto posibilita considerar políticas donde el tomador
de decisiones deja espacio para el azar), sin embargo toda aleatoriedad solo puede depender
de la información disponible al comienzo del horizonte de planificación. En el lenguaje de la
Observación 1.1, A contiene a todos los vectores aleatorios a que para cada periodo asignan la
23
misma acción a todos los ω que pertenecen al mismo conjunto en F1 (la información disponible
en el periodo ficticio 0): esto se denota como a ∈ F1 . Consideremos un ejemplo concreto.
donde an representa cuanto ordenar al comienzo del período n. En esta formulación es nece-
sario linkear la decisión de orden y la demanda en un período con el inventario al comienzo
del siguiente período. Esto es,
24
explicitar que esta cantidad es una variable aleatoria). En este caso, el problema a resolver es
( "N # )
X
máx E p mı́n{an + Sn , Dn } − c an − h máx{0, an + Sn − Dn } : an ∈ Fn , n ≤ N ,
n=1
donde Sn+1 (ω) = máx{0, an (ω) + Sn (ω) − Dn (ω)}. Vemos que, sin supuestos adicionales,
caracterizar el conjunto A = {a ∈ NN
+ , an ∈ Fn , n ≤ N } puede ser díficil.
Para resolver (2.1) necesitamos buscar entre las política de decisión (i.e. secuencias aleatorias
adaptados a la historia del proceso), por lo que es necesario entender que significa que an ∈ Fn .
Para simplificar la representación del conjunto A, definiremos una variable de estado Sn que
representa la información relevante para tomar la decisión en el período n. (Formalmente, esto
es Fn = σ(Sn ).) Con esto, relegamos la incertidumbre al estado del sistema Sn y representamos
una política factible como un vector de funciones
donde µn (Sn ) representa la acción a tomar cuando uno se encuentra en el estado Sn al comienzo
del período n.
25
Con esto, para un estado inicial S1 dado, podemos reescribir (2.1) de la siguiente forma.
( "N # )
X
J1 (S1 ) = máx E gn (µ(Sn ), Sn , Wn ) : µ ∈ U , (2.2)
n=1
Es importante notar que existen muchas formas de definir las variables de estado que son
suficientes para tomar la decisión en el período n: siempre trataremos de escoger aquella
con mínimos requerimientos de memoria. También es importante notar que la condición
de suficiencia es importante. Por ejemplo, si las demandas no fuesen independientes en el
ejemplo de arriba, entonces sería necesario agregar información acerca de las ventas en todos
los períodos anteriores a n a la variable Sn , dado que esta información ayudaría a estimar de
mejor forma la demanda futura.
Supongamos que µ∗ denota la solución óptima a la formulación base (2.2). La técnica de resolución
que estudiaremos a continuación se basa en el siguiente principio: la política óptima µ∗ también
resuelve el problema de optimización cuando el horizonte de planificación comienza ahora en el
periodo n, con un estado inicial Sn cualquiera.
Sea µ∗ la política óptima del problema base, y supongamos que un estado Sn ocurre con
probabilidad positiva cuando usamos la política µ∗ . Consideremos el sub-problema donde
acumulamos ganancias solo a partir del período n, partiendo desde el estado Sn , i.e.
( ( N ) )
X
Jn (Sn ) = máx E gk (µk (Sk ), Sk , Wk ) : (µn , . . . , µN ) ∈ (Un , . . . , UN ) .
k=n
La política óptima para el sub-problema es µ̃∗ = (µ∗n , µ∗n+1 , . . . , µ∗N ) para todo estado inicial
Sn .
Para modelar la dinámica temporal del estado del sistema, consideraremos un recurrencia de
estados que establece la relación entre la variable de estado en un período y aquella en el
siguiente período, como función de la decisión tomada en un período y la incertidumbre en el
sistema. Esto es, planteamos que existe un mapa fn (·) tal que
26
La función de recurrencia esta determinada por la elección de la variable de estado. Notamos
que Sn+1 es un objeto aleatorio, dado que depende de la incertidumbre Wn .
En el caso del Newsvendor multiperíodo, notamos que Wn = Dn , con lo que tenemos que la
recurrencia de estados esta dada por
Cuando enfrentamos la decisión del período n, no nos importa la historia del proceso más
allá de aquella información contenida en Sn .
Para calcular µ∗n (Sn ) resolvemos el problema de optimización que parte en el periodo n
desde el estado Sn , apoyandonos en el hecho que ya conocemos (µ∗n+1 , . . . , µ∗N ). Esto implica
que podemos recuperar la política óptima resolviendo una secuencia de sub-problemas que
buscan maximizar las ganancias acumulativas, optimizando solo sobre la acción a tomar
en el periodo actual, asumiendo que a partir del próximo periodo conocemos las acciones
óptimas para cualquier estado en el que nos encontremos en el futuro.
Para realizar el paso anterior, utilizamos la definición de Jn (Sn ) como las ganancias óptimas
acumuladas desde el periodo n hasta el periodo N cuando el estado inicial en el periodo
n es Sn . De esta forma, calculamos µ∗ (Sn ) resolviendo la Ecuación de Bellman, que
relaciona las ganancias óptimas acumuladas desde el periodo n con aquellas acumuladas
desde el periodo n + 1, la recurrencia de estados, mediante una optimización.
27
Definición 2.2. El Algoritmo de Programación Dínamica
Para cada condición inicial S1 , la ganancia óptima J1 (S1 ) asociada al problema base (2.2)
esta dada por el siguiente algoritmo recursivo, que parte en el período (ficticio) N + 1, y se
mueve hacia atrás en períodos, desde el período final N hasta llegar al período inicial 1:
JN +1 (SN +1 ) = 0, (2.3)
Jn (Sn ) = máx {E [gn (an , Sn , Wn ) + Jn+1 (fn (an , Sn , Wn ))]} , n≤N (2.4)
an ∈An
donde el valor esperado se toma respecto a la incertidumbre asociada a cada periodo (Wn , n ≤
N ). Adicionalmente, sea µ∗ la política tal que µ∗n (Sn ) = a∗n , donde a∗n denota la solución a
(2.4), para n ≤ N , entonces µ∗ es una solución óptima a (2.2).
Periodos. El modelo de optimización prototípico asume i) una función objetivo que acu-
mula ganancias a través de los periodos; y ii) la toma de decisión se hace en forma secuen-
cial, con las implicancias para la recolección de información que esto trae. Normalmente,
cuando tratamos con problemas de toma de decisión a través del tiempo, la secuencia es
la temporal. Sin embargo, es posible modelar mediante programación dinámica problemas
donde no existe una secuencia temporal. (Ver el ejemplo del problema de la mochila mas
abajo). En dicho caso, la definición de la secuencia de las decisiones es parte del trabajo
de modelamiento.
Decisiones. Es importante que las decisiones no están restringidas a priori a ser valores
reales, o vectores. Pueden corresponder a conjuntos, funciones, etc. Es una decisión de
modelamiento cual es la representación más efectiva de la decisión.
Estados. Tal como las decisiones, las decisiones no están restringidas a priori. Como se
menciono anteriormente, el estado debe contener información suficiente para caracterizar
la situación actual y la evolución probabilista del sistema. En términos prácticos, tam-
bién es deseable que dicha información sea solamente aquella necesaria para cumplir esa
función. Si bien, el paradigma de programación dinámica permite modelar, y en teoría
resolver, cualquier problema de toma secuencial de decisiones bajo incertidumbre con las
características descritas, en la practica el principal obstáculo que impide el uso masivo de
la programación dinámica es la maldición de la dimensionalidad: dependiendo del pro-
blema, es posible que n |Sn | (el número total de estados posibles durante la ejecución del
P
28
Incertidumbre. Esta corresponde a la aleatoriedad que afecta i) las ganancias recolectadas
en un periodo, y ii) la evolución del estado de un sistema. Por lo mismo, su representación
depende de la elección de la variable de estado, y la decision.
Ecuación de Bellman. Si bien la forma general esta dada por (2.4), en general su forma
puede variar dependiendo del problema. Por ejemplo, consideraremos situaciones donde el
horizonte es infinito, o otros donde con cierta probabilidad el problema termina y no se
avanza al siguiente periodo (en este caso, Jn+1 debiese estar ponderar por la probabilidad
de avanzar en el tiempo, la cual puede depender de la acción, el estado, y la incertidumbre).
Parte de la tarea de modelamiento consiste en detectar e incorporar estas modificaciones.
Notamos que la aleatoriedad en la ecuación de arriba esta dada exclusivamente por aquella aso-
ciada a la acción a tomar (puede ser que el tomador de decisiones este aleatorizando su decisión).
Si restringimos nuestra atención a políticas deterministas, entonces esta aleatoriedad desaparece.
Adicionalmente, la recurrencia de estados se transforma en la relación determinista
Entonces, dado que no existe incertidumbre alrededor de que valor tomara Sn (dadas las acciones
en los periodos 1 a n − 1), µ(·) solo es relevante en el valor que asigna a µn (Sn ) ≡ an . Esto tiene
sentido dado que, sin incertidumbre, no existe información que no sea anticipable (y se incorpore
a la filtración), por lo que en este caso open loop = closed loop. Esto implica que el problema
base que queremos resolver toma la forma
N
( )
X
J1 (S1 ) = máx gn (an , Sn ) : µ ∈ U , (2.5)
an ∈An , n≤N
n=1
29
Definición 2.3. Programación Dínamica Determinista
Para cada condición inicial S1 , la ganancia óptima J1 (S1 ) asociada al problema base está
dada por el siguiente algoritmo recursivo, que parte en el período (ficticio) N + 1, y se mueve
hacia atrás en períodos hasta llegar al período 1:
JN +1 (SN +1 ) = 0,
Jn (Sn ) = máx {gn (an , Sn ) + Jn+1 (fn (an , Sn ))} , n ≤ N.
an ∈An
Los elementos de un modelo en el caso determinista son los mismos que en el caso estocástico,
con la excepción que no se especifica la incertidumbre Wn asociada a cada periodo. Esto es,
es necesario especificar los periodos del problema, las decisiones, estados en cada periodo,
y la recursión de estados, además de las condiciones de borde y la forma de la ecuación de
Bellman.
El ejemplo más famoso de aplicación del algoritmo de programación dinámica a problemas de-
terministas es sin lugar a dudas el problema del camino más corto. Este ejemplo muestra como
es posible que no sea necesario explicitar la temporalidad de la decisión.
Considere el problema de encontrar el camino más corto entre dos nodos s y t en un grafo
dirigido G = (V, E), cuando el costo asociado a utilizar un arco a está dado por ca . (Con V el
conjunto de nodos y E el conjunto de arcos del grafo G.) En esta aplicación, nos imaginaremos
que periodo a periodo viajando de un nodo a nodo en el grafo. Definimos el estado del sistema
como el nodo en el que nos encontramos actualmente. El número de periodos es a priori infinito
(si existe un ciclo de costo negativo la solución sera quedarse en el grafo recorriendo ese ciclo
para siempre, por lo que asumiremos que no existe este tipo de ciclo), por lo que se necesitan a
los más N periodos para hacer cualquier recorrido no obviamente suboptimo. Dado el estado
Sn , la decisión an a tomar es cual es el siguiente nodo a visitar. En este caso el conjunto
de acciones posibles (que depende de Sn ) esta dado por An = {j ∈ V : (Sn , j) ∈ E}. La
recurrencia de estados es simplemente fn (an , Sn ) = an , y Bellman toma la
Notamos que las condiciones de borde son: i) el problema termina vez alcanzamos el nodo t;
y ii) penalizamos cualquier solución que no llega al nodo t en al menos N + 1 periodos (note
que Bellman esta expresada como un problema de minimización).
30
Ejercicio Propuesto: Problema de las 4 reinas Suponga que usted desea posicionar 4 reinas
en un tablero de Ajedrez de 4×4 de forma que las reinas no se ataquen entre ellas. Encuentre
dichas posiciones mediante programación dinámica determinista.
Donde an es la cantidad de unidades incluidas del ítem n, cn es el beneficio obtenido por cada
unidad de n en la mochila, wn es el volumen de n, y K es el volumen total de la mochila.
Modele el problema utilizando programación dinámica determinista.
Condiciones de borde:
JN +1 (SN +1 ) = 0, ∀SN +1 , S1 = K.
Beneficio en la etapa n:
gn (an , Sn ) = an cn .
Ecuación de Bellman:
Veamos como se ejecuta el algoritmo de programación dinámica en una instancia del problema
de la mochila. (Si bien esto normalmente lo programaríamos y ejecutaríamos en un computador,
vale la pena ver la ejecución paso a paso al menos una vez.) Supongamos valores K = 6, c1 =
4, c2 = 3, c3 = 7, y v1 = 3, v2 = 2, v3 = 4. Una aplicación manual del algoritmo de programación
dinámica (determinista) se vería como sigue: comenzando con la última etapa,
31
S3 /a3 0 1 a∗3 J3 (S3 )
0 0 - 0 0
1 0 - 0 0
2 0 - 0 0
3 0 - 0 0
4 0 7 1 7
6 0 7 1 7
Etapa n = 3
Etapa n = 2
Podemos calcular, consultando la tabla anterior, los valores (1), (2) y (3):
(1) : 0 + J3 (S3 = 0) = 0
(2) : 0 + J3 (6) = 7
(3) : 3 + J3 (4) = 10
Etapa n = 1
(4) : 0 + J2 (6) = 10
(5) : 4 + J2 (3) = 7
32
2.5. Caso Horizonte Infinito Descontado
En esta sección estudiaremos problemas de horizonte infinito. Consideremos la formulación base
(2.2); si simplemente tomamos N → ∞, típicamente tendremos que existen múltiples políticas
que consiguen ganancias acumuladas infinitas. Con esto en mente, haremos dos simplificaciones:
i) primero, asumiremos que existe una tasa de descuento (similar a la que usan al momento
de evaluar proyectos de largo plazo), que representa un riesgo financiero, o alternativamente la
probabilidad que el horizonte de planificación acabe (de forma aleatoria); y ii) supondremos que
los beneficios, las recurrencias de estado, y las fuentes de incertidumbre son estacionarios (no
dependen del período). Con esto en mente, tendremos que la ganancia asociada al periodo n esta
dada por
gn (an , ω) ≡ αn g(an , ω),
donde α ∈ (0, 1) es una tasa de descuento. De esta forma, el siguiente problema base toma la
forma
N
( " ))
X
n
VN (S) := J1 (S) = máx E α g(µn (Sn ), Sn , W ) ,
µ∈U
n=1
sujeto a la condición que Sn+1 = f (an , Sn , W ), con S1 = S, donde α ∈ (0, 1] denota un factor de
descuento (i.e. representa el hecho que una unidad monetaria hoy vale más que la misma unidad
mañana).
Notamos que VN (S) denota la ganancia óptima acumulada en N periodos de operación cuando
el sistema parte en el estado S. Esto es posible dado que la ganancia solo depende del periodo
a traves del descuento aplicado, a que la recurrencia de estados es la misma para todos los
periodos, y que la incertidumbre W distribuye igual en todos los periodos.
Un ejemplo del problema que estudiamos esta sección es el problema de inventario multi-periodo,
cuando las demandas forman una secuencia independiente e idénticamente distribuida, e incor-
poramos una tasa de descuento para contabilizar las ganancias.
con condición de borde J0 (S) = 0 para todo estado S. Con esta notación el problema de horizonte
infinito se define como
V (S) := lı́m Vn (S).
n→∞
Notamos que esta definición no especifica la política de acción que resuelve el problema de
horizonte infinito. Normalmente, impondremos condiciones sobre los párametros del problema
para que el límite de arriba exista. Por ejemplo, cuando α < 1, es suficiente tener que |g(·)| < K
33
para alguna constante finita K 1 Para el caso de α = 1, es suficiente imponer que existe al menos
un estado absorbente (esto es, un estado tal que si alguna vez el sistema ingresa a él, no es posible
escapar en el futuro), que genera ganancia nula, al cual se puede acceder con probabilidad positiva
desde cualquier otro estado, bajo cualquier política.
Notamos que de existir el límite, este debe ser tal que (2.6) se mantiene válida, pero ahora como
una ecuación de punto fijo. Esta ecuación es la versión de horizonte infinito de la ecuación de
Bellman. El siguiente resultado formaliza esto, y nos dice que la política óptima es una política
estacionaria (esto es, la acción que aplica depende solamente del estado en el que se encuentra
en el sistema, independiente de cuando esto ocurre).
En lo que resta de esta sección describiremos tres métodos numéricos para resolver los problemas
de horizonte infinito descontado. En lo que sigue dejamos S ser el espacio de estados posibles del
sistema.
Notamos que V , la solución a la ecuación de Bollan, es tal que (T V ) = V . Es posible probar que
el mapa (T ·) es una contracción; es decir, para dos funciones W y W ′ , se tiene que
1
Notamos que bajo estas condiciones el valor absoluto de la ganancia óptima acumulada como función de n
1
no puede diverger, dado que se encuentra acotada superiomente por K 1−α , para todo n.
34
Algorithm 1 Value Iteration
Fije V 0 arbitrariamente.
Calcule V 1 = (T V 0 ), y fije k = 0.
while máxS∈S |V k+1 (S) − V k (S)| < ϵ do
k =k+1
V k+1 = (T V k )
end while
Notamos que el algoritmo funciona partiendo desde cualquier condición inicial. En particular,
si se parte con V 0 = 0, entonces se tiene que V k = Jk . La cantidad ϵ > 0 en la condición de
término representa un margen de tolerancia a la convergencia.
Para una política estacionaria µ(·), definimos la función Vµ (·) como el beneficio acumulado aso-
ciado a implementar dicha política, como función del estado inicial. Dicha función se puede
calcular mediante la recursión
(Este es un sistema de ecuaciones lineales, el que debiese ser “fácil” de resolver). El siguiente
algoritmo opera en el espacio de las políticas estacionarias.
end while
La convergencia de {µk (·) : k = 1, . . .} a µ∗ está asegurada por los mismos argumentos que
aseguran la convergencia del algoritmo de Value Iteration.
35
Teorema 2.2. Monotonicidad
Supongamos que se tiene una función W tal que W (·) ≥ (T W )(·) de forma puntual, entonces
aplicación reiterada del mapa T más la convergencia del algoritmo del algoritmo de Value Itera-
tion garantizan que W ≥ V . Esto, en conjunto con la ecuación de Bellman nos dice que V es el
vector W más “pequeño” que satisface la condición W ≥ (T W ). Con esto, podemos escribir V
como la única solución a un programa de programación lineal, lo que nos da un tercer algoritmo
de resolución.
36
2.6. Ejercicios Resueltos
Solución: Claramente las etapas están dadas por los alumnos, por lo que
Sea Qn la variable aleatoria que representa la calidad del estudiante n. Sabemos que
Dado que estado debe representar la información necesaria para tomar dicha decisión, tenemos
que
Sn = Qn (calidad observada del estudiante n.)
Con esta definición de estado, la dinámica de la variable de estado está dada por2
JN +1 (·) = 0
7
( )
1X
Jn (Sn ) = máx Sn , Jn+1 (k) .
7
k=1
Notamos que el primer término en el máximo arriba representa la decisión de contratar al estu-
diante n, mientras que el segundo representa la decisión de pasar a la entrevista del estudiante
n + 1.
2
Notemos que fn (un , Sn , ω) = Qn+1 (ω) calza con la estructura para la recursión, dado que Qn+1 es una
variable aleatoria, por lo que es precisamente una función de ω.
37
Pregunta 2.3. Control 1 - Primavera 2018
Suponga que usted se encuentra asesorando a un grupo de N senadores del congreso esta-
dounidense durante la votación para confirmar al próximo juez de la corte suprema. Durante
la votación, los senadores son llamados a votar en el piso del senado en orden aleatorio. Al
ser llamado, cada senador pronuncia si está a favor o en contra de la confirmación.
Usted sabe que cada senador (excluyendo a sus empleadores) votará por confirmar al juez,
independientemente del resto y del resultado parcial de la votación, con probabilidad p.
Suponga que el número total de senadores es impar, y que gana la opción más votada.
De esta forma, los senadores comienzan a ser llamados en orden aleatorio; si no es el turno
de uno sus empleadores, el senador vota por confirmar al juez con probabilidad p; si es el
turno de uno de los N senadores, usted decide por que opción votará el senador en función
del conteo parcial de votos, como han votado sus empleadores hasta el momento, y cuantos
de sus empleadores quedan por votar.
Considerando que el senado esta compuesto por M senadores (incluyendo a sus empleadores,
con M > N ), defina un problema de programación dínamica que maximize la esperanza del
número de sus empleadores que vota por la opción ganadora.
(Hint: defina como etapas cada una de las ocasiones de voto, M en total, independiente de
si el voto es dado por uno de sus empleadores.)
Solución #1.
Etapas: las ocasiones de voto: en la etapa n le toca votar al n-esimo senador llamado a
votar.
• Sn1 = votos registrados a favor de la confirmación justo antes que vote el n-esimo
senador
Decisión:
1 si voto va para opción de confirmar
Xn =
0 ∼ .
Notar que la variable de decisión solo es relevante en el caso que el siguiente en votar es
38
uno de los empleadores.
Incertidumbre:
1 si le toca votar a un senador de los empleadores
Wn =
0 ∼ .
1 si el voto n-esimo va para la opción de confirmar
Zn =
0 ∼ .
2
Sn
Notar que Wn se distribuye Bernoulli con parámetro M −n+1 , y que Zn se distribuye Ber-
noulli con parámetro p, pero solo es relevante en el caso que el voto no es dado por un
empleador.
Recurrencia:
1
Sn+1 = Sn1 + Wn Xn + (1 − Wn )Zn
2
Sn+1 = Sn1 − Wn
3
Sn+1 = Sn3 + Wn xn .
Bellman:
Condición de borde:
3 1 3 1
JN +1 (SN +1 ) = SN +1 1{SN +1 > M/2} + N − SN +1 1{SN +1 < M/2}
S1 = (0, N, 0).
Solución #2. La siguiente es una forma alternativa de modelar el problema. Su ventaja es que
no requiere definir aleatoriedad ni decisión, ni tampoco recurrencia de estados, dado que todas
estas componentes se explicitan en la ecuación de Bellman:
Etapas: las ocasiones de voto: en la etapa n le toca votar al n-esimo senador llamado a
votar.
• Sn1 = votos registrados a favor de la confirmación justo antes que vote el n-esimo
senador
39
Bellman:
Sn2
p Jn+1 (Sn1 + 1, Sn2 , Sn3 ) + (1 − p) Jn+1 (Sn1 , Sn2 , Sn3 )
Jn (Sn ) = 1−
M −n+1
Sn2
máx Jn+1 (Sn1 + 1, Sn2 − 1, Sn3 + 1), Jn+1 (Sn1 , Sn2 − 1, Sn3 ) .
+
M −n+1
Condición de borde:
3 1 3 1
JN +1 (SN +1 ) = SN +1 1{SN +1 > M/2} + N − SN +1 1{SN +1 < M/2}
S1 = (0, N, 0).
Usted se dispone a disputar la final mundial de Cachipún competitivo. La final consiste una
serie de juegos, donde usted y su rival, simultáneamente eligen y muestran un símbolo de
piedra (r), papel (p) o tijera (s). Las reglas de cada juego son: p vence a r, r vence a s, y s
vence a p. Si ambos jugadores despliegan el mismo símbolo, el juego termina en empate. La
serie de juegos termina cuando usted o su rival alcanzan un total de N juegos ganados.
Su rival en la final es Boris, quien adopta una estrategia de juego Markoviana: la secuencia
de símbolos que muestra forma una cadena de Markov en tiempo discreto, caracterizada por
una matriz de transición P y una distribución inicial π0 .
1. Muestre que la política (“greedy”) que maximiza la probabilidad de ganar cada juego
(ej. partir jugando p en el primer juego), sin considerar el futuro, no es óptima para el
caso N = 2, π0 = (0,7, 0,2, 0,1) y
1 0 0
P =
0 1 0 .
1/3 1/3 1/3
(Hint: muestre que la probabilidad de ganar la final es estrictamente menor que uno en
ese caso, y que existe otra política que gana la final con probabilidad 1.)
Solución parte 1. Jugando primero papel, existe la posibilidad que Boris juegue tijera, lo que
lo dejaría con ventaja de un juego, y después, la probabilidad de que Boris gane la final es un
tercio, independiente de lo que decidamos mostrar. Por lo tanto, la probabilidad de ganar la fina
les estrictamente menor a 1.
Si jugamos primero piedra, pueden pasar 3 cosas. Primero, si Boris juega piedra o papel, no-
sotros podremos anticipar con seguridad sus jugadas en el futuro, por lo tanto le ganamos con
40
probabilidad 1. Si Boris juega tijeras, le ganamos, quedamos con ventaja, y en la próxima ron-
da nuevamente jugamos piedra, y el ciclo se repite (si ganamos, la final terminar, si perdemos,
podemos anticipar todas las jugadas futuras de Boris, y le ganamos con probabilidad 1).
Solución parte 2.
Estado. yn : símbolo mostrado por Boris en el juego n − 1; (y1,n , y2,n ) : par ordenado con
el número acumulado de victorias propias y de Boris, respectivamente.
Recurrencia. yn+1 = wn ;
z1,n + 1 si gano juego n z2,n + 1 si Boris gana juego n
z1,n+1 = z2,n+1 =
z
1,n∼ z
2,n ∼
Bellman.
J(yn , (z1,n , z2,n )) = máx{Ewn {J(yn+1 , zn+1 )}}, z1,n , z2,n < N
xn
J(yn , (N, z2,n ))) = 1, z2,n < N
J(yn , ((z1,n , N ))) = 0, z1,n < N.
Boris recibió como regalo una versión generalizada del juego del gato: se juega sobre un tablero
de N × N celdas (N filas y N columnas), las cuales son marcadas una a una y de manera
alternada por ambos jugadores, cada uno con un símbolo diferente al de su rival, hasta que
uno de ellos haya marcado k celdas contiguas dentro de una misma fila, una misma columna,
o incluso en diagonal. El primero en lograr esto, gana. Una celda que ya ha sido marcada no
puede volver a ser marcada por ninguno de los dos jugadores.
Boris desea desafiar a su mejor amigo, a quien conoce tan bien que considera saber exacta-
mente qué casillero marcaría éste ante cualquier escenario posible. Proponga un modelo de
programación dinámica mediante el cual Boris pueda decidir si comenzar o ceder el primer
turno, suponiendo que solamente valora ganar.
41
Solución. En la jugada n de Boris, el estado es un par ordenado (Sbn , San ) donde Sbn es el conjunto
de casillas marcadas por Boris y San son las casillas marcadas por su amigo, antes de la jugada
n. La decisión de Boris es que casilla jugar.
Respecto al conocimiento de Boris acerca su amigo, supondremos que conocemos una función
f (Sb , Sa ) que entrega la casilla que marca el amigo cuando se enfrenta al estado (Sb , Sa ). Su-
pondremos que esta función entrega el conjunto vacío si el juego ya ha terminado en el estado
(Sb , Sa ).
Finalmente definimos el conjunto de estados B como aquellos en los cuales Boris gana el juego,
y C el conjunto de estados donde el juego aun no termina. Con esto, el modelo es
Estado: (Sbn , San ), las casillas marcadas antes de n por Boris y su amigo.
Ecuación de Bellman:
Jn (Sbn , San ) = 1{(Sbn , San ) ∈ B} + {1{(Sbn , San ) ∈ C} máx Jn+1 (Sbn+1 , San+1 ).
xn ∈(Sbn ∪San )c
Para ver si le conviene partir a Boris simplemente comparamos J1 (∅, ∅) con J1 (∅, f (∅, ∅)). Si
ambos son 0, entonces concluimos que el juego siempre concluye en empate (piense en el caso de
N = 3). Si J1 (∅, ∅) = 1 entonces escogemos partir; si J1 (∅, f (∅, ∅)) = 1 escogemos que parta el
amigo; si ambas son positivas, el amigo no cacha mucho como jugar, le ganamos siempre.
Obs: Notar que no necesitamos indexar las funciones usando n, dado que esto esta implícito en
las cardinalidades de los conjuntos Sb y Sa .
42
cualquier tamaño, y testear dichos subgrupos de forma grupal siguiendo la política descrita en
el párrafo anterior. Para su beneficio, usted puede testear los sub-grupos de forma secuencial,
por lo que al momento de decidir el tamaño del subgrupo n + 1 de individuos a testear, usted
ya cuenta con el diagnostico de cada uno de los individuos pertenecientes a los n sub-grupos
anteriores.
b) Utilice lo anterior para mostrar que condicional en el resultado de los primeros I in-
dividuos diagnosticados, P se distribuye Beta(1 + i, 1 + I − i), donde i representa el
número de individuos (entre estos I totales) diagnosticados con el virus.
e) Suponga ahora que usted tan solo cuenta con presupuesto para realizar a lo más Q
exámenes PCR: modifique su formulación para maximizar la probabilidad de alcanzar
a diagnosticar a toda la población.
Concluimos que fi (·) es la densidad de una variable aleatoria distribuida Beta(α + i, β + k − i).
43
Solución parte b) Notamos que la distribución uniforme (0, 1) corresponde a una distribución
Beta con parámetros α = 1 y β = 1. Notamos además que condicional en la prevalencia P = p, el
número de individuos diagnosticados con el virus entre los primeros I individuos diagnosticados
distribuye Binomial(p, I). El resultado entonces sigue de la aplicación directa del resultado en
la parte a).
Solución parte d)
Periodos: (n) - un periodo comienza cuando definimos el tamaño del próximo subgrupo a
testear, y termina cuando recibimos el diagnostico de dicho grupo.
Estado: (Kn , In ) - el número de individuos diagnosticados antes del comienzo del período
n, y el número de individuos diagnosticados con el virus antes del comienzo del período n.
Recursión de estado:
Kn+1 = Kn + kn , In+1 = In + wn .
Bellman: definiendo
α,β B(α + i, β + k − i) k
qk,i := ,
B(α, β) i
tenemos que Bellman toma la siguiente forma:
kn
( )
1+In ,1+Kn 1+In ,1+Kn
X
Jn (Kn , In ) = máx 1 + 1 − qkn ,0 kn + qkn ,i Jn+1 (Kn + kn , Ii + i) .
1≤kn ≤K−Kn
i=0
Condición de borde:
Jn (K, ·) = 0, ∀ n.
Solución parte e)
Periodos: (n) - un periodo comienza cuando definimos el tamaño del próximo subgrupo a
testear, y termina cuando recibimos el diagnostico de dicho grupo.
44
Estado: (Kn , In , Qn ) - el número de individuos diagnosticados antes del comienzo del pe-
ríodo n, el número de individuos diagnosticados con el virus antes del comienzo del período
n, y el número de tests utilizados para diagnosticar a los individuos antes del comienzo del
período n.
Recursión de estado:
Bellman: definiendo
α,β B(α + i, β + k − i) k
qk,i
:= ,
B(α, β) i
tenemos que Bellman toma la siguiente forma:
(k )
n
qk1+I n ,1+Kn
X
Jn (Kn , In , Qn ) = máx n ,i
Jn+1 (Kn + kn , Ii + i, Qn + 1 + kn 1{i > 0}) .
kn ≤K−Kn
i=0
Condición de borde:
1 Qn ≤ Q
Jn (K, In , Qn ) = ∀ n.
0 ∼
Solución. Suponemos que la red de metro consiste en un grafo dirigido G = (N, A).
Estado: (S, i), donde S representa el conjunto de estaciones que ya han sido visitadas, y i
representa la ubicación actual del turista.
Bellman:
45
Pregunta 2.8. Control 1 - Otoño 2022
El tiempo que demora un piloto en dar una vuelta al circuito utilizando un neumático tipo
i depende del número de vueltas que ya se han completado utilizando ese neumático (el
cual sirve como un proxy del porcentaje de desgaste del neumático): si el número de vueltas
completadas con un neumático es n, entonces el tiempo que demora en completar la siguiente
vuelta es f (i, n). De forma similar, realizar una vuelta con neumáticos usados en las n vueltas
previas resulta en una ruptura de algún neumático con probabilidad r(i, n), con lo cual el
piloto debe abandonar la carrera (y por lo tanto el tiempo de carrera es ∞). Considere que
una parada en Pit suma p segundos al tiempo de la vuelta en que se realiza la parada.
Al comienzo de cada una de las N vueltas de la próxima carrera, usted debe decidir si pasar
o no a Pit. Para esto considere que por regla, cada piloto debe utilizar por lo menos dos
tipos de neumáticos diferentes en cada carrera (es decir, no es valido usar el mismo tipo de
neumático toda la carrera, independiente de cuantas veces se entre a Pit). Adicionalmente
asuma que la entrada y salida de Pit se encuentran inmediatamente después de la linea de
meta.
• x2n ∈ {duro, medio, blando} es el tipo de neumático a utilizar, si es que se entra a pit.
46
forma. (No es necesario definirla en esta formulación, esto se ve directamente en la ecuación
de Bellman)
Recursión de estado:
1
x2
n si x1n =1 2
1 si x1n = 1
Sn+1 = , Sn+1 = ,
S 1 ∼ S 2 + 1 ∼
n n
3
1 si x1n = 1 ∩ x2n ̸= Sn1 4
Sn+1 = , Sn+1 = Sn4 + p · x1n + f (Sn+1
1 2
, Sn+1 − 1).
S 3 ∼
n
Bellman:
1 2
Vn (Sn ) = máx{ 1 − r(Sn+1 , Sn+1 − 1) Vn+1 (Sn+1 )}.
xn
Condición de borde:
4 3
VN +1 (SN +1 ) = 1{SN +1 ≤ T ∩ SN +1 = 1}.
Considere el problema del vendedor viajero, donde un vendedor debe decidir el orden en el
que se deben recorrer N ciudades de forma de minimizar la distancia total recorrida. Como
restricción el viajero parte y termina su recorrido en una ciudad fija (arbitraria). Defina di,j
como la distancia entre las ciudades i y j.
Suponga adicionalmente que el tiempo de viaje entre las ciudades i y j es aleatorio y distri-
buido de acuerdo a Fi,j .
47
Solución parte b).
Estado: Sn , ciudades que faltan visitar; in , cuidad donde está el vendedor; tn , tiempo que
resta para terminar el recorrido.
Incertidumbre: τi,j ∼ Fi,j , tiempo que demora recorrer tramo (i, j).
Solución.
Decisión: xn ∈ {1, . . . , N } indica el índice del paciente que se atenderá durante el periodo
n.
48
Recurrencia estados: Dados el estado Sn y la decisión xn , tenemos que
Bellman:
Vn (Sn ) = mı́n {txn · (N − n) + Vn+1 (Sn+1 )}.
xn ∈Pn
Condición de borde:
0 bN +1 ≥ 0
VN +1 =
∞ ∼ .
Al comienzo de cada semana usted decide cuantas unidades del producto fabricar. Considere
que el costo marginal de producir una unidad es c pesos (no existen costos fijos), que los
productos fabricados quedan disponibles de forma inmediata (al comienzo de la semana) en
la fabrica, y que debido a la naturaleza del producto, al cabo de una semana, todo inventario
sin vender se descarta. Tras finalizar la tarea de producción semanal, al inspeccionar los
productos para determinar su calidad, hay una probabilidad p ∈ (0, 1) que un producto
(independiente de todo lo demás) presente fallas. La empresa no vende productos fallidos, y
no produce más productos para reemplazar aquellos con fallas.
49
Solución parte a)
Etapas: N semanas.
wn ∼ Binomial(Pn , p).
Función Objetivo:
Restricción: c Pn + Mn ≤ Kn .
Casos borde:
K1 = B, VN +1 (KN +1 ) = 0.
Solución parte b) Supondremos que la demanda tiene la misma distribución todas las sema-
nas.
w ∼ Binomial(P, p).
Recurrencia de estado:
K ′ = K + ∆ − c P + M.
Función Objetivo:
Restricción: 0 ≤ c P + M ≤ K.
50
Pregunta 2.12. Examen - Otoño 2024
Usted cuenta con N unidades de un producto que puede vender a clientes que llegan a su
tienda durante los próximos T días. Cada día un cliente visita la tienda, e independiente de
todo, compra una unidad del producto con probabilidad f (p), donde p es el precio ofrecido
al cliente. Al comienzo de cada día usted debe escoger que precio cobrar por el producto,
entendiendo que solo existen dos precios posibles (p1 y p2 , donde p1 ̸= p2 ). Plantee un modelo
de programación dinámica que maximice la ganancia obtenida por la venta de productos,
considerando que durante el horizonte de planificación solamente se puede cambiar el precio
de un día al siguiente en a lo más C oportunidades.
Solución.
Recursiones.
Nt+1 = Nt − Dt , Ct+1 = Ct + 1{Pt ̸= Pt−1 }.
Bellman.
Vt (St ) = máx {Pt · f (Pt ) + f (Pt )Vt+1 (Nt − 1, Ct+1 , Pt ) + (1 − f (Pt )Vt+1 (Nt , Ct+1 , Pt−1 ))} .
Pt ∈{p1 ,p2 }
Condiciones de borde.
• V (NT +1 , CT +1 , PT ) = 0.
51