El problema de Programación Dinámica

En matemáticas aplicadas, tenemos en ocasiones sistemas dinámicos como este

x_{k+1}=f_k(x_k,u_k,w_k), k=0,1,...,N-1

Donde k es el indicador de tiempo, en un periodo finito preestablecido que va desde cero hasta N. Aquí x_k es la variable de estado del sistema en el periodo k, u_k es la variable de control en este mismo periodo y w_k es un parámetro aleatorio.

En breve, lo que deseamos es controlar una función de costo

\mathbb{E} \left\{ g_N(x_N)+\sum_{k=0}^{N-1} g_k(x_k,u_k,w_k)\right\}

Note que estamos usando el operador de la esperanza y que hemos dividido las funciones de costo de los periodos desde 0 hasta N-1, dejando al final un costo terminal.

Un ejemplo clásico de la programación dinámica es el del control de inventarios. Si la variable de estado denota el inventario disponible en cada periodo, la de control son las órdenes pedidas y otorgadas en el mismo periodo y el parámetro aleatorio es la demanda en ese momento del tiempo (asumimos que w_0,w_1,...,w_{N-1} son variables aleatorias independientes entre si). Por lo tanto el sistema evoluciona de acuerdo a la siguiente ecuación en diferencias:

x_{k+1}=x_k+u_k-w_k

El costo se divide en dos partes, que consisten en un costo de que mantener inventarios en existencia o que haya faltante en los inventarios (el costo de oportunidad), y el costo de las órdenes mismas de inventario. Por lo tanto el objetivo es minimizar

\mathbb{E} \left\{ R(x_N)+\sum_{k=0}^{N-1} (r(x_k) + c u_k) \right\}

Con la limitante de que no pueden haber pedidos negativos, es decir, no se pueden regresar inventarios para reducir costos.

El problema es interesante porque no se trata de encontrar un número mínimo, sino mas bien una regla que optimice el sistema. Puesto de otra manera, tratamos de encontrar una secuencias de reglas o funciones \mu_k, k=0,...,N-1 que mapee de la variable de estado al control (esto tiene sentido porque el control depende de la retroalimentación que recibe del estado). A esta secuencia de reglas \pi=\{\mu_0,...,\mu_{N-1}\} se le conoce como política (en inglés es policy, pero aún no me acaba de convencer traducirlo literalmente de esta manera).

Para cada \pi, el costo correspondiente para un stock inicial de x_0 fijo es

J_\pi(x_0) =\mathbb{E} \left\{R(x_N)+\sum_{k=0}^{N-1}(r(x_k)+x\mu_x(x_k))\right\}

Queremos minimizar J_\pi(x_0) para un estado inicial x_0 dado sobre todas las políticas posibles. Sea S_k un umbral de stock aceptable, se puede demostrar que la secuencia de reglas óptimas son aquellas que igualan a S_k-x_k si x_k<S_k, y 0 en cualquier otra situación.

Bibliografia

Bertsekas, D. P., & Bertsekas, D. P. (1995). Dynamic programming and optimal control (Vol. 1, No. 2). Belmont, MA: Athena Scientific.

Botes, puercos y teoría de juegos

Me incluyeron hace algunos días en una discusión en Twitter. Como esta se volvió circular, perdí el interés en seguirla de cerca, pero básicamente en una esquina tenemos a quien debate que el gobierno tiene una obligación moral de colocar botes en las calles, para evitar contaminación, mientras que en la otra esquina está quien dice que los botes en las calles son un incentivo para que las personas tiren en la calle, que al poner los botes, las personas se acostumbran a poder tener basura en la calle, por lo tanto lo ideal es no gastar en botes y de alguna manera «educar» a las personas.

