Showing posts with label autómatas celulares. Show all posts
Showing posts with label autómatas celulares. Show all posts

Sunday, March 10, 2024

Ni Dios es todopoderoso

Discutir acerca de la existencia de Dios es muchas veces inútil pues eventualmente se convertirá en una discusión de sordos. Mucha gente cree en un dios (no nos preocupemos por el momento a qué dios o religión se refiere) y todo se reduce a un acto de fe. Sin embargo, hay quien quiere anteponer "pruebas científicas" para validar la existencia de un dios. Y para ello en ocasiones apelan, por ejemplo, a la creación del ojo humano, asunto tan complejo que no puede siquiera suponerse que esto es parte de una evolución natural. Este tipo de argumentos ya han sido refutados por Richard Dawkins(en su obra El Relojero Ciego), uno de los biólogos evolucionistas más importantes en el mundo. Desde luego la religión católica ha usado la idea de Dios para adoctrinar a las personas y así controlar su conducta. En cambio Spinoza pensaba que la Naturaleza-Dios es su propia causa y la única esencia existente.

Como puede verse, las discusiones sobre la existencia de Dios pueden ser infinitas y también estériles. Y no obstante todo esto la pregunta sigue estando vigente: ¿Existe Dios? Yo soy de una idea parecida a la de Spinoza y entiendo que Dios -en caso de existir- no se anda fijando en lo que hace o deja de hacer el ser humano. Sus acciones pasan desapercibidas por el creador que -quiero creer- debería tener mejores cosas en qué ocuparse. 

Pero de pronto leo sobre algún tema y encuentro alguna relación que parece que descubro entre lo que leo y la existencia de Dios. Me explico: Stephen Wolfram (el creador de Mathematica), es un experto reconocido en los autómatas celulares. Su libro "A New Kind of Science", trata el tema de manera profunda y es uno de los libros mejor armados y trabajados sobre esta cuestión. Wolfram, sin embargo, después de tantos años de estudiar los autómatas celulares, creyó darse cuenta que quizás -sólo quizás- el universo y todas sus leyes podrían ponerse en términos de un autómata. Y puso manos a la obra. Es evidente que más de un científico estará en contra de las ideas de Wolfram porque finalmente el edificio de la física parece tener cimientos muy fuertes. ¿Pero qué tal pensar que hay una alternativa a todas estas ideas? Wolfram las analiza en un nuevo libro que hallé en Z-lib y que no sé si es un borrador o algo ya publicado. Dicho libro se llama "A Project to Find the Fundamental Theory of Physics" y tiene asociado una página web.

En esencia la idea de Wolfram es que las reglas de la física quizás sean simplemente un elaborado autómata celular. Wolfram, cuando estudia este fenómenos de los autómatas celulares en una dimensión, se da cuenta que ciertas reglas ciegas producen resultados azarosos y muchas veces emergen propiedades inesperadas. Esto se ve en otros autómatas, como la "hormiga de Langton", donde a través de reglas poco menos que triviales, una "hormiga" se mueve en un plano y eventualmente genera un comportamiento emergente: nace un atractor que no es fácil de explicar. 

Y es aquí donde me llama la atención el tema. Si asumimos que el universo tiene reglas que pueden mostrarse como un elaborado conjunto de reglas ciegas -vamos, un autómata- entonces podrían generarse comportamientos emergentes, es decir, comportamientos inesperados que podrían contener una estructura que se sale de lo que es el simple azar. 

Nosotros los humanos sabemos que los autómatas en una dimensión de Wolfram, en algunas reglas particulares, requieren que se haga la simulación explícita del autómata para poder saber qué pasa en alguna generación particular. Vamos, no existe ningún atajo y no podemos saber la evolución sin hacer el desarrollo -generación por generación del autómata- para entender el resultado en un momento específico. Y si esto es así, y si Dios creó el universo y las leyes de la física como un autómata, es muy probable que el mismísimo Dios requeriría hacer la simulación para ver lo que podría ocurrir a su autómata (el universo), después de N generaciones. ¿Y por qué Dios no sabría? Simple, porque nacen comportamientos emergentes, es decir, el autómata muestra de pronto un atractor, asunto que nadie en principio esperaba. Así, Dios estaría imposibilitado a saber lo que ocurre en su autómata porque las reglas de la física son ciegas, siempre funcionan de igual manera y son persistentes. ¿Cómo entonces Dios sabría de estos comportamientos emergentes? En principio no veo ninguna posibilidad. En ese sentido Dios es tan ignorante como nosotros mismos sobre un sinfín de temas. Y sí, ya sé, me dirán que Dios lo sabe todo pero esa afirmación es indemostrable.

