Es noticia
Los billetes de avión y las cartas 'Magic' pueden ser un lenguaje de programación
  1. Alma, Corazón, Vida
Serendipia en estado puro

Los billetes de avión y las cartas 'Magic' pueden ser un lenguaje de programación

Con la intención de desmentir al matemático David Hilbert, un matemático inglés, Alan Turing, descubrió la computación, que luego ha aparecido en los lugares más insospechados

Foto: Foto: iStock.
Foto: iStock.

A principios del siglo XX los matemáticos (al menos los formalistas, dado que los intuicionistas estaban que trinaban) estaban gozosos. Georg Cantor había creado los conjuntos y redefinido el concepto de infinito. El máximo representante de los formalistas, el matemático alemán David Hilbert se regocijaba gracias a este nuevo conocimiento. En este momento, Hilbert decidió emprender una de las más ambiciosas empresas matemáticas de la historia: demostrar que las matemáticas, en un sistema formal, cumplían las que consideraba las tres grandes preguntas, lo que se conoce hoy en día como el Programa de Hilbert.

La primera era si las matemáticas son completas. Dicho de otro modo: si toda afirmación verdadera tiene una prueba. La segunda era si las matemáticas tienen consistencia, si están libres de contradicciones. Por último, Hilbert quería probar si las matemáticas tienen la característica de la decibilidad: si existe un algoritmo capaz de decidir si cualquier afirmación matemática es verdad o mentira.

Turing estaba decidido a comprobar la 'decibilidad' matemática del Programa de Hilbert. Para ello, tuvo que crear el 'ordenador'

Por supuesto, por mucho que Hilbert creyera que la respuesta a estas tres afirmaciones era sí, la comunidad matemática estaba decidida a desmentirlas (a fin de cuentas, es a lo que se dedican). En primer lugar, Kurt Gödel, un matemático de tan solo 24 años, probó que las matemáticas no son completas (para lo que tuvo que crear un lenguaje lógico de cero) y que, si no son completas, no podemos asegurar si son decidibles.

Pero el gran golpe a los sueños de Hilbert vino de la mano de Alan Turing (que tiene su propia película, The Imitation Game, en la que Benedict Cumberbatch le da vida). Alan Turing fue un lógico y matemático británico, considerado padre fundador de la ciencia de la computación (a eso llegaremos enseguida) y una de las personas más importantes en Bletchley Park, centro de inteligencia británico de la Segunda Guerra Mundial dedicado a descifrar los códigos nazis y la máquina Enigma, lugar de nacimiento del primer ordenador de la historia (obra directa de Alan Turing).

Foto: Foto: Instituto de Estudios Avanzados de Princeton.

Pero antes de la guerra, Turing estaba decidido a comprobar la realidad de la decibilidad matemática del Programa de Hilbert. Para ello, creó mentalmente y sobre el papel, a modo de concepto, una máquina, conocida como la Máquina de Turing. Esta consiste en una infinita tira, con un número infinito de celdillas que tienen escrito un 0 o un 1. También, una cabeza lectora-escritora que puede realizar una serie limitada de funciones: leer si donde está situada hay un 0 o un 1, escribir un 0, escribir un 1, borrar la celda, moverse a la derecha, moverse a la izquierda o parar. Absolutamente nada más.

Dentro de esta cabeza lectora habrá una serie de reglas configurables que realizaran una de esas funciones dependiendo del estado (sitio en esas reglas) en el que se encuentren. Esa cabeza hará funciones hasta que entre en un bucle (por ejemplo, si estás en el estado A y lees un 1, muévete a la derecha, y si estás en el estado B y lees un 1, muévete a la izquierda. Si hubiera dos 1 contiguos, se entraría en un bucle) o el estado actual y el valor en la cinta indicasen que parase.

placeholder Bombe, 'réplica' del funcionamiento de Enigma, creado por Turing.
Bombe, 'réplica' del funcionamiento de Enigma, creado por Turing.

La infinita memoria de la Máquina de Turing (la tira con todos los ceros y los unos), así como lo configurable de las reglas hacen que sea capaz de realizar cualquier algoritmo computable (si le damos suficiente tiempo para realizarlo). Técnicamente, esa Máquina de Turing puede computar lo que sea, incluido el software que utiliza el ordenador o teléfono donde estás leyendo estas líneas.

Turing utilizó una variación del concepto de esta máquina para desmentir la decibilidad de Hilbert, pero al mismo tiempo, creó el mundo de la computación. Desde entonces, ha estado entre nosotros los sistemas lógicos conocidos como Turing completo, que son capaces de hacer lo mismo que la Máquina de Turing y, del mismo modo, son capaces de emularla, y viceversa.

La inmensísima mayor parte de los lenguajes de programación son Turing completos, así como diversos juegos matemáticos como The Game of Life (Juego de la vida, también conocido como El juego de la vida de Conway), creado por el matemático John Horton Conway en la década de los setenta. Este simple juego que consta de cinco reglas, ni más ni menos, es Turing completo. Del mismo modo, el popular videojuego Minecraft es Turing completo (de hecho, como se puede ver en el vídeo a continuación, hay múltiples ejemplos de gente que ha creado auténticos ordenadores en ese mundo de cubos).

Pero todos estos ejemplos de emuladores de la Máquina Universal de Turing (su nombre oficial) estaban diseñados desde el inicio (más o menos) para ser Turing completos, para poder ser programadas y para poder computar lo que sea. Pero hay ejemplos accidentales que también cumplen estas reglas. El primero son las cartas Magic: The Gathering (Magic: el encuentro), que en los noventa (aunque su popularidad parece estar repuntando de nuevo) tomaron el mundo friki al asalto. Pero en 2019, una serie de estudios científicos publicados por investigadores de la Universidad de Cornell en EEUU y vídeos demostrativos publicados por el canal de YouTube Because Science probaron que, una serie de cartas específicas, utilizadas de forma concreta, técnicamente, se convertían en una máquina de Turing. De hecho, dándole a esa partida el suficiente tiempo, podría reproducir (o computar, mejor dicho) el mismo vídeo donde se explica (dicho tiempo sería mayor que la edad del universo, pero bueno).

placeholder Las rutas y precios de los vuelos entre San Francisco y Boston. (Carl de Marken)
Las rutas y precios de los vuelos entre San Francisco y Boston. (Carl de Marken)

Otro de los lugares más insospechados donde se han descubierto sistemas Turing completos es el precio de los billetes de avión en el mundo. Este sistema es, sin lugar a dudas, el más complejo de los accidentales, pero que Carl de Marken ha descrito en un detalladísimo estudio el mecanismo que tendría este sistema de computación.

Existen más ordenadores a nuestro alrededor de los que creemos, algunos de ellos son, de hecho, accidentales, y todo gracias a que un héroe de la Segunda Guerra Mundial decidió comprobar el teorema de uno de los más importantes matemáticos del siglo XX. A veces, la serendipia no tiene precio.

A principios del siglo XX los matemáticos (al menos los formalistas, dado que los intuicionistas estaban que trinaban) estaban gozosos. Georg Cantor había creado los conjuntos y redefinido el concepto de infinito. El máximo representante de los formalistas, el matemático alemán David Hilbert se regocijaba gracias a este nuevo conocimiento. En este momento, Hilbert decidió emprender una de las más ambiciosas empresas matemáticas de la historia: demostrar que las matemáticas, en un sistema formal, cumplían las que consideraba las tres grandes preguntas, lo que se conoce hoy en día como el Programa de Hilbert.

Matemáticas
El redactor recomienda