Aclaro que estoy escribiendo esto sin afán de criticar ninguna de las posturas, creo que ambas tienen una lógica bastante válida. Desgraciadamente, nuestro espíritu animal y ansias de ganar impiden que esto se reconozca públicamente muy fácil y por lo tanto las discusiones no terminan en ninguna conclusión definitiva. Por mi parte sólo puedo decir que escribo estas líneas por la misma razón por la que he vertido todo tipo de información en este blog: porque escribir al respecto me ayuda a aclarar las ideas y asentar una opinión con la lógica bien sólida.

A partir de aquí recurriré a técnicas de análisis un poco más complejas, con la intención de que reducir al mínimo los huecos de lógica que puedan existir por el uso inadecuado de las palabras. En concreto haré uso de teoría de juegos, desarrollando un modelo sencillo. Aclaro que este modelo lo estoy haciendo sobre la marcha, así que insto al lector a que haga sugerencias sobre variables que realmente podrían afectar el resultado, tomando en cuenta que la idea es reducir la situación a lo más básico posible.

Se plantea un juego con dos jugadores, el gobierno, responsable de mantener la ciudad limpia, y el consumidor. El consumidor obtiene utilidad por una ciudad limpia, pero logra esto a través de un agente externo. Es por esto que introducimos un umbral de resistencia a la contaminación (En primera instancia haremos este umbral exógeno, por simplicidad, pero la segunda hipótesis que planteamos probablemente requiera endogeneizarlo), si la contaminación en el ambiente supera ese umbral, el agente castiga al gobierno con una desutilidad (se me ocurre temporalmente que podría usarse una delta de Dirac que vuelva cero la utilidad del gobierno si esto sucede, por ejemplo). Pero el agente también gana utilidad indirectamente por contaminar. No es que le guste contaminar, pero le gusta consumir, y hacerlo implica contaminar. Como es una relación indirecta, pero no nos interesa lo demás respectivo al consumo, podríamos sin pérdida de generalidad asumir que simplemente le gusta contaminar, pero no le gusta estar en un lugar contaminado, por muy irónico que suene.

El juego se hace en dos etapas, en la primera, el gobierno decide si pone botes en un conjunto de N localidades, que conforman la ciudad. El poner botes tiene un costo c. Por lo tanto, la utilidad del gobierno está dada por G=p-nc, con n,c como el número de botes puestos y un premio por parte de los pobladores si la ciudad está limpia. Si la ciudad está sucia por encima de un umbral T, entonces c=0. El premio podría ser una abstracción de los votos en la siguiente elección, este es un modelo estático, pero el valor de c podría estar en función de lo cercanas que estén las elecciones, por ejemplo. Por lo tanto, si el gobierno decidiera llenar las N localidades de botes, G=p-Nc, lo que significa que lo haría, siempre y cuando  p\geq Nc. De hecho, para cualquier valor de n tenemos que si p\geq nc, el gobierno está dispuesto a hacerlo. Si por alguna razón le generara utilidad la limpieza, el gobierno simplemente optimizaría en el punto en que p=nc, pero como no hay nada que indique que sea el caso, nos quedaremos con la situación anterior.

En la segunda etapa, el agente consume y decide la probabilidad con la que tirará basura. Se plantea un vector de N agentes representativos de cada una de las localidades, la probabilidad con la que están tirando se puede ver como una generalización para un conjunto de pobladores, es decir, si p_1=0.5 se puede interpretar que el 50 por ciento de los pobladores de la localidad 1 tuvieron la necesidad de tirar basura en ese punto. Naturalmente p\in[0,1].

Vamos a hacer esto mas divertido, los botes tienen capacidad limitada establecida q_i\in[0,1], si q_i<p_i entonces la localidad i tiene un nivel de contaminación de p_i-q_i, si por el contrario q_i\geq p_i entonces el nivel de contaminación será igual a cero.