Así, si Dios ha creado un autómata que es el equivalente a las leyes que conocemos de la física, entonces lo que está haciendo el creador es hacer su simulación de su autómata y eso es lo que vemos como el universo, el cual parece que se está expandiendo. Y en el camino nos deja interrogantes como la materia y energía oscura, por ejemplo, que -por qué no- podrían ser parte de estas situaciones que emergen a partir de las reglas definidas por el mismísimo creador.

Curiosamente esto explicaría por qué Dios no nos hace caso. Tal vez somos otro comportamiento emergente que el creador no podía saber que aparecería. Y si esto es así, eso de que tenemos un Dios todopoderoso, se cae ante la posibilidad de vivir en un universo que no es más que un autómata. Uno muy elaborado quizás, pero autómata a fin de cuentas.

Aquí dejo esto a la reflexión.

Friday, February 17, 2023

Un descubrimiento personal


En la Facultad de Ciencias doy un curso de Vida Artificial", la cual es una asignatura que trata de simulaciones -a través de la computadora- de manera que se puedan estudiar algunos conceptos de la vida misma, por ejemplo, la reproducción. Para ello se usan los autómatas celulares en una y dos dimensiones (en general), los cuales han sido estudiados ya en los años 70s, 80s y 90s del siglo pasado por Conway (Juego de la vida) y Wolfram (autómatas celulares en una dimensión). De hecho, existe mucha información en la red sobre este tema. Wolfram, por ejemplo, ha escrito un libro enorme, llamado "A New Kind of Science", el cual puede leerse gratuitamente aquí. Por otro lado, el sitio obligado para estudiar el Juego de la Vida de Conway es éste

Pues bien, en el libro de Wolfram, (el cual a pesar de intimidar sólo por su tamaño, es bastante accesible y diría que en general es un libro de divulgación), se habla de los autómatas unidmensionales. Se analizan las 256 reglas. Se hace un análisis de la complejidad de las mismas, etcétera. Wolfram entonces experimenta cambiando reglas y situaciones para la reproducción de los autómatas. Eventualmente demuestra que con ciertas reglas de sustitución, se pueden crear los elementos fundamentales de la máquina de Turing, la cual es una máquina conceptual que puede hacer en principio, cualquier cálculo.

Por ejemplo, en la página 82 de su libro, pone el siguiente gráfico que ilustra un sistema simple de sustitución, el cual genera que se dupliquen los elementos en cada generación. 

Y aunque Wolfram lo muestra con puntos de tonos de gris, su sistema de sustitución es simplemente:

A --> AB

B --> BA

Así, si tenemos una configuración inicial con solamente el elemento A, podeos sustituir y quedarnos lo siguiente:

A --> AB

AB --> ABBA

ABBA --> ABBABAAB

etcétera...

Si contamos los elementos que hay en cada generación, encontraremos que estos se duplican.

La serie de Fibonacci, por ejemplo, puede expresarse como el siguiente esquema de sustitución:

A --> B

B --> BA

Si tenemos la configuración inicial A obtendremos en las siguientes generaciones:

A --> B

B --> BA

BA --> BAB

BAB --> BABBA

BABBA --> BABBABAB

BABBABAB --> BABBABABBABBA

Si contamos los elementos en cada generación, obtendremos la secuencia de Fibonacci: 1, 2, 3, 5. 8. 13, etcétera.

Pues bien, defnir un autómata como un sistema de sustitución generauna gramática y esta es simplemente una serie de símbolos que se manipulan a través de ciertas reglas. Así, aplicando dichas reglas se obtienen las "frases" legales y válidas de acuerdo a la gramática definida.

