Pequeñas matemáticas de la vida cotidiana

jueves, 15 de diciembre de 2022

¿Se puede definir una fiscalidad justa?

Definir que es un sistema fiscal "justo" no es una cuestión matemática, sino social y política. Si una persona cree, por ejemplo, que un sistema fiscal justo es uno en que los pobres pagan los impuestos y los ricos no, no hay mucho que un matemático le pueda objetar. Pero, si nos ponemos de acuerdo sobre cierto principio, las matemáticas nos pueden ayudar a hacer ciertas consideraciones, por lo menos a nivel aproximado y cualitativo. Propongo, como posible definición, la siguiente:

Un sistema fiscal es justo si afecta a la calidad de vida de todo el mundo de la misma manera.

Se trata de una definición sólo aparentemente sencilla. Antes de analizarla, quiero hacer una observación metodológica. En varios puntos de estas consideraciones habrá que elegir entre alternativas sin tener toda la información que nos permita una elección sin incertidumbre. Dado que yo apoyo una fiscalidad fuertemente progresiva, en todos estos casos eligiré la alternativa que pone mi punto de vista más en desventaja. Es decir, cuando se trate de elegir bajo incertidumbre, elegiré la alternativa que da a mis "adversarios" la mayor ventaja.

Y ahora a analizar la definición. Un primer problema es determinar que tipo de "efecto" sobre la calidad de vida nos interesa. Los impuestos financian el estado de bienestar, por tanto el resultado neto de pagar impuesto es un aumento de la calidad de vida, y no una reducción. Los efectos de los servicios que se pagan con los impuestos (sanidad, educación, pensiones, carreteras, policía, bomberos, etc.) son tales que pagar impuesto aumenta la calidad de vida. En este caso, no nos interesa considerar este efecto: queremos saber cual es el efecto sobre la calidad de vida del hecho de pagar impuestos, que _reducción_ de la calidad de vida se causa haciendo que las personas paguen impuestos. Es decir: en mis consideraciones olvidará el impacto sobre la calidad de vida de los servicios públicos que se pagan con los impuestos, y consideraré sólo el impacto negativo que deriva de pagar los impuestos y por tanto de tener menos dinero.

Con esta clarificación, la definición de arriba se reduce a la siguiente: un sistema fiscal es justo si la fracción de calidad de vida que se pierde como consecuencia del dinero que se paga en impuestos es igual para todos. Si llamamos $p$ esta reducción ($0\le p \le 1$), esto quiere decir que una persona que tiene una calidad de vida $q$ verá su calidad reducida a $(1-p)q$ (recuerdo que si calculamos el efecto de los servicios que se consiguen gracias a los impuestos, la calidad de vida aumenta, pero aquí no estamos considerando esos efectos: sólo consideramos los efectos del dinero que se gasta en impuestos).

La calidad de vida es, entre otras cosas, una función del dinero que una persona gana (escribiermos $q=f(m)$, donde $m$ está por money), pero no es una función lineal. Si una persona no tiene nada de dinero y de repente empieza a ganar un millón de Euros al año, su calidad de vida aumentará drámaticamente. Por otro lado, si una persona que gana 100 millones al año pasa a ganar 101, su calidad de vida quedará esencialmente la misma. Los efectos son muy diferentes, a pesar de que en los dos casos las ganancias han aumentado en un millón.

¿Cómo varia la calidad de vida en función de las ganancias? ¿Cuál es la forma de la función $f(m)$? Una medida que se usa mucho en estos casos es el Subjective Well Being: la percepción que una persona tiene de su propio bienestar como función de la renta. La figura siguiente muestra la variación a nivel internacional, por países, con los datos de varios países y la curva que los aproximas (notamos que España está un poco por debajo de la línea: los españoles se "sienten" peor que otros países con la misma renta---probablemente la vieja costumbre latina de quejarse de todo...).

Otra iliustración de la misma medida, con datos y en escala diferente, es la siguiente:

Está claro que esta medida no depende sólo de las ganancias: circunstancias sociales también influyen. Una demostración es la gráfica siguiente:

Aquí veamos la medida de "Happiness" (Es la misma medida que el bienestar, pero a los Americanos el "pursuit of happiness" les influye mucho, y prefieren llamar así la medida) en función de las ganancias, en dolares deflactados (Se ha puesto de moda en España hablar de "deflactar" el IRPF; quien habla de estas cosas debería echar un ojo a la definición de "deflactar"), en los años 1970s y en los 1990s. Parece que, con el mismo dinero al neto de la inflación (sí: deflactar significa esto) la gente se consideraba más feliz en los años 1970s que en los 1990s.

Las curvas de las figuras anteriores muestran dos comportamientos diferente. En la segunda, parece que la calidad de vida llegue a saturación, es decir, hay un límite que, por mucho dinero que se gan, no se va a rebasar. En la segunda parece que lacalidad de vida pueda seguir aumentando sin límite aún si, a medida que la ganancia aumenta, la curva crece menos. Fiel a mi elección metodológica eligiré la alternativa menos favorable a un sistema fiscal proporcional, y asumiré que la calidad de vida pueda aumentar sin límite a medida que una persona gana más dinero.

Las curvas son consistente con la hipótesis siguiente: el aumento de la calidad de vida no es proporcional al aumento absoluto de las ganancias, sino a su aumento relativo. Matemáticamente, esto se expresa diciendo que si una persona gana $m$ Euros al año y sus ganancias se incrementan en $\Delta{m}$ Euros al año, el incremento de su calidad de vida, $\Delta{q}$ es dado por la relación

\begin{equation} \Delta q = \frac{\Delta m}{m} \end{equation}

Transformando esta ecuación de diferencias en una ecuación diferencial y resolviéndola, determinamos que la relación entre las ganancias $m$ y la calidad de vida $q$ es

\begin{equation} q = \log\,m \end{equation}

Una persona gana una cantidad de dinero $m$ y consecuentemente tiene una calidad de vida $q=\log\,m$. Si, tras los impuestos, la cantidad de dinero que le queda es $m'$, su calidad de vida será $q'=\log\,m'$. Si queremos que para todos la calidad de vida se reduzca de una misma fracción $p$, tiene que ser

\begin{equation} q' = (1-p)q \end{equation}

Es decir

\begin{equation} \log\,m' = (1-p)\log\,m \end{equation}

En la figura siguiente vemos un ejemplo en que dos personas con ganancias $m_1$ y $m_2$ (con $m_2>m_1$) tienen calidades de vida $q_1$ y $q_2$ que se reducen en la misma fracción (en este caso, un $10\%$).

Notamos que la persona que gana más puede renunciar a un porcentaje mayor de sus ganancia para conseguir una misma reducción en porcentaje de su calidad de vida. La relación anterior nos dice que una reducción de una fracción $p$ de la calidad de vida se consigue si tras lo impuestos a la persona le queda una ganancia

\begin{equation} m' = m^{1-p} \end{equation}

El porcentaje de impuestos que una persona con ganancias $m$ tiene que pagar para conseguir una reducción relativa de calidad de vida $p$ es por tanto:

\begin{equation} \mbox{TAX} = 100\frac{m-m'}{m} = 100 \frac{m - m^{1-p}}{m} = 100(1 - \frac{1}{m^p}) \end{equation}

Esta curva es representada en la figura siguiente

Por tanto el sistema fiscal justo, en el sentido de la definición que hemos dado, es un sistema proporcional: el porcentaje de sueldo que se paga en impuestos crece a medida que crecen las ganancias.

Se trata, naturalmente, de una curva teórica a que hay que añadir consideraciones de carácter social. Por ejemplo, para los sueldos más bajos, incluso una pequeña pérdida de calidad de vida puede ser deleteria, por tanto los sueldos más bajos no deberían pagar impuestos (Milton Friedman, uno de los fundadores del neoliberalismo, iba más allá, llegando a hipotizar una negative tax: cierto nivel de sueldo no pagará impuestos y sueldos menores pagarán un impuesto negativo, es decir: recibiran dinero en lugar de pagarlo), por tanto la curva no empiezará con sueldos cero. La curva, para sueldos muy altos, satura cuando los impuestos llegan muy cerca del 100\%, algo que en la práctica es imposible de poner en marcha.

Sin embargo el resultado general mantiene, creo, su validez: dada la relación no lineal entre ganancias y calidad de vida, si queremos un sistema que pida a todos renunciar a una fracción igual de su calidad de vida, el sistema tiene que ser progresivo: quien más gana tiene que pagar un porcentaje más alto de impuestos.

La curva logarítmica que hemos usado se basa en ciertas hypótesis que pueden no ser del todo exactas. Pero, sea cual sea la forma exacta de la curva, esta tiene dos propiedades:
  1. La curva es creciente (se asume que si el dinero que tenemos aumenta, nuestra calidad de vida no se reduce)
  2. La curva crece menos que una función lineal (esto deriva de nuestra consideración sobre el efecto de ganar un millón: pasar de ganar cero a ganar un millón supone un cambio en calidad de vida mayor que pasar de ganar 100 millones a ganar 101)
Es posible demostrar (la demonstración no es difícil, pero es un poco técnica) que estas dos propiedades son suficientes para que el criterio de justicia que estamos utilizando implique un sistema fiscal progresivo.

miércoles, 31 de agosto de 2022

Los límites de la racionalidad y el desarrollo de la cooperación

Les han pillado. Usted y su cómplice. La policía ha descubierto todo, les han detenido y ahora están en celdas separadas en la comisaría, sin ninguna posibilidad de comunicar el uno con el otro. El comisario entra y le dice: "Tenemos suficiente pruebas para condenar a los dos. Así como están las cosas, os van a caer cinco años cada uno, sin problema. Pero si los dos confesáis, vamos a considerar la buena voluntad y la colaboración y os vamos a reducir la sentencia a dos años. Por otro lado, si uno de los dos confiesa y uno no lo hace, consideraremos como único responsable el que confiesa. A él le caerán 8 años, y el otro saldrá libre." El comisario le dice que hará la misma oferta al cómplice, y que cada uno será consciente que el otro ha recibido esa oferta (y que los dos saben que los dos han recibido la oferta: los dos tienen exactamente la misma información, y lo saben).

Usted y su cómplice son dos personas racionales y sin ninguna relación emocional: su único objetivo es conseguir la menor condena posible. Que va a hacer? Una manera racional de razonar es la siguiente: "mi cómplice puede hacer sólo dos cosas: confesar o no confesar. Si él confiesa, lo mejor para mi es no confesar, dado que así saldré libre. Si el no confiesa, lo mejor para mi es, también en este caso, no confesar, dado que si confieso me caen diez años." Basándose en este razonamiento, decide no confesar.

He dicho que los dos son personas racionales y, dado que su razonamiento es racional, el cómplice razonará de la misma manera y decidirá no confesar. Así a los dos les caerán cinco años. Si los dos hubieran decidido comportarse de manera irracional y confesar, a los dos les habrían caído sólo dos años. La lógica les ha costado tres años adicional de cárcel.

Esta paradoja fue descrita y bautizada prisoner's dilemma (el dilema del prisionero) en 1950 por Melvin Dresher y Merril Floyd de la RAND corporation. El dilema se hizo famoso cuando Martin Gardner publicó un conocido artículo sobre él en el número de Mayo 1983 de Scientific American (más tarde Gardner publicó una versión extendida en su imprescindible libro Metamagical Themas, una verdadera Biblia de las matemáticas recreativas). Gardner cambia el escenario describiendo un problema matemáticamente equivalente que puede ser más fácil de seguir.

Usted dispone una gran cantidad de cierto bien (dinero, por ejemplo) y quiere cambiarlo por otro bien (diamantes, por ejemplo). Ha contactado un vendedor y los dos han llegado a un acuerdo de intercambio de dinero por diamantes que es muy ventajoso para los dos. Por una razón que no precisamos, el intercambio tiene que mantenerse secreto (quizás es ilegal, y es por esto que los dos han acabado en la cárcel en el ejemplo anterior). Los dos no se conocen, y no se han encontrado nunca. Se ponen de acuerdo que usted deja el dinero en una bolsa un lugar establecido y al mismo tiempo el vendedor deja los diamantes en una bolsa en otro lugar. Los dos no se encontrarán nunca, y no habrá otro intercambio ni otra comunicación.

Hay algo que cada uno de los dos teme: llegar al punto de recogida y encontrar una bolsa vacía. Si los dos dejan la bolsa llena, el intercambio será ventajoso para los dos, pero conseguir algo a cambio de nada es una tentación muy fuerte: ¿y si dejara la bolsa vacía?. De hecho, puede razonar así: "Si el vendedor ha dejado la bolsa vacía, lo mejor para mi es dejarla también vacía, para no perder el dinero. Por otro lado, si el vendedor deja los diamantes, lo mejor para mi es dejar la bolsa vacía y conseguir los diamantes a cambio de nada".

Mientras tanto, el vendedor habrá hecho el mismo razonamiento que usted y decidirá dejar la bolsa sin diamantes. Por tanto los dos, usando su lógica impecable quedarán con las manos vacías. Una pena: si los dos hubieran dejado de un lado la lógica y colaborado, ahora habrían llevado a cabo un intercambio ventajoso. Esta es la paradoja que nos presenta el dilema del prisionero: ¿la lógica impide la colaboración?

En este caso el problema es la falta de confianza en la lógica de los demás. Si de verdad asumimos que nuestro cómplice o el vendedor es una persona tan lógica como nosotros, entonces debemos asumir que, cualquier decisión tomemos nosotros basada en la lógica, él llegará a la misma conclusión. Por tanto los dos decidiremos siempre comportarnos de la misma manera: colaboraremos los dos, o engañaremos los dos, confesaremos los dos, o callaremos los dos. Dado que la mejor opción es colaborar los dos, deberíamos decidir colaborar. Pero el problema, en estos casos, está puesto de manera tal que si uno elige la lógica y el otro la codicia, el que elige la codicia saldrá ganando. Y no tenemos suficiente confianza en los demás como para asumir que el otro seguirá la misma lógica que nosotros.

Una variación muy interesante sobre el tema es el dilema del prisionero continuado. Pongámonos otra vez en el intercambio de dinero con diamantes, pero esta vez usted y el vendedor han concordado que harán un intercambio cada mes durante un tiempo indeterminado, digamos durante todo el tiempo en que los dos estarán con vida. Ahora cada mes usted tendrá que decidir si cooperar (dejar el dinero) o engañar (dejar una bolsa vacía). El primer mes usted deja una bolsa llena de dinero y el vendedor deja una bolsa llena de diamante. Maravilla. Al mes siguiente hay que volver a tomar la decisión, y así cada mes.

Supongamos que en una ocasión, de repente, el vendedor deja una bolsa vacía. ¿Qué va a hacer? ¿Ya no se fía de él y no vuelve nunca más a dejar el dinero? Así perderá para siempre la oportunidad de un intercambio que es, al fin y al cabo, muy ventajoso. ¿Hacer como si nada hubiera pasado y dejar el dinero el mes siguiente? ¿No dejarlo el mes siguiente pero volver a dejarlo si el vendedor vuelve a dejar los diamantes? Aclaremos, una vez más, que estamos hablando de comportamiento fríamente lógico y egoísta: usted está cuidando sólo su interés. Supongamos, por ejemplo, que en algún momento recibe una información fiable que el vendedor está gravemente enfermo y le quedan pocos meses de vida. El vendedor no sospecha que usted tiene la información. En este caso, lo lógico, lo racional, es engañar: el vendedor no tendrá tiempo suficiente para castigar su comportamiento. Esto es lo que entendemos por egoísmo lógico.

El problema es muy complicado, pero lo podemos formalizar un poco y analizarlo matemáticamente mediante la teoría de juegos o mediante simulaciones con el ordenador. El primer paso es cuantificar el problema, algo que se puede hacer a través de una matriz de pago Una posible matriz de pago para el problema del intercambio de dinero y diamante es la siguiente (C quiere decir "coopera" y E quiere decir "engaña"):

Vendedor
C E
Yo C (2,2) (-1,4)
E (4, -1) (0, 0)

En esta matriz, si los dos cooperan tendrán una ganancia de 2 puntos (valor arbitrario: la ganancia del intercambio). Si los dos engañan, la ganancia es cero (nadie recibe nada, todo queda como estaba). Si usted coopera y el vendedor engaña usted pierde y consigue -1 puntos, mientras el vendedor recibe 4 (sí: son muchos... es que es muy placentero recibir algo sin dar nada a cambio). Claramente, si el vendedor coopera y usted engaña los papeles son invertido: usted gana 4 puntos y el vendedor pierde uno. La matriz del juego en la versión del prisonero es la siguiente (C quiere decir "confiesa" y N quiere decir "No confiesa"):

Cómplice
C N
Yo C (-2,-2) (0,-8)
N (-8,0) (-5,-5)

El juego no cambia sustancialmente si añadimos el mismo valor a todas las entradas (lo que determina el juego es la diferencia entre la puntuación de varias opciones). Por tanto podemos a&ntile;adir un valor a todas las entradas de manera tal que todos los númers sean positivos o cero. Llaremos normalizadas estas matrices. La matriz normalizada para el problema del vendedor es

Vendedor
C E
Yo C (3,3) (0,5)
E (5, 0) (1, 1)

mientras la matrix normalizada para el juego en la versión del prisonero es

Cómplice
C N
Yo C (6,6) (8,0)
N (0,8) (3,3)

Podemos generar muchas versiones de estos juegos cambiando oportunamente la matriz de pago. En general, la matriz (normalizada) tiene la estructura siguiente:

Cómplice
C N
Yo C (R,R) (E,T)
N (T,E) (C,C)

Aquí $R$ es la recompensa por la cooperación mútua, $C$ es el castigo por no cooperar, $T$ es la tentación y $E$ es la paga del estafado. Para que el juego tenga sentido, los valores tienen que cumplir las condiciones siguientes:

\begin{equation} \begin{aligned} T &> R > C > E \\ \frac{T+G}{2} &< R \end{aligned} \end{equation}

La primera condición es la que da peso a la consideració "lo mejor para mi es engañ:ar, independientemente de lo que hace el otro", la segunda sostiene que quedarse atrapado en una serie de alternanzas (este mes yo coopero y tu engañas, el mes siguiente al revé, y así siguiendo) es peor que cooperar todo el tiempo.

Es fácil ver que una estrategia óptima en todas las situaciones no existe. Supongamos que la otra parte tenga como estrategia "Siempre E" (engaña en cada jugada). En este caso la mejor estrategia es engañar siempre. Por otro lado, supongamos que el otro tenga como estrategia "voy a cooperar hasta que tu engañes, luego engañaré siempre". En este caso nuestra mejor estrategia es cooperar y no engañar nunca.

Para darnos una mejor idea de lo que es una buena estrategia, imaginemos un territorio con muchos seres que se mueven por él y, cada vez que se encuentran, juegan un juego del dilema del prisonero continuado, collecionando y acumulando puntos. En este sentido una estrategia de cooperación, que hace ganar puntos a nosotros y al otro jugador, puede er mejor que una estrategia competitiva, que intenta ganar juegos a costa del otro.

Estas características tocan un tema que, desde Darwin, ha suscitado mucho interés entre los antropólogos: ¿cómo puede emerger la cooperación en un ambiente en que la evolución es determinada por la competición, en que parece que el egoismo debería ser la mejor estrategia? La paradoja, aparente, puede estar relacionada con el hecho que---en términos de la teoría de los juegos---el dilema del prisonero no es un juego a suma cero. Un ejemplo de juego a suma cero es el poker (el ejemplo es más claro s consideramos sólo dos jugadores): para que yo gane dinero es necesario que mi adversario lo pierda, y todo el dinero que gano yo lo pierde mi adversario. La suma total de dinero no cambia entre el comienzo y el final del juego; todo lo que puede cambiar es su distibución. El dilema del prisonero no funciona así: cooperando los dos, yo y mi adversario ganamos los dos; el total de puntos que tenemos aumenta a medida de que jugamos el juego.

Estos problemas fueron analizados por Robert Axelrod en un famoso experimento en 1979, y luego analizados en su libro The evolution of cooperation (Basic books, 1984). Axelrod envió invitaciones a varios expertos en teoría de juegos, incluso varios que ya habían trabajado con el dilema del prisonero. En la invitación decía que todos iban a participar en un torneo round robin en que cada uno se enfrentaría con todos los demás (y con un clon de si mismo) unas 200 veces. EL objetico era acumular cuantos más puntos posible. Los invitados tenían que enviar un programa (escrito en BASIC... estamos en 1979) que respondiera con C or D al C or D del otro jugador (Cooperate y Defect, el lenguaje oficial del torneo era el inglés). Los programas no tenían que ser deterministicos, podían usar un generador de números aleatorios.

El programa ganador fue el de Anatol Rapaport, psicólogo y filósofo de la University of Toronto, un experto en el dilema del prosonero. Era el programa más corto entre los enviados, y se llamaba TiT FOR TAT. Usaba una estrategia muy sencilla:

          En la primera jugada, coopera; luego, haz lo que el otro ha hecho en la jugada anterior

Una de las características importantes de TIT FOR TAT es que nunca es el primero en engañr. Axelrod llama corteses (nice) las estrategias que tienen esta característica. Ser cortés no quiere decir no engañar nunca: si el otro engaña, TIT FOR TAT engañará en la jugada siguiente. Pero una estrategia cortés nunca será la primera en engañr; por tanto, si dos estructuras corteses se encuentran, las dos cooperarán siempre, ganando muchos puntos.

Otro aspecto relevante de TIT FOR TAT es la retaliación limitada frente a un engaño: si el adversario engañ, TIT FOR TAT rsponde engañando, pero no extiende el "castigo" más allá que esto; si el adversario vuelve a cooperat, TIT FOR TAT cooperará olvidando el engaño.

En un análisis posterior al torneo, Axelrod descubrió que una estrategia llamada TIT FOR TWO TATS, que engaña sólo si el otro engaña dos veces, habría ganado.

Las lecciones que se pueden derivar del torneo son dos: es importante ser corteses (no ser el primero en engañar) y perdonar (no seguir castigando).

Axelrod organizó más torneos, u derivó otra lección: el éxito de una estrategia depende del ambiente, es decir, de las otras estrategias con que se encuentra a jugar. Por ejemplo, TIT FOR TWO TATS, que habría ganado el primer torneo, acabó bastante mal en los otros torneos (más o menos a la mitad del ranking).

Axelrod llama robustas las estrategias que tienen éxito en muchos ambientes diferentes. TIT FOR TAT es una estrategia robusta: de los seis torneos organizdos en la segunda ronda, TIT FOR TAT ganó cinco, y se clasificó segunda en el sexto.

Una última observació es que si nos enfrentamos a una estrategia no responsiva (su secuencia de jugadas es establecida a priori o es aleatoria, y no depende de lo que hace el otro jugador), entonces "Siempre D" es la mejor estrategia. El programa que ganó a TIT FOR TAT en el último torneo era una modificación que intentaba descubrir si la otra estrategia era no responsiva y, en este caso, pasaba a "Siempre D".

Termino con un recuerdo personal. Hace años, en un curso de inteligencia artificial que estaba dando en la University of Cape Coast, decidí repetir el experimento de Axelrod. Pedí a mis estudiantes que desarrollaran una estrategia para el juego y que me entregaran un programa (en Python, esta vez... los tiempos han cambiado). Mi idea era ver como trabajaban duro para crear estrategias complicadas; luego habrí llegado yo jugando con TIT FOR TAT y, con el programa más sencillo de todos, les habría ganado. Quería transformar el torneo en un llamamiento a la sencillez de los programas (que todavía considero una de sus calidades más importantes).

Las cosas no funcionaron muy bien: en mi torneo TIT FOR TAT no se comportó muy bien, acabó sexto de 13 programas. Evidentemente, a pesar de ser robusto, se encontró en un ambiente donde no funcionaba bien. (Afortunadamente el programa que ganó era casi tan sencillo como TIT FOR TAT, por tanto mi argumento didáctico se pudo hacer.)

El dilema del prisonero y el dilema del prisonero continuado nos ponen el problema del egoismo racional. Una pulsión natural, que todos tenemos, es buscar la mayor ganancia personal. Pero en algunas situaciones la ventaja colectiva (en este caso la colectividad son las dos personas) es mayor si los dos deciden de cooperar. El problema es que si cada uno piensa lógicamente en su ventaja sin considerar la ventaja del otro, los dos acaban con una solución en que los dos pierden. El problema no es baladí. recordemos la famosa frase de Adam Smith:

      It is not from the benevolence of the butcher, the brewer, or the baker that we expect our dinner, but from their regard for their own interest.

Esta es una de las bases del capitalismo: si cada persona es racionalmente egoista, y piensa en su propio interés de manera racional, el resultado será óptimo para la colectividad. El dilema del prisonero pone en entredicho este dogma. Hay situaciones en que el egoismo puede no ser la mejor estrategia, y en que buscar una ventaja para los demás se traduce en la mejor estrategia para nosotros.

lunes, 27 de junio de 2022

La falacia de reducir los ascensores: cuando las medidas de ahorro no ahorran

 

En el edificio donde trabajo, de cinco plantas, hay cuatro ascensores. Este verano, nos hemos encontrado una novedad: de los cuatro, tres han sido cerrado, "por ahorro energético", y sólo uno sigue funcionando. La cuestión es: ¿estamos seguros que usar un solo ascensor ahorra energía?

Cada vez que usamos un ascensor para ir de una planta $p_1$ a una planta $p_2$, el asensor hace dos tipos de viajes: uno, vacío, de la planta donde se encuentra a la planta donde estaos y e segundo, con nosotros dentro, de la planta $p_1$ a la $p_2$. Allí se queda hasta que alguien necesite usarlo otra vez. La cantidad de viajes que se hace con personas a bordo y su longitud no cambia apreciablemente con el número de ascensores: depende sólo de la cantidad de personas y de donde tienen que ir (hay una pequeña influencia de que hablaremos más adelante). Lo que cambia con el número de ascensores es el número y la longitud de los viajes vacíos, los viajes que se hacen para llegar a la planta donde alguien ha llamado el ascensor.

Digamos que en el edificio hay $m$ ascensores y que, en un momento dado, el ascensor número $k$ ($k=1,\ldots,m$) se encuentre en la planta $\pi_k$. Cuando yo, desde la planta $p$, llamo un ascensor, el que me llegará será el más cercano a la planta $p$. Es decir, la longitud del viaje vacío será

\begin{equation} v = \min_{k=1,\ldots,m} |\pi_k-p| \end{equation}

La intuición nos dice que cuantos más ascensores haya tanto más será fácil que uno esté estacionado justo cerca de la planta donde estamos nosotros. Es decir, la intuición nos dice que si tenemos más ascensores, hacemos viajes vacíos más cortos: con más ascensores ahorramos energía.

¿Es válida nuestra intuición? Hay dos maneras de verificarla. Podemos calcular teoricamente el recorrido medio (en el viaje vacío: los otros no nos interesan, dado que siempre son iguales) de todos los ascensores como función del número de ascensores, o podemos ejecutar una simulación con ordenador. La primera solución es claramente la más interesante, pero es relativamente complejam y la dejo para el apéndice. Aquí considero la simulación.

El programa considera un edificio de $N$ plantas con $M$ ascensores ($N$ y $M$ son parámetros que hacemos variar para ver como cambia el número de viajes vacíos). La simulación considera un número $P$ de personas, cada una con un despacho en una de las plantas ($P$ es suficientemente grande como para que haya muchas personas en todas las plantas). Cada persona puede estar sólo en dos plantas: la planta donde tiene el despacho o la planta baja (1). Durante la simulación se elige una persona al azar para viajar. Si la persona se encuentra en la planta de su despacho, viajará a la planta baja, si se encuentra en la planta baja viajará a la planta de su despacho.

Para viajar, el sistema buscará el ascensor que en ese momento se encuentra más cerca, lo llevará (vacío) a la planta donde está la persona y viajará con la persona a la planta donde esta tiene que ir.

Aquí tenemos una cuestión de estrategia. Digamos que un ascensor acaba de terminar un viaje con una persona que desde la planta baja ha subido a la planta $k$. ¿Donde se posicionará el ascensor para esperar el próximo pasajero? En muchos edificios, tras un tiempo parado, el ascensor se posicionará en la planta baja. La idea es que, dado que muchos viajes empiezan en la planta baja, esto minimiza el tiempo de espera. Por otro lado, es fácil demostrar que la estrategia más eficiente, la que minimiza el número de viajes vacíos del ascensor es simplemente quedarse donde está. Es decir, desde el punto de vista de la eficiencia energética lo mejor para un ascensor que lleva a la planta $k$ es quedarse en la planta $k$ hasta que alguien lo llama a otra planta. Esta es la estrategia que asumimos en la simulación (y, también, en el model teórico).

El resultado es ilustrado en la figura siguiente. Las gráficas se refieren a edificios de 10 y 30 plantas.
Los puntos son los resultados de la simulación, mientras la línea continua es el resultado del modelo teórico desarrollado en apéndice. En el eje horizontal de cada gráfica está el número de ascensores ey en eje vertical el número de plantas que un ascensor tiene que recorrir, en media, para llegar a la planta donde se ha llamado, es decir, la longitud media (expressada en número de plantas) de un viaje vacío.

Se ve claramente que, cuantos más ascensores tanto menos es la longitud de los viajes vacíos: nuestra intuición era correcta. Eliminar ascensores no sólo no reduce el consumo, sino que lo aumenta. La simulación y el modelo teórico nos confiamrn nuestra intuición: reducir el número de ascensores no sólo no ahorra energía, sino que aumenta el consumo.

En nuestra simulación hemos hecho una aproximación que no se corresponde enteramente a la realidad: hemos asumido que en cada viaje el ascensor sólo va a una planta. En realidad, puede pasar que, por ejemplo, se encuentren esperando en la planta baja dos personas que, digamos, tienen que ir una a la segunda planta y una a la cuarta. En este caso las dos compartirán el ascensor y en un sólo viaje el ascensor llevará una persona a la segunda planta y una a la cuarta. Esta situación supone un ahorro respeto a nuestras estimaciones y, dado que con un ascensor uno tiene que esperar, en media, más que con muchos, si las personas llegan con intervalos de tiempo aleatorio, esperar más tiempo aumenta la posibilidad de que llegue alguien con quien compartir el viaje. Esto supone una pequeña ventaja de tener un sólo ascensor respeto a tener muchos, pero no cambia los resultados, sobre todo en un periodo como el verano en una universidad, en que hay poca gente, y la probabilidad de que dos compartan ascensor es bastante baja.

Como consideración final, concluimos que la eficacia de cerrar tres de los cuatros ascensores en mi edificio se basa en un (dudoso) efecto psicológico: cerrando tres ascensores para ahorrar energía (y publicando que esta es la razçon del cierre) se puede concenciar la gente sobre la necesidad de ahorrar energía y animarlas a usar las escaleras. Este efecto tiene que enfrentarse al efecto opuesto: hay gente que normalmente usa las escaleras y, viendo que el rectorado intenta evitar que usen el ascensor, empezarán a usarlo.

En definitiva: parece que cerrar ascensores para ahorrar energía es una mala idea.

El modelo teórico

Consideramos un edificio con $n+1$ plantas ($n$ más la planta baja), numeradas como $[0,1,\ldots,n]$ y $m$ ascensores.

Empezamos el modelo teórico considerando un solo ascensor y determinando la probabilidad que, en un momento dado, este ascensor se encuentre en la planta $k$ tras terminar un viaje. Según nuestro modelo, la mitad de los viajes llegan a la planta baja, lo que significa que hay una probabilidad $1/2$ que el ascensor esté en la planta baja. La probabilidad que esté en una de las otras plantas es uniforme, dado que las personas tienen despacho en cualquer planta con la misma probabilidad. Normalización nos da \begin{equation} p(u) = \begin{cases} \frac{1}{2} & u = 0\\ \frac{1}{2n} & 1 \le u \le n \\ 0 & u<0 \mbox{ or } u>n \end{cases} \end{equation} (hemos extendido la función a valores de $k$ menores de $0$ y mayores de $n$ aún si estas plantas no existen: esto simplificará las ecuaciones que siguen). Supongamos ahora que estamos en la planta $u$ y llamamos el ascensor. ¿Cuál es la probabilidad que para llegar el ascensor tenga que recorrer $k$ plantas? Para que sea $k=0$, el ascensor tiene que estar en nuestra planta, y esto acontece con probabilidad $p(u)$. Por otro lado el ascensor tendrá que recorrer $k>0$ plantas si dos casos: si se encuentra en la planta $u+k$ o si se encuentra en la planta $u-k$. Llamemos $d_u$ la distancia recorrida por el ascensor. Esto nos da \begin{equation} {\mathbb{P}}[d_u=k] = \pi_u(k) = \begin{cases} p(u) & k=0 \\ p(u+k) - p(u-k) & k > 0 \end{cases} \end{equation} (en la segunda ecuación, es posible que los valores $u-k$ y $u+k$ salgan del rango $[0,\ldots,n]$. Esto no cambia al definición en cuanto hemos definido $p(u)=0$ en esos rangos). La probabilidad que la distancia que el ascensor tenga que recorrer es como mucho $k$ es \begin{equation} {\mathbb{P}}[d_u\le k] = \Pi_u(k) = \sum_{h=0}^k \pi_u(k) = p(u) + \sum_{h=1}^k p(u+h) + p(u-h) \end{equation} Todo esto se refiere a un solo ascensor. Si tenemos $m$, y asumimos que se mueven el uno independendientemente del otro, las fórmulas estándar de la estadística nos dice que la probabilidad que por lo menos uno esté a una distancia $d_u\le{k}$ de nosotros es \begin{equation} \Pi_u^{(m)}(k) = 1 - [1-\Pi_u(k)]^m \end{equation} y la probabilidad de que uno esté a una distancia exactamente $k$ es \begin{equation} \pi_u^{(m)}(k) = \Pi_u^{(m)}(k) - \Pi_u^{(m)}(k-i) \end{equation} La distancia media (medida en número de plantas) que un elevador tiene que viajar para alcanzarnos, dado que nos encontramos en la planta $u$ es \begin{equation} \Delta_m(u) = \sum_{k=0}^n k \pi_u^{(m)}(k) \end{equation} Todo esto vale si nos encontramos en la planta $u$. La probabilidad de encontrarnos en una planta dada es $p(u)$, por tanto la distancia media que los ascensores tendrán que viajar es \begin{equation} \Delta_m = \sum_{u=0}^n p(u) \Delta_m(u) \end{equation} Esta es la función que utilizamos para derivar la curva continua que se ve en la gráfica.
(1) El hecho que personas puedan estar en otras plantas no cambia la estadísticas del sistema en cuanto, en media, por cada persona con despacho en la planta $k$ que se encuentra en la planta $h$, hay una persona con despacho en la planta $h$ que se encuentra en la planta $k$

jueves, 6 de mayo de 2021

Interpretar bien las medias

 

La estadística tiene, en ciertos círculos, una mala reputación, la de la disciplina según que "si tu te comes dos pollos y yo ninguno, hemos comido un pollo cada uno". Esto es cierto a un nivel muy superficial, pero, si personas sin escrúpulos pueden usar la estadística para hacer esta afirmación (y peores), la estadística también nos ofrece instrumentos para averiguar que, en el caso del pollo, la situación no es tan idílica.

La afirmación que acabamos de hacer se basa en la media aritmética de un conjunto de valores. La media de un conjunto de números, que llamaremos $x_1,\ldots,x_n$ es simplemente la suma de los valores dividida por el número de valores que tenemos. La media se indica normalmente con $\bar{x}$, y se puede escribir como (*):

\begin{equation} \bar{x} = \frac{x_1 + x_2 + \cdots + x_n}{n} = \frac{1}{n} \sum_{i=1}^n x_i \end{equation}

Supongamos por ejemplo que tenemos un conjunto de 10 personas, que tienen altura, en cm:
pesona altura
1 140
2 195
3 150
4 180
5 160
6 185
7 160
8 180
9 175
10 175
La altura media de estas personas es

\begin{equation} \bar{h} = \frac{1}{10}(140+195+150+180+160+185+160+180+175+175) = \frac{1700}{10} = 170 \end{equation}

Consideremos ahora otro grupo de 10 personas
persona altura
1 170
2 170
3 170
4 170
5 170
6 170
7 170
8 170
9 170
10 170
Es fácil ver que en este caso también la altura media es de $170$ cm pero, en este caso, nos encontramos frente a una situación bastante diferente: mientras en primer caso las alturas eran muy variadas, de 140 a 195 cm y, en efecto, nadie medía 170 cm, ahora tods miden 170 cm. Las diferencia entre las dos situaciones se puede evidenciar por medio de un histograma: en abscisa ponemos todos los posible valores que la altura puede tomar (en este caso, será suficiente poner valores entre 140 y 195 cm) y en ordenada, por cada valor, el número de personas cuya altura tiene ese valor. Los resultados están en la Figura 1. Aquí es evidente que las dos situaciones son muy diferentes, en la primera las alturas están muy "desperdiciadas" alrededor de la media.

Lo que necesitamos ahora es una medida de este efecto, un número que nos diga cuanto "desperdiciados" son los datos alrededor de la media. Esta medida es la varianza. La varianza es definida como la media de los cuadrados de las distancias entre cada elemento y la media. Es decir, si tenemos los elementos $x_1,\ldots,x_n$, y su media es $\bar{x}$, la varianza $\sigma^2$ se define como(**)

\begin{equation} \sigma^2 = \frac{1}{n} \left[ (x_1-\bar{x})^2 + \cdots + (x_n-\bar{x})^2 \right] = \frac{1}{n} \sum_{i=1}^n (x_i-\bar{x})^2 \end{equation}

La varianza nos da la indicación que buscábamos de la dispersión de los valores alrededor de la media. El el primer caso arriba, la varianza es

\begin{equation} \sigma^2 = \frac{1}{10}\left[ (140-170)^2+(195-170)^2+(150-170)^2+ (180-170)^2+(160-170)^2 \\ +(185-170)^2+ (160-170)^2+(180-170)^2+(175-170)^2+ (175-170)^2\right] = 260 \end{equation}

En el segundo caso, todos los factores son $(170-170)^2=0$, por tanto $\sigma^2=0$.

La varianza nos ayuda a resolver el caso del pollo: es cierto que, mediamente, nos comemos un pollo cada uno, pero en el caso "de justicia", en que efectivamente nos comemos un pollo cada uno, la varianza es cero, en el caso en que uno se come dos pollos y el otro ninguno, la varianza es $1$.

La media, como medida estad&iacite;stica, tiene otro problema: es muy sensible a la presencia de pocos valores muy alejados de ella, los llamados outliers. Consideramos un barrio con 10 familias. Nueve de ellas ganan 10.000 Euros al año, la d´cima gana 1.000.000 de Euros. Si queremos dar una valoración global de ese barrio no diríamos que se trata de un barrio rico: casi todo el mundo gana muy poco dinero. Sin embargo, si calculamos el sueldo anual medio en este barrio conseguimos

\begin{equation} \bar{s} = \frac{1}{10} (9 \times 10.000 + 1.000.000) = 109.000 \end{equation}

Un sueldo medio de más de 100.000 Euros al año nos puede hacer pensar que el barrio es rico mientras, en realidad, no lo es (y esto, claramente, puede perjudicar a las 9 familias a la hora de recibir ayudas o de establecer el IBI en sus viviendas). El problema está en esa única familia que gana tanto dinero que sube la media para todos. En este caso la varianza nos avisa que algo está pasando

\begin{equation} \sigma^2 = \frac{1}{10} \left[ 9*(10.000-109.000)^2 + (1.000.000-109.000)^2\right] = 88.209.000.000 \end{equation}

En este caso, una medida más fiable nos la da la mediana. La mediana de este conjunto es simplemente el sueldo tal que la mitad de las familias gana un sueldo menor o igual a la mediana, y la mitad gana un sueldo mayor o igual. En este caso, la mitad de las familias (5 familias) gana 10.000 Euros (o menos, pero esto no nos interesa en este caso) y la mitad gana 10.000 Euros o más. Por tanto el sueldo mediano en el barrio que nos interesa es de 10.000 Euros al año: el barrio no es rico.


(*) El símbolo $\sum$ se usa en matemáticas para indicar una suma de valores. Los habitantes de Madrid lo reconocerán en el símbolo de la comunidad: $\Sigma{M}$, donde $M$ indica los habitantes de Madrid y el símbolo $\Sigma$ indica "la suma de todos", así como recita el lema asociado al logo.

(**) El cuadrado es necesario. Si no lo ponemos, se puede demostrar que los elementos más grandes que la media compensan exactamente los menores que la media, por tanto el resultado sería siempre cero. Es decir, sean cual sean los valores $x_i$ y su media $\bar{x}$, es

\begin{equation} \frac{1}{n} \sum_{i=1}^n (x_i-\bar{x}) = 0 \end{equation}

miércoles, 7 de abril de 2021

El método d'Hondt para asignar escaños.

En España, en las elecciones, la asignación de escaños se hace usando un método conocido como "método d'Hondt", nombrado en honor a su creador, el matemático Belga Victor D'Hondt, que lo creó en 1878 . Se habla mucho de este método, de sus ventajas y de sus problemas, pero no todos saben exactamente como funciona. No es un método complicado: sólo necesita unos sencillos cálculos.

La mejor manera para entenderlos es quizás con un ejemplo. En una elección se presentan cuatro partidos, que llamaremos A, B, C, D. En las elecciones se asignan 11 escaños. Supongamos que los partidos han conseguido los votos siguientes:

A: 90000
B: 50000
C: 20000
D: 5000

Pongamos estos valores en una lista:

A B C D
90000 50000 20000 5000

El partido que tiene más votos es el partido A. Asignamos un escaño al partido A y dividimos su número de votos por dos. Ahora tenemos una situación que podemos resumir como sigue:
A B C D Escaño
90000 50000 20000 5000 A
45000 50000 20000 5000

En la primera fila hemos indicado que hemos asignado un escaño al partido A, y en la segunda fila hemos puesto el resultado de la división. Ahora el máximo número de votos los tiene el partido B. Asignamos un escaño a B, y dividimos su número de votos por dos:
A B C D Escaño
90000 50000 20000 5000 A
45000 50000 20000 5000 B
45000 25000 20000 5000

Ahora, otra vez, el partido A es el que tiene más votos. Asignamos un escaño al partido pero esta vez ponemos en la lista su número de votos dividido por tres:
A B C D Escaño
90000 50000 20000 5000 A
45000 50000 20000 5000 B
45000 25000 20000 5000 A
30000 25000 20000 5000

Otra vez, el máximo de votos lo tiene el partido A: le asignamos un escaño y remplazamos el valor con su número de votos dividido por cuatro:
A B C D Escaño
90000 50000 20000 5000 A
45000 50000 20000 5000 B
45000 25000 20000 5000 A
30000 25000 20000 5000 A
22500 25000 20000 5000

Ahora el máximo lo tiene B, le asignamos un escaños y ponemos en la lista sus votos divididos por tres... seguimos así hasta haber asignado todos los escaños (10, en este caso). El resultado final es el esquema siguiente:
A B C D Escaño
90000 50000 20000 5000 A
45000 50000 20000 5000 B
45000 25000 20000 5000 A
30000 25000 20000 5000 A
22500 25000 20000 5000 B
22500 16667 20000 5000 A
18000 16667 20000 5000 C
18000 16667 10000 5000 A
15000 16666 10000 5000 B
15000 12500 10000 5000 A
12857 12500 10000 5000 A

El partido A ha conseguido 7 escaños, B ha conseguido 3, C ha conseguido 1 y D no ha conseguido ninguno.

Hasta ahora todo bien, pero ahora empiezan los problemas. Supongamos que los partidos B y C se unen, y suman sus electores. Ahora tenemos sólo tres partidos, que consiguen los votos siguientes:

A: 90000
BC: 70000
D: 5000

Si aplicamos el método que acabamos de usar, conseguimos la tabla siguiente:

A BC D Escaño
90000 70000 5000 A
45000 70000 5000 BC
45000 35000 5000 A
30000 35000 5000 BC
30000 23333 5000 A
22500 23333 5000 BC
22500 17500 5000 A
18000 17500 5000 A
15000 17500 5000 BC
15000 14000 5000 A
12857 14000 5000 BC

Ahora el partido A consigue 6 escaños, el partido BC consigue 5 y el partido D, otra vez, no consigue ninguno.

Los dos partidos, B y C, presentándose separadamente conseguían, entre los dos, cuatro escaños. Si se unen, aún si el número total de votos no cambia, consiguen cinco. Han ganado un escaño simplemente por presentarse juntos. Al mismo tiempo el partido A, con el mismo número de voto y el mismo porcentaje respeto al número total, ha perdido un escaño simplemente porque dos partidos se han unido, incluso si el número total de votos que han conseguido no cambia. Este es el efecto de ventaja para los grandes partidos de que se habla cuando se menciona el método d'Hondt.

Hay que remarcar que, en las elecciones en España, este no es el factor más importante que favorece los grandes partidos. La manera en que se recuperan los votos perdidos tiene una influencia mucho más grande. En este caso, por ejemplo, el partido D no ha conseguido escaños dado que sólo tiene 5000 votos. Sin embargo, entre todas las circunscripciones el partido podría acumular un número considerable de votos y aún así nop tener ningún escaño.

Por esto se considera que en el caso de la comunidad de Madrid, que tiene una sola provincia y una sola circunscripción, la elección es esencialmente proporcional. También contribuye a esto el número relativamente elevado de escaños: Madrid tiene 136 escaños, uno cada 48.000 habitantes, mientras que el congreso español, con 350 escaños, tiene uno cada 134.000 habitantes. Es posible ver que el efecto de ventaja que hemos considerado aquí es menor si en la elección se asignan muchos escaños comparados con el número de electores.

Aun así, el efecto es real, y contribuye a penalizar los partidos pequeños. Por esto, en muchos países de Europa se usa un método modificado en que en lugar de dividir por 2, 3, 4,... se divide por 3, 5, 7,... consiguiendo un reparto más proporcional de los escaños.

Si el método d'Hondt tiene este tipo de problemas, uno se puede preguntar porqué no usamos uno mejor. Hasta nos podemos preguntar si existe un método que asigna los escaños de una manera que refleja perfectamente los votos. Resulta que esto es imposible, y nos lo impide un teorema matemático, el teorema de Arrow. El teorema se refiere a decisiones en que cada persona puede extresar una lista de preferencias entre alternativas, pero se extiende fácilmente a sistema de votos. Al teorema dice que no existe ningún sistema de ordenación de preferencias que cumpla las siguientes cinco condiciones:
  1. No-dictadura: se tienen en cuenta los deseos de todos lso electores;
  2. Eficiencia de Pareto: las preferencias unánimes son respetadas: si todos los electores prefieren el candidato A al candidato B, el candidato A gana;
  3. Independencia de las alternativas irrelevantes: si se elimina un candidato, el orden de los otros no debe cambiar. Si el candidato A es preferido frente al candidato B y existe otro candidato C, la eliminación de C no cambia las cosas: A sigue siendo elegido frente a B.
  4. Dominio sin restricciones La votación tiene que tener en cuenta todas las preferencias de los electores;
  5. Orden social: cada persona debe tener la libertdad de ordenar sus preferencias como quiera.
Se trata de condiciones muy razonables, algo que nos parece normal pedir a un sistema de elección. Pero el teorema dice que no existe ningún sistema de elección que respete estas cinco condiciones. El método d-Hondt, por ejemplo (así como casi todos los métodos existentes) no cumple la condición 3: Independencia de las alternativas irrelevantes.

Lamentablemente, el sistema perfecto no existe: hay que aprender a convivir con la imperfección.

miércoles, 31 de marzo de 2021

Interpretemos bien las gráficas

La pandemia nos ha transformado todos si no en expertos en epidemiología, por lo menos en personas que buscan toda la información posible sobre el sujeto. Conceptos que hasta 2020 nos eran completamente extraños (Incidencia Acumulada a 14 días, R0, ola epidémica, pico de la curva,...) ahora nos "suenan", incluso si a veces no estamos tan seguros de su significado o de su definición precisa. La epidemiología es un sujeto complejo y supone analizar mucha información. En búsqueda de esta información recurrimos a menudo a gráficas, muchas veces a gráficas publicadas en periódicos y diseñada por personas cuyos conocimientos en análisis de datos no podemos averiguar.

Las gráficas son un muy bien instrumento para conseguir información: nos proporcionan una visión global (gestalt) de los datos que una secuencia de números no nos pueden dar, una que nos hace entender, a primera vista, el comportamiento general de un fenómeno.

Pero hay que tener cuidado: los gráficos pueden ayudar a comprender pero pueden también engañar y darnos una impresión falsa que invalidará todos los razonamientos que hagamos en la base de esa información. Y hay que tener doblemente cuidado con la posibilidad que los gráficos se utilicen intencionalmente para manipular la información, para dar una impresión que no se corresponde a lo que dicen los datos.

Una manera muy común de provocar una impresión incorrecta es el uso de una escala expandida. Consideremos dos grupos de 150 personas en que se puede producir un fenómeno dado. En el primer grupo el fenómeno se produce en 105 personas, mientras en el segundo grupo se produce en 115. La diferencia entre los dos grupos es de 10 personas, un 5% del total. Los dos gráficos de la Figura 1 representan esta situación, pero en dos escalas muy diferente. El primero tiene en el eje de las ordenadas una escala de 0 a 120, y muestra que la diferencia entre los dos grupos es muy pequeña. El segundo expande la escala, y sólo muestra en ordenadas los valores de 100 a 120. En esta gráfica la diferencia entre los dos grupos aparece mucho más grande de lo que es en realidad: nos da una impresión equivocada.

Esto no quiere decir que la escala expandida sea un mal o que no tenga su utilidad. Consideremos el caso en que tenemos 10.000 personas y cada día cierto número de personas hacen algo (para fijar las ideas: contamos cuantas personas toman café sin leche por la mañana---los datos que pongo son completamente inventados y los uso sólo para mostrar las características de los gráficos; no tienen nada que ver con la vida real). El gráfico de la Figura 2 muestra un valor prácticamente constante: de las 10.000 personas, unas 5.000 toman café sin leche por la mañana.

 

Si ahora expandimos la escala y ponemos en ordenadas los valores entre 4.500 y 5.500 conseguimos la gráfica de la Figura 3


Aquí es evidente que los datos tienen una periodicidad semanal: el fin de semana menos personas desayunan con café sin leche (quizás porqué tienen más tiempo para desayunar y e toman un café con leche y una tostada...). Se trata de algo que casi no se notaba en la gráfica de la Figura 2 y que la expansión de la escala ha puesto en evidencia. En este caso la expansión de la escala, lejos de engañarnos, nos ha ayudado a ver algo que con la escala completa no veíamos.

 

 

Otra solución que puede ser útil o engañosa según se usa es el uso de una escala logarítmica. En una gráfica como la que hemos visto ahora, distancias iguales en el dibujo corresponden a intervalos iguales. En una escala logarítmica, intervalos iguales corresponden a intervalos que se multiplican cada vez por 10. Así, por ejemplo, el intervalo entre 1 y 10 tiene el mismo espacio que el intervalo entre 10 y 100 y el entre 100 y 1000: a medida que los números se hacen grandes, el espacio dedicado a cada número se reduce. Esto puede llevar a no evaluar bien las diferencias entre fenómenos. Las tres curvas de la Figura 4 muestran la variación del precio de tres productos (de fantasía) a lo largo del año. La primera impresión que nos da la gráfica es que precio del producto B está a la mitad entre los productos A y C. En realidad, si dibujamos la gráfica en una escala lineal, conseguimos el resultado de la Figura 5

 


                           


El producto B cuesta 10 veces el producto A, y el producto C cuesta 10 veces el producto B. El diagrama nos daba una impresión equivocada. El diagrama también nos da la impresión que el crecimiento está reduciendo su velocidad, mientras el diagrama de la Figura 5 nos muestra que no es así. Por otro lado está claro que algo se está reduciendo, pero… ¿Qué? Para ver esto hay que considerar otro tipo de curva y de fenómeno: los fenómenos exponenciales.

 

Como en el caso anterior, esto no quiere decir que un diagrama logarítmico no sea útil. Un caso pertinente son los datos de una pandemia. Una pandemia, en sus inicios, tiene un comportamiento exponencial, es decir, el número de casos es una función del tiempo del tipo \begin{equation} C(t) = e^{\beta_t t} \end{equation}

donde $\beta_t$ es el parámetro que determina la velocidad de propagación de la epidemia: si $\beta$ es constante, la epidemia se extiende de manera incontrolada, si $\beta$ se reduce con el tiempo, la epidemia está frenando su expansión. El problema es que la función exponencial crece tan rápidamente que puede ser difícil observar este efecto. Consideremos la Figura 6 (en un diagrama lineal): ¿qué hace la exponencial? ¿Está frenando o no?

 


En este diagrama es difícil decirlo. Por otro lado, en un diagrama logarítmico lo que se representa es el logaritmo de la función: 

 

\begin{equation} \log C(t) = \log e^{\beta t} = \beta t \end{equation}

 

Es decir, una exponencial se transforma en una línea recta, con una pendiente constante. Si visualizamos los datos de la Figura 6 en un diagrama logarítmico, observamos el comportamiento de la Figura 7


donde está claro que la epidemia está frenando su crecimiento. Una manera aún más clara de determinar el comportamiento de una curva exponencial es mirar el aumento en porcentaje de un día para otro. Esto, excepto un factor 100, es una aproximación de 

\begin{equation} \frac{1}{C(t)}\frac{d}{dt} C(t) = \frac{\beta e^{\beta t}}{ e^{\beta t}} = \beta \end{equation}

 

En este caso, si la epidemia sigue un andamiento exponencial, veremos una línea horizontal. La Figura 8 muestra este valor para la primera ola de la pandemia en España (curva azul oscuro contínua).

 


Al principio la curva es muy irregular: cuando los casos son pocos, pocas variaciones aleatorias suponen grandes cambios. A medida que el número de casos aumenta, la curva se hace más regular, y se nota un claro descenso: desde finales de Marzo la pandemia empezaba a estar controlada.

 

Las gráficas son un instrumento muy útil en cuanto proporcionan una visión intuitiva, a primera vista, del comportamiento de un fenómeno. Pero, por la misma razón, también se prestan a manipular la información y a dar impresiones equivocadas. Por esto es importante, siempre, fijarse bien en los detalles de cualquier representación gráfica, y juzgar si la representación que se está mirando ofrece una imagen fiel de los datos o no. En caso de duda, mejor fijarse en los números: menos intuitivos, pero que nunca mienten.

 

 

 

 

 

lunes, 15 de febrero de 2021

El arte de contar II: torres de Hanoi y recursión

La recursión es uno de los principios más importantes no sólo de las matenáticas sino, también, de la informática. Todos los lenguajes de programación modernos permiten la recursión, y la usan como una de sus características fundamentales.

La idea de la recusrión es uy sencilla: utilizar, para la solución de un problema, la solución de una versión más sencilla del mismo problema, hasta llegar así, reduciendo la dimensión del problema, a uno tan sencillo que se puede resolver sencillamente.

La manera mejor de entender la recusrión es a través de un ejemplo. Consideremos un juego muy conocido: el juego de las torres de Hanoi. En una table hay tres palos y en uno de ellos hay una serie de discos de diámetro progresivamente más grande, hasta formar una especie de pirámide:
El juego consiste en mover la pirámide del palo $1$ al $2$ sin poner nunca un disco más grande por encima de uno más pequeño.

Si la torre está formada por $n$ discos, llamaremos el problema $\mbox{Hanoi}(n)$. Imaginemos ahora que no sabemos como solucionar $\mbox{Hanoi}(n)$ pero sí sabemos como solucionar el problema más sencillo con $n-1$ discos: $\mbox{Hanoi}(n-1)$. Con esta solución, es fácil resolver $\mbox{Hanoi}(n)$. El algoritmo es el siguiente:
  1. Usa $\mbox{Hanoi}(n-1)$ para mover los $n-1$ discos más pequeños del palo $1$ al palo $3$.
  2. Mueve el disco más grande del palo $1$ al palo $2$.
  3. Usa $\mbox{Hanoi}(n-1)$ para mover los $n-1$ discos más pequeños del palo $3$ al palo $2$.
El algoritmo se representa esquemáticamente como en Figura 2.
En realidad no hemos resuelto mucho: no sabemos como resolver $\mbox{Hanoi}(n-1)$. Pero, bueno, si sabemos como resolver $\mbox{Hanoi}(n-2)$ podemos usar el mismo algoritmo para resolver $\mbox{Hanoi}(n-1)$. ¿Y cómo resolvemos $\mbox{Hanoi}(n-2)$? Bueno, si sabemos como resolver $\mbox{Hanoi}(n-3)$...

Seguimos así hasta llegar a $\mbox{Hanoi}(1)$, el problema con sólo un disco. Y si sólo hay un disco, el problema es sencillo: movemos el disco desde el palo donde está al palo donde lo queremos y ya está.

La idea que hemos usado para resolver el problema de las torres de Hanoi es muy general. En informática es una idea que hace muy fácil escribir programas, en matemática se relaciona con uno de los principios más importantes de las matemáticas de los números enteros, el principio de inducción. Consideremos primero el problema desde el punto de vista de un programador.

Para los programadores

Las características de los problemas recursivos hace muy fácil programar soluciones para problemas aparentemente muy complicado como la torre de Hanoi. En este caso, escribir un programa que nos diga, paso a paso como mover los discos sería, sin recursión, extremadamente complicado (los que tienen buenos conocimientos de programación pueden intentarlo: el programa se puede escribir, pero es muy complicado de escribir y muy difícil de intender). Por otro lado, escribir un programa recursivo es muy fácil.

Queremos escribir una función, que llamaremos hanoi($n$, $a$, $b$, $c$). La función, como vemos, recibe cuatro parámetros. El primer parámetro ($n$) es el número de discos que tenemos que mover, el segundo ($a$) es al palo en que están los discos, el tercero ($b$) es el palo en que queremos mover los discos, finalmente, el cuarto ($c$) es el tercer palo, que, si lo necesitamos, podemos usar como auxilio para mover los discos de $a$ a $b$. La función, escrita en un \dqt{psudo-código} bastante fácil de entender es la siguiente:

  hanoi(n, a, b, c)
    if n = 1 then
      print "mueve un disco de " a " a " b
    else
      hanoi(n-1, a, c, b)
      print "mueve un disco de " a " a " b
      hanoi(n-1, c, b, a)

Esto es todo. Si $n=1$, sólo hay que mover un disco, por tanto imprimimos en pantalla que hay que mover un disco desde el palo fuente al palo destino. Si no, la función se llama a si misma para mover $n-1$ discos de la fuente al palo intermedio, mueve al disco más grande (que ahora ha quedado al descubierto) del palo fuente al palo destino, y luego vuelve a mover los $n-1$ discos que se había quitado del medio del palo auxiliario al palo destino. Y el programa funciona. Si ejecutamos la función hanoi(5, 1, 2, 3) (mueve una torre de cinco discos del palo 1 al palo 2 usando 3 como auxilio), conseguimos la respuesta siguiente:

mueve un disco de 1 a 2
mueve un disco de 1 a 3
mueve un disco de 2 a 3
mueve un disco de 1 a 2
mueve un disco de 3 a 1
mueve un disco de 3 a 2
mueve un disco de 1 a 2
mueve un disco de 1 a 3
mueve un disco de 2 a 3
mueve un disco de 2 a 1
mueve un disco de 3 a 1
mueve un disco de 2 a 3
mueve un disco de 1 a 2
mueve un disco de 1 a 3
mueve un disco de 2 a 3
mueve un disco de 1 a 2
mueve un disco de 3 a 1
mueve un disco de 3 a 2
mueve un disco de 1 a 2
mueve un disco de 3 a 1
mueve un disco de 2 a 3
mueve un disco de 2 a 1
mueve un disco de 3 a 1
mueve un disco de 3 a 2
mueve un disco de 1 a 2
mueve un disco de 1 a 3
mueve un disco de 2 a 3
mueve un disco de 1 a 2
mueve un disco de 3 a 1
mueve un disco de 3 a 2
mueve un disco de 1 a 2

Si alguien tiene la paciencia de probarlo, verá que, efectivamente, las instrucciones son correctas.

Para los matemáticos

Una cosa puede haber llamado la atención en el ejemplo precedente: hay muchos movimientos. Incluso para mover una torre de sólo cinco discos, son necesarios muchos movimientos. Es natural (para un matemático, por lo menos) preguntarse: Cuántos movimientos necesito para mover una torre de $n$ discos, donde $n$ puede ser cualquiera?

Para descubrirlo, llamemos $H(n)$ el número de movimientos necesarios para mover una torre de $n$ discos. Si sólo tenemos un disco, la cosa es fácil: simplemente movemos el disco de un palo al otro. Por tanto: \begin{equation} H(1) = 1 \end{equation} Para cualquier $n$ construimos una ecuación recursiva. Para mover una torre de $n$ discos del palo $1$ al palo $2$, tenemos que hacer tres operaciones:
  1. mover una torre de $n-1$ discos de $1$ a $3$; el número de movimientos necesarios es $H(n-1)$;
  2. mover el disco que queda de $1$ a $2$: un movimiento;
  3. mover una torre de $n-1$ discos de $3$ a $2$; el número de movimientos necesarios es $H(n-1)$.
Sumando todos los movimientos, esto nos da la ecuación recursiva \begin{equation} H(n) = 2\cdot H(n-1) + 1 \end{equation} Con estas dos ecuaciones, podemos calcular el número de movimientos necesario por cualquier $n$: \begin{equation} \begin{aligned} H(1) &= 1~~~\mbox{esto ya lo sabíamos} \\ H(2) &= 2H(1) + 1 = 2 + 1 = 3 \\ H(3) &= 2H(2) + 1 = 2\cdots 3 + 1 = 7 \\ H(4) &= 2H(3) + 1 = 2\cdots 7 + 1 = 15 \\ H(5) &= 2H(4) + 1 = 2\cdots 15 + 1 = 31 \vdots \end{aligned} \end{equation} Con este método podemos calcular el número de movimientos necesarios para cualquier número de discos. Es fácil continuar y darse cuenta, por ejemplo, que para mover una torre de $10$ discos son necesarios nada menos que $1023$ movimiento y para una torre de 20 discos un imposible $1.048.575$ movimientos.

Esto nos puede satisfafer, pero seguramente no satisface a un matemático. Lo que un matemático busca es una fórmula directa, algo no recursivo, algo que, por cada número $n$, nos dice, directamente y sin tantos rodeos, cuantos movimientos necesitamos. (No siempre los matemáticos lo consiguen, pero en este caso veremos que sí, que se puede conseguir).

Empecemos notando que los números que hemos conseguido tienen una particularidad: si los aumentamos de una unidad, conseguimos siempre potencias de $2$: $1+1=2=2^1$, $3+1=4=2^2$, y siguiendo $31+1=32=2^5$. Lo mismo vale para los otros valores que hemos mencionado: $1.023+1=1.024=2^{10}$ y $1.048.575+1=1.048.576=2^{20}$. No sólo: notamos que el exponente de $2$ siempre es igual al argumento de la función $H$. Así, por ejemplo \begin{equation} \begin{aligned} H(3) + 1 &= 7 + 1 = 8 = 2^3 \\ H(5) + 1 &= 31 + 1 = 32 = 2^5 \\ H(10) + 1 &= 1.023 + 1 = 1.024 = 2^{10} \end{aligned} \end{equation} Esto nos da una idea: es posible que hayamos encontrado la regla general, y que podamos escribir, por cada número $n$ \begin{equation} H(n) = 2^n - 1 \end{equation} Es posible (y, de hecho, es así). Pero un buen matemático no se conforma con ser posible: un buen matemático necesita demostrarlo. Para hacer esto, dejamos de un lado por el momento nuestra ecuación y nos ocupamos de un método de demostración muy útil, muy relacionado con la recursión, y que nos permitirá demostrar nuestra hipótesis: el método de inducción.

El método de inducción

El método de inducción es un instrumento potente y en aparencia sencillo, pero la lógica que está detrás de su aplicación es sorprendentemente sutil. Empecemos con su definición. Consideremos una propiedad $P$ que los números enteros pueden o no tener, y escribamos $P(n)$ para indicar que el número $n$ tiene la propiedad. $P$ puede representar muchas propiedades. Por ejemplo:
  1. $P(n)$ quiere decir "$n$ es un número primo";
  2. $P(n)$ quiere decir "$n$ es impar";
  3. $P(n)$ quiere decir $n>0$;
  4. $P(n)$ quiere decir "$2n$ es par;"
  5. $P(n)$ quiere decir "una torre de Hanoi con $n$ discos se puede mover en $2^n-1$ movimientos"
Algunas de estas propiedades son ciertas por todos números (todos números enteros son mayores de cero, y su doble es par), otras no (no todos los números son primos, ni todos son impares). Propiedades como $P$ también tienen propiedades. En particular, llamaremos una propiedad hereditaria si lo siguiente es ciertos: por cada número $n$, si $n$ tiene la propiedad, entonces $n+1$ también la tiene. En lógica esto se escribe: \begin{equation} \forall n. P(n) \Rightarrow P(n+1) \end{equation} (el símbolo $\forall$ singifica "para todos": con esto afirmamos que lo que sigue es cierto por todo $n$, el símbolo $\Rightarrow$ quiere decir "implica": afirma que si el predicado que precede el símbolo es cierto, el predicado que lo sigue también lo es). Es fácil ver, por ejemplo, que la propiedad 3 es hereditaria: si un número $n$ es mayor de cero y consideramos el número $n+1$ obtenido añadiendo una unidad a $n$, ese número también será mayor de cero. Por otro lado, la propiedad 2 no lo es: si $n$ es impar (por ejemplo, si $n=3$) entonces $n+1$ ($4$, en este caso) es par.

El principio de inducción nos dice lo siguiente:

Dada una propiedad $P$, si $P$ es válida en el caso de $n=1$, y $P$ es hereditaria, entonces $P$ es válida para todo número entero.

La intuición confirma el principio. Digamos, por ejemplo, que queremos demostrar que la propiedad es válida en el caso $n=5$. Procedemos así:
  • $P$ es cierto en el caso de $n=1$, es decir, $P(1)$;
  • Si $P(1)$ es cierto, entonces $P(2)$ es cierto;
  • Si $P(2)$ es cierto, entonces $P(3)$ es cierto;
  • Si $P(3)$ es cierto, entonces $P(4)$ es cierto;
  • Si $P(4)$ es cierto, entonces $P(5)$ es cierto;
Por tanto, si $P$ respeta los requisitos del principio de inducción, $P(5)$ es cierto. De la misma manera podemos (idealmente) aplicar el principio para demostrar que $P(n)$ es cierto sea cual sea $n$*.

Este principio nos proporciona una manera muy útil para demostrar teoremas. Tenemos una propiedad $P$ que queremos demostrar (por ejemplo, quereoms demostrar que el doble de cada número $n$ es par). Para demostrarla tenemos que demostrar que cumple las hipótesis del principio de inducción, es decir, tenemos que demostrar que:
  1. La propiedad es cierta en el caso $n=1$ (esto se llama el "caso base")
  2. Si asumimos que la propiedad es cierta en el caso $n$ (es decir: asumimos por hipótesis que $P(n)$ es cierto), entonces la propiedad es cierta en el caso $n+1$ (es decir: si $P(n)$ s cierto, entonces $P(n+1)$ también es cierto, esto es el "caso de inducción").
Si conseguimos demostrar estas dos cosas, entonces hemos demostrado que la propiedad $P$ es cierta por cada número. Considereos un ejemplo: queremos demostrar que, por cada $n$, $2n+1$ es impar. Tenemos los dos casos:
  1. Caso base: $n=1$. En este caso $2n+1=3$, y sabemos que $3$ es impar.
  2. Inducción: suponemos que la propuedad es cierta para $n$, es decir, supongamos que $2n+1$ es impar. Tenemos que demostrar que $2(n+1)+1$ es impar. Procedemos como sigue: \begin{equation} 2(n+1)+1 = 2n + 2 + 1 = 2n+1 + 2 \end{equation} Ahora, sabemos que $2n+1$ es impar, por tanto en esa ecuación tenemos un número impar (lo llamamos $m$) a que le añadimos $2$. Dado que $m$ es impar, su succesor, $m+1$ es par y por tanto su succesor $m+1+1=m+2$ es impar.

De vuelta a Hanoi

Tenemos ahora los instrumentos para demostrar que nuestra solución del número de movimientos necesarios para mover una torre es correcta. Sólo tenemos que reformular nuestro descubrimiento como una propiedad de los números enteros. La propiedad es la siguiente:

El número $n$ tiene la propiedad de Hanoi ($H(n)$) si es posible mover una torre de Hanoi de $n$ discos usando $H(n)=2^n-1$ movimientos.

Recordamos que $H(n)$ es el resultado de la ecuación recursiva \begin{equation} H(n) = 2\cdot H(n-1) + 1 \end{equation} que asumimos válida. Empecemos la demostración con los dos pasos
  1. Paso base $n=1$. Sabemos que podemos mover una torre de un solo disco con un solo movimientos. Dado que $H(1)=2^1-1=1$, la propiedad se cumple en el caso de $n=1$.
  2. Paso de inducción. Supongamos ahora que la propiedad sea cierta para $n$, es decir, que $H(n)=2^n-1$. Queremos demostrar que $H(n+1)=2^{n+1}-1$. Para esto, aplicamos la recursión: \begin{equation} \begin{array}{rcll} H(n+1) & = & 2H(n) + 1 & \mbox{ecuación recursiva} \\ & = & 2(2^n-1) + 1 & \mbox{hypótesis inductiva} \\ & = & 2\cdots2^n - 2 + 1 & \\ & = & 2^{n+1} - 1 \end{array} \end{equation} La igualdad crucial es la segunda: podemos remplazar $H(n)$ con $2^n-1$ porque el método de inducción nos permite asumir que la propiedad es cierta para $n$, es decir, asumimos ya como demostrado que $H(n)=2^n-1$ y usamos este hecho para demostrar que $H(n+1)=2^{n+1}-1$. El resto es álgebra.


♱ El pseudo código es un instrumento que los programadores usan a menudo para describir un problema. Se trata de una notación simplificada que evita todos los detalles necesarios para que un programa efectivamente funcione y que pone el foco en sus aspectos esenciales.

♯ Recordamos aquí que un número es primo si sólo se puede dividir por el número mismo y por $1$. Los números $2$, $3$, $5$, $7$, $11$, etc. son primos (por convención, el número $1$ no se considera primo), mientras, por ejemplo, $6$ y $9$ no lo son (el primero se puede dividir por $2$ y $3$, el segundo por $3$). Uno de los descubrimientos más sorprendente de los matemáticos griegos es que existe una infinidad de números primos: dado un número cualquiera, existe un número primo más grande que este número.

* Para los más lógicos: cuando he dicho que es obvio que la propiedad de inducción garantiza que $P$ es cierto para todos los números enteros, en realidad he engañado. Hay muchas sutilezas lógicas detrás del principio de inducción en que en ese momento no voy a entrar.

Esencialmente, lo que he demostrado con mi argumento intuitivo es que, dado cualquier número finito $n$, puedo demostrar que $P(n)$ es cierto. Pero esto es muy distinto que afirmar que $P$ es cierto en el caso de la infinidad de números enteros.

Una solución a este problema lógico es la de los llamados axiomas de Peano, que describen propiedades tan básicas de los números enteros que se asumen sin demostrar (propiedades como "cero es un número"). Uno de los axiomas de Peano es precisamente el principio de inducción. En este caso, los problemas lógicos desvanecen: simplemente definimos los números enteros como esos números para que vale el principio de inducción.