Aquí viene lo interesante. La primera hipótesis sugiere que los niveles (p_1^*,p_2^*,...,p_N^*) son fijos y determinados de manera exógena (esto no es propiamente un juego, pero prosigamos a ver a dónde nos lleva). Esto implicaría que la contaminación total C\equiv \sum_{i=1}^N \delta_n(N)p_i es también una cantidad que depende únicamente de n, por lo tanto, el gobierno maximiza su utilidad poniendo botes de basura únicamente hasta el punto en el que C=T, esto claro, asumiendo que el gobierno conoce el umbral que sus gobernados pueden soportar. Difícilmente es un resultado sorprendente, pero parecería que es un punto a favor de quienes opinan que mucho influye el factor cultural, si una cultura está muy acostumbrada a la suciedad, el nivel será alto.

La segunda hipótesis sugiere que el nivel del umbral T puede ser modificado por algún tipo de esfuerzo gubernamental, tal vez, o tal vez un efecto contagio. Por el momento lo dejaré como un problema abierto para siguientes entradas.

Ovación de pie y manifestaciones

Continuando con la búsqueda de alternativas para modelar un sistema con externalidades de red, esta vez estoy planeando usar el modelo de ovaciones de pie de Miller y Page (2004). Posteriormente mostraré las revelaciones que hacer este ejercicio proporcione.

El modelo está en un escenario de una obra de teatro, donde los agentes, al ver una presentación, deciden realizan una ovación de pie o no. Naturalmente introducimos como variable de relevancia la calidad del espectáculo Q. Los agentes van a obtener una señal subjetiva del evento S=Q+e donde e es un término de error. Los agentes son heterogéneos en el término de error, o bien, este puede ser definido simplemente como una variable aleatoria.

El agente se levanta a aplaudir si su señal, es decir, la calidad en la cual percibió el show, supera un cierto umbral definido exógenamente (en otro tipo de contextos, podría ser un costo de oportunidad, en este yo podría decir que no me levanto a aplaudir si el show tiene una calificación en mi escala personal menor a 7). El umbral es una constante definida, podría ser una norma social.

Otra norma social que define el modelo por completo es que los agentes se levantan a aplaudir si X% de los demás también lo hacen. Esto significa que si X es pequeña, las personas son muy inseguras de su percepción y se van a levantar muy fácilmente (me imagino que esa situación se daría en un concierto de Jazz, donde nadie sabe realmente si fue bueno el show o no, pero nadie aceptaría abiertamente decir que no lo fue). Si X es muy grande por el contrario, estamos en una situación en la que las opiniones están muy enraizadas en los agentes, y ellos están dispuestos a pagar el precio de expresar su descontento con más facilidad (en temas políticos controversiales o de religión, donde es poco probable que las opiniones cambien, podría ser el caso).

Algo importante también es la varianza que e tenga, entre más grande sea esta, mayor será la probabilidad de que se de una ovación de pie.

En ningún lado encontré esto, pero podría ser también importante la media de e, que determina un determinado sesgo. Puede haber situaciones en las que la inclinación sea más a levantarse que no, o al contrario, si por ejemplo se percibe mucho riesgo de ser juzgados, el sesgo haría una distribución de e tal que sea más probable que no se levanten. También podría ser importante esto, porque podrían haber formas prácticas de manipular este sesgo (publicidad, por ejemplo).

Este tipo de modelos tienen aplicaciones prácticas también en situaciones de protestas sociales, como lo que pasa actualmente en México. Entre más gente se suma al descontento, más personas se sienten seguras manifestándose en redes sociales. Si la teoría que mencionan en redes sociales de que los encapuchados que realizan disturbios son contratados por el estado, esto es una estrategia hábil para subir el valor de X (independientemente de si esto es legal o moralmente aceptable). Por el otro lado, las fotos y comentarios en redes sociales, así como el tiempo de duración de hastags como #yamecansé hacen que la varianza de e aumente, probablemente con un sesgo positivo.

Por mi parte, este parece ser un candidato viable para el juego de redes que desarrollo. ¿Alguna otra idea de en qué más puede servir este modelo?

Bibliografía:

Miller, J. H., & Page, S. E. (2004). The standing ovation problem. Complexity,9(5), 8-16.

Reflexiones sobre factores de producción

Hay algo que había estado frente a mi mucho tiempo y que no había notado. Ahora estoy en una de esas situaciones en las que no puedo creer lo ciego que he sido últimamente al respecto. Parte tienen que ver las lecturas de Piketty con las que engaño a hurtadillas a mi libro de A Song of Ice and Fire. Piketty trabaja mucho el tema de desigualdad, que en si ya es preocupante, pero me llamó la atención que pusiera en evidencia la disparidad existente en el pago que recibe el capital con respecto al que recibe el trabajo en el sistema productivo. En la visión neoclásica es muy común ver que el producto se divida en trabajo y capital en una linda función de producción, donde el pago que recibe cada uno de estos factores equivale a la aportación que hace a la producción. En la realidad las cosas son un tanto más complejas, pues intervienen muchos otros factores que son difíciles de capturar en una abstracción matemática, como la dinámica de poder en la que el sistema juega, o externalidades del mercado internacional (por ejemplo, los trabajadores de una fábrica textil en Colombia pierden poder de negociación sobre sus salarios frente a los precios que ofrecen en Indonesia, o toman el trabajo a los salarios existentes o arriesgan que la fábrica pierda los clientes de países desarrollados).

Estos factores u otros más que de momento no estoy considerando pero que pueden ser importantes son los que influyen, el resultado es que no hay país en el mundo (que yo sepa… Liechtenstein??) en el que el trabajo reciba mayor pago que el capital por sus servicios. Incluso en las industrias intensivas en trabajo, el pago por el capital es escandalosamente alto. En México, las pequeñas empresas tienen un acceso limitado al capital, formal o informal, obtener financiamiento es carísimo para ellos.

Me parece que estamos ante un círculo vicioso. En México existe abundancia del factor trabajo, por lo tanto los salarios son sumamente bajos («competitivos», si nos queremos ver un poco más desapegados y «objetivos»), y por lo tanto lo que nos debería ser conveniente es invertir en industrias cuya función de producción muestre cierta predilección hacia este factor, en otras palabras, que sea intensiva en el uso de trabajo.

Pero hay un problema en esto: ¿Quién quiere invertir su dinero en un negocio a sabiendas que todo se le va a ir en sueldos y salarios? ¿No rompe esto con todo el propósito de hacer crecer la inversión? ¿No va en contra de nuestro espíritu emprendedor y capitalista?

Tengo la teoría de que hay una dinámica que se autorefuerza que lleva a los países con cierta intensidad de factores a atraer industrias con este tipo de intensidades, en un círculo vicioso (o virtuoso, si tu dinámica es hacia el factor que paga más) que hace que las naciones se enriquezcan o se hundan, según el estado inicial y la forma en que la dinámica se ha dirigido.

Tengo la idea de que el pequeño boom que México tuvo en la creación de startup fue rápidamente exterminado [fuente] por esta dinámica, haciendo que la mayoría de estas empresas de reciente creación se inclinaran a mercados con intensidad en trabajo y no en capital. Las empresas con intensidades en trabajo no son suficientemente atractivas a inversionistas, porque no pagan lo suficiente (o no superan un costo de oportunidad).

¿Porqué es un círculo vicioso (virtuoso)? Una palabra: apalancamiento. Las empresas con intensidad en capital son mas fáciles de apalancar. Ahondaré en eso en lecturas posteriores.

[Chaquetas mentales: ¿Sería una idea muy provocadora imaginar un escenario en el que los trabajadores compartieran el riesgo inherente a la empresa?, en realidad si lo hacen, pero normalmente los salarios fijos no permiten que lo perciban. Si compartieran el riesgo, ¿se podría establecer un sistema más igualitario?, ¿Es el riesgo de emprendedurismo el mayor determinante del alto pago al capital o hay factores más importantes?]