Los autómatas formales, como los lenguajes, tienen en muchos casos la posibilidad de ser recursivos, se llaman así mismo. Por ejemplo, en el caso de las reglas de sustitución del autómata que duplica los valores de sus elementos en cada generación, podemos ver que A se sustituye por AB y B se sustituye por BA. Hay una suerte de llamada a sí misma en cada regla. Y esto es bastante común en los lenguajes. Por ejemplo, pensemos en la definición recursiva del factorial:

0! = 1 (condición terminal)

n! = n * (n-1)! (recursión)

Por ejemplo, para calcular 3! diremos lo siguiente:

3! = 3 * 2!

necesitamos ahora conocer cuánto es 2!

2! = 2 * 1!

necesitamos ahora conocer cuánto es 1!

1! = 1 * 0!

necesitamos ahora conocer cuánto es 0!, pero eso ya lo sabemos, 0! = 1. 

Entonces empezamos a resolver cada ecuación:

1! = 1 * 0! = 1 * 1 = 1

entonces 2! = 2 * 1! = 2 * 1 = 2

por ende, 3! = 3 * 2! = 3 * 2 = 6.


Otro ejemplo de los lenguajes humanos: Si buscamos la definición de "perro", hallaremos que es "can". Si buscamos la definición de "can", se nos dirá que es "perro". Aquí hay una función recursiva que se cicla, porque no tiene una manera de terminar, de detenerse, como en el caso de la definición de factorial, en donde 0! termina con el cálculo y el ciclado infinito (porque 0! = 1).

Pues bien, se sabe que toda función recursiva se puede poner de forma iterativa. Por ejemplo, el factorial iterativo en Python (no recursivo) es:

def factorial(n):

    result = 1

    for i in range(1, n + 1):

        result *= i

    return result

(gracias a chatgpt)


En cambio, en Python, el factorial recursivo se escribe así:

def factorial(n):

    if n == 0:

        return 1

    else:

        return n * factorial(n-1)

(de nuevo, gracias a chatgpt)

La versión iterativa usa menos recursos de cómputo que la versión recursiva. Entonces, ¿por qué los autómatas celulares e incluso, los seres vivos, usan la recursión para crear otros seres vivos (a su imagen y semejanza)? ¿No debería la Naturaleza usaR la máxima economía en recursos?

Esta es la pregunta que no podía resolver, pero el otro día, caminando por avenida del IMAN, encontré una posible respuesta. De pronto me sentí como el episodio que narra Bertrando Russell cuando se dio cuenta del concepto de la verdad ontológica. Dice Russell que sintió una especie de iluminación, experiencia que pocas veces se da sin la necesidad de sustancias alucinógenas u otros artilugios.

Pues bien, la respuesta a las preguntas que me había planteado sobre los autómatas celulares y a que prácticamente todos usan la recursión, es porque en la misma se encuentra una imagen a escala de lo que está representando. En el caso de la iteracción, necesitamos pasarle los parámetros correctos para que se ejecuten los algoritmos que queremos, pero en la recursión, los datos se incluyen en el mismo algoritmo. Russell, por ejemplo, habla de la paradoja del barbero, en donde se puede expresar en Prolog, donde el paradigma de ese lenguaje hace que las instrucciones y los datos sean indistintos. Véase aquí  para esa discusión.

Así, a mí me queda clarísima la razón por la cual los seres vivos usan funciones recursivas, que se llaman a sí mismas, para la reproducción y creación de los elementos hijos. Y sí, aparentemente ocupa más recursos pero la realidad es que es mucho más eficiente que los algoritmos iterativos.



Tuesday, September 27, 2022

David Heiserman y su libro sobre Inteligencia Artificial

Tengo un libro relativamente antiguo, cuyo autor es el estadounidense David Heiserman que, según entiendo, ha publicado más de 40 obras técnicas y científicas, la mayoría de ellos en la desaparecida editorial TAB Books. El título del libro al que hago mención es "Projects in Machine Intelligence for your Home Computer". La edición que tengo es del año 1982.

