domingo, 4 de septiembre de 2016

Diseño inteligente

"Zuse was the first to propose that physics is just computation, suggesting that the history of our universe is being computed on, say, a cellular automaton. His "Rechnender Raum" (Computing Cosmos / Calculating Space) started the field of Digital Physics in 1967. Today, more than three decades later, his paradigm-shifting ideas are becoming popular."

"Si sólo hay un Creador que hizo al tigre y al cordero, al guepardo y a la gacela, ¿a qué está jugando? ¿Es un sádico que disfruta siendo espectador de deportes sangrientos?" (Richard Dawkins)

"El gran crimen del Dolor es haber organizado el Caos, haberlo convertido en universo." (Emil  Cioran)


¡No!, no os preocupéis por el título. No voy a hablar de ese Diseño Inteligente impuesto por ciertos grupos religiosos, mayoritariamente en Estados Unidos. Lo que en realidad voy a hacer, es proponeros una hipótesis muy particular mía sobre el asunto que espero que al menos; y a pesar de que sea, como no puede ser de otro modo pura especulación, os interese y os haga pasar un buen rato de reflexión trascendental.

Metodología.

Vamos a dividir esta entrada en dos partes diferenciadas: en una primera parte del artículo vamos a trabajar mediante un relato alegórico el cual esconde una doble lectura que se hará evidente conforme avance el mismo y de manera más explícita en la segunda parte del trabajo, donde se hará un resumen extenso de lo que vengo realmente a proponer.

Es necesario advertir que el tema que voy a tratar en toda esta entrada es bastante denso y que requiere de ciertos conocimientos previos (gran parte de los cuales ya he tratado personalmente en este mismo blog). Esto quiere decir que aquel lector que sea ingeniero, matemático o físico le será más fácil comprender la argumentación que voy a proponer (aunque no la comparta), pero quiero hacer hincapié en que creo que tampoco es totalmente necesario: cualquiera puede seguir el hilo a pesar de que quizás necesite un poco más de esfuerzo intelectual.

Dicho esto, empecemos :).

Parte I: "El encargo del jefe" (Relato alegórico)

Pongámonos en la piel de un ingeniero (el cual forma parte de un equipo  o grupo de trabajo), al cual le proponen la difícil tarea de simular una enorme realidad. 

Así de simple: una mañana llega nuestro jefe a la oficina y nos suelta la bomba de que necesita que le solucionemos el modo en que lograr la ardua tarea de simular una gigantesca realidad. Una realidad que tendrá que ser totalmente consistente en el tiempo, y que además deberá cumplir estrictamente los siguientes cinco requisitos que el cliente final ha determinado:

  1. El mundo simulado puede ser de cualquier tamaño, siempre y cuando este tamaño permita cumplir el resto de exigencias que se enumeran a continuación.
  2. El mundo simulado debe contener estructuras complejas y diferenciables en el tiempo.
  3. El movimiento de tales estructuras debe ser autónomo y estar regido por comportamientos regulares en circunstancias equivalentes.
  4. Se requiere de la mayor eficiencia posible en la simulación de manera que se optimice el uso de recursos computacionales, con lo cual se minimice en lo posible la potencia del hardware requerido.
  5. Y finalmente: es requisito que se garantice que en cierto momento varias de estas estructuras complejas llegarán a alcanzar una relación de movimiento tal, que surja en ellas un estado de conciencia e inteligencia similar (en lo posible) al nuestro. También se desea que dichas conciencias se sientan independientes e interactúen mecánicamente entre ellas; y que sea el estado inicial de la simulación con su dinámica el que determine las configuraciones, propiedades, y formas de tales entes (y no una pre-programación con cierto diseño concreto).
Un inciso.

Llegados a este punto, puede que a muchos el relato os esté pareciendo absurdo, pero nada más lejos de la realidad: a decir verdad, si mi jefe llegase hoy mismo a la oficina y me pidiese lo anterior simplemente excluyendo el quinto requisito (de conciencia), no tendría ningún problema en realizar la tarea en menos de una jornada de trabajo (si dispusiese de un equipo lo suficientemente potente).

Y si aún así sigues teniendo reparos en la idea de una simulación a gran escala, echa por favor un ojo a este artículo: http://www.seeker.com/mind-blowing-computer-simulation-recreates-our-universe-1768543905.html, donde se explica cómo hace apenas cuatro meses un equipo de investigadores ha conseguido la simulación del Universo más precisa hasta la fecha. Según los expertos, esta simulación ha mostrado la evolución de un universo metido en un cubo de 350 millones de años luz de lado durante 13.000 millones de años...¡y estamos hablando de tecnología ya existente, lo que deja mucho margen para lo que futuras generaciones podrán lograr en el campo de la simulación computacional (sobre todo conforme aumente la capacidad de procesamiento disponible en los supercomputadores)!



Es más, a continuación os voy a ofrecer un claro y sencillo ejemplo de tal mundo simulado que cumple los cuatro primeros puntos; y que por cierto se hizo famoso en su momento. Se trata del llamado "Juego de la vida" programado en Javascript y embebido en tu navegador web, el cual será el encargado de computar dicha realidad simulada a continuación:




Este diseño fue ideado por el matemático británico John Horton Conway en 1970, y basa su funcionamiento en un "mundo" en dos dimensiones (2D) el cual contiene cierto número finito de celdas que pueden estar o no ocupadas por una estructura. En este diseño, el estado inicial determina el posterior transcurso autónomo y regular del movimiento de tales estructuras por entre las celdas conformándose con el tiempo a veces, y a pesar de la simplicidad de la programación, estructuras con patrones muy interesantes.

Si queréis echar un ojo al código fuente de este tipo de diseño pero en versión Java, podéis entrar por ejemplo aquí: http://www.bitstorm.org/gameoflife/code/

Pero continuemos con el relato.

Presentamos la idea de algo similar al "Juego de la vida" a nuestro jefe, pero evidentemente el jefe sabe que al cliente final esto le va a parecer claramente insuficiente y que no es para nada lo que necesita, puesto que su principal requisito es en realidad el quinto: es decir; que en cierto momento las estructuras simuladas alcancen una conciencia similar a la nuestra. Y con este simple mundo en 2D esto no va a ocurrir por mucho que esperemos y por mucho que extendamos el espacio (el tamaño) de la simulación.

Así que en el equipo de desarrollo nos disponemos (a nuestro pesar :P) a idear el modo en que podríamos conseguir este último y complejo requisito:


Lo primero que se nos viene a la cabeza es aumentar el número de grados de libertad del mundo simulado a tres dimensiones (3D) e idear luego una "física" que sea capaz de dar cuenta de los tres primeros puntos. Y ciertamente no vale con programar cualquier "física" que podamos imaginar, ya que alguna de tales "físicas" no permitirían por ejemplo la diferenciación entre estructuras (requisito 2), o un movimiento regular y repetible en circunstancias similares (requisito 3); e incluso muchas "físicas" contendrían indeterminaciones y otros problemas de computabilidad que harían inviable el procesamiento de la simulación. 


Otro inciso.

Esta "física" (con comillas) de la que se habla es, por supuesto, un compendio de fórmulas matemáticas programadas en algoritmos a tal fin de que según sea el estado en cierto "lugar" de la simulación, el computador pueda de manera autónoma dirigir el movimiento y determinar el futuro estado del sistema. Para lograr estos fines "físicos" podemos hacer uso de cualquier secuencia de procesos matemáticos, agrupándolos en funciones de cualquier número de variables sin restricción en cuanto a suavidad, continuidad, dominio ni imagen. Tenemos absoluta libertad matemática siempre y cuando el resultado final sea el requerido.

Todo esto, de hecho, ya se hace hoy día por ejemplo en los modernos juegos 3D para las consolas de última generación. En este tipo de juegos, el mundo se divide en tres grandes coordenadas espaciales (x,y,z), y se subdivide el espacio en pequeños volúmenes Δx·Δy·Δz que se denominan en la jerga informática como píxeles. La "física" matemática programada mediante las ya mencionadas funciones generales determina el estado de dichos píxeles y el comportamiento futuro del sistema para cada intervalo de tiempo Δε (que normalmente será un valor finito y racional mayor que cero, y que frecuentemente se relaciona con los frames por segundo que se desean mostrar).