Bibliografía:

Jones, R. W. (1956). Factor proportions and the Heckscher-Ohlin theorem. The Review of Economic Studies, 1-10.

The Mexican Valley Of Startup Death

Juego de Redes (2): Revisión y correcciones

Dado el rotundo fracaso de mi modelo anterior, he decidido revisar lo hecho anteriormente, para nutrir el análisis.

Resulta que en mi post anterior decidí hacer las compras como un conjunto finito y continuo con cota inferior (no se permiten compras negativas) y poner al mercado, siendo q la cantidad que este compra lo mismo que decir del número de compradores continuamente divisibles que deciden entrar a la red.

Resulta que Katz y Shapiro (1985) establecieron primero un mercado con n empresas y un espacio de agentes heterogéneos con densidad 1, donde r designa el tipo de agente al que nos referimos. La heterogeneidad se da en qué tanto están los agentes dispuestos a pagar por el producto (poder de compra?), aunque suponemos que son homogéneos en su forma de valorar las externalidades de red.

Sea x_i^e el número de clientes que un consumidor espera tendrá la empresa i y y_i^e el tamaño de la red esperado de esta misma red. El motivo de esta separación se vuelve claro cuando hablamos de compatibilidad, un determinante clave de las externalidades de red. Si, por ejemplo, la tecnología de todas las empresas fuera incompatible, entonces cada una se vería forzado a establecer su propia red, por lo que y_i^e=x_i^e. Si por el contrario, dos o más empresas (digamos, 2\leq m\leq n) tienen productos compatibles, entonces la red se extiende y y=\sum_{k=1}^m x_k^e. Desde aquí, creo que es evidente que una red más grande podría hacer más valioso al producto para un consumidor, para verificarlo hay que determinar la forma en la que estos obtienen su utilidad.

Un consumidor de tipo r está dispuesto a pagar r+v(y^e) por un producto con una red de tamaño esperado y^e. Sin pérdida de generalidad, podemos normalizar los valores de r y decir que v(0)=0. Algo en lo que estuve anteriormente bien fue en la forma de determinar la utilidad por la externalidad de red, tenemos que v'>0,v''<0,\lim_{y\to\infty}v'(y)=0. Lo último no lo especifiqué, pero es una condición bastante deseable, nos dice que entre más grande el tamaño de la red, el valor que el agente le da se acerca más al máximo que su función de utilidad le da.

El agente entonces desea maximizar su utilidad, eligiendo entre las n empresas aquella que le ofrezca mayor valor. Sólo podrá comprar una unidad del bien (presumiblemente duradero), es decir

max_{i} r+v(y_i^e)-p_i

Siempre que esto sea positivo, el agente elegirá una empresa. Si se diera el caso de que todas las empresas ofrezcan un valor final negativo, el agente se mantendrá fuera del mercado (es otra forma de decir que su costo de oportunidad es una constante igual a 0).

Una sentencia interesante es decir que, dada la homogeneidad de los productos, dos empresas i y j tendrán ventas positivas sólo si sus precios hedónicos esperados son iguales, es decir

p_i-v(y_i^e)=p_j-v(y_j^e)

El precio hedónico es el precio ajustado al tamaño de la red. Sea \phi \equiv p_i-v(y_i^e) el valor común dado de los precios hedónicos, sólo los consumidores para los que r\geq\phi entran al mercado. Dada una distribución uniforme de los consumidores entre menos infinito y A, la cantidad total de consumidores será de A-\phi. Las empresas venden una cantidad total de z\equiv \sum_{i=1}^nx_i por lo tanto, los precios se deben establecer de forma tal que A-\phi=z. O de otra manera,

A+v(y_i^e)-p_i=z

Por lo que el precio debe ser igual a

p_i=A+v(y_i^e)-z

