Muy buenas queridos lectores. Como algunos de ustedes ya saben mi proyecto de fin de carrera es sobre redes neuronales artificiales (RNA) no supervisadas. Es un campo de la programación que siempre me ha llamado la atención, ya que es inteligencia artificial y es vida artificial. Es decir, no es como los sistemas expertos, un montón de reglas preestablecidas, (en última instancia todos los programas son eso, pero quiero verlo en un sentido algo más abstracto) sino que nosotros ponemos un montón de neuronas que se comportan de una forma frente a unas entradas y ellas evolucionan independientemente. Esto quiere decir que nosotros no sabemos a priori en que estado acabán las neuronas, no está escrito en el programa, mientras que en un árbol de decisiones es mucho más facil de saber.
No quiero alargarme con explicaciones sobre RNA, el caso que vengo a tocar es otro. Lo que ocurre es que esta no es el único intento de modelar un sistema vivo que existe. También tenemos otros muchos ejemplos, como los autómatas celulares, los algoritmos genéticos, y los muchos y variados “Juegos de la vida”. Y de éstos últimos es de los que vengo a hablar. Más concretamente quiero referirme al Juego de la Vida de Conway (JVC). El primero y más conocido de todos.
El JVC se basa en unas reglas muy simples:
1. Todo ocurre en un universo bidimensional ciclico (el típico toroide del asteroids) dividido en celdillas (es decir: discreto).
2. Cada celdilla puede estar en dos estados diferentes, que podemos llamar “viva” y “muerta”.
3. Una celdilla viva permanece así en el siguiente turno si de las ocho adyacentes solo 2 o 3 están vivas.
4. Una celdilla muerta renace en el siguiente turno solo si de las adyacentes 3 y solo 3 están vivas.
5. Todas las celdillas calculan su estado siguiente a la vez y se actualizan a la vez.
Solo con esas cinco reglas obtenemos un universo muchísimo más complejo de lo que cualquiera pueda imaginar a priori. Tan complejo que hay gente que se dedica por hobby a encontrar nuevos patrones, a explorar este mundo. Tan complejo que es equivalente a ¡¡una Máquina de Turing!! Bueno, no todo juego es equivalente, sino que se puede construir una máquina de Turing, teóricamente con un Juego de la Vida. Pero todo esto viene mucho mejor explicado en los links que pongo al final.
Los que no sepan qué demonios es una Máquina de Turing (MT) y por qué es tan importante se los explico en un momento. Un ejemplo de máquina de Turing es esa cosa que tienen ustedes delante. No, el monitor no, la otra cosa. ¡Si, su ordenador! Turing inventó un modelo matemático y demostró que todo aquello que fuera computable podría hacerse con esa supuesta máquina. Nuestros ordenadores cumplen con los requisitos del modelo y pueden emularlo, por tanto también pueden computar todo lo posible. La pregunta difícil viene cuando alguien dice cosas como ¿puede el ser humano pensar en algo “no computable”?¿Es el ser humano “computable”? Estos son temas que no tocaré en este momento ya que no es el objetivo y actualmente son casi cuestiones religiosas.
Volvamos al tema que me traía delante de mi MT. Tenemos por un lado el JVC, un sistema que se basa en unas cuantas reglas y en el que podemos poner un estado inicial aleatorio y ver como evoluciona. Por el otro lado nos dicen que esto es equivalente a un ordenador, es decir que podría simular cualquier programa que conozcamos. Esto me lleva a pensar en el origen de la vida y en las posibilidades de este juego, por supuesto no soy el primero, pero dejémonos llevar un poco por la imaginación…
Hay muchas simulaciones de seres vivos en los ordenadores: Desde el Tamagochi, los nintendogs, las criaturitas de Creatures, los aldeanos de Black and White, los juegos de hormigas, simulaciones de plantas, árboles,etc, etc… Cojamos por ejemplo los adorables perritos de Nintendo. Son una buena simulación, podemos enseñarles cosas, jugar con ellos, responden a nuestra llamada y realizan un montón de acciones más. Estos perros no son más que programas. Por tanto, podrían ser simulados dentro de un (enorme, eso sí) JVC. Hasta ahí nada que rebatir, esto es cierto.
Ahora supongamos que tenemos un JVC de proporciones astronómicas. Astronómico implica más tiempo y espacio del que sabemos imaginar, pero intentémoslo: Supongamos que tenemos un JVC de estado inicial aleatorio en un toroide del diámetro del sistema solar. Supongamos también que tenemos millones de años para iterar y una capacidad tan increible de procesado que nos permite actualizar cada segundo, por ejemplo. Podemos pensar que en algún momento en esos millones de años aparecerán programas en distintas partes del universo artificial. Estos podrían ser programas sumadores, procesadores de texto… O el adorable perrito de Nintendo, el tamagochi o la simulación de un árbol… Podríamos pensar que en esa simulación el árbol creciera y se multiplicara dentro del propio universo…. ¿No habríamos creado vida?
Esa es mi pregunta final ¿podría crearse vida en un JVC? Tal vez sea dificil de imaginar, pero la vida comenzó en pequeñas moléculas que por azar formaron aminoácidos y demás hasta conseguir algún tipo de organismo unicelular. El universo en si mismo no es más que como el JVC, átomos, cada uno en este caso infinitamente más complejo y variados que en el JVC, pero átomos, con unas reglas y todo el tiempo y la cantidad del mundo. Con esto no pretendo responder a la ninguna de las preguntas paradógicas de si Dios existe o si existe el alma o cosas así, solo reflexionar sobre si algún día podremos ejercer de Dioses, es decir, simular un pequeño universo en el que la vida evolucione gracias a unas reglas establecidas por nosotros en una MT de proporciones titánicas. No hablo de personitas diminutas, sino de algún tipo de vida, algo que crezca se alimente y se reproduzca que es lo que me enseñaron de chiquitito que es la vida.Y esta vez me voy a mojar porque creo que es fácil, ya existe algún tipo de vida simulada, podrán verlo en los links de mas abajo, pero estoy seguro de que aun nos queda mucho por ver en este tema, veremos vida en nuestros ordenadores, veremos seres con genes que sobreviven en un entorno con el que interactuarán y donde evolucionarán.
Ahora algunos links sobre el JVC para el que quiera profundizar:
JVC en la Wikipedia
Math.com Explicación, reflexión y ejemplos interactivos, de lo mejorcito para hacerse una buena idea del potencial de este juego. En ella explica que mi hipótesis de la autogeneración de vida en el JVC es difícil puesto que los patrones tienen a estabilizarse en osciladores.
Una de las primeras explicaciones al publico (1970)
Autómatas Celulares, hormigas y plantas.
IA en Wikipedia
Redes Neuronales en Java
Spore, el nuevo juego de Will Wright promete crear una civilización tipo al pequeño mundo de Lisa Simpson evolucionando desde seres unicelulares y configurando estos seres y sus características completamente en cada paso… Somos muchos los que esperamos el nuevo juego de este genio.