De nueva cuenta, si mi jefe me diese personalmente el tiempo y el equipo hardware necesario, yo mismo podría (y de hecho en alguna ocasión tuve que hacer algo similar aunque a mucha menor escala) programar un mundo 3D con una riqueza comparable a la del mejor juego de la actualidad (se suele utilizar mucho en este tipo de programación el lenguaje C++ sumado al uso de alguna API o framework que facilite en gran medida el trabajo). El resultado a veces es similar al siguiente (y es de esperar que en pocos años la realidad virtual lograda aumente en gran medida):



Este vídeo es impresionante y da una clara muestra de lo que está por venir, y de la potencia de simulación que un simple PC o consola va a poseer en pocos años (cuando no es el caso que la posee ya).

Sigamos de nuevo con el relato.

Fenomenal, parece que vamos por muy buen camino pero tenemos un problema, y es un problema doble: los puntos cuatro y cinco. Aunque finalmente llegásemos algún día a diseñar y programar tras mucho esfuerzo un ente o conjunto de entes con todas las cualidades de inteligencia que el cliente pide, resulta que lo habremos no obstante pre-programado todo, mientras que lo que el cliente realmente desea es un generador de mundos simulados y no un mundo creado ad hoc. Este cliente no quiere depender de nosotros ni de diseñadores que tengan que hacer, rehacer y modificar todo el trabajo, sino que desea un producto final que a partir de cierta configuración paramétrica inicial espontáneamente evolucionen sus constituyentes de manera dinámica hasta lograr finalmente el hito deseado en el quinto punto de conciencia e inteligencia. De este modo, cada vez que se cambie un parámetro inicial de los disponibles (uno de los valores constantes posibles que podremos a su disposición y que luego participará en las fórmulas de nuestra "física" simulada), la dinámica de la simulación será distinta y el resultado final también: de manera que con ciertas constantes iniciales en nuestra "física" se alcanzarán estas estructuras inteligentes, mientras que para otros valores la simulación será un caos sin pies ni cabeza.

El otro problema tiene que ver más con el punto 4: la eficiencia y el requerimiento de hardware. El procedimiento de programación que se sigue en los juegos actuales es aceptable en casos donde se debe calcular el estado de cientos de estructuras y algunos millones de píxeles (normalmente los que aparecen en pantalla), pero pretender extender este mecanismo para computar una simulación de miles de billones de billones de "píxeles" y partículas produce tal explosión combinatoria (a causa de las interacciones y los cálculos dinámicos), que no hay en nuestro planeta espacio suficiente para colocar todos los computadores que serían necesarios para llevar adelante este cómputo con garantías (amén de que el cliente tampoco quiere tener que esperar una eternidad para que un computador menos potente procese cada paso simulado de Δε).


Recapitulando:

Así que necesitamos diseñar una "física" (punto 3) que aplicar sobre pequeños volúmenes de espacio. Estos volúmenes evidentemente no pueden ser infinitesimales dx·dy·dz dado el requisito de eficiencia y la necesidad de computabilidad que acabamos de ver, aunque no obstante sí que podrán ser volúmenes finitos y discretos Δx·Δy·Δz pero que acerquemos tanto su valor a cero que en la práctica no se note la diferencia. 


Por otra parte, esta "física" (y este espacio) necesitan admitir el cambio y el movimiento congruente de modo que sea posible la aparición de estructuras diferenciadas (requisito 2); y además, es preciso que sea un estado inicial configurable (constantes "físicas" iniciales) el que determine el resultado de la simulación, no pudiéndose pre-programar ad hoc absolutamente nada a parte de la propia "física" propuesta. 


Por último, necesitamos que como fruto de todo esto surja mediante esta dinámica autónoma en la simulación una (al menos una) estructura que demuestre conciencia y una inteligencia similar a la nuestra (resto del requisito 5). Sin olvidar que no podemos hacer un uso intensivo de infinitos recursos de hardware, sino que estamos limitados a conseguir una eficiencia tal que todo funcione con soltura en el equipo menos potente posible (el cual esté al alcance del cliente).


Ufff, menudo trabajo. Este jefe nuestro pilla cualquier marrón con tal de ganar dinero ;). Pero bueno, nosotros, como buenos currantes que somos vamos a ponernos manos a la obra sin rechistar:


Para empezar como Dios manda decidimos reunirnos todos los ingenieros del equipo y empezar con la tradicional tormenta de ideas:

En la reunión se arma mucho revuelo, y son varios los compañeros que desde el principio piensan que este proyecto es inviable y que el jefe se ha pillado los dedos; pero el jefe de proyectos pone orden e insta a buscar soluciones y no tirar la toalla a las primeras de cambio. Así que la reunión continúa y tras una larga deliberación terminamos con el siguiente resultado técnico previo:


1) Las leyes "físicas" que inventemos deben ser tales que garanticen la aparición de estructuras complejas inteligentes, pero como toda la dinámica va a estar regida por las constantes iniciales y dado que dichas constantes pueden tomar una infinidad de valores; no tendremos más remedio que repetir la simulación una y otra vez hasta que se produzca el resultado deseado.


2) Tendremos que poder detectar que se ha logrado el resultado deseado por entre millones de simulaciones y repeticiones cada una con unas características muy variopintas, cuestión que nos obliga a diseñar estas "físicas" de manera que sea fácil averiguar si en alguno de esos "mundos" se ha logrado por fin el requisito 5 y en cual de ellos ha sido.


3) Configurar manualmente las constantes iniciales es claramente inviable dada la infinitud de valores posibles y dado además que el más pequeño cambio en una de estas constantes iniciales producirá un gran cambio en la dinámica que muestre la "física" que luego genere. Se propone entonces que sea un proceso iterativo el que vaya seleccionando tales valores de entre el dominio disponible para cada constante inicial.


4) Por otra parte, nos damos cuenta de que las propias constantes iniciales: el número de constates y el dominio posible para cada una pueden ser también variables, y que tendremos pues que diseñar y proponer cuántas constantes iniciales usaremos y de qué modo haremos uso de ellas luego en las fórmulas de la "física" (amén de determinar qué rango de valores podrán tomar a la hora de ser configuradas al inicio de cada simulación).


5) Como no conocemos el tamaño ideal (volumen y diámetro) ni tampoco la forma que debe poseer el espacio de una simulación para poder llegar a albergar conciencia, nos vemos obligados a permitir que dicho tamaño sea variable y que dependa idealmente de la "física" y de las constantes iniciales seleccionadas. Ciertas combinaciones de "físicas" y constantes darán lugar a espacios mayores y en constante crecimiento, mientras que otras darán lugar a espacios menores o que con el tiempo entrarán en contracción.


6) Muy importante: la "física" no sólo debe ser tal que permita el cambio y el movimiento, sino que como ya vimos debe permitirnos detectar fácilmente si se alcanzó la inteligencia buscada y lo más importante de todo: debe poder computarse todo de manera eficiente y abarcable a nivel de hardware teniendo en cuenta que los "mundos" pueden ser enormes y que millones de simulaciones tendrán que llevarse a cabo antes de lograrse finalmente el quinto requisito.


En el equipo estamos desolados. Cuanto más pensamos en el problema, más complicado parece que se vuelve llevarlo a la práctica. Lo más importante de esta reunión es que ha quedado claro que es inviable pretender construir a tanteo la "física" adecuada y las constantes iniciales adecuadas. Las combinaciones son tantas y la dinámica tan caótica y sensible al menor cambio que podríamos estar miles de años probando alternativas y jamás llegaríamos al objetivo deseado.


Pero no desistamos, y empecemos a idear alternativas teóricas:


¿Qué "física" podría ser la adecuada para cumplir con todos los requisitos que ya hemos visto? Es decir; que leyes o regularidades mecánicas son las ideales o, en otras palabras, que conjunto de funciones y procesos matemáticos son los adecuados para lograr nuestro fin?


En principio no lo sabemos, y ya acordamos que dada la riqueza matemática disponible (prácticamente infinita) buscar a tientas esta "física" parece poco útil. No creo que el cliente tenga toda la eternidad para que le entreguemos el proyecto finalizado. Por lo tanto, vamos a tomar una alternativa muy útil en estos casos: nos decidimos a usar algoritmos de computación evolutiva.



En este punto creo que es aconsejable que antes de seguir eche el lector al menos un ligero vistazo a estos dos artículos del blog donde explico qué es la computación evolutiva y muestro un ejemplo práctico de aplicación de la computación evolutiva.

