Sequential Decision Analytics and Modeling 2nd edition
Back to SDA site →

**Capítulo 1: Modelado de problemas de decisión secuencial**

El proceso de resolver cualquier problema físico (y en particular cualquier problema de decisión secuencial) en la computadora requiere construir un modelo matemático, como se ilustra en la Figura 1.1. Durante décadas, la comunidad de investigación ha utilizado un marco matemático estándar para problemas de decisión donde todos los datos se conocen de antemano (conocido como optimización determinística). Una versión simple de un problema de optimización determinística, conocida como programa lineal, podría escribirse

\[\begin{align} \min_x c^T x, \label{eq:linearprogram1} \end{align}\]

donde $x$ es un vector de elementos que deben satisfacer un conjunto de restricciones que típicamente se escriben

\[\begin{align} A x & = b, \label{eq:linearprogram2}\\ x & \geq 0. \label{eq:linearprogram3} \end{align}\]
El puente entre el mundo real y la computadora es un modelo matemático.
Figura 1.1. El puente entre el mundo real y la computadora es un modelo matemático.

No es necesario entender las ecuaciones $\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$ (lo cual requiere familiaridad básica con álgebra lineal), pero cada año miles de estudiantes se gradúan de cursos donde aprenden esta notación, y también aprenden cómo traducir una amplia variedad de problemas físicos a esta notación. Luego, existen paquetes de software que traducen problemas en este formato a una solución. Lo más importante, este lenguaje notacional se habla en todo el mundo. La misma afirmación puede hacerse sobre el modelado estadístico/aprendizaje automático, que hoy en día es una comunidad mucho más grande que la de las personas que entienden las ecuaciones $\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$.

No podemos hacer la misma afirmación sobre los problemas de decisión secuencial, que es una clase de problema estudiada por al menos 15 comunidades diferentes utilizando ocho estilos notacionales fundamentalmente distintos, a menudo empleando matemáticas que requieren formación avanzada. En este libro, utilizamos un estilo de enseñanza por ejemplos para mostrar cómo modelar la clase increíblemente rica de problemas que llamamos problemas de decisión secuencial. Aunque nos enfocamos en problemas relativamente más simples, nuestro marco puede utilizarse para modelar cualquier problema de decisión secuencial. Además, el modelo resultante puede traducirse directamente a software.

El fundamento analítico de este libro está contenido en Reinforcement Learning and Stochastic Optimization: A unified framework for sequential decisions (RLSO), que es un texto de nivel de posgrado centrado en la metodología. De vez en cuando nos referiremos a material de ese libro para lectores que puedan estar interesados en mayor profundidad, y animamos a los lectores con inclinación técnica a usar RLSO como referencia. Sin embargo, no es necesario. Este libro está diseñado para proporcionar el trasfondo contextual en forma de una serie de ejemplos que deberían permitir a los lectores pensar de manera clara y precisa sobre los problemas de decisión secuencial, incluso si nunca van a escribir una línea de código.

Este libro está dirigido a estudiantes de nivel de licenciatura o maestría que hayan tomado un curso de probabilidad y estadística (no se necesita conocimiento de programación lineal, aunque tenemos un ejemplo que requiere resolver un programa lineal). Todos los capítulos están construidos en torno a ejemplos específicos, con la excepción del capítulo 1, que ofrece una visión general de todo el marco de modelado, y el capítulo 7, donde nos detenemos y usamos los primeros seis capítulos para ilustrar algunos principios importantes.

La presentación no debería requerir matemáticas más allá de lo que se esperaría en un primer curso de probabilidad y estadística. Dicho esto, el libro está centrado en mostrar cómo describir problemas de decisión secuencial utilizando una notación que sea lo suficientemente precisa como para poder ser la base de software de computadora.

Módulos de Python acompañan a la mayoría de los capítulos; estos módulos fueron escritos en torno al marco de modelado que recorre todo el libro. Al mismo tiempo, cualquier paquete de software que simule un problema de decisión secuencial, sin importar cómo se esté resolviendo, puede traducirse directamente al marco de modelado que utilizamos. Por esta razón, animamos a los lectores a ver cualquier pieza de notación como una variable en un programa de computadora.

Primeros pasos

Los problemas de decisión secuencial siempre pueden escribirse como

\[\text{decisión},\ \text{información}, \ \text{decisión}, \ \text{información}, \ \text{decisión}, \ldots\]

Cada vez que tomamos una decisión, incurrimos en un costo o recibimos una contribución o recompensa (hay muchas formas de medir el desempeño). Las decisiones se toman con un método al que nos referiremos como una política. Un objetivo importante que es un enfoque central de este libro es diseñar políticas efectivas que funcionen bien a lo largo del tiempo, en presencia de la incertidumbre de información que aún no ha llegado.

Los problemas de decisión secuencial son omnipresentes, surgiendo en prácticamente todos los procesos humanos. La Tabla 1.1 proporciona una lista de muestra de campos, con ejemplos de algunas de las decisiones que podrían surgir. La mayoría de estos campos probablemente tienen muchos tipos diferentes de decisiones, que van en complejidad desde cuándo vender un activo o adoptar un nuevo diseño web, hasta elegir el mejor medicamento, material o instalación para diseñar, o gestionar cadenas de suministro complejas o despachar una flota de camiones.

CampoPreguntas
Negocios¿Qué productos deberíamos vender, con qué características? ¿Qué suministros deberías usar? ¿Qué precio deberías cobrar?
Economía¿Qué tasa de interés debería cobrar la Reserva Federal dado el estado de la economía? ¿Qué niveles de liquidez de mercado deberían proporcionarse?
Finanzas¿En qué acciones debería invertir una cartera? ¿Cómo debería un operador cubrir un contrato ante una posible baja?
Internet¿Qué anuncios deberíamos mostrar para maximizar los clics en anuncios? ¿Qué películas atraen más atención? ¿Cuándo/cómo deberían enviarse avisos masivos?
Ingeniería¿Cómo diseñar dispositivos, desde latas de aerosol hasta vehículos eléctricos, puentes hasta sistemas de transporte, transistores hasta computadoras?
Salud pública¿Cómo deberíamos realizar pruebas para estimar la progresión de una enfermedad? ¿Cómo deberían asignarse las vacunas? ¿Qué grupos de población deberían ser el objetivo?
Investigación médica¿Qué configuración molecular producirá el medicamento que mate más células cancerosas? ¿Qué conjunto de pasos se requiere para producir nanotubos de pared simple?
Gestión de la cadena de suministro¿Cuándo deberíamos realizar un pedido de inventario desde China? ¿Qué proveedor debería utilizarse?
Transporte de carga¿Qué conductor debería mover una carga? ¿Qué cargas debería comprometerse a mover un transportista de carga completa? ¿Dónde deberían domiciliarse los conductores?
Recolección de información¿A dónde deberíamos enviar un dron para recopilar información sobre incendios forestales o especies invasoras? ¿Qué medicamento deberíamos probar para combatir una enfermedad?
Sistemas multiagente¿Cómo debería una gran empresa en un mercado oligopolístico ofertar en contratos, anticipando la respuesta de sus competidores?
Algoritmos¿Qué regla de tamaño de paso deberíamos usar en un algoritmo de búsqueda? ¿Cómo determinamos el siguiente punto para evaluar una función costosa?

Tabla 1.1. Una muestra de diferentes campos y decisiones que deben tomarse dentro de cada campo.

Aún más desafiante que enumerar todos los tipos de decisiones es identificar las diferentes fuentes de incertidumbre que surgen en muchas aplicaciones. El comportamiento humano, los mercados, los procesos físicos, las redes de transporte, los sistemas energéticos y el amplio conjunto de incertidumbres que surgen en la salud dan una idea de la diversidad de diferentes fuentes de incertidumbre.

Mientras se escribe este libro, la humanidad está luchando con la propagación de variantes de COVID-19. Lidiar con esta pandemia ha sido descrito como “de una complejidad alucinante” [USA Today, 8 de septiembre de 2020], pero esto es en realidad un subproducto de no pensar el problema de manera estructurada. Vamos a mostrar al lector cómo descomponer los problemas en una serie de componentes básicos que conducen a soluciones prácticas.

Nuestro enfoque comienza identificando algunos elementos centrales, como métricas de desempeño, decisiones y fuentes de incertidumbre, lo que luego lleva a la creación de un modelo matemático del problema. El siguiente paso suele ser (pero no siempre) implementar el modelo en la computadora, pero habrá muchos problemas en los que el proceso de construir un modelo computacional resulte poco práctico por diversas razones. Por esta razón, también vamos a considerar problemas en los que debemos probar y evaluar ideas en el campo. Para mejorar el desempeño, primero necesitamos aprender a tomar buenas decisiones a lo largo del tiempo (así es como controlamos el sistema). Luego, pasamos al diseño del sistema.

En este momento, la comunidad académica no ha adoptado un proceso de modelado estándar para los problemas de decisión secuencial. Esto contrasta fuertemente con el ámbito de los problemas de optimización estática y determinística, que han seguido un marco estricto desde la década de 1950 (las ecuaciones $\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$ representan una muestra de este marco). Nuestro proceso de modelado se basa en la presentación de RLSO, que es un libro dirigido a una audiencia técnica principalmente interesada en desarrollar e implementar modelos en la computadora.

En contraste, este libro está dirigido a una audiencia más amplia que está interesada, ante todo, en aprender a pensar sobre los problemas de decisión secuencial. Utiliza un estilo de enseñanza por ejemplos que se enfoca en comunicar el proceso de modelado, el cual creemos que puede ser útil incluso sin llegar finalmente a crear modelos computacionales. Central a nuestro enfoque es la creación de un modelo matemático que elimina la ambigüedad al describir problemas en lenguaje llano. Para los lectores interesados en desarrollar modelos computacionales, la notación es el paso previo para escribir software. Sin embargo, vamos a usar principalmente la notación matemática para crear claridad al describir un problema, incluso si el lector nunca tiene la intención de escribir una línea de código.