El título probablemente llama la atención sobre las pretensiones de la obra. Sin embargo, hoy es no solamente un libro obsoleto, sino bastante malo como para tomarlo con seriedad. Y quiero ser benevolente con el autor. En el momento de la escritura de dicha obra, probablemente el trabajo que hizo se veía razonablemente interesante. Hoy día, no obstante, resulta trivial y primitivo en muchos de los conceptos que expone, aunque desde luego, no podemos sustraerlo de su contexto histórico, es decir, en la época de cuando se escribió el mismo.

Heiserman intenta trabajar con la idea de autómatas celulares, a los cuales pretende buscarles un comportamiento que podamos considerar como complejo, al menos en algún sentido. Para ello, comienza creando una "creatura alpha", la cual es un puntito en la pantalla, encerrado entre cuatro paredes (los límites de la pantalla), y en donde esta creatura se mueve azarosamente uno o dos pasos en todas direcciones. El autor entonces muestra a su creatura moviéndose al azar (aunque jamás discute el tema de que el azar de la computadora no lo es estrictamente) y quiere darle una interpretación a sus movimientos. 

Por ejemplo, decide poner en la pantalla "obstáculos" para ver cómo se mueve dicha creatura cuando enfrenta un nuevo entorno físico Si por ejemplo, le pedimos al programa (del cual Heiserman entrega el código fuente en Applesoft (Apple II) y TRS BASIC (Tandy Radio Shack Z80), que es más de la mitad de las páginas del libro), que la creatura deje un trazo por donde va pasando y éste se vuelva un obstáculo para seguir pasando por ahí (como si creara una pared para la creatura), entonces ésta se comportará de cierta manera. Y explica entonces: "El comportamiento de la creatura mientras trabaja sobre un rastro impenetrable es especialmente significativo en el contexto de la psicología de las máquinas". Una frase que no dice nada, que no explica nada y que quiere convencer que la creatura azarosa hace algo que podríamos considerar inteligente o al menos complejo, que en este contexto sería, difícil de explicar.

Poco después Heiserman hace una nueva creatura a la que llama beta y le otorga un poco de más capacidades, por ejemplo, memoria de eventos pasados para así hacerla "más inteligente", al menos con respecto a la creaura alpha. Pero esta modificación no hace nada significativamente diferente. Simplemente, cuando la creatura beta encuentra un obstáculo y tiene su memoria vacía, actúa como una creatura alpha. Sin embargo, en ese momento -cuando encuentra una salida al problema del obstáculo- guarda esta información en su memoria. Si de pronto encuentra una situación similar, puede acudir a su recuerdo para ver si puede salir del atolladero. 

La realidad es que los experimentos en inteligencia de máquina que propone Heiserman son triviales y además, llenos de interpretaciones dudosas del autor. Déjenme poner esta analogía. Yo tenía una perrita Snauzer, la Pupa, a la cual un día le pedí que buscara su pelota para jugar. La perrita salió en busca del juguete y al rato regresó con una cápsula de huevo kínder (que contiene un juguete), pues no halló su pelota. Yo podría decir: "la Pupa entiende de figuras geométricas y al no encontrar su pelota, decidió traerme lo más parecido a ese objeto". Más de uno podrá decir que esa es meramente una interpretación del evento. ¿Qué tal si simplemente encontró la cápsula y se olvidó de lo que buscaba y por eso te llevó ese objeto? Vamos, no tenemos certezas porque no podemos pedirle a la Pupa que explique porqué actuó así. Entonces queda como una especulación indemostrable. Bueno, pues eso le ocurre a Heiserman con las explicaciones que da en su obra.

Llama la atención que el autor no haya profundizado un poco en la idea planteada en los autómatas en dos dimensiones, como en el caso del "Juego de la Vida" de Conway, que se volvió popular en 1970, por lo que -quiero creer- Heiserman debería haberlo conocido. Y es que los autómatas de Heiserman y sus resultados no llevan a nada. No hay comportamiento complejo ni inteligente. Sólo unos puntos en la pantalla que se mueven de forma azarosa y que en las variaciones que propone el autor, no cambia significativamente su comportamiento.


David Heiserman