El pseudocódigo que vamos a seguir es muy similar al siguiente:
Simplemente, y a grosso modo, vamos a comenzar generando una "población" inicial de simulaciones (cada una con su propia "física" generada de manera aleatoria y con los valores iniciales constantes también distribuidos de manera estocástica) y posteriormente vamos a dejar progresar libremente a esta población inicial de simulaciones, cada una siguiendo su propia "física" y ajustes iniciales durante un intervalo de Δε pasos. 

Una vez transcurridos libremente esos Δε pasos (que van a equivaler a una cierta cantidad de tiempo Δt en cada simulación), procedemos al segundo paso de evaluar cada simulación dentro de la "población" inicial aleatoria. Pero claro, ¿evaluar cómo? ¿En qué medida? Muy buena pregunta. De hecho, es una pregunta crucial:


El hecho de evaluar cada simulación nos sirve posteriormente para seleccionar aquellos individuos (simulaciones) que mejor parezcan estar consiguiendo el objetivo buscado, que en este caso es lograr encontrar alguna "física" que consiga con su simple dinámica autónoma alcanzar tras cierta cantidad de pasos en su progresión "futura", el hito de que aparezcan en dicha simulación estructuras inteligentes (junto con el resto de requisitos que ya discutimos antes). Pero, evidentemente, esta evaluación no puede ser certera ya que si tuviésemos un modo de poder prever de manera totalmente determinada si una simulación va a alcanzar o no el objetivo nos podríamos ahorrar todo el proceso evolutivo y directamente usar ese método para entresacar la "física" correcta. No es éste, desde luego, el caso, por lo que nuestra evaluación tendrá que estar basada en alguna triquiñuela que inventemos.


Así que, ¿cómo podríamos tantear cuantitativamente a partir del estado de una simulación en cierto momento la probabilidad de que se encuentre o no en camino de lograr el objetivo? La respuesta más evidente consiste en medir de alguna manera la complejidad total alcanzada por dicho "mundo". Es de suponer que un "mundo" con estructuras inteligentes deberá ser un mundo que contenga una gran complejidad estructural en él y que sea por lo tanto poco homogéneo o simple. Valdría pues con asignar mayor valor a aquellas simulaciones que contengan mayor cantidad de complejidad estructural. Un mundo donde la "física" no favorezca estructuras que puedan incrementar asociativamente su complejidad (como ocurre en nuestro mundo, donde hay varias partículas que se pueden agrupar en átomos, y luego éstos en moléculas que dan lugar a una rica combinación química, etc.) es mal candidato. Y aunque este punto parece claro sin embargo nos surge una nueva duda: ¿cómo medir este nivel de complejidad?

Esta es la clave principal de todo lo tratado. Si necesito medir cómo de compleja es una simulación, tendré que apañármelas para poder realizar de modo cuantitativo esta comparación o  medida entre "mundos", y para ello tendré que imaginar algún postulado que todas estas "físicas" vayan a poseer en común: podríamos, por ejemplo; suponer que cualquier "física" va a disponer siempre al comienzo de una cierta cantidad inicial de movimiento en potencia y otra cantidad de movimiento efectivo; y que, aunque la suma de ambas cantidades vaya a ser siempre constante se permita el paso de un tipo de movimiento a otro, dependiendo el movimiento en potencia únicamente de la posición de las estructuras mientras que el movimiento efectivo dependerá además del ratio al que la propia estructura cambia de posición en el espacio.

Esto que acabamos proponer es equivalente a decir que aunque cada simulación va a disponer de sus propias y variadas leyes "físicas" matemáticas; todas van a compartir una especie de base que para entendernos podemos identificar como la cantidad de movimiento en potencia (cantidad de energía potencial del "mundo"), la cantidad de movimiento efectivo (energía cinética) y la conservación de la suma de ambas cantidades (conservación de la energía total).


Técnicamente lo único que necesitamos es establecer un marco común por el cual en toda "física" admisible deberá presentar siempre dos variables K  y U, las cuales representen la suma total de estos dos tipos de movimiento en la simulación para cada intervalo de tiempo (y que la suma K + U permanezca contante) y poco más: el modo en que K y U sea representado en cada "física" (las fórmulas que den lugar en cada instante a estas cantidades totales) se dejará variar libremente entre simulaciones.


Ahora sí, ¿cómo medir la complejidad en cierto momento de cierta simulación? Pues en base al postulado común que hemos montado, podemos establecer que un mundo será tanto más complejo cuanto más rápidamente convierta su movimiento en potencia  en movimiento efectivo por unidad de tiempo, es decir; cuanto más trabajo se realicé en él de media en cada instante o, en otras palabras, cuanto más potente sea la simulación.


Aclarado esto, ya podemos continuar con el proceso de computación evolutiva que dejamos antes a medias. Decíamos que, transcurridos Δε pasos procedíamos a evaluar cada simulación; y ahora vemos que esa evaluación se basará simplemente en calcular cuantitativamente la potencia total interna de cada "mundo". Un modo sencillo (pero no el único) podría ser almacenar el valor global de K (Kp) en la evaluación anterior, y simplemente tomar como representación de la potencia interna el valor en el instante actual de K restado al valor previo:


P = K - Kp

Pues bien, procedemos de esta manera y evaluamos cada simulación de la "población" inicial, tras lo cual vamos a terminar con un valor P que representará numéricamente con cierta precisión la potencia de una simulación o, lo que es lo mismo, el ratio al que dicha simulación va convirtiendo movimiento en potencia en movimiento efectivo dado un intervalo de pasos Δε.

Lo siguiente es sencillo: seleccionar las, por ejemplo; N / 2 simulaciones más potentes, donde N es un entero que representa el número constante de individuos -simulaciones- en la "población" con la que trabajamos. Tras lo cual únicamente nos queda clonar esos N / 2 "mundos" seleccionados para generar a partir de ellos otras N / 2 simulaciones. Pero, y esto es muy importante, cada clonación será propensa a un cierto número de modificaciones aleatorias (que podemos denominar si queremos mutaciones), las cuales modificarán ligeramente la "física" y las condiciones iniciales de su simulación "padre".

Y con esto ya podemos trabajar con el algoritmo evolutivo (a la espera de definir la condición de parada, que veremos posteriormente). Simplemente deberemos proceder a declarar el valor del intervalo de pasos Δε con el que vamos a trabajar (por ejemplo, Δε = 500.000.000.000.000.000 pasos)  y el número de simulaciones que va a contener la "población" de simulaciones (por ejemplo, N = 1.000.000.000 simulaciones). Y de esta manera comenzaremos la iteración evolutiva e iremos dejando pasar generación tras generación. 

Una cosa debe quedar clara. Siguiendo este proceso, tenemos asegurado que con el transcurso de las generaciones iremos obteniendo (descubriendo) cada vez "físicas" y estados iniciales más y más potentes (i.e., complejos). Y lo más importante, este proceso evolutivo es abarcable; cosa que no ocurre si se intenta aproximar este desafío por fuerza bruta (intentando iterar directamente sobre todas y cada una de las posibilidades matemáticas para la "física" y para los valores iniciales, ya que vimos que se trata de combinaciones prácticamente infinitas).  

Nos falta un último paso, pero quizás el más importante. ¿Cuándo paramos el proceso evolutivo? ¿Cuándo podemos suponer que uno de estos "Universos" simulados ha alcanzado el requisito de que contenga una inteligencia similar a la nuestra?:

Para ello, vamos primero a estudiar nuestra propia inteligencia. ¿Qué consecuencias físicas tiene en nuestra realidad el hecho de nuestra sobresaliente inteligencia racional? Pues un rápido vistazo nos demuestra que nuestra inteligencia como la conocemos hoy ha supuesto desde su mismo origen hace decenas de miles de años un aumento, al comienzo gradual y posteriormente exponencial, de la cantidad de energía libre consumida (es decir; de la cantidad de trabajo que hemos realizado). Cada vez consumimos más energía potencial y de más variadas fuentes para realizar con ella el trabajo necesario capaz de mantener nuestra compleja estructura personal y también social. Y no sólo eso, sino que también nos afanamos por replicar nuestra estructura tanto como sea posible, siendo el ideal un crecimiento exponencial de la población, lo cual va aparejado con un necesario crecimiento exponencial de la producción y consumo de energía y recursos.