Nuestra presentación procede de la siguiente manera:

Los capítulos de aplicación (2–6 y 8–14) siguen todos el mismo esquema. Pueden abordarse en cualquier orden, teniendo en cuenta que las aplicaciones de los capítulos 2–6 son más simples y fueron elegidas para ilustrar cada una de las cuatro clases de políticas. Los lectores interesados en temas de modelado específicos (como variables de estado, modelado de la incertidumbre, o ver diferentes ejemplos de políticas) pueden hojear los capítulos, saltando directamente a los temas que les interesen.

Cada capítulo cierra con una serie de ejercicios divididos en tres categorías:

Entonces, ¿qué es una decisión?

Existe una larga historia, que se remonta a más de 2,000 años atrás, a los tiempos de Sócrates, Aristóteles y Platón, que documenta el estudio de cómo las personas toman decisiones. Luego existe una literatura sustancial, principalmente desde la década de 1950 (aunque con algunos trabajos importantes anteriores) sobre las matemáticas de tomar decisiones óptimas, que consiste en muchos miles de artículos y libros. Lo que esta literatura parece pasar por alto es la pregunta básica:

¿Qué es una decisión?

Comenzamos con la observación de que una decisión es una forma de información que afecta el comportamiento de algún “sistema” que buscamos controlar. Implícito en este sistema hay una o más medidas que cuantifican qué tan bien está funcionando nuestro sistema. Luego tenemos que identificar un agente que controle algún aspecto de nuestro sistema.

Dado este fundamento, ayuda identificar tres clases de información:

  1. El estado de conocimiento – Esta es información que tenemos en este momento que es relevante para el desempeño de nuestro sistema.
  2. Información que cambia el estado de conocimiento que nosotros controlamos (esto requiere identificar un agente controlador para nuestro sistema).
  3. Información que llega a nuestro sistema y que cambia el estado de conocimiento, la cual está fuera de nuestro control.

Nos referimos a la información de la clase 2 como decisiones. Esto sugiere una definición formal de una decisión, basándose en Bridging Decision Problems, Volume I: Framing the Problem:

Definición (formal): Una decisión es una clase de información controlable endógenamente.

Una definición informal podría ser:

Definición (informal): Una decisión es algo que controlamos.

Estas definiciones ofrecen un punto de partida, pero no aprendemos mucho de ellas. Mucho más interesante es identificar ejemplos específicos de decisiones, lo cual hacemos a continuación.

Tipos de decisiones

Hemos identificado 10 tipos de decisiones basándonos en los contextos y las herramientas que podríamos usar para determinar las mejores decisiones. Estas son:

1) Decisiones físicas y financieras – Estas decisiones surgen en la gestión de recursos físicos y financieros, como personas, equipo, instalaciones, productos, agua, energía, así como recursos financieros como efectivo o inversiones. Las decisiones incluyen comprar, vender y modificar recursos, donde una modificación podría significar moverlo de un lugar a otro, reparar equipo, capacitar a una persona, o combinar ingredientes para hacer un pastel.

2) Decisiones complejas/estratégicas – Son decisiones que pueden realizar múltiples cambios en un sistema (cambiando recursos, parámetros, creencias), y que típicamente involucran fuentes significativas de incertidumbre. Estas decisiones normalmente se evalúan una sola vez, pero puede existir la opción de esperar y tomar la decisión más adelante.

3) Decisiones de adquisición/observación de información – Estas incluyen decisiones como realizar experimentos en el laboratorio, pruebas de campo, o simulaciones por computadora. Podría incluir realizar investigación de mercado, contratar a un experto, o consultar a un modelo de lenguaje grande.

4) Decisiones de comunicación/intercambio de información – Estas se presentan en dos formas:

5) Métricas de desempeño y objetivos – Estas representan la elección crítica de cuantificar lo que estamos tratando de lograr, como maximizar ingresos, minimizar costos, minimizar la enfermedad, o maximizar los votos recibidos.

6) Elección de funciones – Estas pueden ser métodos para tomar decisiones (políticas), la formulación de modelos de optimización, la elección de métricas de desempeño, métodos para pronosticar o estimar, o el diseño de funciones de transición (como la forma en que se propaga una enfermedad).

7) Establecimiento de parámetros – A menudo hay varios parámetros que afectan el desempeño de un sistema. Estos podrían ser precios, los coeficientes en un modelo estadístico, la temperatura usada en un proceso de fabricación. Podrían ser el peso asignado a una métrica de desempeño, o metas de desempeño.

8) Estimación o identificación – Podríamos necesitar identificar a una persona, pronosticar la demanda, o nombrar una enfermedad.

9) Características y comportamientos – Cómo diseñar un producto, qué características debe tener un paquete de software, qué servicios se deben brindar a un cliente, o la especialidad de un estudiante, que determina con qué habilidades se gradúa.

10) Decidir qué decidir – Aunque generalmente no usamos el análisis formal para esta última decisión, es importante reconocer cuándo estamos tomando una decisión, y si queremos abordarla formalmente usando análisis de datos y modelado.

Implícito en la identificación de decisiones está la comprensión de cómo la decisión afecta el desempeño del sistema. Mover recursos físicos (tipo 1) conlleva un costo, mientras que satisfacer demandas genera ingresos. Una decisión puede tener un impacto inmediato en una o más métricas de desempeño (como ocurre a menudo con la gestión de recursos), pero a menudo las decisiones deben evaluarse a lo largo del tiempo, y dependen de información que no se conoce cuando se toma la decisión. Por esta razón, con frecuencia estamos evaluando cómo estamos tomando las decisiones (es decir, el método) en lugar de la decisión en sí.

Enmarcando el problema

El primer paso al abordar un problema de decisión implica responder tres preguntas:

Nótese que las respuestas a estas preguntas son fundamentales para cualquier problema de decisión. En este libro, estas preguntas parecerán bastante simples, porque las respondemos en el contexto de los modelos que ya hemos diseñado para resolver un problema. En aplicaciones reales, las listas de métricas de desempeño, decisiones e incertidumbres pueden ser bastante extensas.

Como indicio de la riqueza que puede tener el enmarcado de un problema, animamos al lector a consultar la monografía Framing the Problem que está dedicada precisamente a este tema. La monografía tiene capítulos enteros dedicados a cada una de estas preguntas, que se ilustran usando una docena de aplicaciones diferentes.

El objetivo del proceso de enmarcado es identificar lo que importa, comenzando con las métricas de desempeño, donde incluso un problema simple de inventario puede describirse con más de 20 métricas de desempeño, 30 tipos diferentes de decisiones y más de 30 tipos de incertidumbres. La hoja de cálculo que enumera estos se puede encontrar en tinyurl.com/PowellInventoryDecisions. Esto no significa que en realidad vayamos a construir un modelo con toda esta complejidad. Por esta razón, el libro introduce un recurso llamado matrices de interacción donde un experto en el dominio prioriza las métricas, y luego usa su juicio para identificar las decisiones y las incertidumbres que tienen el mayor impacto en las métricas más importantes.

Este libro asume que ya hemos reducido un problema a un pequeño número de métricas, decisiones e incertidumbres, y usa estas para enfocar el desarrollo de un modelo matemático.

El proceso de modelado

El modelado es un arte, pero es un arte guiado por un marco matemático que garantiza que obtengamos un problema bien definido que podamos poner en la computadora y resolver. Esto se puede considerar como la construcción de un puente desde un problema del mundo real desordenado y mal definido hasta algo con la claridad que una computadora puede entender, incluso si su objetivo final no es ponerlo en la computadora.

Históricamente, si un esfuerzo de modelado implicaba tratar de tomar decisiones, la gente recurría al conocido marco de la optimización determinística, que a menudo se parece al modelo dado por las ecuaciones $\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$, que consiste en variables de decisión $x$, una función objetivo $cx$, y las restricciones dadas por $\eqref{eq:linearprogram2}$–$\eqref{eq:linearprogram3}$.

El problema con este marco de modelado clásico es lo que deja fuera:

Los modelos matemáticos deberían, ante todo, proporcionar un camino que nos indique cómo pensar sobre los problemas. Los modelos clásicos de optimización determinística que siguen el formato de las ecuaciones $\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$ ignoran por completo cualquier cosa relacionada con la evolución de nuestro problema a lo largo del tiempo.

Este libro está diseñado completamente en torno a un enfoque de modelado llamado el marco de modelado universal. En pocas palabras, aspira a representar cualquier aspecto de un sistema controlable. Nuestro modelo predeterminado asumirá que el sistema evoluciona a lo largo del tiempo, a medida que llega nueva información.

En esta sección, vamos a proporcionar una versión muy compacta del marco de modelado universal. Luego vamos a ilustrar el marco, inicialmente usando un problema de inventario muy simple, pero luego introduciendo algunas extensiones modestas. Después de presentar estos ejemplos, vamos a regresar a una presentación más detallada del marco de modelado universal.

Una presentación compacta de un modelo dinámico

Comenzamos observando que podemos modelar cualquier problema de decisión secuencial usando la secuencia

\[(S_0,x_0,W_1,S_1,x_1,W_2, \ldots, S_t, x_t, W_{t+1}, \ldots, S_T),\]

donde:

La decisión $x_t$ se determina mediante algún método que denominamos política, la cual denotamos $X^\pi(S_t)$. La notación $\pi$ transporta información sobre la estructura de la función, que representamos mediante $f$ en un conjunto de funciones potenciales $\Fcal$, y cualquier parámetro ajustable $\theta\in\Theta^f$, que se define por la estructura de la función. Por ejemplo, una política de inventario podría ser ordenar $\theta^{order}$ unidades cada vez que el inventario caiga por debajo de $\theta^{min}$, lo que significa que los parámetros ajustables son $\theta = (\theta^{order}, \theta^{min})$. La estructura de la función sería un ejemplo de una función $f$.

Suponemos que contamos con una función de transición que toma como entrada el estado $S_t$, la decisión $x_t$ y la información exógena $W_{t+1}$, y nos entrega el estado actualizado $S_{t+1}$. Las funciones de transición son un conjunto de ecuaciones que actualizan cada elemento de la variable de estado $S_t$, la cual podría tener un solo elemento, o decenas de miles (o mucho más).

