Showing posts with label sistemas complejos. Show all posts
Showing posts with label sistemas complejos. Show all posts

Wednesday, May 08, 2024

Sobre el comportamiento emergente

 


El estudio de la Naturaleza es fascinante. Las leyes que gobiernan el universo en el que vivimos están siendo descubiertas y modificadas en la medida de lo que vamos aprendiendo de los fenómenos naturales. Por ejemplo, Newton definió la fuerza de gravedad en el siglo 15 y no fue hasta el siglo 20 que Einstein redefiniría a la gravedad, quitándole la propiedad de ser una fuerza. En esos términos, vivimos 500 años estudiando a la gravedad de la forma equivocada. De ser una fuerza es ahora una distorsión del espacio-tiempo.

 Por ello no es de sorprenderse ver en fenómenos naturales comportamientos notables, que merecen ser estudiados. Y es así como vamos tratando de comprender (muchas veces sin lograrlo), cómo funcionan las cosas. Y pensando en esto, imagínese un gas en un contenedor. Sabemos hoy que las partículas del gas se mueven dentro de dicho espacio contenido y pegan contra las paredes del mismo, El movimiento de dichas partículas es azaroso y además, se dan choques entre las partículas. Podemos cambiar la velocidad con las que chocan estas partículas calentando el gas, por ejemplo. Y lo que ocurre es que estas partículas se mueven entonces más velozmente.

 Y una vez que tenemos esta información, ya sabemos algo sobre los gases que de alguna manera ya no cambia. Sin embargo, considérese un grupo de pájaros que vuelan en conjunto casi organizado de manera poco usual.

 


Más de uno podría esperar que hubiese una especie de pájaro líder, que llevase el control de las acciones. Pero esto es una visión anticuada y además, fácil de demostrar como falsa. Imaginemos que hay un pájaro líder, ¿cómo se enteran los pájaros que están suficientemente lejanos, de las órdenes que deben cumplir? De hecho, hoy sabemos que este comportamiento es llamado “emergente”, es decir, nace de la existencia de una estructura compleja en donde el todo es mayor que las partes. Este comportamiento inusual se presenta en otros fenómenos, como aquel en donde una serie de metrónomos se sincronizan cuando se ponen estos en una mesa movible ligeramente:

 


El efecto es notable. Emerge esta sincronía que se está observando en una serie de fenómenos y en donde la cual no surge por una unidad supervisora, sino por seguir reglas ciegas, lo que lo hace sorprendente.

 En los autómatas celulares (una y dos dimensiones), en la llamada “hormiga de Langton”, surgen comportamientos inesperados los cuales, hoy hemos definido, son parte de muchos procesos en los sistemas complejos. Y aunque no sabemos cómo o por qué emergen, es evidente que nos muestran una cara nueva de lo que la Naturaleza tiene dentro de su chistera.

 


Pero la primera pregunta a resolver es qué es un sistema complejo. De acuerdo a la Wikipedia: “Un sistema complejo está compuesto por varias partes interconectadas o entrelazadas cuyos vínculos crean información adicional no visible ante el observador como resultado de las interacciones entre elementos”.

 Y continúa: “En contraposición, un sistema «complicado» también está formado por varias partes, pero las relaciones entre estas no añaden información adicional. Nos basta con saber cómo funciona cada una de ellas para entender el sistema. En un sistema complejo, en cambio, existen variables ocultas cuyo desconocimiento nos impide analizar el sistema con precisión. Así pues, un sistema complejo, posee más información que la que da cada parte independiente. Para describir un sistema complejo hace falta no solo conocer el funcionamiento de las partes, sino conocer el funcionamiento del sistema completo una vez relacionadas sus partes entre sí”.

 La definición no nos dice mucho porque cuando se habla der variables ocultas pues entramos en el terreno de la especulación. Vamos a suponer que existan estas variables ocultas. ¿No pueden dejar de serlo y mostrar lo que son? ¿Si las variables ocultas se mantienen así, cómo podremos alguna vez entender estos comportamientos emergentes?

 Y esto me hace pensar en cómo medir la complejidad de un sistema llamado “complejo”. Pienso en una computadora moderna... ¿Es complejo o simplemente complicado? ¿Por qué no surgen comportamientos emergentes en las computadoras pero sí ocurren en fenómenos (con reglas tan simples), como los autómatas celulares? ¿Qué define pues la complejidad? ¿Cómo podemos medirla? ¿Qué la caracteriza?

 Tomemos otro ejemplo: la mente humana. ¿Cómo puede ser que pensemos, que tengamos ideas nuevas, que produzcamos este fenómeno del pensar de formas diferentes unos con otros si finalmente todos los seres humanos viven dentro del entorno de las reglas de la física y química? Soy de la opinión que el pensar es un comportamiento emergente. Curiosamente parece haber grados en el mismo. Muchos animales no tienen la misma capacidad que los seres humanos para pensar y es por eso que nos denominamos a nosotros mismos homo sapiens. ¿Será que nuestro sistema es complejo, más complejo que el de otros animales?

 La ciencia de la complejidad trabaja constantemente en estos temas. Sin embargo, da la impresión de ir muy a la ciega en las posibles conclusiones que sacan. Yo empezaría por tratar de definir y medir la complejidad. Creo que ese sería el primer paso a dar.

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..