Es más, el ideal de nuestra inteligencia es (y quizás sea logrado algún día) llegar a colonizar otros planetas los cuales explotar del mismo modo que hemos hecho aquí en nuestro planeta. Concluimos, por lo tanto, que una inteligencia similar a la nuestra supone a nivel físico una clara tendencia hacia explotar exponencialmente toda la energía libre disponible de modo que sea factible una replicación también exponencial de su propia estructura, siendo el ideal de tal tendencia física llegar en algún momento  a escapar de su lugar de nacimiento y colonizar o expandirse por entre todo el espacio disponible.

Resumimos, por lo tanto, que la condición de parada del proceso de computación evolutiva podría ocurrir cuando, al dejarse transcurrir los Δε pasos para cada simulación de la generación en curso, en alguna de ellas acontezca un súbito, explosivo y disperso evento de aumento en la complejidad global estructural (i.e. en el consumo medio de la energía en potencia por unidad de área). Este exponencial y disperso aumento en el trabajo neto realizado en el "mundo" sería una clara señal de que una enorme complejidad estructural habría acontecido, pudiéndose correlacionar dicha complejidad con el surgimiento de alguna inteligencia como la nuestra que haya logrado expandirse por su "Universo" simulado. 

Para aclarar un poco la cosa.

Vamos a suponer que echamos a andar el algoritmo evolutivo y que, en algún momento, la "física" (y las condiciones iniciales) de alguna simulación mutada en la enésima generación resulta tal que aproximadamente al cabo de, por ejemplo; 435.196.800.000.000.000 pasos (lo cual, suponiendo que cada paso equivalga a un segundo supondría para la simulación el transcurso de aproximadamente 13.800 millones de años) se detecta en cierto lugar de su "espacio" un súbito y explosivo aumento por unidad de área en el consumo de energía (es decir; que la diferencia entre Kp y K crece exponencialmente en cierto lugar). Imaginemos además que ese aumento exponencial en el consumo de energía libre por unidad de área lo ha causado la aparición primero de "vida", y posteriormente el surgimiento de una "inteligencia" como la nuestra. Si finalmente esa inteligencia logra (como nosotros mismos deseamos) colonizar otros "planetas" y se expande por el "cosmos" simulado, se podría detectar ese evento como que ese súbito y exponencial aumento en la complejidad se dispersa rápidamente por el "espacio" (tras otra cantidad de pasos). Si esto llega a ocurrir, el algoritmo pararía indicando que con la "física" de esa "simulación" es muy probable que se haya logrado alcanzar una inteligencia similar a la nuestra (que era lo que el cliente esperaba). 

En el equipo estamos emocionados. Aunque parecía imposible, finalmente lo hemos conseguido. Parece ser que ya lo tenemos por fin todo analizado y preparado, listos para empezar a programar. Pero pronto nos damos cuenta de que no va a ser tan fácil, y es que hay que tener en cuenta un detalle importante: no cualquier "física" es completamente computable. Habrá formulaciones para la "física" que lleven en el transcurso de los Δε pasos a estados indefinidos o indeterminados que podrían originar paradojas matemáticas imposibles de computar (por poner un ejemplo, la consabida división por cero), y también podría ocurrir que alguna física cayese en algún tipo de bucle infinito que hiciera imposible continuar computacionalmente hablando con el resto de pasos hasta alcanzar los Δε pasos previos a la evaluación. Y habrá que tener en cuenta además las limitaciones en cuanto a la precisión de los registros y a la memoria disponible por el equipo físico (hardware) encargado de procesar el cálculo de las simulaciones.