Incurrimos en una contribución (o costo) $C(S_t,x_t)$ cuando tomamos la decisión $x_t=X^\pi(S_t)$ dada la información en el estado $S_t$. Nuestro objetivo es encontrar la política que maximice algún objetivo que dependa de las contribuciones $C(S_t,x_t)$ donde $x_t=X^\pi(S_t)$. Para entornos más complejos, $C(S_t,x_t)$ puede ser en realidad un conjunto de métricas de desempeño, aunque necesitaremos combinarlas de alguna manera para identificar qué decisión $x_t$ elegir.

Esta es una descripción muy compacta de un problema de decisión secuencial. A continuación describimos un conjunto de pasos a seguir en el proceso de modelado.

Los pasos en el proceso de modelado

Es posible dividir todo el proceso de modelado en siete pasos (para nuestros propósitos). Antes de estos pasos (etiquetado abajo como “Paso 0”) hay un breve resumen de la complejidad técnica de la aplicación para orientar a los lectores.

Paso 0. Resumen del capítulo – Abrimos cada capítulo con un resumen de lo que va a cubrir el capítulo y, en algunos casos, cómo se relaciona con el material de otros capítulos. Los resúmenes indican qué enfoques se utilizan para modelar la incertidumbre y las políticas que se emplean.

Paso 1. La narrativa – Esta será una descripción en inglés simple (o español simple, según corresponda) del problema. La narrativa no proporcionará toda la información necesaria para crear un modelo matemático; más bien, es un primer paso que debe dar al modelador el panorama general sin perderse en la notación.

Paso 2. Encuadrando el problema – Esto consiste en responder tres preguntas:

Paso 3. Identificando los elementos centrales del problema, con especial énfasis en tres dimensiones de cualquier problema de decisión secuencial. Estos elementos se describen sin usar matemáticas:

Nos referimos al proceso de responder estas tres preguntas como encuadrar el problema.

Tipo de incertidumbreDescripción
1) Errores de observaciónObservar personas con síntomas; errores al clasificar a personas con síntomas como portadoras de COVID
2) Incertidumbre exógenaReportes de nuevos casos, muertes; disponibilidad de UCI; producción real de vacunas
3) Incertidumbre pronósticaAdmisiones hospitalarias; desempeño futuro de las vacunas; respuesta de la población a las vacunas
4) Incertidumbre inferencialEstimaciones de tasas de infección; estimaciones de la efectividad de las vacunas
5) Incertidumbre experimentalDesempeño del medicamento en un ensayo clínico; número de personas vacunadas
6) Incertidumbre del modeloTasas de transmisión de la enfermedad; propagación geográfica de las infecciones
7) Incertidumbre transicionalAdiciones/retiros de/a los inventarios de vacunas
8) Incertidumbre de controlQué grupos de población fueron vacunados; asignaciones de vacunas
9) Incertidumbre de implementaciónFalla en la vacunación
10) Errores de comunicaciónErrores de reporte desde el campo; falla en notificar cuándo vacunarse
11) Incertidumbre de objetivosDesacuerdos sobre quién debería ser vacunado
12) Incertidumbre ambientalSi/cuándo se aprobará una vacuna; asignación de vacunas a diferentes estados, países

Tabla 1.2. Ilustración de diferentes tipos de incertidumbre que surgen en la respuesta de vacunación a la pandemia de COVID.

Paso 4. El modelo matemático – Aquí construimos sobre los primeros tres elementos del Paso 2, pero ahora tenemos que crear un modelo matemático que consiste en cinco dimensiones que se aplican a todo problema de decisión secuencial:

\[S_{t+1} = S^M(S_t,x_t,W_{t+1}),\]

donde $S^M(\cdot)$ se conoce como el modelo de transición de estado (o del sistema) (de ahí el $M$ en el superíndice). La función de transición describe cómo cambia cada elemento de la variable de estado dadas las decisiones $x_t$ y la información exógena $W_{t+1}$. En problemas complejos, la función de transición puede requerir miles de líneas de código para implementarse.

\[\begin{align} \max_{\pi=(f,\theta)} F^\pi(S_0) = \E \left\{\sum_{t=0}^T C(S_t,X^\pi(S_t\vert \theta))\vert S_0\right\},\label{eq:baseobjectivefunction} \end{align}\]

donde “$\E$” se denomina el operador de esperanza, lo cual significa que se está tomando un promedio sobre cualquier elemento aleatorio, que podría incluir información incierta en el estado inicial $S_0$, así como el proceso de información exógena $W_1, \ldots, W_T$. Es estándar escribir el operador de esperanza, pero en realidad nunca podemos calcularlo. Más adelante mostramos cómo aproximarlo ejecutando una serie de simulaciones y tomando un promedio, u observando un proceso en el campo.

Hay que tener precaución al interpretar el operador de esperanza “$\E$” en la ecuación $\eqref{eq:baseobjectivefunction}$. Lo que este operador literalmente significa es “tomar un promedio sobre cualquier cosa que sea incierta.” La pieza de incertidumbre más obvia es el proceso de información exógena $W_1, W_2, \ldots, W_t, \ldots, W_T$.

La transición del problema real (guiada por la narrativa) a los elementos del modelo matemático es quizás el paso más difícil, ya que a menudo implica solicitar información de una fuente no técnica.

Notamos que hemos presentado el modelo completo sin especificar cómo tomamos las decisiones, lo cual se representa mediante la política $X^\pi(S_t)$. Llamamos a esto “primero el modelo, después resolver” y representa una desviación importante de la vasta literatura que trata los problemas de decisión secuencial. Es difícil comunicar cuán importante es abordar los problemas de decisión secuencial de esta manera.

Paso 5. El modelo de incertidumbre – Esta es la forma en que modelamos los diferentes tipos de incertidumbre. Hay dos formas de introducir incertidumbre en nuestro modelo:

  1. A través del estado inicial $S_0$, que podría especificar una distribución de probabilidad para parámetros incertidumbre tales como cómo podría responder un paciente a un medicamento o cómo podría responder el mercado al precio.
  2. A través del proceso de información exógena $W_1, \ldots, W_T$.

Tenemos tres formas de modelar el proceso de información exógena:

Paso 6. Diseñando políticas – Las políticas son funciones, por lo que tenemos que buscar la mejor función. (Sí, las políticas son funciones para elegir la mejor decisión, ¡pero elegir la política también es una decisión!) Hacemos esto identificando dos estrategias centrales para diseñar políticas:

Vamos a ser mucho más explícitos sobre cómo identificar estas políticas. Una sección posterior describe cuatro clases de políticas que incluirán cualquier método para tomar decisiones (estas son metaclases).

Paso 7. Evaluación de políticas – Encontrar la mejor política significa evaluar políticas para determinar cuál es la mejor. Hay dos formas de evaluar una política:

Los simuladores pueden ser complejos y difíciles de construir, y aun así están sujetos a aproximaciones de modelado. Por esta razón, la gran mayoría de los problemas prácticos que se encuentran en la práctica tienden a implicar pruebas en el campo, lo cual es lento (se tarda un día en simular un día) y requiere vivir con los resultados de los experimentos.

La única forma de sentirse cómodo con un modelo matemático es verlo ilustrado usando un ejemplo familiar. Comenzamos con un problema universal que todos encontramos en la vida cotidiana: la gestión de inventarios.

Algunos problemas de inventario

Vamos a ilustrar nuestro marco de modelado usando dos variaciones de un problema de inventario clásico, que se usa ampliamente como aplicación para ilustrar ciertos métodos para resolver problemas de decisión secuencial. Comenzamos con un ejemplo simple de inventario que transmite los elementos centrales de nuestro marco de modelado, pero nos permite ignorar muchas de las complejidades que exploraremos en el resto del libro.

Luego, vamos a hacer la transición a un problema de inventario ligeramente más complicado que nos permitirá ilustrar algunos principios de modelado. A lo largo del libro, también vamos a usar la idea de comenzar con una versión básica de un problema, y luego introducir extensiones que sugieran los tipos de complicaciones que pueden surgir en aplicaciones reales.

Un problema de inventario simple

Uno de los problemas de decisión secuencial más familiares que todos experimentamos cada vez que visitamos una tienda es un problema de inventario. Vamos a usar una versión simple de este problema para ilustrar los seis pasos de nuestro proceso de modelado que presentamos anteriormente:

Paso 1: Narrativa – Una pizzería tiene que decidir cuántas libras de salchicha pedir a su distribuidor de alimentos. El restaurante tiene que tomar la decisión al final del día $t$, comunicar el pedido que luego llega la mañana siguiente para satisfacer los pedidos de mañana. Si queda salchicha sobrante, puede conservarse hasta el día siguiente. El costo de la salchicha, y el precio al que se venderá al día siguiente, se conocen de antemano, pero la demanda no.

Paso 2: Los elementos centrales del problema son:

Paso 3: El modelo matemático – Esto consta de cinco elementos.

1) La variable de estado $S_t$ – Distinguimos entre la variable de estado inicial $S_0$, y la variable de estado dinámica $S_t$ para $t > 0$. La variable de estado inicial $S_0$ consiste en parámetros fijos y valores iniciales de variables que cambian con el tiempo, dándonos

\[S_0 = (R^{inv}_0, (p, c), (\Dbar, \sigmabar^D)).\]

Hemos dividido el estado inicial en tres tipos de variables:

La variable de estado dinámica $S_t$ es nuestro inventario que vamos a llamar $R^{inv}_t$. Por ahora, este es el único elemento de la variable de estado dinámica, así que

\[S_t = R^{inv}_t.\]

Más adelante vamos a introducir elementos adicionales a nuestra variable de estado.

2) La variable de decisión $x_t$ es cuánto pedimos en el tiempo $t$, que asumimos (por ahora) llega de inmediato. Tomamos nuestras decisiones con una política $X^\pi(S_t)$ que diseñamos más adelante.