El problema con los autómatas de Heiserman es que no ha pensado en el tema de la autoreplicación y la recursión. Vamos, los seres vivos tienen una propiedad increíble: pueden crear copias de sí mismos. Y para ello, se necesita que exista un proceso que permita esta autoreplicación y uno de los procesos que permite un sinfín de ideas complejas y difíciles de explicar es dotar de reglas recursivas a los autómatas. ¿Cómo podemos asegurarnos que las reglas que inventemos sean recursivas? Pues entendiendo que se llaman a sí mismas y que en muchos casos, sino es que todos, estas reglas requieren de un stack para ir guardando valores temporalmente. Desde luego que no es condición sine qua non esto, pero probablemente ayuda.

Reconozco que el libro de Heiserman me decepcionó, pero entiendo que hoy conocemos de temas mucho más sofisticados en los automatas celulares, llámense "sistemas-L", de Lindenmayer, hormigas de Langton o autómatas de Wolfram, entre otros. Quiero creer que la obra de este autor es obsoleta y poco enriquecedora para aquellos que quieren hacer inteligencia artificial con simulaciones de computadora y la culpa es que probablemente Heiserman no tenía acceso a mucho de lo que hoy sabemos del tema..

Friday, January 07, 2022

Otra nueva especulación (errónea), sobre la regla 30 de Wolfram


Ya hablé aquí de una serie de especulaciones sobre la regla 30 de los autómatas celulares unidimensionales. Stephen Wolfram, quien los ha estudiado a detalle, ha encontrado que la regla 30 de estos autómatas genera un patrón que parece ser aleatorio, cosa que no pasa con muchas de las otras reglas. De hecho, como mencioné en el artículo al que hago referencia, Wolfram hace tres preguntas, al público en general, esperando que ahí afuera haya alguien que ataque estos problemas. Para motivarlos ha ofrecido unos 10 mil dólares por pregunta solucionada. Estas son las tres cuestiones que Wolfram quiere responder:

¿Puede la columna central mantenerse siempre no periódica?

¿El color de cada célula en el centro -en promedio- ocurre con igual frecuencia en la columna central?

¿El cálculo de la enésima célula en el centro requiere de al menos un esfuerzo computacional de O(n)?

Para tratar de resolver la primera pregunta, lo que hice fue primero usar la idea de Ulam, que nació de una ociosidad. Estaba Ulam en una conferencia y se encontraba aburrido. Entonces decidió dibujar los números primos en una hoja pero en una espiral. Para su sorpresa, halló que había ciertos patrones. Un clásico ejemplo de serendipia, que es un descubrimiento o un hallazgo afortunado, valioso e inesperado que se produce de manera accidental, casual, o cuando se está buscando una cosa distinta.

Lo que encontré usando la espiral de Ulam es que el comportamiento de los ceros y unos, de la columna central del autómata celular de a regla 30, no mostraba patrón alguno. Cuando estaba programando el problema, pensé que quizás podría dar luz al asunto, pero hallé que no hay patrón alguno usando esta técnica.

Pero hace unas semanas se me ocurrió otra idea, creada por Christopher Langton, que creó hace unos 40 años un programa en una Apple II, el cual era una "hormiga" (un punto en la pantalla), que se movía de acuerdo a ciertas reglas. Todo lo que hizo puede verse aquí. 

Pues bien, con esta idea, se me ocurrió que podía tomar el archivo de un millón de ceros y unos, de la columna central de la regla 30, y procesarlos gráficamente de acuerdo a la siguiente idea: 

Si encuentro un 0, me muevo derecho, sin girar. Si el nuevo valor es igual al anterior, sigo en esa dirección. Si de 0 cambio a 1, entonces lo que hago es un giro a la derecha. Si el siguiente valor sigue siendo un 1, sigo en la dirección que acabo de tomar. Si cambia a 0, entonces vuelvo a girar a la derecha y así sucesivamente. ¿Qué tipo de imagen se generará con esta idea?


Este es el video del software corriendo:



Especulando con la regla 30 de Wolfram