Para conocer las ganancias de la empresa, debemos también considerar los costos. Katz y Shapiro también simplificaron el análisis haciendo los costos fijos y variables iguales a cero G+gx=0. Existe otro costo, que es el relativo a la compatibilidad, que analizaremos después.

Con lo que conocemos, podemos deducir que si todas las redes son incompatibles, es decir, si y_i^e=x_i^e, la ganancia de la empresa i es de

\pi_i=x_i(A-z+v(x_i^e))

Y si todos los n productos son compatibles entre si, y_i^e=\sum_{k=1}^nx_k^e\equiv z^e

\pi_i=x_i(A-z+v(z^e))

Lo cual es evidentemente mayor. Podríamos adelantarnos con algunas conclusiones y decir que a las empresas les conviene abrir su tecnología a otras empresas, pues aumenta la probabilidad de que los consumidores elijan su producto, sin embargo, hacer esto permite que el mercado se diluya, los precios bajen y las ganancias se vean disminuidas.

 

Bibliografía:

Katz, M. L., & Shapiro, C. (1985). Network externalities, competition, and compatibility. The American economic review, 424-440.

Juego de Redes: Primer intento fallido

Este es el primer intento de realizar un juego sin tomar como base algún otro. Se desarrolla un modelo muy simple de una mercado con externalidades de red (EDR), con dos jugadores, el mercado y la empresa. Se decidió tomar al mercado como el jugador tomando en consideración que fuera un agente representativo. Una primera idea fue considerar un vector finito de compradores potenciales para un bien con EDR, sin embargo, el análisis resulta mucho más sencillo si se toma q \in \mathbb{R}^+ como el conjunto de agentes que compran el producto. Los agentes deciden en base a su función de utilidad U=q(b-p)+q n(c), donde n(c) es el tamaño de la red del producto. Lo que esta identidad nos dice es que el agente una cierta utilidad intrínseca del producto y además una utilidad proveniente de la red. Esto es suficientemente general para abarcar productos con EDR directas o indirectas (e.g. Telefonía celular, donde el valor se incrementa con el número de personas en la red, o una consola de videojuegos, con el número de juegos que hay disponibles para esta).

El juego se desarrolla de la siguiente manera, primero la empresa decide el gasto que realizará en publicidad. Este gasto influirá en el valor de red n(c), de modo tal que n'(c)>0, n''(c)<0. El agente observa el movimiento de la empresa y decide entonces la cantidad que decidirá comprar. Este tipo de juegos dinámicos se pueden solucionar por inducción hacia atrás, por lo que primero buscamos la función de respuesta del agente, que debe satisfacer

\max_{q} q[(b-p)+q n(c)

Lo cual da

q^*=\frac{p-b}{2n(c)}

Este no es un resultado muy elegante, si nuestra función de demanda estuviera dada por p=a-q, entonces q^*=\frac{a-b}{1+2n(c)}. Esto resulta algo extraño, la cantidad debería estar determinada de forma positiva por el tamaño de la red, sin embargo el resultado nos da que entre más grande sea la red, el tamaño óptimo deberá disminuir. Algo hice mal.

Sin embargo, siguiendo con el ejercicio, supuse que la empresa sabe que el agente es racional y que esa sería su reacción, por lo que él maximizaría su función de beneficios \pi=pq^*-c. Las condiciones de primer orden nos dicen que \frac{\partial\pi}{\partial c}=\frac{p^2}{2}n'(c)-\frac{pb}{2}n'(c)=0 que, simplificando n'(c)=0, nos da que la empresa maximiza su utilidad maximizando exclusivamente sobre el tamaño de la red. Esto tiene más sentido, pero entonces la empresa tomará el tamaño que maximice el tamaño de la red (como n''(c)<0 sabemos que la red no llegará al infinito, y la cantidad de equilibrio que el agente tomará, será definitivamente menor que el tamaño de equilibrio del monopolio.

Seguiré avanzando con este modelo, si tienen observaciones o correcciones son bienvenidas.