3) La información exógena es la demanda aleatoria de nuestro producto que vamos a denotar $\Dhat_{t+1}$, así que $W_{t+1} = \Dhat_{t+1}$.

4) Nuestra función de transición captura cómo evoluciona el inventario $R_t$ con el tiempo, que está dada por

\[\begin{align} R^{inv}_{t+1} = \max\{0, R^{inv}_t+x_t-\Dhat_{t+1}\}. \label{eq:inventoryexampleequation} \end{align}\]

5) Nuestra función objetivo. Para nuestro problema de inventario, es más natural calcular la contribución incluyendo el costo de compra del producto $x_t$ y el ingreso por satisfacer la demanda $\Dhat_{t+1}$, lo que significa que nuestra función de contribución de un solo período se escribiría

\[C(S_t,x_t,\Dhat_{t+1}) = -cx_t + p \min\{R^{inv}_t+x_t, \Dhat_{t+1}\},\]

donde $x_t = X^\pi(S_t)$. Dada una secuencia de demandas $\Dhat_1, \ldots, \Dhat_T$, el valor de una política $\Fhat^\pi$ sería

\[\Fhat^\pi(S_0) = \sum_{t=0}^T C(S_t,X^\pi(S_t),\Dhat_{t+1}).\]

Nuestras ganancias $\Fhat^\pi(S_0)$ son aleatorias porque dependen de una secuencia particular de demandas aleatorias $\Dhat_1, \ldots, \Dhat_T$. Finalmente, promediamos sobre estas demandas aleatorias tomando la esperanza:

\[\begin{align} F^\pi(S_0) = \E \left\{\sum_{t=0}^T C(S_t,X^\pi(S_t),\Dhat_{t+1})\vert S_0\right\}. \label{eq:inventoryobjective} \end{align}\]

Aquí, el condicionamiento sobre el estado inicial $S_0$ puede leerse como “tomar la esperanza dado lo que sabemos inicialmente”. El condicionamiento sobre $S_0$ es implícito cada vez que tomamos una esperanza, y como resultado muchos autores lo omiten. Sin embargo, vamos a incluir el condicionamiento sobre $S_0$ para dejar claro que si nuestras entradas iniciales (incluyendo creencias) cambian, esto puede tener un efecto sobre el desempeño de una política.

Paso 4. El modelo de incertidumbre – El enfoque más simple para modelar la incertidumbre es simplemente usar datos históricos. El problema que podríamos encontrar es que si nos quedamos sin salchicha, podríamos no observar la demanda completa de salchicha ese día. Si somos capaces de captar esta demanda perdida, entonces este es un enfoque razonable.

Una alternativa es construir un modelo matemático. Podríamos asumir que nuestra demanda se distribuye normalmente con alguna media $\Dbar$ y desviación estándar $\sigmabar^D$. Si asumimos que ambas son conocidas, podemos escribir nuestra demanda como

\[\Dhat_{t+1} \sim N(\Dbar,(\sigmabar^D)^2),\]

y aprovechar paquetes que puedan muestrear de la distribución normal (por ejemplo, en Excel esto se llama Norm.inv$(Rand(),\Dbar,\sigmabar)$ para generar una observación aleatoria con media $\Dbar$ y desviación estándar $\sigmabar$.

Usando este modelo, podemos crear un conjunto de demandas $(\Dhat_1, \Dhat_2, \ldots, \Dhat_T)$. Luego, podemos repetir esto $N$ veces para crear $N$ secuencias de $T$ demandas, dándonos la secuencia $(\Dhat^n_1, \Dhat^n_2, \ldots, \Dhat^n_T)$ para $n=1, \ldots, N$ que necesitamos para estimar el valor de la política (usamos esto más abajo en el Paso 6).

Paso 5. Diseño de políticas – A continuación tenemos que diseñar un método para determinar nuestros pedidos. Una estrategia comúnmente usada para problemas de inventario se conoce como una política de “pedido hasta” (“order-up-to”) que se ve como

\[\begin{align} X^\pi(S_t\vert \theta) = \begin{cases} \theta^{max} - R_t & \text{if } R_t < \theta^{min}, \\ 0 & \text{otherwise,}\end{cases} \label{eq:introorderupto} \end{align}\]

donde $\theta = (\theta^{min},\theta^{max})$ es un conjunto de parámetros que necesitan ser ajustados. Se llama “pedido hasta” ya que colocamos un pedido para llevar el inventario “hasta” el límite superior $\theta^{max}$.

Paso 6. Evaluación de políticas – Hay una variedad de estrategias que podríamos usar. En la práctica, no podemos calcular la esperanza en la función objetivo en la ecuación $\eqref{eq:inventoryobjective}$, así que tomamos una serie de muestras de demandas. Sea $\Dhat^n_1, \ldots, \Dhat^n_T$ una muestra de demandas sobre $t=1, \ldots, T$, y asumamos que podemos generar $N$ de estas. Ahora podemos estimar nuestras ganancias esperadas de la política $X^\pi(S_t)$ promediando sobre las muestras para $n=1, \ldots, N$, lo cual se calcula usando

\[\Fbar^\pi(\theta\vert S_0) = \frac{1}{N} \sum_{n=1}^N \sum_{t=0}^T C(S_t,X^\pi(S_t\vert \theta),\Dhat^n_{t+1}).\]

En términos simples, estamos simulando la política $X^\pi(S_t\vert \theta)$ $N$ veces usando las muestras simuladas (u observadas del histórico) de demandas $\Dhat^n_1, \ldots, \Dhat^n_T$, y luego promediando el desempeño para obtener $\Fbar^\pi(\theta\vert S_0)$. Luego enfrentamos el problema de encontrar el mejor valor de $\theta$. Una estrategia simple sería generar $K$ valores posibles $\theta_1, \ldots, \theta_K$, simulando cada uno para encontrar $\Fbar^\pi(\theta_k\vert S_0)$ para cada $k$, y luego elegir el valor de $\theta_k$ que funcione mejor. Esta no es una estrategia óptima, pero proporciona un punto de partida simple y práctico.

Un problema ligeramente más complicado

El problema de inventario simple anterior es un escenario clásico para demostrar un método particular para resolver problemas de decisión secuencial conocido como programación dinámica, que depende de tener una variable de estado simple que a) sea discreta y b) no tenga demasiados valores posibles. En nuestro problema de inventario ligeramente más complicado, vamos a ilustrar tres sabores diferentes de variables de estado que representarían una complicación seria para un método popular para resolver problemas de decisión secuencial, pero que no tiene efecto en la política que hemos elegido.

Paso 1: Narrativa – Nuevamente tenemos nuestra pizzería que tiene que pedir salchicha, pero vamos a permitir que el precio que pagamos por la salchicha varíe de un día a otro, donde asumimos que el precio en un día es independiente del precio del día anterior. Luego, también vamos a asumir que aunque la demanda de salchicha para mañana es aleatoria, se nos dará un pronóstico de la demanda de mañana que, aunque no es perfecto, es mejor que no tener un pronóstico. Por lo demás, todo sobre nuestro problema más complicado es igual a como era antes.

Paso 2: Elementos centrales – Estos son:

Paso 3: Modelo matemático – Todavía tenemos los mismos cinco elementos, pero ahora el problema es un poco más rico:

1) Para construir la variable de estado, necesitamos listar la información (específicamente, información que evoluciona con el tiempo) que se necesita en tres partes diferentes del modelo: (1) la función objetivo, (2) la política para tomar decisiones (que incluye las restricciones), y (3) la función de transición. Por supuesto, aún no hemos introducido ninguna de estas funciones, así que tienes que leer hacia adelante, y verificar que nuestra variable de estado contenga toda la información necesaria para calcular cada una de estas funciones. Piensa en esto como un diccionario de la información que necesitaremos.

Comenzamos con el estado inicial $S_0$ que consiste en parámetros constantes, y valores iniciales de cantidades y parámetros que cambian con el tiempo. Estos son:

Esto significa que nuestra variable de estado inicial es

\[S_0 = (R_0,c_0, p, f^D_{0,1}, \sigmabar^D_0, \sigmabar^f_0).\]

Luego tenemos la información que evoluciona con el tiempo, que constituye nuestra variable de estado dinámica $S_t$:

Nuestra variable de estado dinámica está entonces dada por

\[S_t = (R^{inv}_t, c_t, f^D_{t,t+1}, \sigmabar^D_t, \sigmabar^f_t).\]

2) La variable de decisión $x_t$ es la cantidad que ordenamos en el tiempo $t$, la cual asumimos (por ahora) que llega de inmediato. Tomamos nuestras decisiones con una política $X^\pi(S_t)$ que diseñaremos más adelante.

3) La información exógena ahora consiste en:

\[\Dhat_{t+1} = f^D_{t,t+1} + \varepsilon^D_{t+1}.\]

Nuestro conjunto completo de variables de información exógena ahora puede escribirse

\[W_{t+1} = \big(\chat_{t+1}, \varepsilon^f_{t+1}, \varepsilon^D_{t+1}\big).\]

4) Función de transición – Esta especifica cómo evoluciona en el tiempo cada una de las variables de estado (dinámicas) $S_t$. Actualizamos nuestro inventario usando:

\[\begin{align} R^{inv}_{t+1} &= \max\{0, R^{inv}_t + x_t - \Dhat_{t+1}\}. \label{eq:introcomplexinventorytransition1} \end{align}\]

La demanda es la demanda pronosticada más la desviación $\varepsilon^D_{t+1}$ respecto del pronóstico, lo que nos da la ecuación:

\[\begin{align} \Dhat_{t+1} &= f^D_{t,t+1} + \varepsilon^D_{t+1}. \label{eq:introcomplexinventorytransition2} \end{align}\]

Asumimos que nuestro pronóstico se actualiza usando

\[\begin{align} f^D_{t+1,t+2} &= f^D_{t,t+1} + \varepsilon^f_{t+1}. \label{eq:introcomplexinventorytransition3} \end{align}\]