Al inicio me pareció que se generaba un bloque y después se hacía un camino y se creaba otro bloque. ¿Podría haber un patrón ahí? Dejé el software corriendo y eventualmente hallé que no parece haber manera de tener un patrón claro, ni siquiera puede decirse que haya un patrón borroso, valga la expresión. Dicho de otra manera, otra idea que choca con pared.

Cabe decir que en un millón de iteraciones de la regla 30, encontré que la cantidad de '0' (ceros) es de 500,768 y la de '1' (unos) es de 499,231 (*).

Algo curioso es que en la generación de la imagen encontré que se generaba un "rostro" (ver siguiente imagen). ¿Podría ser la imagen de Jesús? Nah, es una simple pareidolia, lo cual se define como un fenómeno psicológico donde un estímulo vago y aleatorio (habitualmente una imagen) es percibido erróneamente como una forma reconocible.


Así las cosas, seguiremos investigando.


____

(*) Estrictamente la cuenta da 999,999. La razón de esto es que puse el límite en ese valor en mi programa por error. Sin embargo, no cambia nada este detalle.

Wednesday, July 21, 2021

La regla 30 de los autómatas de Wolfram


Stephen Wolfram es un científico de primer nivel y además un exitoso hombre de negocios. Es el creador de Mathematica, uno de los programas más poderosos para hacer matemáticas simbólicas, el cual además tiene incorporado un lenguaje de programación muy útil para un sinfín de quehaceres matemáticos. Además de eso, Stephen Wolfram ha dedicado parte de su vida al estudio de los autómatas celulares unidimensionales e incluso hay una colección completa de los artículos que se han publicado al respecto, junto con otros autores.



Los autómatas celulares son un modelo matemático y computacional para un sistema dinámico que evoluciona en pasos discretos. Es adecuado para modelar sistemas naturales que puedan ser descritos como una colección masiva de objetos simples que interactúen localmente unos con otros. Se basa en definir reglas ciegas a las "células" (pixeles en la pantalla), de manera que evolucionen estas a tiempos discretos para ir viendo lo que ocurre a través del tiempo. Por ejemplo, en dos dimensiones tenemos el famoso "juego de la vida" de Conway, que ha sido muy estudiado por matemáticos, físicos y biólogos, pues tiene comportamientos de auto-organización asombrosos en muchos casos. 

Wolfram ha estudiado los autómatas celulares en una sola dimensión, es decir, todas las células se encuentran en una línea y se reproducen en el tiempo (o mueren), de acuerdo a ciertas reglas. Por ejemplo, la regla 30 es 00011110, y se ejemplifica así: si hay tres células en la línea (y tomamos la célula de en medio), esta muere por sobrepoblación. Si no hay célula, nada surge en la siguiente generación. Dos células a la izquierda no se reproducen pero dos células a la derecha sí lo hacen. Una célula sola se reproduce en la siguiente generación siempre, ya sea estando a la izquierda, centro o derecha, etcétera

Lo que da la siguiente gráfica, poniendo una sola célula en la primera generación:



Wolfram, sin embargo, tiene aún problemas por resolver con respecto a esta regla 30, la cual parece generar una imagen caótica. De hecho, ha anunciado un premio de 30 mil dólares (10 mil por pregunta resuelta), a quien responda lo siguiente:

  1. ¿Puede la columna central mantenerse siempre no periódica?
  2. ¿El color de cada célula en el centro -en promedio- ocurre con igual frecuencia en la columna central?
  3. ¿El cálculo de la enésima célula en el centro requiere de al menos un esfuerzo computacional de O(n)?

Stephen Wolfram dice al respecto de estas preguntas: "No sé si estos problemas son de dificultad comparables o si alguno de ellos puede resolverse mientras que los otros pudiesen mantenerse sin solución por mucho tiempo. Estoy seguro, sin embargo, que el resolver cualquiera de estos problemas será un logro significativo".