Todas estas "físicas" problemáticas deben ser desechadas para que no interfieran en el proceso evolutivo, y una buena manera es evitando siempre en lo posible el aumento incontrolado del valor definido para las variables de la "física". Para tal fin, vamos a forzar primeramente a que deba existir siempre un valor máximo para la cantidad de cambio por unidad de tiempo, es decir; vamos a obligar a que siempre exista en la "física" una determinada velocidad máxima que no podrá ser rebasada (con lo cual evitamos que con el tiempo la velocidad de algún "objeto" vaya aumentando (acelerando) de manera tal que desborde con su valor los registros disponibles en el hardware. También pusimos ya cota a la cantidad mínima de volumen de espacio con el que vamos a trabajar de manera que haremos discreto el "espacio" disponible Δx·Δy·Δz, aunque vamos a dejar abierto el número de dimensiones con lo que podríamos llegar a tener algo así: Δx1·Δx2·Δx3·Δx4·Δx5·Δx6·Δx7·Δx8·Δx9·Δx10. Igualmente, también vamos a hacer discreta la cantidad mínima de tiempo que puede transcurrir Δt entre dos eventos.

Si todo este concepto de procesar "físicas" virtuales mediante computación evolutiva te parece complicado o poco creíble, quizás te interese echar un ojo a estos dos trabajos propios (con código fuente incluido) donde precisamente se programa algo similar (aunque a una escala evidentemente menor): Ejemplo I de programación evolutiva aplicada a un sistema Lennard-JonesEjemplo IIEjemplo III.

Es decir; que en resumen, por ahora hemos llegado a las siguientes conclusiones sobre las "físicas" admisibles a tener en cuenta en el proceso evolutivo, las cuales deben cumplir con que:
  1. Habrá siempre en ellas una velocidad (incremento en el cambio espacial por unidad de tiempo: Δx / Δt) máxima alcanzable (cuyo valor será libre y variable para cada simulación). Esta velocidad extrema (que podemos llamar c) supone al mismo tiempo que existirá siempre un límite en cuanto a la cantidad de cambio. La máxima traslación espacial posible (teniendo en cuenta que max. Δx / Δt = c) vendrá dada entonces (en cada dimensión) por la relación Δx = c · Δt
  2. El volumen de espacio mínimo a tener computacionalmente en cuenta será discreto, aunque de dimensiones variadas (por ejemplo; Δx1·Δx2·Δx3·Δx4·Δx5·Δx6·Δx7·Δx8·Δx9·Δx10).
  3. El intervalo mínimo de tiempo a tener en cuenta computacionalmente  también será discreto Δt (y estará relacionado con el número de pasos Δε acontecidos de manera externa por el computador). Esto permite que exista así un tiempo relativo t en la simulación, pero que aun así exista un tiempo absoluto ε (el paso) que será trascendental e independiente de la simulación.
  4. Siempre existirán dos variables K y U (que representan cuantitativamente como vimos a la cantidad de movimiento efectivo y en potencia), cuya suma dará siempre un mismo valor constante E, y participando siempre estas variables (formando parte de un modo u otro en las fórmulas de la "física") en todo proceso de cambio en el movimiento interno a una simulación.
  5. El valor total de E (la suma global de K + U) será un valor finito y constante.
Todo esto nos ayuda a evitar en parte "físicas" problemáticas y no computables ya que se garantiza que no acontezcan fácilmente cálculos que impliquen valores infinitos aunque, a pesar de todo, todavía detectamos que es posible que algún bucle en alguna función se vuelva infinito (o tan grande que se vuelva computacionalmente inabordable por nuestro equipo de hardware). Por lo tanto, no nos queda otro remedio que implicar una nueva restricción a las "física" a tener en cuenta:
  1. Siempre habrá una cantidad mínima y discreta de acción que formará parte implícita en cada proceso de cambio. Es decir; se va a establecer un cuanto de acción el cual pondrá cota al número de cálculos requeridos a la hora de tener en cuenta cómo varía la energía con el tiempo. El valor de esa acción mínima es libre para cada "simulación":

De esta manera, teniendo en cuenta que el valor de E es finito y constante, U y K serán finitos en todo momento (puesto que la cantidad de cambio se ha hecho discreta), y como además dichas variables participan en todo movimiento y el incremento en el movimiento por unidad de tiempo discreto Δt no puede superar cierto valor c, al mismo tiempo que todo movimiento es impulsado por una acción A finita y discreta relacionada siempre con una constante de mínima de acción a la que podemos denominar por ejemplo como h, se garantiza en conjunto que la "física" en consideración será computable y estará libre de infinitos, indeterminaciones y bucles de cómputo demasiado grandes. Se descarta así cualquier física que contenga llamadas a funciones con bucles o cálculos que superen cierto umbral del tiempo establecido puesto que el cuanto de acción supone una cota cuantitativa a la complejidad computacional requerida para procesar todos los cambios "materiales".

Eficiencia computacional.

Vale. Ya tenemos el diseño conceptual bien definido, pero tenemos un grave problema: echar a andar tal cual todo lo que hemos propuesto es computacionalmente ineficiente (una locura). A pesar de todas las acotaciones y discretizaciones todavía nos encontramos con que tratar todas las interacciones internas a cada simulación supone un uso exponencial de recursos (explosión combinatoria en la dinámica "material"). De manera que vamos a tener que imponer algunas nuevas reglas al conjunto de fórmulas que vamos a permitir para nuestra "física":

  1. Vamos a usar y abusar del concepto de simetría. Cualquier "física" a tener en cuenta, siempre irá a poseer un comportamiento tal que los "fenómenos" internos a dicha simulación sean equivalentes ante cualquier cambio de coordenadas o propiedad. De esta manera vamos a evitar tener que recalcular una infinidad de combinaciones equivalentes de interacciones, movimientos y estados.
  2. Se obligará a que la "física" de cómputo muestre una conservación interna del valor de ciertas variables, de modo que finalmente exista una conservación general en el valor local (y global) de la variable principal que antes hemos denominado E y que se relacionada los valores de K y U. Esta es la manera más sencilla y eficiente de conseguir acotar enormemente la cantidad de combinaciones posibles en que los "fenómenos" pueden interactuar y trasladarse. Es decir; que puesto que van a existir claras reglas de conservación en ciertas propiedades "materiales", vamos a poder desechar así una infinidad de movimientos y cambios que no serán ya aptos (que no mantendrían esta conservación "física"), por lo que vamos a asegurar que nuestra "física" será siempre finita y mínima en cuanto al número de opciones a tener en cuenta a la hora de determinar (computar) el movimiento futuro del "fenómeno".
Pero a pesar del avance que estas sencillas reglas de selección (para la "física") suponen en cuanto a mejora en la eficiencia, aún no es suficiente. Todavía haría falta una capacidad de cómputo inimaginable para poder simular millones de estas "realidades" conteniendo miles de billones de entes "materiales" diferenciables interactuando  durante miles de billones de pasos  ε en un proceso evolutivo iterativo como el que hemos visto. Todos comprendemos en el equipo de desarrollo que para computar todo lo necesario haría falta posiblemente un ordenador tan grande o casi tan grande como la propia realidad que se quiere simular. Es evidente que debemos marcar nuevas reglas de selección que permitan que los requisitos de hardware sean radicalmente menores:

Lo primero que se nos viene a la mente, es que el mayor coste de cómputo viene de tener que llevar el cálculo en cada paso (ε) de la posición y la interacción exacta de cada ente "material" en relación con el resto de la simulación. Este es el verdadero origen de la explosión combinatoria en el cálculo de la simulación, y el remedio no puede ser otro que sencillamente NO llevar este cálculo cada paso ε, sino realizar el cálculo únicamente cuando sea necesario. Muy bien pero, ¿cómo?:

  1. Lo primero que haremos será usar funciones de probabilidad conjunta para los entes "materiales". De este modo, el estado y la trayectoria en el "tiempo" de un enorme conjunto de entes "materiales" estará descrito por la suma lineal solapada de una enorme cantidad de estas funciones de probabilidad Ψ = ψ1 + ψ2 + ... + ψn
  2.  Es decir; que ninguna "física" va a calcular de continuo el estado y la trayectoria de cada estructura de "materia" y su interacción con el resto de "entes" (coste exponencial), sino que será una suma lineal de funciones de probabilidad la que determine el comportamiento coherente futuro de un sistema cualquiera. 
  3. Y sólo en el momento en que sea preciso, por ejemplo cuando en un sistema local se supere cierto valor umbral para la probabilidad Ψ de interacción entre entes (o de cambio de estado), será cuando se proceda a calcular realmente el estado y la posición de la materia; entresacando un valor aleatorio de entre los posibles para dicho estado, pero siguiendo siempre la densidad de probabilidad de la que estamos hablamos.
  4. En este sentido, cualquier "física" será libre de definir la forma matemática concreta de estas funciones de probabilidad, pero estará restringida a NO llevar un cálculo continuo e individual del estado y la trayectoria de cada ente, limitándose a construir una función de agregados lineales que represente la densidad de probabilidad del comportamiento de enormes cantidades de "materia" al mismo tiempo.
Esta regla sí que nos ha supuesto una enorme mejora de eficiencia. Al no tener que tratar por separado la trayectoria, el estado y la interacción en cada momento de cada "partícula" (orden claramente exponencial), hemos logrado reducir la complejidad de cómputo a un orden lineal O(n) mucho más abarcable. Y, además, la introducción de funciones de probabilidad cuya densidad vamos a seguir a la hora de entresacar (colapsar) valores observables, nos permite que la "realidad" simulada sea coherente a pesar de todo. Pero sigamos afinando:
  1.  Los entes "materiales" se van a distinguir unos de otros por ciertas propiedades particulares relacionadas con su manera de interactuar con los demás entes, pero siempre que dos "entes" o "partículas" sean del mismo tipo (tengan las mismas propiedades básicas) se tratarán computacionalmente como si fuesen indistinguibles e indiferenciables, i.e. como entes intercambiables. Esto va a permitir un enorme ahorro a la hora de llevar el cálculo de estas "partículas" de propiedades idénticas al permitirnos desechar aquellas combinaciones cuyos cálculos nos producirían el mismo resultado (al tratarse de "partículas" idénticas). 
  2. Vamos a suponer un umbral de separación mínima entre "partículas". Esto supone que dos entes no van a poder estar más cerca de cierto intervalo Δx, lo que se traduce en que la densidad de probabilidad de encontrar dos "partículas" en un mismo estado y posición debe ser cero. Esto nos va a permitir un ahorro considerable de cálculo al no ser posible muchas combinaciones de estado, pero fundamentalmente va a permitir una variabilidad más alta de estados (al no permitirse que toda la "materia" se aglomere en un único punto), y también va a permitir que la evolución de la simulación sea más suave, sin que toda la energía libre sea consumida simplemente acomodándose cada "partícula" en un mismo estado de energía mínima. Este punto va a garantizar, por tanto, una "lucha" y "competición" por aquellos estados de energía mínima tanto a nivel individual, como a nivel de conjunto. Se podría hablar de una especie de principio de exclusión de estados idénticos en momentos idénticos en un mismo lugar.
Con estas reglas de selección que hemos visto, nos aseguramos la finitud en el cálculo de cada paso en el proceso de computación del algoritmo de la "física" de cada "mundo" simulado; y al mismo tiempo, hemos logrado que la complejidad de cómputo sea lineal en su transcurrir excepto en aquellas ocasiones en que sea necesario procesar una interacción al superarse algún umbral para el colapso de cierta distribución de probabilidad local.

Por último, y para rematar la faena, vamos a obligar a que la precisión a la hora de calcular ciertas variables de estado conjugadas: fundamentalmente posición y cantidad de interacción (momento), no puedan superar cierto valor umbral. Es decir; que conforme aumente la precisión con que se calcule una de tales variables de estado, disminuya el esfuerzo invertido en calcular la variable conjugada. Esta indeterminación o impresión en variables de algún modo relacionadas evitará cálculos que entren en un proceso de exclusión mutua infinito al intentar calcular con demasiada precisión una de tales variables y al mismo tiempo a su conjugada. Si denominamos a este valor umbral como ħ (un número real constante), esta limitación significa que toda "física" deberá presentar una restricción parecida (aunque no necesariamente igual) a la siguiente para cada par de variables conjugadas de algún modo:

ΔxΔp ≥ ħ/2

Por fin, parece que todo ya encaja: hemos preparado un algoritmo evolutivo capaz de generar millones de simulaciones y adaptarse y progresar generación tras generación buscando aquellos mundos con una "física" potente capaz de albergar estructuras muy complejas. También hemos ideado el modo de asegurar un método que nos indique cuando es probable que la inteligencia haya emergido en alguno de tales mundos "virtuales" computados. Y más importante aún; hemos establecido las reglas de selección necesarias para acotar las "físicas" admisibles, válidas y eficientes a tener en cuenta en la población de simulaciones de cada iteración evolutiva.

Felices, y con el trabajo ya hecho, nos vamos a descansar todos a la cafetería un rato. Sin embargo la conversación termina girando de nuevo en torno al enorme proyecto que hoy nos han encargado. En un momento dado, un compañero comenta algo que nos da que pensar al resto: - "Chicos, ¿os habéis fijado en lo parecidas que necesariamente van a ser las "físicas" permitidas por nuestro programa con la física de nuestro propio mundo?". Es sin duda algo que da que pensar y que nos hace dudar honestamente a todos de si no seremos nosotros mismos también parte del procesamiento de un computador que trasciende nuestra propia realidad...y por cierto: ¿para qué querrá el cliente de nuestro jefe conseguir simular mundos con entes inteligentes? Y más importante aún: ¿sufrirán y padecerán esos entes "virtuales" como nosotros lo hacemos? En tal caso, ¿es siquiera moral el trabajo que hemos hecho?


Acabado el descanso volvemos a nuestros puestos en la oficina: la parte fácil ya está hecha, ahora quedan por delante un par de décadas para llegar a programar todo este gran diseño ideado. Tenemos trabajo para rato.


Parte II: "La moraleja, y sus consecuencias"

Es complicado, si no imposible, que algún equipo de trabajo de hoy día tenga la capacidad de hardware requerida para llevar a cabo un desarrollo como el propuesto en el relato anterior. La capacidad de cómputo sigue siendo ciertamente enorme (a pesar de los esfuerzos por minimizar el coste de computación), y es bastante improbable que algún organismo público o privado tenga la tecnología necesaria para lograr la proeza de procesar esa especie de multiverso computacional. Pero eso no implica que algún día (no tiene necesariamente que ser en un momento demasiado lejano) la humanidad no pueda alcanzar ese nivel de desarrollo técnico necesario; del mismo modo en que tampoco se puede descartar que alguna hipotética civilización no humana lo haya logrado ya en algún otro lugar del cosmos.

Imaginemos por un momento que éste sea el caso, y que cierta civilización en cierto momento en cierto "Lugar", ha conseguido la capacidad de cómputo suficiente para programar y echar a andar el proceso evolutivo de múltiples simulaciones que hemos descrito antes. Si este fuera el caso, algún "mundo" de entre las múltiples simulaciones de ese Superordenador trascendente (trascendente para cualquier "inteligencia" nacida en cualquiera de esas simulaciones) podría presentar tranquilamente tras n iteraciones del proceso evolutivo una "física" como la siguiente:



De hecho, cuando se aplica un proceso evolutivo por mutación y recombinación este es el estilo de cosas que suelen funcionar: complicados e intrincados resultados que a pesar de no ser respuestas elegantes ni sencillas, aun así funcionan (os remito de nuevo a estas entradas donde explico qué es la computación evolutiva y muestro un ejemplo práctico de aplicación de la computación evolutiva).

Pues bien, ese "chorizo" matemático que veis arriba, junto con esa tabla con algunas de las constantes físicas de nuestro Universo, es precisamente un resumen esquemático de las matemáticas del Modelo Estándar; la propuesta física más actual y vigente que tenemos del modo en que funciona y se mueve nuestro Universo. De hecho, llevamos más de 35 años atascados en ella y no hay manera de superarla ni de encontrar siquiera indicios (empíricos) de que haya algo más a parte de ella. Incluso físicos actuales de la talla de Stephen Hawking se decantan precisamente por rendirse ante la evidencia de que es este modelo matemático lo máximo que se puede lograr siguiendo el método científico tradicional, y que la idea de ir más allá no tenga siquiera sentido porque quizás no haya un más allá (que no exista una teoría unificadora o teoría del todo, sino sólo las matemáticas del modelo estándar y las constantes físicas empíricas que medimos).

Hawkins propone, de hecho, en su libro "El Gran Diseño" una propuesta muy similar a la que he descrito en esta entrada, salvo con la excepción de que no menciona en ningún momento el origen de los multiversos en los que él se basa para explicar entre otras cosas el fino ajuste de las constantes cosmológicas y de las regularidades físicas de nuestro perfecto mundo capaz de albergar vida inteligente. Es evidente que cualquiera que lea este interesante trabajo de Hawkins verá que queda incompleto. Precisamente el último capítulo del libro finaliza justo cuando uno esperaría ver llegar la verdadera explicación para ese multiverso propuesto. Se trata por supuesto de un claro intento del físico de moda por esquivar la propia pregunta sobre qué es en sí ese multiverso con semejante potencial para generar mundos (matemáticos): pero la pregunta está ahí, y es legítima.

Porque si la aparente casualidad del fino ajuste de la física de nuestro mundo se quiere evitar proponiendo una infinidad de mundos alternativos (mutliverso) los cuales conforman una especie de meta-realidad platónico-matemática: ¿qué es en sí esta meta-Realidad "platónico-matemática" infinita? ¿Cuál es su esencia? ¿Qué causa y sostiene este mundo ideal generador de realidades? ¿Por qué existe (en lugar de no hacerlo) y por qué existe además del modo tan concreto en que lo hace con esa capacidad asombrosa de materializar "mundos" desde la nada (de la nada material)? ¿Por qué no es todo de otro modo? ¿Qué hace posible y sustenta además la infinita materialización de estas ideas (o propuestas) matemáticas? ¡¿Y cómo sucede dicha materialización?! Y puestos en que aún es necesario explicar la Causa real de (la esencia tras) este meta-Mundo ideal matemático: ¿podría poseer dicha Causa algún tipo de Intención? ¿Habría después de todo una respuesta al para qué de este infinito conjunto ideal matemático con capacidad para transfigurarse en realidades materiales?

Como decimos, Hawkins ni se plantea estas preguntas y se queda tan ancho finalizando su libro simplemente con su feliz idea del multiverso y del principio antrópico fuerte como método para evitar tener que implicar intencionalidad trascendente para el origen de nuestro fino Universo. A mí personalmente me parece un error, puesto que deja su cosmovisión incompleta e insatisfactoriamente abierta. De hecho, esto es lo que más se le reprochó en su día a su obra y creo que con razón.

¿Es nuestro mundo resultado de una computación trascendente?

Cualquiera que haya tenido la paciencia para continuar leyendo hasta aquí, hará tiempo que se habrá percatado de a dónde he querido ir a parar desde el principio: ¿podría nuestro mundo ser el resultado de un procesamiento de información similar al que he propuesto por parte de un super-computador trascendente a nuestra realidad? Pues podría ser, y además es una hipótesis metafísica que correlaciona bastante bien con los hechos empíricos.

El hecho de que la mecánica cuántica y la relatividad parezcan de algún modo poner cota y límite a la velocidad máxima y a la cantidad admisible de movimiento y posición; y el hecho de que la física cuántica parezca estar dispuesta de modo que un hipotético cómputo trascendente de nuestra realidad sea lo más eficiente posible, junto con el modo en que las leyes de conservación y la simetría se podrían encargar también de facilitar esta meta-Tarea, nos pueden tentar en conjunto a creer que realmente todo es así: que la hipótesis física del multiverso es cierta pero que detrás de ella hay algo más, y que ese algo más podría ser una computación de información trascendental.

Pero es más, la propuesta de la simulación podría además en el futuro recibir nuevo apoyo empírico: empezando por el posible descubrimiento de que el espacio-tiempo es discreto y no continuo (es decir, que hay un volumen mínimo e indivisible de espacio: Δx1·Δx2·...), y siguiendo con que el modelo estándar sencillamente no se llegue nunca a generalizar (en una nueva teoría más unificadora) y que finalmente resulte ser una especie de cota matemática límite alcanzable por medios empíricos. En este caso, el modelo estándar vendría a ser algo así como la "física" que un supuesto computador trascendental habría asignado a nuestro mundo después de varias modificaciones (mutaciones) tentativas en un hipotético proceso evolutivo generador de "realidades" matemáticas (multiverso) como se ha propuesto en el anterior relato.

Y puede que a algunos todo esto le suene a pura ciencia-ficción, pero si se es honesto de verdad, cuando uno se fija, por ejemplo; en que toda la física se mueve y gira siempre alrededor de procesos consistentes matemáticamente, no puede menos que sospechar de que es este un resultado "buscado", que de alguna manera se ha seleccionado la física de nuestro mundo de manera que sea computable y de que esté libre de incongruencias e indeterminaciones: es decir; que todo resulta ser del modo en que debe ser para poder ser procesado de manera trascendente; y no sólo eso, sino que además todo parece estar dispuesto para favorecer que dicho cómputo (de ocurrir Realmente) sea eficiente y requiera de la menor cantidad de Recursos (fundamentalmente en mecánica cuántica). Sería muy curioso que todo fuese así por pura casualidad.

Ejemplo sobre lo propuesto.

No os asustéis con las matemáticas de este ejemplo, intentad quedaros con la idea:

Para un potencial esféricamente simétrico (como por ejemplo en el que se encuentra un electrón dentro de un átomo hidrogenoide), tenemos que la función de onda que especifica la probabilidad de encontrar un electrón en cierta región del espacio viene especificada en coordenadas esféricas por lo siguiente (se muestran sólo las fórmulas para las primeras combinaciones de números cuánticos n, l, y m) y simplificación usando la simbolización:


Tenemos que las expresiones que corresponden a las funciones de onda completas (incorporando tanto la parte angular como la parte radial) con la notación simbólica se acaba de dar son las siguientes para los primeros números cuánticos permitidos:


y la la probabilidad de encontrar un electrón dentro una capa esférica situada entre r y r+dr es igual a:

ψ*ψ4πr²dr

siendo 4πr²dr el volumen de la capa esférica en la cual ψ*ψ tiene el mismo valor constante.

¿Por qué son estas expresiones y no otras las que describen la densidad de probabilidad de encontrar un electrón en cierta región del espacio? Todo está construido de manera matemáticamente consistente, pero las propias matemáticas que describen el mundo cuántico no son las únicas matemáticas posibles. Estas funciones de onda son calculadas a partir del uso de unos polinomios llamados Polinomios de Legendre, los cuales la Naturaleza parece usar de algún modo pero que no son la única alternativa matemáticamente viable (existen funciones trigonométricas, por ejemplo; que podrían ofrecer una probabilidad matemática congruente alternativa pero que no lo hace). Es decir; que de algún modo la Naturaleza selecciona estos polinomios como las funciones ortogonales "predilectas" para determinar las densidades de probabilidad: ¿por qué ellos? 

Como vemos, existe una infinidad de alternativas congruentes y también completamente determinadas las cuales habrían dado como resultado otras "física" válidas y estables, y sin embargo, nos encontramos con una descripción muy determinada: ¿por qué nuestra física en lugar de cualquier otra? Ya vimos que la respuesta desde la ciencia a este tipo de preguntas se basa normalmente en la unión entre la hipótesis del multiverso y la propuesta del principio antrópico fuerte, pero no olvidemos el alto precio de apelar a este multiverso: nuestro mundo sería uno solo de entre una infinidad de Universos existentes y, les guste o no a los físicos, este supuesto multiverso en sí mismo requiere de una explicación.

Un nuevo problema de fino ajuste.

Pero resulta también que, si como venimos diciendo, nuestras leyes físicas en general siguen como parece ser el caso un patrón de eficiencia computacional dentro de una infinidad de alternativas no eficientes (o no computables) esto supone un nuevo problema de fino ajuste (similar al de las constantes físicas del Universo) pero el cual ya no puede ser salvado meramente con la simple propuesta del multiverso.

Es decir, que si pudiendo haber sido nuestra física totalmente diferente y aun así albergar vida inteligente (como por ejemplo en un mundo en donde la física clásica fuese válida también a nivel sub-atómico), resulta que nuestra física es precisamente una física computable, además de aparecer en la Naturaleza siempre bien comportada matemáticamente y que incluso parece de algún modo haber sido "Diseñada" para poder ser eficientemente procesada en un nivel trascendente, evidentemente todo esto nos permite preguntarnos por la casualidad que supone que de entre toda las físicas posibles (teóricamente infinitas) capaces de albergar vida como la nuestra, nos encontremos precisamente en una realidad (dentro del supuesto multiverso) tan finamente ajustada para poder ser eficientemente procesada y computada (cuando no necesariamente tendría que ser así).

¿Una hipótesis metafísica con posibilidad de refutación?

No tengo noticias de que se hayan hecho estudios serios sobre el asunto de si nuestras leyes físicas realmente son eficientes (o más eficientes) que la media de físicas imaginables, pero realmente creo que es un asunto interesante que investigar. Porque de confirmase; si realmente nuestra física resulta ser especialmente eficiente y capaz para poder ser computada, sólo nos quedarían dos alternativas:

1) O se trata de que nuestro mundo es eficientemente computable por casualidad. Es decir; que habiendo una infinidad de modos distintos en que una vida inteligente como la nuestra podría aparecer, resulta que estamos en un Universo con una física no sólo capaz de albergar vida inteligente sino que por puro azar también presenta unas propiedades que la hacen fácilmente computable y muy bien comportada matemáticamente.