A continuación, vamos a estimar de forma adaptativa la varianza en la demanda y en el pronóstico de demanda:

\[\begin{align} (\sigmabar^D_{t+1})^2 &= (1-\alpha)(\sigmabar^D_t)^2 + \alpha (f^D_{t,t+1} - \Dhat_{t+1})^2, \label{eq:introcomplexinventorytransition4}\\ (\sigmabar^f_{t+1})^2 &= (1-\alpha)(\sigmabar^f_t)^2 + \alpha (f^D_{t,t+1} - f^D_{t+1,t+2})^2, \label{eq:introcomplexinventorytransition5} \end{align}\]

donde $0 < \alpha < 1$ es un factor de suavizamiento.

Finalmente, actualizamos el costo $c_{t+1}$ con el “costo observado” $\chat_{t+1}$, que escribimos simplemente como

\[\begin{align} c_{t+1} = \chat_{t+1}.\label{eq:introcomplexinventorytransition6} \end{align}\]

La ecuación $\eqref{eq:introcomplexinventorytransition6}$ es un ejemplo de una variable de estado que observamos en lugar de calcular, como hicimos con el inventario $R^{inv}_t$ en $\eqref{eq:introcomplexinventorytransition1}$. La ecuación $\eqref{eq:introcomplexinventorytransition1}$ a veces se denomina “basada en modelo”, ya que refleja la física de cómo se actualizan los inventarios, mientras que la ecuación $\eqref{eq:introcomplexinventorytransition6}$ se denomina “libre de modelo”, ya que no hacemos ningún intento de modelar el proceso subyacente que produce el cambio en los costos.

Nuestra función de transición $S_{t+1} = S^M(S_t,x_t,W_{t+1})$ consiste en las ecuaciones $\eqref{eq:introcomplexinventorytransition1}$–$\eqref{eq:introcomplexinventorytransition6}$.

5) Finalmente, nuestra función de contribución de un solo período se escribiría ahora

\[C(S_t,x_t,\Dhat_{t+1}) = -c_tx_t + p \min\{R_t+x_t, \Dhat_{t+1}\},\]

donde la única diferencia con el problema de inventario más simple es que el costo $c$ ahora depende del tiempo $c_t$. Nos apartamos de nuestra convención de escribir la contribución como $C(S_t,x_t)$ y permitimos que incluya ingresos provenientes de las demandas $\Dhat_{t+1}$.

Ahora enunciamos formalmente nuestra función objetivo como

\[\begin{align} \max_{\pi=(f,\theta)} \E \left\{\sum_{t=0}^T C(S_t,X^\pi(S_t\vert \theta),\Dhat_{t+1})\vert S_0\right\}. \label{eq:introcomplexinventoryobjective} \end{align}\]

La optimización $\max_\pi$ significa que estamos buscando entre todas las políticas posibles representadas por $(f,\theta)$, lo que literalmente significa buscar entre las distintas funciones que podríamos usar para tomar una decisión. Los ejemplos de este libro demostrarán cómo vamos a buscar entre funciones.

Recordemos que anteriormente establecimos que el índice $\pi$ lleva información sobre el tipo de función $f\in\Fcal$, y cualquier parámetro ajustable $\theta\in\Theta^f$. En la práctica, la búsqueda sobre los tipos de funciones $f\in\Fcal$ tiende a ser ad hoc (un analista conocedor elige funciones que tienen sentido para un problema), mientras que un algoritmo de computadora realiza la búsqueda del mejor valor de $\theta\in\Theta^f$.

Paso 4. El modelo de incertidumbre – Vamos a asumir que los cambios exógenos $\varepsilon^D_{t+1}$ y $\varepsilon^f_{t+1}$ se describen mediante distribuciones normales con media 0 y varianzas $(\sigmabar^D_t)^2$ y $(\sigmabar^f_t)^2$, lo cual expresamos escribiendo

\[\varepsilon^D_t \sim N(0, (\sigmabar^D_t)^2), \quad \varepsilon^f_t \sim N(0, (\sigmabar^f_t)^2).\]

Los modelos de incertidumbre pueden llegar a ser bastante complejos, pero esto servirá como ilustración.

Paso 5. Diseño de políticas – A continuación, tenemos que diseñar un método para determinar nuestros pedidos. En lugar de la política de pedido hasta un nivel de nuestro modelo más simple, vamos a sugerir la idea de pedir lo suficiente para satisfacer la demanda esperada de mañana, con un ajuste. Podríamos escribir esto como

\[\begin{align} X^\pi(S_t\vert \theta) = \max\{0,f^D_{t,t+1}-R_t\} + \theta. \label{eq:adjustedforecastpolicy} \end{align}\]

Si tuviéramos un pronóstico perfecto, entonces todo lo que tendríamos que pedir sería $f^D_{t,t+1}$ (nuestro pronóstico de $\Dhat_{t+1}$) menos el inventario disponible. Sin embargo, debido a la incertidumbre, vamos a agregar un ajuste $\theta$ para tener algún margen que evite el desabastecimiento.

Paso 6. Evaluación de políticas – Esta vez tenemos que generar muestras de todas las variables aleatorias en la secuencia $W_1, W_2, \ldots, W_T$. Nuevamente podríamos generar $N$ muestras de toda la secuencia para poder estimar el desempeño de una política usando

\[\Fbar^\pi(\theta) = \frac{1}{N} \sum_{n=1}^N \sum_{t=0}^T C(S_t,X^\pi(S_t\vert \theta),\Dhat^n_{t+1}).\]

De nuevo nos enfrentamos al problema de encontrar el mejor valor de $\theta$, pero retomaremos ese desafío más adelante.

El marco de modelado universal

Ahora estamos listos para describir con mayor detalle los elementos del marco de modelado universal (UMF). Notamos que el UMF puede modelar cualquier problema de decisión secuencial. Esta afirmación bastante amplia se hará evidente a medida que se desarrollen los elementos, ya que simplemente estamos aplicando notación al enunciado general de un problema de decisión secuencial.

Los cinco elementos del UMF

El UMF consiste en los siguientes elementos:

  1. Las variables de estado $S_t$.
  2. Las variables de decisión $x_t$.
  3. El proceso de información exógena $W_t$.
  4. El modelo de transición de estado $S^M(S_t,x_t,W_{t+1})$.
  5. La función objetivo.

Describimos estos elementos con mayor detalle a continuación:

Variables de estado – El estado $S_t$ del sistema en el tiempo $t$ contiene toda la información que es necesaria y suficiente para modelar nuestro sistema a partir del tiempo $t$ en adelante. Más específicamente, esta información consiste en:

Hay tres tipos de información en $S_t$:

El estado físico $R_t$ podría ser la cantidad de dinero en una cuenta de efectivo, mientras que $I_t$ podría ser el estado actual de los mercados de acciones y bonos. Si estamos viajando por una red dinámica, $R_t$ podría ser nuestra ubicación en la red, mientras que $I_t$ podría ser lo que sabemos sobre los tiempos de viaje en cada enlace. Si planificamos una ruta y luego deseamos penalizar las desviaciones respecto del plan, entonces el plan se incluiría en la variable de estado a través de $I_t$.

Las variables de estado típicamente no son obvias. Emergen durante el proceso de modelado, en lugar de ser algo que se pueda simplemente escribir de inmediato. El hecho de que la escribamos primero no significa que siempre se puedan listar todos los elementos de la variable de estado de inmediato. Pero al final, aquí es donde se almacena toda la información necesaria para modelar el sistema a partir del tiempo $t$ en adelante.

Variables de decisión – Diferentes comunidades usan diferentes notaciones para la decisión, como $a_t$ para una acción (típicamente discreta) o $u_t$ para un control (típicamente continuo) en ingeniería. Usamos $x_t$ como nuestro valor predeterminado, ya que es ampliamente utilizado por la comunidad de programación matemática.

Las variables de decisión vienen en diferentes tipos:

Notamos que existen clases de algoritmos determinadas por la naturaleza de la variable de decisión.

Asumimos que las decisiones se toman con una política, que podríamos denotar $X^\pi(S_t)$ si usamos $x_t$ como nuestra decisión. Asumimos que una decisión $x_t = X^\pi(S_t)$ es factible en el tiempo $t$, lo que significa $x_t \in \Xcal_t$ para algún conjunto (o región) $\Xcal_t$, que puede depender de $S_t$.

Dejamos que “$\pi$” lleve la información sobre el tipo de función $f\in\Fcal$ (por ejemplo, un modelo lineal con variables explicativas específicas), y cualquier parámetro ajustable $\theta \in \Theta^f$.

Información exógena – Dejamos que $W_{t+1}$ sea cualquier información nueva que se conoce por primera vez en el tiempo $t+1$ (es decir, entre $t$ y $t+1$), donde la fuente de la información proviene del exterior de nuestro sistema (por eso es “exógena”). Al modelar variables específicas, usamos “sombreros” (hats) para indicar información exógena. Así, $\Dhat_{t+1}$ podría ser la demanda que surge entre $t$ y $t+1$, o podríamos dejar que $\phat_{t+1}$ sea el cambio en el precio entre $t$ y $t+1$.

El proceso de información exógena puede ser estacionario o no estacionario, puramente exógeno o dependiente del estado (y posiblemente de la acción) (si decidimos vender una gran cantidad de acciones, esto podría hacer bajar los precios).

Dejamos que $\omega$ represente una trayectoria de muestra $W_1, \ldots, W_T$, que representa una secuencia de resultados de cada $W_t$. A menudo, crearemos un conjunto $\Omega$ de muestras discretas, donde cada muestra representa una secuencia particular de los resultados de nuestro proceso $W_t$, la cual podríamos escribir como $W_1(\omega), \ldots, W_T(\omega)$. Si tenemos 20 trayectorias de muestra, podemos pensar en $\omega$ como un número entre 1 y 20, lo que nos permite buscar la trayectoria de muestra.

Función de transición – Denotamos la función de transición por

\[\begin{align} S_{t+1} = S^M(S_t,x_t,W_{t+1}), \label{eq:transition} \end{align}\]