Pensando en este problema, y porque los autómatas celulares son mis viejos amigos (trabajé con ellos desde mi tesis de licenciatura), decidí pensar un poco más sobre ellos. Se me ocurrió trabajar sobre las primera pregunta. He leído un poco de lo que otros han hecho y de pronto se me ocurrió que quizás la no-periodicidad podría ser parecida a la que se presenta en los números primos y además, recordé la espiral de Ulam, la cual descubrió en una aburrida conferencia el matemátiuco Stanislaw Ulam. Tal vez a nadie se le había ocurrido la feliz idea de colocar la columna central dee los autómatas celulares unidimensionales, en la regla 30, de esta manera. Entonces me apliqué y escribí un sencillo programa que hace la tarea de colocar esa columna central de células en forma de espiral cuadrada.

Por suerte, no tuve que hacer el cálculo de la columna central de la regla 30, pues ya alguien lo hizo aquí, que contiene un millón de valores. Más que suficiente para probar. Ejecuté entonces mi programa. Generé una imagen de 1000 x 1000 pixeles (con Photoshop), y la puse en un componente imagen en mi software en Delphi y me dispuse a ver si había algún patrón como en el caso de los números primos en la espiral de Ulam. Pero ¡ay! no hallé ningún patrón gráfico...


Quizás mi ingenuidad no conoce límites y es probable que antes alguien se le haya ocurrido esta idea, pero Wolfram no la menciona. Pensé que sería maravilloso si se daba algún patrón. Bueno, es un primer intento. A seguir discurriendo sobre el problema.

Tuesday, June 08, 2021

Salió publicado mi primer libro científico


Por años he escrito de diferentes temas: ajedrez, sudokus, computación, autómatas, ciencia, etcétera. Incluso, tengo una biografía de Nikola Tesla. Los libros de ajedrez se han ya publicado y tengo en mi haber unos cinco, me parece. La editorial Época me ha publicado uno de ajedrez y tres de sudokus. Sin embargo, no se me había dado la oportunidad de que alguno de mis libros de ciencia terminara en papel.

Pero bien dice el dicho de "nadie sabe para quien trabajas". Resulta que Miguel Noe, a quien no conocía, me interceptó un día en Perisur, pues me había visto en la Oveja Eléctrica, de Canal 22, el programa que dirige el buen Pepe Gordon. Y me comentó que trabajaba en LibroUNAM, que publica libros de universitarios. Entonces le comenté que tenía un libro que dormía el sueño de los justos. Miguel me comentó que pediría una entrevista con el director de LibroUNAM. Pues a los pocos días fui y hablé con el director de dicho organismo. Le dejé el manuscrito y como prácticamente se acababa 2019, me comentó que lo leería y me daría alguna respuesta a inicios del 2020. Y fue entonces que llegó la Pandemia pero aún así el libro fue aceptado. Todo, desde luego, se puso lento pues se cerraron mil instancias de trabajo. Finalmente, ahora que parece que vamos de salida de la pandemia del covid, el libro se ha impreso y ya me han dado mis ejemplares.

El libro es sobre autómatas celulares. El título es "Jugando a ser Dios", porque trata de los diversos esfuerzos en crear simulaciones, llamadas genéricamente "vida artificial", para tratar de entender algunos aspectos de este misterio que es estar vivo. La edición del libro es muy buena, corregida a detalle y con uan portada que me parece que quedó muy bien.

Pronto estará en las librerías universitarias. La verdad estoy muy contento.

Wednesday, April 11, 2012

El juego de la vida de Conway

 

Hay un juego de computadora fascinante, llamado Juego de la Vida, el cual fue diseñado en 1970 por el matemático británico John Horton Conway, de la Universidad de Cambridge, Inglaterra. Se hizo muy popular desde que Martin Gardner, en su columna de octubre de ese año en la revista Scientific American hablara de las ideas de Conway. Y a partir de ese momento miles de programadores lo codificaron y jugaron con las ideas del británico en sus respectivos tiempos libres.

El juego de la vida ocurre en un tablero cuadriculado, en donde cada cuadro puede haber una célula o estar vacío. La idea es acomodar una serie de células en la malla cuadriculada y observando las vecindades de cada célula, cada cuadro pues -utilizando las reglas de Conway- ir calculando las nuevas configuraciones de células que aparecerán en la siguiente generación. Puede verse que el juego de la vida de Conway no es estrictamente un juego de video, pues el “jugador” no hace nada más que ver la evolución que en cada tiempo, en cada generación, aparece en la pantalla.

