En esta clase vamos a ver cómo la probabilidad algorítmica puede echar luz en algunos aspectos de la evolución biológica y cómo los resultados numéricos del caso natural se pueden traducir a métodos de optimización para evolución artificial con técnicas como algoritmos genéticos y evolutivos. En el centro de la teoría de evolución biológica moderna está la idea de que la evolución es gradual y se explica por cambios genéticos pequeños en poblaciones grandes a lo largo del tiempo. Se cree que la variación genética sucede al azar, por mutación, con pequeños cambios que han ocasionado cambios evolutivos a gran escala a lo largo del tiempo cuando esos cambios otorgan alguna ventaja evolutiva. Es común que en la búsqueda de posibles vínculos entre la teoría de evolución biológica y la teoría de la información, aparezca el lugar y el rol que el azar juega en el proceso que crea la variedad necesaria para que los organismos cambien y se adapten. La selección natural explica cómo la vida evolucionó a lo largo de millones de años a partir de formas más primitivas. Sin embargo, la velocidad con la que esto sucede ha desafiado las explicaciones formales cuando se basan en mutaciones al azar y distribuidas uniformemente. Por ejemplo, el argumento creacionista es que no hay forma alguna de obtener el nivel de diseño de un organismo mediante la acumulación de modificaciones aleatorias. Pero si se considera que las mutaciones son perturbaciones del ambiente, entonces es claro que pueden no estar distribuidas aleatoriamente y no ser completamente azarosas. Así que no todas las mutaciones serían igualmente probables. De hecho, esto ya se conoce en biología. No todos los segmentos de ADN o regiones del genoma tienen la misma tasa de mutación. Incluso en la vida de una persona, las tasas de mutación son muy distintas. Así que el explorar distribuciones de mutaciones diferentes a las distribuciones uniformes no debería de ser una sorpresa. No es difícil ver cómo la interacción entre organismos es un tipo de proceso que puede estar relacionado con la distribución universal si se piensa que el ADN vive en el espacio de software con las mutaciones como perturbaciones algorítmicas, algo sugerido previamente por gente como el mismo Gregory Chaitin y su metabiología y también por Stephen Wolfram. ¿Y si asumimos que las mutaciones no están uniformemente distribuidas sino que se distribuyen con un fuerte sesgo de simplicidad algorítmica si el ADN está en este espacio de software? ¿Qué pasaría si estudiamos la evolución desde ese punto de vista? Aquí te muestro cómo hicimos un experimento con un método en el que introdujimos la distribución universal en la forma en la que las mutaciones cambian el software, como el ADN. Antes de aplicar una mutación, simulamos todas las mutaciones puntuales posibles y encontramos cuál era la más simple de acuerdo a la probabilidad algorítmica, medida como BDM, y esa fue la mutación que mantuvimos para la siguiente generación. Por supuesto que en la realidad, las mutaciones naturales no se aplican así, pero dado que las mutaciones no provienen de una distribución uniforme, provendrían de algo relacionado con la distribución universal, así que no tienen que ser simuladas y probadas de antemano. Son favorecidas naturalmente. Los resultados en ejemplos sintéticos y biológicos en escala pequeña indican una tasa acelerada de convergencia, convergencia evolutiva, cuando las mutaciones no son estadísticamente uniformes sino algorítmicamente uniformes, es decir, mutaciones distribuidas de acuerdo a la distribución universal. También mostramos que las distribuciones algorítmicas pueden evolucionar modularidad y memoria genética porque algunas estructuras de baja complejidad son preservadas y transmitidas a lo largo del tiempo, creando grupos con menor aleatoriedad, lo que a veces ocasiona una producción acelerada de diversidad, pero también a extinciones poblacionales puesto que, al seguir la distribución universal, los módulos de baja complejidad son incapaces de adaptarse suficientemente rápido, lo que podría explicar fenómenos que han ocurrido naturalmente, como las explosiones de diversidad del periodo Cámbrico, por ejemplo. También las extinciones masivas, como las del final del Triásico, cuyos orígenes siguen siendo una causa de debate. Aquí hay un ejemplo de este fenómeno de aceleramiento con mutaciones que siguen la distribución universal cuando evolucionamos una gráfica que está persiguiendo a una gráfica no azarosa creciente como la gráfica ZK que vimos en la unidad previa y en algunas previas, pero también hay estructuras simples como los árboles K-arios y las estrellas. La introducción de un sesgo de simplicidad se traduce en una convergencia evolutiva más rápida. Así que las gráficas requieren muchos menos pasos para alcanzar esas gráficas cuando se aplica una mutación algorítmica que cuando se aplican mutaciones distribuidas uniformemente. Además, la introducción de este sesgo se traduce en la capacidad de encontrar rutas evolutivas diferentes con diferentes pesos entre genes, que resulta estar comúnmente asociado a cáncer en una red biológica bien conocida. Esto sucede porque no todas las rutas evolutivas tienen el mismo peso o la misma probabilidad. Algunas serán más probables de acuerdo a las mutaciones con distribución universal que otras. Así que el enfoque natural que introdujimos parece ser una mejor aproximación a lo que observamos en la evolución biológica que los modelos que se basan sólo en mutaciones uniformes aleatorias, por varias razones. También es natural porque se sabe que esas mutaciones aleatorias no son completamente azarosas, sino que el efecto de diferentes causas, que, si se piensan en la nueva forma algorítimica, entonces deben de seguir la probabilidad algorítmica y estar relacionadas con la distribución universal. Los resultados también validan las sugerencias que dicen que el cálculo es un motor de la evolución de igual importancia. También mostramos que induciendo el método y los problemas de optimización, tales como los algoritmos genéticos, nuestro enfoque tiene el potencial de acelerar la convergencia en los algoritmos de evolución artificial. Finalmente, para probar que estos resultados se pueden trasladar de vuelta a la forma en la que resolvemos problemas algorítmicamente, probamos si podíamos acelerar la programación evolutiva en ejemplos específicos usando, por ejemplo, un algoritmo genético, usando las mismas ideas, es decir, sacando mutaciones de una distribución universal en lugar de una uniforme. Lo que encontramos es que, en experimentos clásicos de referencia, los resultados de convergencia usando algoritmos genéticos se aceleraron significativamente, por ende reforzando lo que creemos que también subyace a la naturaleza misma, que no obtiene mutaciones de distribuciones uniformes. El concepto detrás de esto es que si intentas aproximar algo que está lejos de ser aleatorio, cosa que pasa con los organismos y sus ambientes, entonces las mutaciones sesgadas hacia la simplicidad algorítmica te dará una ventaja. Y es muy probable que este mecanismo esté operando por causas algorítmicas naturales en la forma en las que la evolución dirige la creatividad biológica. Nuestros resultados también proveen un esquema formal y una versión de evolución ilimitada basada en estas ideas. La evolución ilimitada es la idea de que la evolución no termina y no tiene objetivo, así que sigue cambiando a lo largo del tiempo conforme va siendo necesario. Aquí hay bibliografía del tema que ha hecho nuestro grupo. Estoy seguro de que nunca hubieras imaginado cómo, por ejemplo, uno de los números más grandes conocidos estaría conectado de alguna manera a la evolución biológica, pero esto es sólo una probadita de cómo hemos conectado estas ideas aparentemente desconectadas en una teoría muy bonita y elegante. En la siguiente unidad veremos una aplicación de profundidad lógica en otro problema, en este caso, clasificación de imágenes.