2) O se trata de que el multiverso está plagado de  mundos eficientes y computables. Es decir; que no todas las físicas estarían permitidas dentro del multiverso, el cual se encontraría capado o limitado exclusivamente a albergar y "materializar" físicas eficientes y bien comportadas. En este caso, nuestro mundo ya no sería especial en este sentido y formaría de nuevo parte de la media de Universos posibles, gran parte de los cuales serían de esta manera eficientes de base, siendo las demás alternativas (no computables o difíciles de procesar) inviables para "realizarse" como "realidad" en el multiverso.

Analizando estas dos alternativas vemos que el primer caso es indudablemente posible pero muy improbable: si toda física imaginable es posible habría una infinidad de maneras distintas de construir "mundos", y eso supone que teóricamente también habría una infinidad de maneras en que podrían organizarse mundos con vida inteligente similar a la nuestra (un subconjunto infinito de mundos con vida dentro del conjunto infinito de mundos posibles, similar al subconjunto infinito de números pares dentro del conjunto infinito de números enteros), por lo que el hecho de que acabásemos en un mundo especialmente eficiente (fuera de la media) para su hipotético procesamiento trascendental era ínfima. Un fino ajuste aún mayor que el de la constantes cosmológicas pero que esta vez no puede ser sorteado sólo apelando a un multiverso sin más, sino que se requeriría aceptar el segundo punto que hemos visto antes: "que no todas las físicas estarían permitidas dentro del multiverso, el cual se encontraría capado o limitado exclusivamente a albergar y "materializar" físicas eficientes y bien comportadas".