Cabe decir que las reglas que se definan para el juego de la vida deben ser tales que la conducta de la población resulte a un tiempo interesante e impredecible. Las reglas de evolución, dadas por el propio matemático, llamadas también reglas genéticas, son de una sencillez deliciosa y pensamos que Conway las fue descubriendo (¿inventando?) poco a poco.



Tomemos un plano cuadriculado entonces de dimensiones infinitas. Cada sitio, cuadro o casilla, tiene 8 casillas vecinas: cuatro ortogonalmente adyacentes (2 en vertical y 2 en horizontal). En cada sitio es posible poner un valor binario (hay célula o no hay en esa casilla). Las reglas son:

  • Supervivencia: cada célula (digámosle ficha), que tenga dos o tres fichas vecinas sobrevive y pasa a la generación siguiente.
  • Fallecimiento: cada ficha que tenga cuatro o más vecinas muere y es retirada del tablero, por sobrepoblación. Las fichas con una vecina o solas fallecen por aislamiento.
  • Nacimientos: cada casilla vacía, adyacente a exactamente tres cifras vecinas -tres, ni más ni menos- es casilla generatriz. Es decir, en la siguiente generación habrá de colocarse una ficha en esa casilla.

Es importante hacer notar que todos los natalicios y fallecimientos ocurren simultáneamente, y constituyen en su conjunto una generación en particular, al paso del tiempo t, también llamado tic del reloj.

Con el mismísimo Conway, en su plática que dio en junio del 2010 en la Facultad de Ciencias de la UNAM.

En un principio el inventor de este singular “juego” conjeturó que ningún patrón inicial podría crecer ilimitadamente. Dicho en otras palabras, ninguna configuración compuesta por un número finito de fichas puede crecer hasta rebasar un límite superior finito, que limita el número de fichas que puede contener el campo del juego. Seguramente esta sea la cuestión más difícil y profunda que planteé el juego.

Conway ofreció un premio de 50 dólares a la primera persona capaz de probar o de refutar la conjetura antes de finalizar el año 1970. Una forma de refutarla sería dar con configuraciones que, generación tras generación, añadiesen más piezas al terreno de juego: un cañón (es decir, una configuración qaue repetidamente dispara objetos en movimiento), o bien el tren puf-puf (configuración que al paso del tiempo t avanza dejando tras de sí una estela de “humo”).

La conjetura de Conway se refutó en noviembre de 1970. Un grupo integrado en el proyecto de inteligencia artificial del MIT, comandado por William Gosper, halló un cañón lanza-deslizadores, el cual genera un deslizador cada 30 pulsos de reloj (o generaciones). La existencia de tal cañón suscita una interesante posibilidad de que el juego de Conway pueda simular una máquina de Turing, la cual es capaz de hacer, en principio, cualquier computación, cualquier cálculo. Si el juego permite esta alternativa, entonces la siguiente pregunta a resolver es si sería capaz de poderse crear un constructor universal. De lo cual se encontraría una máquina con capacidad de autorreproducción no trivial. Desafortunadamente, a la fecha, no ha podido construírse.

El carácter universal del juego de la vida significa que, en principio, es posible usar deslizadores para llevar a cabo cualquier cómputo que pueda efectuarse con la más potente de las computadoras digitales. Mediante la disposición de cañones lanza-deslizadores y otras formas de “vida”, es posible calcular π, e, la raíz cuadrada de 2, o de cualquier otro número, con cualquier número de cifras decimales.

 Hay muchísimos programas de código abierto y gratuito para jugar con el juego inventado por Conway. Vale la pena probar alguno de ellos e intentar configuraciones diferentes. Hay mucha información sobre el juego de la vida del matemático británico y podría asegurarles que es francamente apasionante. El único inconveniente es que esto comienza a hacerse obsesivo.

Algunas fuentes de interés:

Juego de la vida en HTML5
Juego de la vida de Conway
Juego de la vida con fuentes (Delphi)
LifeWiki
________

(*) En la foto inicial del artículo están, de izquierda a derecha: Erik Demaine, Martin Demaine, Bill Spight y John Conway