donde $S^M(\cdot)$ también se conoce con nombres como modelo de transición de estado, modelo del sistema, modelo de planta, ecuación de planta, ecuación de estado y función de transferencia.

La ecuación $\eqref{eq:transition}$ es la forma clásica de una función de transición que da las ecuaciones desde el estado $S_t$ hasta el estado $S_{t+1}$. La ecuación $\eqref{eq:inventoryexampleequation}$ fue la única ecuación de transición para nuestro ejemplo simple de inventario, mientras que las ecuaciones $\eqref{eq:introcomplexinventorytransition1}$–$\eqref{eq:introcomplexinventorytransition6}$ constituyeron la función de transición para nuestro ejemplo más complicado.

La función de transición podría capturar cualquiera de los siguientes tipos de actualizaciones:

La función de transición puede ser un conjunto conocido de ecuaciones, o puede ser desconocida, como cuando describimos el comportamiento humano o la evolución del CO2 en la atmósfera. Cuando las ecuaciones son desconocidas, el problema a menudo se describe como “libre de modelo” o “impulsado por datos”, lo que significa que solo podemos observar cambios en una variable, en lugar de usar un modelo físico. La ecuación $\eqref{eq:introcomplexinventorytransition6}$, donde “observamos” el costo $c_{t+1} = \chat_{t+1}$, sin tener idea de cómo evolucionamos desde $c_t$, es un ejemplo de una transición libre de modelo.

Las funciones de transición pueden ser lineales, no lineales continuas o funciones escalonadas. Cuando el estado $S_t$ incluye un estado de creencia $B_t$, entonces la función de transición tiene que incluir las ecuaciones de actualización (ilustramos esto más adelante en el libro).

Dada una política $X^\pi(S_t)$, un proceso exógeno $W_{t+1}$ y una función de transición, podemos escribir nuestra secuencia de estados, decisiones e información como

\[(S_0, x_0, W_1, S_1, x_1, W_2, \ldots, x_{T-1}, W_T, S_T).\]

Funciones objetivo – Hay varias formas de escribir funciones objetivo. Una de las más comunes, que usaremos como valor predeterminado, maximiza las contribuciones totales esperadas a lo largo de algún horizonte $t=0, \ldots, T$

\[\begin{align} \max_{\pi=(f,\theta)} F^\pi(S_0) = \E \left\{\sum_{t=0}^T C_t(S_t,X^\pi_t(S_t\vert \theta))\vert S_0\right\}, \label{eq:objectivecumulativereward} \end{align}\]

donde

\[\begin{align} S_{t+1} = S^M(S_t,X^\pi_t(S_t),W_{t+1}). \label{eq:basetransition} \end{align}\]

El modelo queda completamente especificado cuando también contamos con un modelo del estado inicial $S_0$, y un modelo del proceso exógeno $W_1, W_2, \ldots$. Escribimos toda la información exógena como

\[\begin{align} (S_0, W_1, W_2, \ldots, W_T). \label{eq:basestochasticmodel} \end{align}\]

Las ecuaciones $\eqref{eq:objectivecumulativereward}$, $\eqref{eq:basetransition}$ y $\eqref{eq:basestochasticmodel}$ constituyen un modelo de un problema de decisión secuencial.

De aquí en adelante, por razones de compacidad vamos a usar $\max_\pi$ para representar una búsqueda sobre los tipos de funciones $f\in\Fcal$ y parámetros ajustables $\theta\in\Theta^f$.

La ecuación $\eqref{eq:objectivecumulativereward}$ utiliza una esperanza $\E$, lo que significa tomar un promedio sobre todos los posibles resultados de $W_1, \ldots, W_T$. Esto casi nunca es posible de hacer computacionalmente. En su lugar, dejemos que $\omega$ represente un único resultado de la secuencia $W_1, \ldots, W_T$, la cual podríamos escribir $W_1(\omega), \ldots, W_T(\omega)$. Supongamos que podemos crear $N$ posibles resultados de esta secuencia, y dejemos que $\omega^n$ represente cómo indexamos la secuencia $n^{th}$.

Si estamos siguiendo una trayectoria de muestra $\omega$, entonces reescribiríamos nuestra función de transición en $\eqref{eq:basetransition}$ usando

\[\begin{align} S_{t+1}(\omega) = S^M(S_t(\omega),X^\pi_t(S_t(\omega)),W_{t+1}(\omega)). \label{eq:basetransition2} \end{align}\]

Indexamos cada variable en la ecuación $\eqref{eq:basetransition2}$ por $\omega$ para indicar que estamos siguiendo una única trayectoria de muestra de valores de $W_t$.

Ahora podemos reemplazar nuestro objetivo basado en la esperanza por un promedio que podemos escribir

\[\begin{align} \max_\pi \Fbar^\pi(S_0) = \frac{1}{N}\sum_{n=1}^N \sum_{t=0}^T C_t(S_t(\omega^n),X^\pi_t(S_t(\omega^n))). \label{eq:objectivecumulativerewardaverage} \end{align}\]

A menudo, estamos trabajando solo con una única trayectoria de muestra, posiblemente proveniente de la historia. En este caso, estamos aproximando el desempeño de la política usando esta única trayectoria de muestra, que podemos escribir como

\[\begin{align} \max_\pi \Fhat^\pi(\omega\vert S_0) = \sum_{t=0}^T C_t(S_t(\omega),X^\pi_t(S_t(\omega))). \label{eq:objectivecumulativerewardsample} \end{align}\]

Cada vez que escribimos un objetivo usando una esperanza como en $\eqref{eq:objectivecumulativereward}$, recuerde que lo que realmente haríamos es usar un promedio como hacemos en $\eqref{eq:objectivecumulativerewardaverage}$ o una muestra como en $\eqref{eq:objectivecumulativerewardsample}$.

La esperanza también puede necesitar reflejar la incertidumbre en el estado inicial $S_0$, que podría capturar creencias sobre pronósticos inciertos, o estimaciones inciertas sobre el estado de una enfermedad en un paciente. En este caso, la trayectoria de muestra $\omega$ necesita incluir muestras de estas distribuciones iniciales.

Habrá algunos contextos donde tenga más sentido usar un contador $n$ en lugar del tiempo. En este caso, dejamos que $S^n$ sea el estado después de $n$ observaciones (estas pueden ser experimentos, llegadas de clientes, iteraciones de un algoritmo). Usaremos el tiempo $t$ como nuestro índice predeterminado.

Las variables de estado iniciales $S_0$

Necesitamos distinguir entre el estado inicial $S_0$ y los estados subsiguientes $S_t$ para $t > 0$:

Escribimos la dependencia explícita del desempeño de la política respecto al estado inicial $S_0$, ya sea que usemos $F^\pi(S_0)$, $\Fbar^\pi(S_0)$ o $\Fhat^\pi(\omega\vert S_0)$. Aunque esto debería ser obvio, con frecuencia se pasa por alto. El estado inicial incluye elementos como:

Notamos que ayuda separar los valores iniciales que nunca cambian de aquellos que evolucionan con el tiempo, ya sea directamente como resultado de decisiones o de información exógena. Los valores que nunca cambian se almacenan en $S_0$, pero no están representados en $S_t$ para $t > 0$. La razón de esto es el deseo de mantener $S_t$ lo más compacto posible.

Supongamos que nuestra política $X^\pi(S_t\vert \theta)$ tiene parámetros ajustables. Por ejemplo, podríamos estar gestionando un sistema de inventario donde usamos la conocida política de “pedido hasta el nivel” (conocida en la literatura de inventarios como una política $(s,S)$) dada por

\[X^\pi(S_t\vert \theta) = \begin{cases} \theta^{max} - R_t & R_t < \theta^{min},\\ 0 & \text{otherwise.}\end{cases}\]

donde $\theta = (\theta^{min},\theta^{max})$. Por simplicidad podríamos suponer que cuando hacemos un pedido este llega de inmediato (una suposición estándar de los libros de texto que nunca es cierta en la práctica), lo cual nos permite escribir la evolución de nuestro estado físico $R_t$ (la cantidad en inventario justo antes de hacer nuestro pedido instantáneo) usando

\[R_{t+1} = \max\{0,R_t + x_t - \Dhat_{t+1}\}\]

donde $x_t = X^\pi(S_t\vert \theta)$ y $\Dhat_{t+1}$ es la demanda de nuestro producto durante el intervalo $(t,t+1)$ (esta es nuestra información exógena $W_{t+1}$). Finalmente, sea $C(S_t,x_t,W_{t+1})$ nuestra ganancia neta durante el intervalo $(t,t+1)$ (que no es importante en este momento).

Ahora imaginemos que tenemos un proceso de demanda histórico $W_1, W_2, \ldots, W_t, \ldots, W_T$ que nos permite ejecutar una simulación de nuestro sistema. Sea $\omega$ que representa esta secuencia histórica de demandas (o cualquier información exógena). Escribiríamos el problema de encontrar el mejor conjunto de parámetros de pedido $\theta$ usando

\[\begin{align} \max_\theta \Fhat^\pi(\omega,\theta\vert S_0) = \sum_{t=0}^T C_t(S_t(\omega),X^\pi_t(S_t(\omega))), \label{eq:optimizingtheta} \end{align}\]

donde la variable de estado evoluciona según

\[S_{t+1}(\omega) = S^M(S_t(\omega), X^\pi_t(S_t(\omega)), W_{t+1}(\omega)).\]

Sea $\theta^\ast $ el valor de $\theta$ que encontramos al optimizar $\eqref{eq:optimizingtheta}$. La forma correcta de escribir este valor óptimo es como una función $\theta^\ast (S_0)$ que depende de la información en $S_0$ (también depende de la trayectoria de muestra $\omega$). Esto ayuda a comunicar la realidad de que si cambiamos los datos de entrada de nuestro problema, representados por $S_0$, esto puede tener un impacto en los mejores valores de los parámetros de nuestra política $\theta$. ¡De hecho, incluso podríamos tener que cambiar nuestra elección de política!