Pero aunque la segunda alternativa soluciona el problema de la casualidad (se evita que nuestra física sea de alguna manera especial), añade un gran problema: ¿cómo se produce esta limitación o capado de mundos posibles (dentro del multiverso)? ¿Y por qué se produce tal acotación de modo que los "mundos" del multiverso sean en su mayoría matemáticamente bien comportados y eficientes a la hora de hipotéticamente ser computados de manera externa? Sólo se me ocurre una respuesta creíble: porque finalmente todo el multiverso es Realmente procesado externamente por algo similar a un computador trascendental.

Podemos decir en resumen que: 

El hecho de que se estudie empíricamente nuestro Universo y veamos que éste posee reglas y leyes que parecen finamente ajustadas para que un hipotético computador trascendental sea capaz de procesarlo, junto al hecho de que pueda hacerlo además de un modo mucho más eficiente de lo que la casualidad determina como probable (dentro de una infinidad de posibilidades), hace que nos encontremos ante otro problema de fino ajuste añadido a los anteriores (el fino ajuste de las constantes cosmológicas  y leyes físicas que permiten albergar vida); pero que sea este un fino ajuste que en esta ocasión no pueda ser resuelto simplemente postulando un multiverso, sino que nos fuerza a demandar un multiverso acotado o limitado de manera que sea la norma que sus mundos sean siempre matemáticamente computables y además eficientes a la hora de poder ser procesados de manera externa (para que de este modo nuestro mundo no sea especial). Finalmente, este filtrado o acotación conformaría un claro indicio de que todo el multiverso finalmente ES procesado por alguna especie de computador trascendental (ya que, ¿por qué buscar un ideal potencial de cómputo si no es para realmente llegar a computar?).

El Diseñador.

Ahora bien, ¿es viable esta propuesta trascendental donde un computador externo procesa el multiverso sin necesitar de un "diseñador inteligente" que determine qué hay qué hacer y cómo hay que hacerlo? Es más: ¿cómo se construyó si no este hipotético computador trascendental sin Alguien o Algo con la "inteligencia" suficiente como para idear y aplicar su "diseño"?

Porque si todo lo dicho hasta ahora tiene algún sentido; es decir, si finalmente se constata con estudios serios que nuestra física es de verdad especialmente eficiente para su procesamiento externo, estaríamos ante una clara evidencia que nos podría ayudar a creer que "ahí fuera" podría haber después de todo un Computador ejecutando nuestra realidad (junto a otros tantos millones de alternativas en un multiverso). Y ese "ahí fuera" y ese Computador serían a su vez claros indicios de que finalmente podría haber después de todo un Diseñador inteligente; uno muy distinto del señor barbudo de las religiones predominantes en la actualidad, pero diseñador a fin de cuentas.

Quizás ese hipotético Computador que nos da forma no sea muy distinto de esos que la humanidad ya ha construido (o de los que podrá construir de aquí a un par de siglos), y quizás ese Diseñador no sea muy distinto del ingeniero del relato de la primera parte de este artículo, el cual simplemente programaba un encargo de su jefe. Es posible que, llegada la inteligencia y la razón a un "mundo", sea sólo cuestión de tiempo que se acaben construyendo máquinas y equipos capaces de simular a su vez nuevas realidades programadas en él. Es muy curioso que si este fuera el caso, finalmente nuestro mundo y la propia humanidad podrían ser simples eslabones dentro de una encadenación de simulaciones dentro de simulaciones.

La intención detrás del Diseño.

Si como venimos defendiendo pudiese después de todo haber un Diseñador inteligente, la siguiente pregunta obligada es interrogarse por la intención tras ese Diseño suyo.

La hipótesis del multiverso computado es en este sentido una hipótesis muy abierta en el sentido de que como hemos visto permite incluso la encadenación de simulaciones (multiversos computados dentro de otros multiversos), por lo que la intención para cada simulación sería así variable: algunas "civilizaciones" crearían sus "realidades virtuales" por pura diversión, otras con fines científicos, otras por curiosidad, otras por sentirse poderosas ante su creación, otras incluso con fines místicos, otras por cualquier otra necesidad, etc. El abanico en este sentido es ilimitado, pero me gustaría enfatizar mucho una posibilidad (entre tantas): que el acto de Creación (virtual) sea promovido con el único fin de saciar algún tipo de necesidad Sádica o de Crueldad trascendental:

Porque sería simpático (léase la ironía), que después de todo vivamos en un mundo "diseñado" simplemente por y para generar sufrimiento y el dolor. Una especie de "infierno" salido de la "mente" de algún Ente trascendente cuya única necesidad sea saciar alguna perversa necesidad con semejante espectáculo (espectáculo del que seríamos parte activa).

Y es que ya se lo preguntaba Richard Dawkins: "Si sólo hay un Creador que hizo al tigre y al cordero, al guepardo y a la gacela, ¿a qué está jugando? ¿Es un sádico que disfruta siendo espectador de deportes sangrientos?". Pues quién sabe, igual después de todo es sencillamente así, querido Dawkins.

Resumen final.

He intentado dar en esta entrada mi visión particular (mi creencia a día de hoy) sobre cómo podría ser la Realidad trascendental que daría soporte a nuestro Universo. Puede que el artículo me haya quedado un poco denso en cuanto a contenido, y puede que se necesiten algunos conocimientos previos quizás un poco particulares, pero tengo la esperanza de que al menos la idea principal se haya entendido bien: si resulta que nuestra física es especialmente computable y además  especialmente eficiente para poder ser procesada externamente, probablemente sea porque realmente es computada y procesada de manera trascendental; en cuyo caso haría falta alguna especie de Diseñador inteligente que diese forma primero a ese Computador, y que determinase luego cómo pueden y cómo no pueden ser las "físicas" admisibles y "materializables" en Él. Dicho Diseñador además, tendrá posiblemente alguna intención a la hora de Crear esos "mundos virtuales", abarcando esa voluntad un ilimitado número de posibilidades, pero siendo quizás destacable el hecho de que caben dentro de dichas posibilidades opciones en las que nuestro mundo (el multiverso del que forma parte) haya sido creado para saciar algún tipo de Necesidad sádica o perversa, lo cual por otra parte correlaciones bastante bien con la realidad empírica que nos rodea; donde el dolor, el sufrimiento y la lucha son la norma.

No cabe duda de que hay todavía muchos cabos sueltos que atar (principalmente estudiar de manera seria si nuestro mundo es o no especial en cuanto a su computabilidad y eficiencia de procesado), pero este humilde artículo, o mejor dicho, su autor, no da más de momento de sí ;). Sí creo, no obstante, que al menos he dado ciertos argumentos en favor de toda mi propuesta, y que como poco he podido abrir un interesante debate: nada menos que proponer una manera de obtener algún indicio (por indirecto que sea) de nuestra supuesta realidad trascendente.

Huelga decir que no soy el único ni el primero al que se le han ocurrido cosas similares a las comentadas aquí (aunque creo que sí soy de los pocos en aplicar a la idea de la Realidad simulada un marco de computación evolutiva, y también en correlacionar y estudiar si una especial eficiencia computacional de nuestra física podría significar una evidencia en favor de la hipótesis de la simulación).

Para aquellos que queráis indagar un poco más por vuestra cuenta en estos temas os recomiendo estas dos páginas web: http://people.idsia.ch/~juergen/computeruniverse.html y https://slashdot.org/story/03/05/31/2224253/the-computational-requirements-for-the-matrix


A mí personalmente me interesa mucho esta línea de investigación, y prometo hacer lo que esté en mi mano (que, por desgracia, no creo que sea mucho más :P) por avanzar algo más en su desarrollo y progreso.

Comentaros por último que espero que, aunque no os la creáis, al menos os haya interesado toda esta cosmovisión que con tanto esfuerzo os he querido transmitir :). Recordad que, pese a quién le pese, alguna metafísica finalmente debe ser la Verdadera (aunque sea la metafísica que afirma que no hay nada trascendente), y yo, personalmente, veo a la Realidad simulada como una muy buena candidata a ser la Elegida. Y si finalmente como digo es la Elegida (la esencia que nos sustenta), no me cabe duda de que, viendo lo cruel y absurdo que es el mundo que nos rodea, ese "Alguien" o ese "Algo" que ha, como diría Emil Cioran, "organizado el caos" del multiverso, podría estar "ahí fuera" estudiándonos y riéndose de nuestros miserables, inútiles e insulsos quehaceres diarios.

Un abrazo.

Principales referencias recomendadas.

- Una breve introducción al concepto de Realidad simulada: https://es.wikipedia.org/wiki/Realidad_simulada.

- El gran diseño (en inglés The Grand Design): libro de divulgación científica escrito por los físicos Stephen Hawking y Leonard Mlodinow (https://es.wikipedia.org/wiki/El_gran_dise%C3%B1o ). De este libro es de especial interés respecto a lo tratado en este trabajo su último capítulo.

La Realidad Oculta: Universos Paralelos y las Profundas Leyes del Cosmos: libro de divulgación científica escrito por el físico Brian Greene y publicado en 2011. En él se examina el concepto de multiverso y la posibilidad de la existencia de universos paralelos. Fue nominado al Premio Aventis durante el año 2012 (https://es.wikipedia.org/wiki/La_realidad_oculta). De este libro, es de especial interés con lo tratado en este artículo los últimos dos capítulos del mismo.

- La Mecánica Cuántica (trabajo de Armando Martínez Téllez): imprescindible libro en formato web gratuito donde se trata en profundidad pero con claridad todo lo referente a la física cuántica (http://la-mecanica-cuantica.blogspot.com.es/). Este maravilloso trabajo es ideal estudiarlo a fondo (yo voy por mi segunda lectura), pero especialmente he utilizado en esta entrada el capítulo 59: "La función de onda radial" (http://la-mecanica-cuantica.blogspot.com.es/2009/08/la-funcion-de-onda-radial.html).

- Dos artículos de este mismo blog donde se explica qué es la computación evolutiva y se muestra un ejemplo práctico de aplicación de la computación evolutiva.

- Otros dos trabajos propios (con código fuente incluido) donde se explica con más detalle el concepto de procesar "físicas" virtuales mediante computación evolutiva: Ejemplo I de programación evolutiva aplicada a un sistema Lennard-Jones, Ejemplo II, Ejemplo III.

http://people.idsia.ch/~juergen/computeruniverse.html y https://slashdot.org/story/03/05/31/2224253/the-computational-requirements-for-the-matrix (Dos webs muy interesantes que tratan el tema de la Realidad simulada).