Variaciones

Hay dos variaciones importantes de nuestro modelo matemático básico:

\[\omega^n = (W^n_1, \ldots, W^n_t, \ldots, W^n_T).\]

Si estamos buscando iterativamente la mejor política, podríamos escribir nuestra política para la iteración $n$ usando $X^{\pi,n}(S_t)$, lo cual entonces produce

\[S^n_0, x^n_0, W^n_1, \ldots, S^n_t, x^n_t, W^N_{t+1}, \ldots, S^N_T,\]

donde $x^n_t = X^{\pi,n}(S^n_t\vert \theta)$.

\[\begin{align} \max_\pi \Fhat^\pi(S^\theta_0) & = \E_{\What} F(\theta^{\pi,N}, \What) \label{eq:objectivefinalreward1} \\ &\approx \frac{1}{M} \sum_{m=1}^M F(\theta^{\pi,N}, \What^m). \label{eq:objectivefinalreward2} \end{align}\]

Dicho de manera simple, evaluamos nuestra política de aprendizaje para $\theta$, que denotamos $\Theta^\pi(S^{\theta,N})$, simulando a través de $N$ iteraciones usando observaciones de $W^n$ (que puede ser una simulación completa a lo largo del tiempo $t$). Cuando obtenemos nuestra estimación final del parámetro $\theta$, a la que llamamos $\theta^{\pi,N}$, evaluamos el desempeño de este valor usando una simulación separada donde fijamos $\theta = \theta^{\pi,N}$ y luego creamos un nuevo conjunto de observaciones aleatorias que llamamos $\What^m$ para $m=1, \ldots, M$.

Modelado de la incertidumbre

Para muchos problemas complejos (las cadenas de suministro, los sistemas de energía y la salud pública son solo algunos), identificar y modelar las diferentes formas de incertidumbre puede ser un ejercicio rico y complejo. Vamos a insinuar los problemas que surgen, pero no intentaremos una discusión exhaustiva de esta dimensión.

La incertidumbre se comunica a nuestro modelo mediante dos mecanismos: el estado inicial $S_0$, que es donde modelaríamos los parámetros de distribuciones de probabilidad que describen cantidades y parámetros que no conocemos perfectamente, y el proceso de información exógena $W_1, \ldots, W_T$.

Incertidumbre en el estado inicial

La variable de estado inicial puede contener parámetros determinísticos o valores iniciales de cantidades y parámetros que varían dinámicamente. Si esto es todo lo que hay en el estado inicial, entonces no está capturando ninguna forma de incertidumbre.

Hay muchos problemas donde no conocemos algunas cantidades o parámetros, pero podemos representar lo que sí sabemos a través de los parámetros de una distribución de probabilidad. Algunos ejemplos son:

Estas son varias formas en que podemos inicializar un modelo con incertidumbre en algunas de las entradas.

Una creencia probabilística inicial puede provenir del juicio subjetivo, o de observaciones o experimentos previos.

El proceso de información exógena

La segunda manera en que la incertidumbre entra en nuestro modelo es a través del proceso de información exógena. La variable $W_t$ contiene información que no se conoce hasta el período de tiempo $t$. Esto significa que tenemos que tomar una decisión $x_t$ en el tiempo $t$ antes de conocer el resultado de $W_{t+1}$.

A continuación hay una lista de ejemplos de $W_{t+1}$ que se revelan después de que se toma una decisión $x_t$:

En cada caso, la información que observamos después de tomar la decisión afecta el desempeño de la decisión (y cuál decisión habría sido la mejor).

A estas alturas el lector probablemente se ha dado cuenta de que $W_{t+1}$ es usualmente una colección de diferentes tipos de información. Por ejemplo, imaginemos que estamos tratando a un paciente que presenta niveles elevados de azúcar en la sangre. El médico quiere experimentar con diferentes estrategias, que van desde la dieta y el ejercicio o medicamentos para reducir el peso, hasta medicamentos que específicamente atacan el azúcar en la sangre. Las fuentes de información que el médico tiene que procesar podrían incluir:

Cada una de estas son flujos separados de información. Podemos modelar esto introduciendo el conjunto $\Ical_t$, el conjunto de procesos de información en el tiempo $t$ (el conjunto puede cambiar a medida que cambiamos de estrategias, abriendo nuevos flujos de información). Ahora podemos expresar los diferentes tipos de información usando $W_{t+1,i}$, la realización de información de la fuente $i\in\Ical_t$, de modo que $W_{t+1} = (W_{t+1,i})_{i\in\Ical_t}$.

Vamos a continuar usando $W_{t+1}$ para representar la nueva información que llega, pero el lector debe recordar que en aplicaciones reales, típicamente esto va a incluir un conjunto completo de fuentes de información, cada una con sus propios comportamientos.

Procesos dependientes del estado/decisión

Hay muchas aplicaciones donde la información $W_{t+1}$ depende del estado actual $S_t$ y/o de la decisión $x_t$. Algunos ejemplos incluyen:

Por esta razón, ayuda representar la información exógena como una función $W_{t+1}(S_t,x_t)$, la función de información exógena que da la información que llega en el intervalo $(t,t+1)$.

Por ejemplo, imaginemos que estamos comprando o vendiendo acciones en grandes cantidades, lo que puede influir en el precio futuro. La dinámica podría escribirse como

\[\begin{align} p_{t+1} = \theta^p_0 p_t + \theta^p_1 p_{t-1} + \theta^p_2 p_{t-2} + W_{t+1}(S_t,x_t). \label{eq:statedependentprice} \end{align}\]

El estado de este proceso de precios se escribiría

\[S_t = (p_t, p_{t-1}, p_{t-2}).\]

El cambio aleatorio en el precio, dado por $W_{t+1}(S_t,x_t)$, refleja nuestra creencia de que el cambio en el precio podría depender del precio actual (si el precio es alto, es probable que los cambios futuros sean negativos), así como de la cantidad que estamos comprando ($x_t > 0$) o vendiendo ($x_t < 0$).

Por supuesto, quisiéramos usar datos históricos para tratar de separar cualquier influencia estructural de $S_t$ y $x_t$ sobre los precios futuros del ruido verdaderamente exógeno. Así, podríamos proponer un modelo

\[W_{t+1}(S_t,x_t) = \theta^x x_t + \varepsilon_{t+1},\]

donde podríamos asumir que

\[\varepsilon_{t+1} \sim N(0, \vert x_t\vert \sigma^2_t),\]

Este modelo asume que $\varepsilon_{t+1}$ tiene media 0, y una varianza que crece con el valor absoluto de $x_t$. La información $W_{t+1}(S_t,x_t)$ tendría entonces media $\theta^x x_t$, que es positiva si estamos comprando acciones ($x_t > 0$), y negativa si estamos vendiendo en el mercado ($x_t < 0$).

Este libro seguirá usando $W_{t+1}$ como la notación predeterminada, pero el lector debe tener en cuenta que puede depender del estado actual y/o de la decisión tomada dado el estado.

Estilos de incertidumbre

Identificar los tipos de información es el primer paso para entender la incertidumbre. El siguiente paso es caracterizar los diferentes estilos de incertidumbre. Un resumen de algunas de las formas más importantes en que los procesos de información pueden comportarse incluye:

Estos comportamientos pueden tener un impacto en la elección de la política para tomar decisiones, un tema que abordaremos a continuación.

La incertidumbre es ampliamente reconocida como un problema para el cual las empresas, organizaciones e incluso los gobiernos deben planificar. A menudo se pasa por alto que la razón para modelar la incertidumbre es entender cómo afecta a las decisiones. La incertidumbre siempre está asociada con procesos de información que llegan en el futuro, por lo que tenemos que pensar en cómo una decisión tomada ahora se ve afectada por esta información futura.

Diseño de políticas

Una política es un método para tomar una decisión… cualquier método.

Las políticas son funciones que utilizan la información en la variable de estado para tomar una decisión. Esto suena como un problema bien definido; al fin y al cabo, la comunidad de aprendizaje automático se construye enteramente alrededor del desafío de encontrar funciones que se ajusten a un conjunto de datos de entrenamiento. Sin embargo, el diseño de políticas es mucho más rico, como lo evidencia la diversidad de comunidades que trabajan en esta área.

La Figura 1.2 muestra las portadas de libros que representan aproximadamente 15 campos distintos que tratan todos con decisiones secuenciales bajo incertidumbre. Utilizan ocho sistemas de notación diferentes, y emplean enfoques fundamentalmente distintos en la forma en que abordan el modelado. Algunos confunden las políticas (que involucran problemas de optimización incorporados) con funciones objetivo.

Una muestra de libros importantes que representan diferentes campos en la optimización estocástica.
Figura 1.2. Una muestra de libros importantes que representan diferentes campos en la optimización estocástica.

Métricas de desempeño de políticas

La optimización determinista se caracteriza por una función objetivo que determina si una decisión es mejor que otra. Con los problemas de decisión secuencial, generalmente tendremos una función objetivo que evalúa el desempeño de una política, como hicimos con las ecuaciones $\eqref{eq:objectivecumulativereward}$, $\eqref{eq:objectivecumulativerewardaverage}$ y $\eqref{eq:objectivecumulativerewardsample}$.

En la práctica, sin embargo, las políticas se eligen con base en una serie de criterios que compiten entre sí:

Las comunidades de optimización matemática ilustradas en la Figura 1.2 podrían hablar de políticas óptimas, lo cual implica optimizar la esperanza en la ecuación $\eqref{eq:objectivecumulativereward}$. Sin embargo, es importante prestar atención a todas estas características.

Las cuatro clases de políticas

Los libros de la Figura 1.2 presentan una variedad de formas de tomar decisiones a lo largo del tiempo. Resulta que todas pueden dividirse en clases bien definidas de políticas. Existen dos estrategias fundamentales para crear políticas, cada una de las cuales puede subdividirse a su vez en dos clases, creando así cuatro clases de políticas:

Búsqueda de políticas – Aquí se buscan entre métodos (funciones) para tomar decisiones, simulando su desempeño (como hacemos en la ecuación $\eqref{eq:objectivecumulativereward}$), para encontrar el método que funciona mejor en promedio a lo largo del tiempo. Esto puede implicar buscar entre diferentes clases de métodos, así como entre cualquier parámetro ajustable para un método dado. Esta idea abre dos clases de políticas:

Políticas de anticipación – Podemos construir políticas efectivas optimizando a través de la contribución (o costo) de una decisión, más una aproximación de las contribuciones (o costos) posteriores que resultan de la decisión tomada ahora. Nuevamente, podemos dividir estas en dos clases más de políticas:

\[\begin{align} V_t(S_t) = \max_{x_t} \big(C(S_t,x_t) + V_{t+1}(S_{t+1})\big). \label{eq:bellmangraph} \end{align}\]

La ecuación $\eqref{eq:bellmangraph}$ se conoce como la ecuación de Bellman. Cuando se usa para encontrar el mejor camino en una red determinista como la que representamos en la Figura 1.3, es bastante fácil visualizarla.

Grafo determinista simple para recorrer desde el nodo 1 hasta el nodo 11.
Figura 1.3. Grafo determinista simple para recorrer desde el nodo 1 hasta el nodo 11.

Hay muchos problemas en los que la transición del estado $S_t$ a $S_{t+1}$ involucra información aleatoria que no se conoce en el momento $t$. Vimos un ejemplo sencillo de aleatoriedad en nuestro primer problema de inventario, y un ejemplo más complicado en nuestro segundo problema de inventario.

Para estos problemas más generales, si estamos en un estado $S_t$, tomamos una decisión $x_t$, y luego observamos nueva información $W_{t+1}$ (que no se conoce en el momento $t$), esto nos llevará a un nuevo estado $S_{t+1}$ según nuestra función de transición

\[S_{t+1} = S^M(S_t,x_t,W_{t+1}).\]

Esto significa que en el momento $t$ cuando tenemos que elegir $x_t$, $W_{t+1}$ es una variable aleatoria, lo que significa que $S_{t+1}$ también es una variable aleatoria. En este caso, tenemos que insertar una esperanza en la ecuación de Bellman y escribir la ecuación $\eqref{eq:bellmangraph}$ como

\[\begin{align} V_t(S_t) = \max_{x_t} \big(C(S_t,x_t) + \E_{W_{t+1}} \left\{V_{t+1}(S_{t+1})\vert S_t,x_t\right\}\big). \label{eq:bellmanstochastic} \end{align}\]

Aquí hemos insertado la esperanza $\E_{W_{t+1}}\lbrace \cdot\rbrace $, que literalmente significa promediar sobre todos los resultados aleatorios de $W_{t+1}$.

La versión estocástica de la ecuación de Bellman en $\eqref{eq:bellmanstochastic}$ es extremadamente general. El estado $S_t$ no significa simplemente un nodo en un grafo; captura toda (y cualquier) información relevante para el problema. La dificultad es que ya no podemos calcular la función de valor $V_t(S_t)$, lo cual a su vez significa que no tendremos acceso a $V_{t+1}(S_{t+1})$, que asumimos conocer en las ecuaciones $\eqref{eq:bellmangraph}$ y $\eqref{eq:bellmanstochastic}$.

La estrategia que la comunidad investigadora ha utilizado al intentar aplicar la ecuación de Bellman es recurrir al campo del aprendizaje automático para estimar una aproximación estadística que vamos a llamar $\Vbar_t(S_t)$. Suponiendo que podamos idear una aproximación razonable $\Vbar_{t+1}(S_{t+1})$, escribiríamos nuestra política (nuestro método para tomar una decisión) usando

\[\begin{align} X^\pi(S_t) = \argmax_{x_t\in\Xcal_t} \big(C(S_t,x_t) + \E_{W_{t+1}} \{\Vbar_{t+1}(S_{t+1})\vert S_t,x_t\}\big). \label{eq:introvbarpolicy} \end{align}\]

La notación “$\argmax_x f(x)$” significa el valor de $x$ que maximiza la función $f(x)$. El índice $\pi$ contiene la información que especifica la estructura de la función $f$, y cualquier parámetro ajustable $\theta$ que necesitaríamos en la aproximación $\Vbar_{t+1}(S_{t+1})$.

Esta clase de política se encuadra bajo denominaciones como programación dinámica aproximada y, con mayor frecuencia, aprendizaje por refuerzo. Aunque es una idea poderosa, no es fácil de aplicar y depende de nuestra capacidad para crear una aproximación precisa $\Vbar_{t+1}(S_{t+1})$.

Existe una literatura muy rica sobre métodos para aproximar funciones de valor, pero no es una panacea. Este libro ilustrará esta idea en algunos lugares, pero se advierte a los lectores que esta clase de políticas es bastante difícil de usar.

Ilustramos nuestro marco de modelado usando dos problemas de inventario, y sugerimos dos políticas simples (formas de PFAs) con las ecuaciones $\eqref{eq:introorderupto}$ y $\eqref{eq:adjustedforecastpolicy}$, pero hicimos esto solo para tener un ejemplo concreto de una política. Aunque las PFAs son ampliamente usadas en la toma de decisiones cotidiana, estos son ejemplos especializados.

Por el contrario, vamos a afirmar que las cuatro clases de políticas que acabamos de describir (PFAs, CFAs, VFAs y DLAs) son universales, en el sentido de que cubren cualquier método que podamos usar para resolver cualquier problema de decisión secuencial. Para ser claros, estas son metaclases. Es decir, si pensamos que un problema se presta a una clase particular, no hemos terminado, ya que todavía tenemos que diseñar la política específica dentro de la clase. Aun así, sentimos que estas cuatro clases proporcionan una hoja de ruta para guiar el proceso de diseño de políticas.

Probando políticas

Para probar el valor de una política, vamos a usar la ecuación $\eqref{eq:objectivecumulativerewardsample}$ que simula una política sobre una única trayectoria muestral del proceso de información $W_t$. La parte más difícil al simular una política es típicamente crear el proceso de información exógena.

Sea $\omega$ una trayectoria muestral, donde $W_1(\omega), \ldots, W_T(\omega)$ representa una trayectoria muestral particular. La Tabla 1.3 ilustra 10 trayectorias muestrales de precios que están indexadas de $\omega^1$ a $\omega^{10}$. Si elegimos $\omega^6$, entonces $W_7(\omega^6) = 44.16$.

$t=1$$t=2$$t=3$$t=4$$t=5$$t=6$$t=7$$t=8$
$\omega^n$$p_1$$p_2$$p_3$$p_4$$p_5$$p_6$$p_7$$p_8$
$\omega^1$45.0045.5347.0747.5647.8048.4346.9346.57
$\omega^2$45.0043.1542.5140.5141.5041.0039.1641.11
$\omega^3$45.0045.1645.3744.3045.3547.2347.3546.30
$\omega^4$45.0045.6746.1846.2245.6944.2443.7743.57
$\omega^5$45.0046.3246.1446.5344.8445.1744.9246.09
$\omega^6$45.0044.7043.0543.7742.6144.3244.1645.29
$\omega^7$45.0043.6743.1444.7843.1242.3641.6040.83
$\omega^8$45.0044.9844.5345.4246.4347.6747.6849.03
$\omega^9$45.0044.5745.9947.3845.5146.2746.0245.09
$\omega^{10}$45.0045.0146.7346.0847.4049.1449.0348.74

Tabla 1.3. Ilustración de un conjunto de trayectorias muestrales de precios, todas comenzando en $45.00.

La pregunta es: ¿cómo creamos una muestra de observaciones como las que se representan en la Tabla 1.3? Hay tres estrategias típicas:

Si $W_{t+1}$ depende del estado $S_t$ y/o de la decisión $x_t$, entonces tenemos que idear una manera de reflejar esta dependencia. Crear un modelo matemático hace posible realizar muchas simulaciones en la computadora, pero crear muestras del proceso de información también requiere recrear correlaciones a través del tiempo, así como en el espacio. Remitimos al lector a RLSO, Capítulo 10, para una discusión más profunda sobre el modelado de incertidumbre.

Próximos pasos

Los próximos cinco capítulos del libro aplicarán nuestro marco de modelado a cinco problemas diferentes:

Cada uno de estos capítulos seguirá el mismo esquema que usamos anteriormente para describir los dos problemas de inventario. Este esquema consiste en:

Luego regresamos a las cuatro clases de políticas en el Capítulo 7 y discutimos nuestro marco de modelado general, usando los problemas de los Capítulos 2–6 para ilustrar diferentes ideas de modelado.

Después de esta discusión, volvemos a nuestro patrón de capítulos de enseñanza por medio de ejemplos, pero usando problemas más complejos. Nuestros capítulos restantes cubren los siguientes problemas:

¿Qué aprendimos?

Ejercicios

Preguntas de repaso

  1. ¿Cuáles son los cinco elementos del modelo matemático de un problema de decisión secuencial?
  2. ¿Cuál es la diferencia entre las variables en el estado inicial $S_0$ y aquellas en el estado dinámico $S_t$ para $t > 0$?
  3. ¿Cuál es la diferencia entre una decisión y la información exógena?
  4. ¿Cuáles son las dos categorías principales de políticas, y en qué se diferencian?
  5. Compare las variables de estado del problema de inventario simple con las del problema de inventario más complicado.

Preguntas de resolución de problemas

  1. Compare las políticas para los dos problemas de inventario en términos de cómo manejarían el comportamiento dependiente del tiempo. Por ejemplo, nuestra pizzería puede tener demandas mucho más altas los fines de semana que los días de semana. Comente sobre el valor de hacer que el parámetro ajustable $\theta$ dependa del tiempo (o del día de la semana) en términos de cómo podría mejorar la solución.
  2. Contraste cómo podría abordar el ajuste del parámetro $\theta$ para los problemas de inventario:
    1. En un simulador.
    2. En el campo.
    Discuta las ventajas y desventajas de cada enfoque.