TARDÍGRADOS

Ciencia en español

Archive for the ‘informática’ Category

Cómo romper los códigos criptográficos RSA: factorizacion de semiprimos y las raices rectangulares

Posted by Albert Zotkin en noviembre 18, 2016

riemann-estela
En la actualidad, usamos algunas de las propiedades de los números primos para codificar mensajes, de modo que ningún intruso pueda leer fácilmente nuestras comunicaciones. Para ello usamos la propiedad siguiente de los número semiprimos: Elegimos dos números primos suficientemente grandes, y obtenemos el semiprimo multiplicándolos. El número semiprimo será parte de la llave pública para nuestro método de encriptación, y con los dos números primos se construyen las llaves privadas. Dado un semiprimo suficientemente grande, es prácticamente imposible hallar en tiempo razonablemente corto, sus dos factores primos. Eso es incluso casi intratable usando supercomputadores. esta dificultad se llama Problema RSA.
Si estás interesado en desencriptar los códigos que protegen el acceso a tarjetas de crédito bancarias o a páginas web seguras, quizás estés interesado en participar en esta clase de Competición de factorización RSA. Veamos un semiprimo catalogado por la RSA y que tiene un premio de 100.000 dólares para quien halle sus dos factores primos. Este semiprimo es el RSA₁₀₂₄, es decir, posee 1024 cifras binarias (309 cifras decimales):

\displaystyle \text{RSA}_{1024} = \\ 13506641086599522334960321627880596993888147560566702752448514385152651060 \\ 48595338339402871505719094417982072821644715513736804197039641917430464965 \\ 89274256239341020864383202110372958725762358509643110564073501508187510676 \\ 59462920556368552947521350085287941637732853390610975054433499981115005697 \\ 7236890927563
Si queremos factorizar con éxito un número semiprimo de la RSA, lo primero que debemos hacer es estimar lo grande que serán sus dos factores primos. Así, para ese RSA₁₀₂₄, los dos factores primos estarán muy cerca relativamente de su raíz cuadrada, es decir, números primos cercanos a las 154 cifras decimales, o lo que es lo mismo, números primos de entre 100 y 200 cifras decimales. Por ejemplo, si uno de los primos resulta tener 120 cifras decimales, el otro estaría muy próximo a las 188. Pero, veamos, ¿cuántos números primos hay que tengan entre 100 y 200 cifras decimables?. Usemos la función contador de números primos, π(x), aproximémosla a x/log(x), porque según Gauss, esa es una buena aproximación para un x suficientemente grande. Así los números primos que tienen entre 100 y 200 cifras decimales son aproximadamente :

\displaystyle 2.17 \times 10^{197}
Supongamos que disponemos del superordenador más potente del mundo, el reciente Sunway TaihuLight, capaz de operar a máximo rendimiento, que es de 125.43 petaFLOPS. Conseguiría resolver el número RSA₁₀₂₄ 1 petaFlop es 1 opración de coma flotando por cada femtosegundo. 10¹⁵ femtosegundos son 1 segundo. En total tardaríamos un maximo de :

\displaystyle 2.17 \times 10^{197} \times 10^{-15} = 2.17 \times 10^{182} \; \text{segundos,}
un tiempo demasiado largo como para tener alguna esperanza de llegar en vida hasta el final del cálculo y verlo con nuestros propios ojos 😛

Veamos ahora qué es una raíz rectangular. Cuando calculamos una raíz cuadrada en realidad estamos calculando dos números, pero como ambos son iguales, no nos damos cuenta que en realidad es un par de números. Por ejemplo, la raices cuadradas de 64 son el par (8, 8):

\displaystyle \sqrt{64}=(8,8)
Podemos calcular para 64 su raices rectangulares, ya que si nos fijamos 64 puede escribirse como 2 elevado a diferentes exponentes, es decir:

\displaystyle 64 = 2^6 = 2^3 \times 2^3 =  2^2 \times 2^4 = 2^1 \times 2^5
Es decir, el número 64 posee dos pares de raíces rectangulares y un par de raíces cuadradas:

\displaystyle 64 = (8,8) = (4,16) = (2,32)
Así, para entendernos, pondremos el par de exponentes de las raices rectangulares entre corchetes, de modo que siempre tendremos la equivalencia:

\displaystyle 1 = \left[\frac{3}{6}, \frac{3}{6}\right] = \left[\frac{2}{6}, \frac{4}{6}\right] = \left[\frac{1}{6}, \frac{5}{6}\right]
Con esto, lo único que estamos haciendo es dividir la unidad en dos partes, de modo que su suma sea esa misma unidad. ¿Por qué el número 64 posee esas raices rectangulare y no otras?. En realidad posee muchas más, pero las que he escrito arriba son las que dan raices enteras. Veamos estos casos:

\displaystyle 64 = 64^{\tfrac{1}{4}}\times 64^{\tfrac{3}{4}}= (2\sqrt{2}) (16\sqrt{2}) \\  64 = 64^{\tfrac{1}{5}}\times 64^{\tfrac{4}{5}}= (2\sqrt[5]{2}) (16\sqrt[5]{2^4}) \\
en general, para cualquier par de número enteros m y n, que sean coprimos,tendremos las raices rectangulares de un número N:

\displaystyle N= N^{\tfrac{m}{n}}\times N^{1-\tfrac{m}{n}}
Veamos ahora cómo aplicamos esto a la factorizaación de números RSA: sean los números primos p = 486023 y q = 598727, por lo que su producto es N = 290995092721. Empezaremos nuestros cálculos con su raíz cuadrada:

\displaystyle \sqrt{N}=539439.60989252541168458987732327730802813682656081\ldots
Igualmente sabemos que ha de ser:

\displaystyle p= N^{\tfrac{m}{n}} \\  q= N^{1-\tfrac{m}{n}}

y puesto que sabemos los valores de p y q, es fácil resolver m y n:

\displaystyle \frac{m}{n}=\frac{\log p}{\log(pq)} \\ \\ \\  1-\frac{m}{n}=1-\frac{\log p}{\log(pq)}=\frac{\log q}{\log(N)}
Por otro lado, si pensamos un poquito, nos daremos cuenta de que factorizar un número RSA no es muy difícil en principio, la dificultad reside en que los números primos, p y q, que forman el semiprimo N, sean muy grandes. Así, es incluso posible presentar una ecuación matemática con la que podemos resolver cualquier número RSA, y es esta:

\displaystyle \mathrm{mcd} (N, \lfloor\sqrt{N}\rfloor !)=\min (p,q) (1)
Aquí N es producto de los dos primos p y q, mcd es el máximo común divisor de dos números, \lfloor\ r\rfloor ! es el factorial de la parte entera del número real r. Podemos incluso optimizar un poco esa ecuación (1) si usamos el primorial en lugar del factorial,

\displaystyle \mathrm{mcd} (N, \lfloor\sqrt{N}\rfloor \#)=\min (p,q) (2)
Si N ya es en principio un número muy grande (más de 1024 digitos binarios), el factorial (o el primorial) de la parte entera de su raíz cuadrada será incluso más grande aún, prácticamente intratable. De ahí que las fórmulas (1) y (2) aunque sean correctas, no son muy útiles para el cálculo. En realidad, para calcular un mcd de dos números primero hay que factorizar esos dos números. Es evidente que factorizar N es más fácil que factorizar el primorial de la parte entera de su raíz cuadrada.

Anuncios

Posted in informática, Matemáticas | Etiquetado: , , , , , , , , , , , , , , , , , , , | Leave a Comment »

En el cálculo estocástico de las órbitas gravitatorias en el problema de los dos cuerpos, las ondas gravitacionales no existen

Posted by Albert Zotkin en julio 11, 2016

Hola amigo de Tardígrados. Hoy vamos a calcular, de diversas formas, las órbitas de dos cuerpos que gravitan el uno alrededor del otro. En realidad, dos cuerpos de masas m₁ y m₂, gravitan alrededor de un centro común, llamado baricentro (o centro de masas). Si los vectores de posición son r₁ y r₂, el baricentro será el apuntado por el vector:

\displaystyle R =\frac{m_1r_1+m_2r_2}{m_1+m_2}

Voy a programar una simulación (una animación en Flash) escribiendo unas pocas lineas de código en actionscript, en la cual veremos el movimiento orbital de esos dos cuerpos. Para ello, yo usaré el software Flash CS4 de Adobe (Abode Flash Profesional). La intención de diseñar esta pequeña simulación no es sólo ver la evolución gravitatoria del problema de los dos cuerpos, sino de ver cómo las órbitas decaen en dicha simulación debido a algo insólito: la perdida de información computacional. Esto significa que las órbitas de los dos cuerpos pierden poco a poco energía gravitacional, pero esa pérdida no se disipa en forma de ondas gravitacionales, sino que simplemente se expresa en ese decaimiento orbital hasta que los dos cuerpos solisionan.

Pero, empecemos ya a programar nuestra pequeña simulación de los dos cuerpos orbitales: abrimos nuestro programa de Adobe Flash CS4,

1. Creamos una animación en la versión de flashfile (actionscript 2.0).
2. Creamos tres videoclips, dos para cada uno de los dos cuerpos orbitales, y un tercero para el centro de masas. A los videoclips de los cuerpos los llamaremos a1 y a2, y al del centro de masas, cm. Los videoclips a1 y a2 serán dos circulos de distinto color y de pocos pixels de radio. Y el videoclip cm poseerá un radio mínimo, el suficiente para ser visto como un punto destacado sobre el fondo de la animación. Cada videoclip en una animación Flash posee una serie de propiedades, y una de esas propiedades son sus coordenadas espaciales bidimensionales, (_x, _y), dentro del plano de la animación. Por ejemplo, el videloclip correspondiente al primer cuerpo cuya masa es m₁, que hemos llamado a1, posee, en la animación que he hecho yo, las siguientes coordenadas espaciales iniciales: a1._x = 160, a1._y = 185. En el sistema de referencia bidimensional usado en Flash, el origen de coordenadas está en la esquina superior izquierda del plano general, y los valores positivos para la abscisa _x corren hacia la derecha, mientras que los valores positivos de la ordenada _y corren hacia abajo. La unidades de medidas de las distancias se expresan en pixels.

Escribamos ahora todo el código de actionscript para nuestra animación. En primer lugar, escribiremos el código para cada uno de los videoclips cuando se cargan al inicio. Para el viceoclip a1 tendremos las siguientes condiciones iniciales:

load.a1

puesto que hemos definido propiedades como la masa y la densidad para ese cuerpo, dibujaremos el circulo que representa a dicho cuerpo a escala, según el valor relativo de esos paramétros. Así, como escribo en el código de arriba, su anchura a escala, _width (que es de igual valor que su altura, _height), la calculo así:

\displaystyle \mathrm{\_width}=20\sqrt[3]{\frac{4\pi \times \mathrm{mass}}{\mathrm{ density}}}
Igualmente, para el videoclip a2 tendremos el código inicial de carga siguiente:

load.a2

Observamos también, en estos códigos de carga de las condiciones iniciales, que está definida la velocidad inicial para cada cuerpo. Como aún no hemos escrito el código para la interacción gravitatoria, esas velocidades iniciales no serían modificadas, y por lo tanto los dos cuerpos permanecerian en movimiento inercial, rectilíneo uniforme. Cabe reseñar también dos cosas más. Primero, que he introducido unas variables, rx, ry, que uso para guardar los últimos valores de las coordenadas espaciales. Segundo, que la velocidad de cada cuerpo al ser una magnitud vectorial, la he separado en sus dos componentes ortogonales en el sistema de referencia. Así, por ejemplo, para este último videoclip a2, las componentes de su velocidad son speed.x = -1, speed.y = 0, y eso quiere decir que ese cuerpo se movería inicialmente e inercialmente hacia la izquierda, mientras que su componente en el eje vertical, al ser 0, indica que no se movería inercialmente por dicho eje.

Escribamos seguidamente el código de las condiciones iniciales de carga para el videoclip cm, que representa el centro de masas de los dos cuerpos anteriores:

cm

Aquí en este código, vemos cómo hemos escrito las coordenadas del centro de masas de los dos cuerpos. Ahora nos falta la rutina principal de la animación en la que escribiremos las ecuaciones para la interacción gravitatioria de esos dos cuerpos. Puesto que es evidente que estamos usando formalismos de gravitación clásica Newtoniana, hay que decir el movimiento inercial de esos dos cuerpos se rompe cuando interactuan gravitacionalmente, y eso significa que cada uno sentirá una aceleración cuyo valor será directamente proporcional a la masa del otro cuerpo e inversamente proporcional al cuadrado de su distancia. Es decir, la aceleración gravitatoria que siente el cuerpo a1 debido a la presencia del cuerpo a2 será:

\displaystyle a_{12}= \frac{G m_2}{r^2}

y recíprocamente la aceleración que siente a2 será:

\displaystyle a_{21}= \frac{G m_1}{r^2}
Por lo tanto, ya estamos en condiciones de escribir el código de la rutina principal para la interacción gravitatoria:

update3

Esta rutína (función) la he llamado update3, y posee un único argumento de entrada, el argumento m, que es una referencia a un videoclip, ya sea el a1 o el a2. Esta función devuelve (return) el valor de la variable r, es decir, la distancia actual entre ambos cuerpos. Vemos que la tarea principal de esta rutina es el cálculo de la aceleración del campo gravitatorio, como ya he especificado arriba en a₁₂ y en a₂₁. Una vez que se ha calculado esa aceleración, la descomponemos en sus componentes ortogonales según los dos ejes del sistema de referencia, y convenientemente escaladas, las restamos a las componentes de la velocidad. ¿Por qué hay que restar la aceleración a una velocidad?. Es decir, ¿por qué realizo los cálculos m.speed.x -= accel_x, m.speed.y-=accel_y?. Pues simplemente, se ha de realizar esa resta porque una aceleración no es más que un incremento o decremento de una velocidad por unidad de tiempo. En otras palabras, la aceleración no es más que la primera derivada de una velocidad respecto al tiempo. Después, en el código de esa rutina, igualmente resto la componente de la velocidad de la componente espacial, y se hace por la misma razón. Una velocidad no es más que un incremento o decremento de una distancia por unidad de tiempo, es decir, es la primera derivada del espacio respecto al tiempo. Con esta última substracción ya hemos actualizado las coordenadas espaciales de cada cuerpo según la interacción gravitatoria, aplicada a su movimiento inercial. Este cálculo con la función update3 se ha de hacer en cada uno de los frames (fotogramas) de la animación. En la que yo he realizado, el número de fotogramas por segundo (fps) lo he puesto a 100, y eso quiere decir que cada centésima de segundo hay que actualizar y calcular y dibujar todo para presentar la animación en tiempo real al espectador. Así, la rutina en actionscript para cuando el cursor de la animación pase por cada frame, será la siguiente:

enterframe

donde en la ultima línea de código controlo la posible colisión de los dos cuerpos, parando la animación cuando la distancia r sea menor que los tamaños relativos de cada círculo. El control de colisiones de videoclips en Flash tambíen se puede hacer con una función predefinida que se llama hitTest, pero yo he preferido definir mi propia función de colisión. Pero, aquí está el meollo de toda esta animación del problema de los dos cuerpos. Se supone que las órbitas de los dos cuerpos, que siguen la Ley de la Gravitación Universal de Newton, deberían ser estables, y por lo tanto deberían seguir trayectorias elípticas o circulares si no hay otras fuerzas externas que las perturben. Pero, lo sorprendente de esta pequeña animación que he realizado es que al ver como evolucionan esas órbitas observamos que poco a poco los dos cuerpos se van aproximando el uno hacia el otro hasta que acaban colisionando. ¿por qué ocurre eso?. La clave está en los incrementos (aceleraciones) que he substraido a las velocidades y de los incrementos substraidos (velocidades) a las coordenadas espaciales. Para que las órbitas fueran exactamente estables, sin que decayeran poco a poco, los incrementos a substraer deberían ser infinitesimales, es decir, unas cantidades muy próximas a cero. Pero, entonces deberíamos aumentar el número de frames por segundo hasta valores que no serían computables.

En la animación que yo he realizado hay algunos parámetros auxiliare más, que no he especifico, porque no tienen mucha importancia. Ahora solo resta hacer una captura de pantalla de la animación y convertirla en un gif animado, ya que WordPress ya no admite archivos Flash de extension swf:

tbp

Observamos con estupor que lo que la ciencia actual llama ondas gravitacionales, emitidas por pulsares binarios que son observados decayendo orbitalmente, es simple y llanamente una pérdida de información cuántica. El problema es que la mecánica cuántica no admite que los sistemas puedan perder información de forma irrecuperable, pero en esta pequeña animación Flash vemos cómo eso es posible en un universo cuya evolución es calculada en cada micro-estado y en intervalos infinitesimales de tiempo que quizás coincidan con tiempos de Planck. La conclusión más dramática que hemos de hacer de todo esto es que las ondas gravitacionales no existen en nuestro universo, y por lo tanto que el supuesto observatorio LIGO (advanced LIGO) nos la está metiendo doblada al afirmar que han descubierto evidencias directas de dichas ondas. Sólo una mente ingenua y simple podría creerse semejante patraña. Cualquier persona con una inteligencia mediana podría comprobar por si misma cómo ese supuesto observatorio no puede detectar movimientos vibratorios de amplitudes tan ínfimas como la milésima parte del radio de un protón. ¿Dónde está el Principio de Incertidumbre que es pieza central de la Mecánica Cuántica, y que la Relatividad General parece querer ignorarlo propugnando un espacio-tiempo infinitamente continuo?. Incluso si no fuera un fraude tan brutal ese que nos quiere meter LIGO, tampoco sería una prueba directa de la existencia de esas ondas gravitacionales, por la sencilla razón de que no existe ningún otro medio independiente de saber que esas supuestas ondas vienen de donde dicen ellos que vienen, y producidas por la causa que ellos dicen que son producidas. El único argumento que usan para afirmar tan rotundamente que esas ondas son reales es que coinciden en forma con las de los libros de texto de la Relatividad General. Si existieran otros medios de comprobar esos supuestos hallazgos, como por ejemplo señales luminosas observables con telescopios ópticos o señales radioeléctricas observables con radiotelescopios, de las supuestas fuentes cósmicas generadoras, entonces y sólo entonces podríamos empezar a creer en ellos. Pero mientras sigan diciéndonos los “listillos” de LIGO que esas ondas proceden de la colisión de dos agujeros negros, estarán intentando metérnosla doblada. Cuando digan que han observado la colisión de un pulsar binario, y a LIGO ha llegado la perturbación gravitacional y a los distintos telescopios ópticos el destello luminoso de esa colisión, entonces y sólo entonces, los que no somos idiotas del todo, empezaremos a creer en la existencia de ondas gravitaciuonales. Mientras tanto, hay que conformarse con mirar con estupor a este universo computacional y observar boquiabiertos que no sólo la interacción gravitatoria está sujeta a perdidas de información cuántica, sino todas las demás. Y todo esto nos indica que es muy probable que nuestro universo es simplemente una gigantesca simulación fractal que está siendo ejecutada en un superordenador cuántico. Que nuestro universo sea una gigantesca simulación no significa que no te duela tu dolor de muelas. En realidad ocurriría que todo en este universo simulado seria real para nosotros, pero sólo sería virtual para los hipotéticos espectadores externos a nuestro universo que contemplan esa simulación.

Saludos

.

Posted in Astrofísica, Cosmología, curiosidades y analogías, Física de partículas, Fractales, Gravedad Cuántica, informática, Matemáticas, Mecánica Cuántica, Relatividad | Etiquetado: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a Comment »

¿Es posible comprimir 4 terabytes de datos en tan sólo 16 bytes?

Posted by Albert Zotkin en mayo 12, 2016

La respuesta a la pregunta del título es sí. Hola amigos de Tardígrados. Hoy voy a hablar de un método poco estándar de comprimir información binaria sin perdida. Este método es simplemente una curiosidad que se me ocurrió el otro día. Lo llamaré Compresión Estocástica de Datos Binarios, CEDaBit.

Supongamos que tenemos el siguiente archivo jpg de la Mona Lisa:

Mona_Lisa

que es una imagen de 560 pixels de ancho por 864 de alto. Es decir, sin comprimir, en total tenemos 483.840 pixels, y si cada pixel se puede describir por 3 bytes, tendremos en total una imagen de 1.451.520 bytes, y como cada byte consiste en 8 bits, tendremos una imagen de 11.612.160 bits. Pero esa imagen está codificada y comprimida en un archivo JPG, por lo tanto no son raw data (datos primarios), el tamaño es mucho menor. En dicho archivo existen también datos de cabecera y cola en los que se almacena más información. Si queremos “comprimir” en un CEDaBit todo el archivo JPG, debemos “comprimir” una cadena de 46.474 bytes. ¿Cömo lo haremos?.

Supongamos que queremos comprimir a un CEDaBit de 16 bytes. Para ello, lo primero que tenemos que hacer es calcular un hash de esos datos. Yo usaré un hash muy conocido llamado MD5, y para calcular dicho hash usaré una página online que posea una herramienta de cálculo, por ejemplo esta: Online MD5.

Subo el archivo a dicha página, y me calcula el siguiente hash para dicho archivo: 9E00544CEE3B677CA2E826980D9CF02A. Es decir, me da una cadena de 16 bytes, que es su MD5, es como la huella característica de ese archivo en concreto. Cada archivo de datos binarios posee un hash que casi es único, digo casi porque en realidad conjuntos de datos muy distintos pueden poseer el mismo hash, y a eso se le llama colisión. Pero, es muy probable que para ese archivo de ese tamaño que he usado no existan muchas colisiones de su hash MD5. Existen miles de páginas en internet y aplicaciones que calculan todo tipo de hashes para cadenas de bytes, pero no encontrarás ninguna que haga la tarea inversa. Es decir, calcular una cadena de bytes desde su hash no es trivial. De hecho, existen infinitas cadenas que resultarían de un mismo hash. ¿Cómo podemos saber cual es nuestro archivo al expandir un hash en una determinada cadena de bytes?. Tenemos que saber por otros medios cual es el tamaño del archivo que queremos recuperar. Por ejemplo el archivo jpg de la Mona Lisa de arriba sabemos que posee 46.474 bytes, ni uno más ni uno menos. Por lo tanto, tenemos 371792 bits, es decir, tenemos un número binario de 371792 bits. Así pues para recuperar nuestra Mona Lisa desde su Hash 9E00544CEE3B677CA2E826980D9CF02A, sólo tenemos que ir variando los ceros y los unos de esa cadena de 371792 bits y a cada paso calcular un hash y ver si coincide con el del archivo. ¿Cuántas variaciones de ceros y unos posee una cadena de 371792 bits?. Pues, precisa y exactamente posee tantas variaciones como representa ese mismo número binario. Por ejemplo, el número binario 111, que son 3 bits, representa al número 8, que es 23, y posee exactamente 8 variaciones de ceros y unos, es decir, 000, 001, 010, 011, 100, 101, 110, 111. Por lo tanto, nuestra Mona Lisa posee exactamente 2371792 variaciones de ceros y unos. Un número muy superior al de partículas subatómicas en nuestro universo observable. Supongamos que tenemos un superordenador capaz de calcular un trillón de esas variaciones binarias por segundos y de decidir a cada paso si ha encontrado una solución (coincidencia de hash). Incluso a esa velocidad de cálculo, tendríamos que esperar miles de trillones de veces la edad de nuestro universo (13 mil millones de años) para ver completadas todas las variaciones binarias, y poder afirmar con seguridad que hemos recuperado nuestra Mona Lisa desde su hash. El número 2371792 posee 111.921 dígitos en el sistema decimal, y por muy rápido y potente que sea nuestro super ordenador, la tarea de expandir ese hash en la cadena original de bytes es una tarea imposible. Pero, si nuestro ordenador es un ordenador cuántico de más de 371792 qubits, ese cálculo se podría hacer en unos pocos minutos, con lo cual, posiblemente, mediante esa computación cuántica, obtendríamos una carpeta de colisiones, con una serie de archivos de igual tamaño y todos con el mismo hash.

Posted in curiosidades y analogías, informática, Matemáticas, Mecánica Cuántica | Etiquetado: , , , , , , , , , , , , , , , , , | Leave a Comment »

LISA Pathfinder: el enésimo intento de probar la existencia de ondas gravitacionales que fallará de nuevo

Posted by Albert Zotkin en diciembre 1, 2015

Hoy la ESA (Agencia Espacial Europea) ha lanzado desde la Guayana francesa el satélite LISA Pathfinder, llamado a abrir la vía a un futuro observatorio espacial capaz de detectar las famosas ondas gravitacionales teorizadas por Albert Einstein. Un cohete Vega ha puesto en órbita con éxito al LISA Pathfinder, construido por Airbus Defense & Space en el marco de un proyecto de la ESA.

Una vez más, todo ha sido un éxito, menos el hallazgo de la existencia de las ondas gravitacionales. El proyecto LISA (Laser Interferometer Space Antenna) es un proyecto conjunto de la ESA y la NASA para detectar ondas gravitacionales. Estas ondas son una predicción de la Relatividad General de Einstein, y sólo se tienen evidencias indirectas de su existencia. Pero, el método científico no admite las pruebas indirectas como válidas, requiere evidencias directas. El decaimiento orbital observado en pulsares binarios es simplemente una evidencia indirecta de esa predicción relativista, es indirecta porque ese decaimiento orbital podría tener otra causa muy distinta a las ondas gravitacionales. Y efectivamente ahí está el meollo de la cuestión. Nadie se atreve a cuestionar la Relatividad General. Nadie tiene lo que hay que tener para decir que las ondas gravitacionales son una predicción errónea de la Relatividad General. Ese decaimiento orbital observado en púlsares binarios es simplemente la evidencia directa de que existe pérdida de información cuántica en toda interacción gravitatoria. La naturaleza (aún no sabemos muy bien cómo) realiza inmensos cálculos cuánticos, pero esos cálculos no poseen una precisión infinita. Es pues esa pérdida de información cuántica la causa real de que exista decaimiento orbital. Esto se puede demostrar fácilmente programando una simulación de dos cuerpos orbitando entre sí. Si, por ejemplo, aplicamos frame a frame, como si de una cadena de Markov se tratara, unas ecuaciones para describir órbitas circulares, comprobaremos, con asombro que los círculos no serán exactos, y que a cada revolución los cuerpos estarán cada vez más próximos. Eso es así porque, en un proceso de Markov no existe memoria de los estados pasados del sistema. Para que una órbita fuera exactamente circular, la naturaleza debería guardar de alguna forma todo el número π con toda su precisión infinita, y eso es imposible.

Por lo tanto, la demostración de que no existen las ondas gravitacionales simplemente está en la constatación del hecho de que el número π es un número irracional, o la constatación de que la longitud de una órbita elíptica no puede ser calculada exactamente, por el hecho de que su cálculo requiere resolver una integral elíptica completa de segunda clase.

Cuando los físicos teóricos se den cuenta de que, aunque las leyes naturales obedezcan a formalismos matemáticos exactos que incluyan constantes numéricas irracionales o procesos no lineales, la naturaleza sólo puede computar discretamente con precisión finita los procesos naturales que resultan de esa aplicación de sus leyes, y eso se traduce inevitablemente en pérdida de información cuántica, entonces, y sólo entonces la física teórica empezará a resolver seriamente sus problemas.

Saludos

Posted in Astrofísica, Gravedad Cuántica, informática, Matemáticas, Mecánica Cuántica, Relatividad | Etiquetado: , , , , , , , , , , , , , , , | 8 Comments »

Un intento de investigar la profundidad computacional de nuestro universo

Posted by Albert Zotkin en septiembre 16, 2015

fractal-univser

Hace ya algún tiempo hice una pequeña animación en flash, en la que mostraba cómo una pequeña simulación de interacción gravitatoria entre dos cuerpos es suficiente para convencernos de que existe pérdida de información, y eso se traduce en decaimiento orbital (acortamiento del periodo orbital, estrechamiento de la órbita): Aquí os dejo una pequeña captura del programa SWF en acción, que he subido a youtube:

Esa animación está gobernada por un sencillo programa informático (escrito en actionscript). En dicho programa uso la clásica ecuación de Newton de la gravitación universal para el cálculo de la aceleración. Las coordenadas espaciales de los dos cuerpos, calculadas fotograma a fotograma, deberían de dar trayectorias elípticas estables según las leyes de Kepler, pero se observa cómo poco a poco los cuerpos aproximan sus periastros hasta llegar a colisionar. Lo curioso de todo eso es que esa aproximación progresiva, que se puede traducir como pérdida de energía gravitacional, no está programada en el actionscript, sino que emerge por la imprecisión de los registros informáticos que almacenan los datos de la computación. Es decir, aunque las ecuaciones matemáticas que expresan la ley de gravitación son exactas y dan órbitas estables, su ejecución en un ordenador con registros finitos deja de ser exacta para pasar a mostrar degeneración orbital a lo largo del periodo de evolución del sistema gravitacional binario que simula.

Para los incrédulos, mostraré sucintamente las rutinas que escribí en el actionscript de la animación. En primer lugar presento la función que actualiza las coordenadas espaciales de cada uno de los dos cuerpos del sistema binario (podría ser un pulsar binario, como el PSR B1913+16, por ejemplo). Esta rutina es llamada siempre antes de que el programa dibuje cada fotograma:

function update2(m)
{

var cm_x;
var cm_y;
if(_root.r_frame==null){
cm_x=Stage.width/2;
cm_y=Stage.height/2;
}else{
cm_x=_root.r_frame._x;
cm_y=_root.r_frame._y;
}

var r = Math.sqrt(Math.pow((m._x-m.target_body._x),2)+Math.pow((m._y-m.target_body._y),2));
var accel = 30*m.mass*m.target_body.mass/Math.pow(r,2);
var cosx=(m._x-m.target_body._x)/r;
var cosy=(m._y-m.target_body._y)/r;
var accel_x = accel*cosx;
var accel_y = accel*cosy;
var s=1;
m.speed.x-=accel_x;
m.speed.y-=accel_y;
m._x+=m.speed.x-cm_x+Stage.width/2;
m._y+=m.speed.y-cm_y+Stage.height/2;

s=(m._y-m.target_body._y)<0?-1:1;
m._rotation=s*Math.acos(cosx)*180/Math.PI-90;

}

y seguidamente, presento las rutinas de lo que tiene que hacer cada cuerpo en cada frame, así como sus condiciones iniciales:

onClipEvent (load) {
speed = new Object;
speed.x=0;
speed.y=0.1;
mass=3.0;
density =1;
_width=20*Math.pow((3/(4*Math.PI))*mass/density,1/3);
_height=_width;
/*
_width=mass*4;
_height=mass*4;
*/
target_body=_root.a2;
//_visible=false;
body_type=1;//2 star, 1 planet
gotoAndStop(body_type);
this.rx=this._x;
this.ry=this._y;

}

onClipEvent (enterFrame) {
if(this, hittest(this.target_body))
_root.pause=true;

if(_root.pause or !_visible)return;
_root.update2(this);
}

Señoras y señores, en otras palabras. Lo que hasta ahora se viene llamando ondas gravitacionales es simplemente una falacia más. Dichas ondas no existen en nuestro universo. El decaimiento de las órbitas de los sistemas binarios, y por extensión, de cualquier sistema gravitatorio, es simple y llanamente debido a una pérdida de información cuántica en la computación que la naturaleza hace. Aunque nuestro universo podría ser infinito y eterno, el aumento de entropía en él sería un signo inequívoco de esa pérdida de información cuántica. Nuestro universo es un holograma, un autómata celular, no es la última realidad profunda. Pero, alguien podría preguntarse : “¿cómo es posible que si el universo es infinito y eterno pueda ser al mismo tiempo un holograma, un autómata celular?. Esos automatas celulares requerirían unos registros cuánticos infinitos”. Esa pregunta es muy razonable, pero un universo infinito y eterno no está en contradicción con que sea una simulación ejecutada desde registros cuánticos finitos. Sólo se requiere que la simulación del universo sea un holograma fractal. Veamos, este video de Musicians With Guns en el que nos presenta un fractal infinito, pero obviamente ejecutado desde un ordenador (cuyos registros, sabemos sin duda, que son de capacidad finita):

Un fractal, como el que nos ha presentado Musicians With Guns, no es más que una sencillita ecuación matemática acompañada de una lista de condiciones de inclusividad, y todo ello define lo que es el conjunto fractal (es decir, un conjunto de elementos que cumplen ciertas condiciones). Cuando dibujamos el fractal, los pixeles pertenecientes al fondo (elementos que no pertenecen al conjunto fractal) se pintan con un color y los pixeles que representan a elementos del conjunto se pintan de otro color que contraste con el primero, de modo que podamos destacar con facilidad el fractal del fondo.

Saludos

Posted in Astrofísica, Autómatas celulares, Cosmología, Gravedad Cuántica, informática, Inteligencia artificial, Matemáticas, Mecánica Cuántica, Relatividad | Etiquetado: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a Comment »

Algunas pistas para saber si nuestro universo es una simulación informática

Posted by Albert Zotkin en septiembre 13, 2015

Simulation-Theory

Nuestro universo podría ser una especie de Matrix, es decir, una gigantesca simulación por ordenador. El ordenador donde se estaría ejecutando la simulación de nuestro universo podría ser un ordenador cuántico con una memoria de al menos unos 1080 qubits activos.

¿Podemos investigar si nuestro universo es una simulación creada en un simple ordenador cuántico?. Hay varios caminos para saber si eso es así o no. Una forma, que se me ocurre, sería prestar atención a pulsares binarios. Un pulsar binario es un sistema estelar en el que a menudo un pulsar y una estrella enana blanca orbitan el uno alrededor del otro. Se ha observado que los pulsares binarios pierden energía gravitacional con el tiempo, y eso se ha identificado como una prueba de la existencia de ondas gravitacionales, tal y como predice la Teoría General de la Relatividad. Dicha pérdida de energía gravitacional se evidencia en que la pareja orbital se acerca lentamente, con lo cual el periodo de rotación es cada vez menor. Por ejemplo, para el pulsar binario PSR B1913+16 se ha observado que el periodo orbital decae según esta gráfica de una parábola:

orbital-decay

Veamos ahora si es posible explicar ese decaimiento orbital mediante la hipótesis de que la naturaleza realiza cálculos orbitales cuánticos. Para ello debemos saber cómo trabaja un ordenador cuando hace una computación clásica. Existen una serie de registros en los que el ordenador almacena los datos de entrada, y después cuando aplica unos algoritmos a esos datos obtiene unos datos de salida que también almacena en unos registros. Pero, los registros no poseen precisión infinita, sino que poseen un limite finito. Por ejemplo, el número π sólo podría ser almacenado numéricamente hasta cierta cifra. Y ya empezamos vislumbrar en qué consiste ese decaimiento orbital. Fijémonos en la ecuación clásica del periodo orbital de dos cuerpos de masas M1 y M2 que orbitan, según las leyes de Kepler, a lo largo de una elipse:

\displaystyle  T = 2\pi\sqrt{\frac{a^3}{G(M_1+M_2)}}  (1)

donde a es es semieje mayor de la trayectoria elíptica.

¿Por qué, a cada revolución, el periodo T se va acortando?. Por la sencilla razón de que los registros que usa la naturaleza no pueden almacenar toda la información con una precisión infinita. Una parte muy importante de esa imprecisión sucesiva la tiene el número π. Supongamos que por cada revolución completada, la naturaleza debe ajustar el valor del semieje mayor según el ultimo valor obtenido para el periodo orbital. Es decir, la naturaleza debe reajustar la órbita de forma recursiva a cada paso así:

\displaystyle  a = \sqrt[3]{\cfrac{G(M_1+M_2)T^2}{4\pi^2}}  (2)

gas

El problema es que no hay “registros naturales” que puedan almacenar el valor exacto del número π ni de cualquier otro número irracional, con lo cual la órbita elíptica se reajusta siempre a la baja (decaimiento orbital) en cada revolución.

Para el caso que tratamos, la ecuación recursiva sería la siguiente:

\displaystyle  a_n = \sqrt[3]{a_{n-1}^3}  (3)
Otra forma de interpretar esa pérdida de información cuántica, que produce decaimiento orbital, es considerar que en nuestro universo se produce siempre un aumento de la entropía. Por otro lado, la mecánica cuántica no admite como correcta ninguna solución que se base en la perdida de información cuántica.

La conclusión terrorífica es que nuestro universo podría ser una gigantesca simulación informática, un gigantesco autómata celular. Todo universo en el que exista aumento global de la entropía tiene bastantes papeletas para ser un universo simulado, un universo virtual.

Saludos

Posted in Astrofísica, Autómatas celulares, Cosmología, Gravedad Cuántica, informática, Inteligencia artificial, Matemáticas, Mecánica Cuántica, Relatividad | Etiquetado: , , , , , , , , , , , , , , , , , , , , , , , , , | 2 Comments »

Un universo eterno y transfinito: una foliación conforme del espaciotiempo

Posted by Albert Zotkin en septiembre 7, 2015

Foliación transfinita de la conciencia de Ridley

Foliación transfinita de la conciencia de Ridley

Nuestro universo podría poseer la forma de una hiperesfera transfinita. Para ver esto fijémonos en lo siguiente (que ya traté en un post anterior). La serie infinita N = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + … es divergente ya que su suma es N = ∞. Pero, puede ser regularizada, como demuestro en el link anterior, para dar una suma de N = -1/2. Es decir, la función Zeta de Riemann toma el valor -1/2 cuando la variable es cero:

\displaystyle   N = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 +\dots = \zeta(0) =-\frac{1}{2}\\
Esta suma nos sugiere que el infinito matemático, ∞, en la recta real, coincide con el número real negativo -1/2, y -∞ coincidiría simétricamente con 1/2. Si partimos de un sistema de referencia cartesiano de dos dimensiones, tendremos que los dos ejes ortogonales podrían ser recorridos, partiendo desde el origen de coordenadas, en dos posible direcciones. Para el eje de abscisas, podríamos alcanzar el infinito, por el camino largo (hacia la derecha) hasta llegar al punto (-1/2, 0). O también podríamos alcanzar dicho punto, que representa al infinito, por el camino más corto (andando hacia la izquierda). Sin embargo, si andamos en dirección derecha, desde el origen o cualquier punto de abscisa positiva, (x,0), no podríamos llegar a los puntos situados entre el punto (-1/2, 0) y el (x,0) ya que el infinito actuaria como barrera infranqueable para seguir el camino y cerrar el círculo.

Saludos transfinitos a todos

Posted in Astrofísica, Cosmología, curiosidades y analogías, Fractales, Gravedad Cuántica, informática, Matemáticas, Relatividad | Etiquetado: , , , , , , , , , , , , , , , , , , , , , , , , , , , | 2 Comments »

Nuestro universo no es una simulación por ordenador pero tú sí

Posted by Albert Zotkin en enero 14, 2015

La física teórica actual nos lleva a divagar sobre cuestiones tan absurdas como por ejemplo “¿somos una simulación de ordenador?”. Lo peor de todo esto es que se lo toman en serio, se crean debates por televisión, conferencias, simposios, talleres, se escriben artículos, muchos artículos, y dicen que todo es un debate científico. La culpa de todo este sinsentido la tiene una teoría llamada Mecánica Cuántica. Esa teoría en la que se basa la metateoría llamada Modelo Estándar permite que nuestra imaginación explote y se expanda hacia terrenos inhóspitos y “absurdos”. En el modelo cosmológico estándar, también llamado, modelo Lambda-CDM, ó ΛCDM (en inglés es Lambda-Cold Dark Matter), sí, ese que usa la teoría del Big Bang, existe un pequeño cabo suelto desde el cual los divagadores pueden proponer que nuestro universo fue creado (diseñado) por alguien (¿Dios?), y que ese alguien no sólo se conformó con crearlo sino que se “divierte” observando su creación (nos observa). Incluso hay quien afirma, que no sólo observa su creación sino que interactua de vez en cuando con ella (¿milagros?).

Todo esto sería muy gracioso si no fuera porque muchos se lo toman muy en serio. A mi me gusta respetar todas las creencias religiosas, pero cuando la ciencia intenta suplantar la religión, me da un ataque de risa. Obviamente los rezos y plegarias de muchos creyentes van dirigidos a su Dios (el creador de la simulación por ordenador) para que interactue con ellos y solucione sus problemas. Desgraciadamente, en este universo no existe la magia, y los milagros brillan por su ausencia. Todo obedece a las leyes naturales (leyes de la física), las cuales son inviolables, inexcusables, inexorables. Cuando una piedra cae por causa de la gravedad universal desde lo alto de una montaña hacia el valle, no podrá ser detenida con rezos ni ruegos, sólo con algo dentro de la ley natural que perturbe su trayectoria.
Múltiples universos dentro de un fractal

Múltiples universos dentro de un fractal

Nuestro universo no es una simulación por ordenador, sino que es real, por una sencilla razón ontológica: todo tiene una causa real y natural, y no existen causas incausadas. Imagina un personaje virtual que evoluciona en un mundo virtual (tipo Matrix). ¿Cómo podría saber ese personaje que en realidad vive en un mundo virtual, simulado?.

Si algunos sustituyen la religión por la ciencia para afirmar que vivimos en una simulación de ordenador, yo me arrogo el derecho a usar la lógica y el discurso de Bertrand Russell para afirmar que:

La religión se basa, principalmente, a mi entender, en el miedo. Es en parte el miedo a lo desconocido, y en parte, como dije, el deseo de sentir que se tiene un hermano mayor que va a defenderlo a uno en todos sus problemas y disputas. El miedo es la base de todo: el miedo a lo misterioso, el miedo a la derrota, el miedo a la muerte. El miedo es el padre de la crueldad y, por lo tanto, no es de extrañar que la crueldad y la religión vayan de la mano. […] Tenemos que mantenernos en pie y mirar al mundo a la cara: sus cosas buenas, sus cosas malas, sus bellezas y sus fealdades; ver el mundo tal cual es y no tener miedo de él. Conquistarlo mediante la inteligencia y no solo sometiéndonos al terror que emana de él. Toda nuestra concepción de Dios es una concepción derivada del antiguo despotismo oriental. […] Un mundo bueno necesita conocimiento bondad y valor; no necesita el pesaroso anhelo del pasado, ni el aherrojamiento de la inteligencia libre mediante las palabras proferidas hace mucho por hombres ignorantes. Necesita un criterio sin temor y una inteligencia libre. Necesita esperanza en el futuro, no el mirar hacia un pasado muerto, que confiamos que sea superado por el futuro que nuestra inteligencia puede crear.

Siguiendo la lógica y el conocimiento que Russell desplegó en su obra Why I Am Not a Christian, podemos aportar al menos tres argumentos en contra de la afirmación “vivimos en una simulación”:

Contra el argumento cosmológico que afirma que existe una Causa Primera Universal, podemos alegar que en el terreno de la ciencia ese argumento tiene poco peso. Si todo ha de tener alguna causa, entonces Dios debe tener una causa. Por el contrario, si puede haber algo sin causa, entonces bien podría nuestro universo no haber necesitado causa alguna para existir (universo eterno e infinito), por lo tanto no sería necesario ningún Dios para explicar ni su existencia ni su evolución (en esto piensa actualmente Stephen Hawking)

Para el argumento de las Leyes Naturales, podemos afirmar que si existe alguna causa por la que Dios dictó esas leyes naturales, entonces él mismo debe estar sometido a esa causa o ley externa y por lo tanto, Dios mismo sería un intermediario. Pero, entonces Dios no nos sirve porque no es el último que dicta la ley. Este argumento tampoco se sostiene.

En cuanto al argumento teleológico, que es una especie de principio antrópico, el cual afirma que todo en el mundo está hecho para que podamos vivir en él, y si el mundo variase un poco, no podríamos vivir. Es decir, este argumento dice que el mundo y todos nosotros estaríamos dentro de un Plan Divino. Pero entonces ese Plan Divino sería una autentica mierda, viendo la miseria y el sufrimiento que hay en el mundo. ¿En realidad alguien se cree que este mundo ha sido creado para vivir en él?. Yo podría diseñar un mundo mas confortable y feliz, donde las enfermedades, el sufrimiento y los fanatismos, producto de la irracionalidad y la animalidad, no pudieran existir por ley natural. ¿Qué clase de Dios tan imperfecto creó este valle de lágrimas?, ¿para qué?. Este argumento teleológico o antrópico tampoco sirve, se cae por su propio peso y su ingenuidad.

En resumen. Nuestro universo no es ninguna simulación por ordenador, aunque se le pueda parecer. Es un valle de lágrimas, donde reina la injusticia, y el sufrimiento. En realidad, este universo es bastante inhóspito, y parece casi un milagro que pueda existir algo siquiera parecido a lo que llamamos vida. Desde un punto de vista científico, ó más exactamente desde la termodinánica, los organismos vivos son sistemas que tienden a disminuir su entropía, en supuesta perfecta contradicción a las “leyes naturales”. ¿Cómo?, ¿dónde surgió la vida?, ¿por qué? ¿Quién ordenó esto? son preguntas que sólo la ciencia y no religión debe responder. Evidentemente, el principo antrópico es una especie de ingenuidad institucionalizada, una auténtica bobería. ¿Se pregunta una ameba por qué existe ella o por qué el universo es como es?. Nuestro universo es como es y punto, y si fuera de otra forma también sería como es.

Saludos

Posted in Astrofísica, Autómatas celulares, Cosmología, curiosidades y analogías, Física de partículas, Fractales, Gravedad Cuántica, informática, Inteligencia artificial, Matemáticas, Mecánica Cuántica, Relatividad | Etiquetado: , , , , , , , , , , , , , , , , , | 1 Comment »

Curso de Inteligencia Artificial: Autómatas celulares de la serie Trinity Aurora V1.0

Posted by Albert Zotkin en marzo 27, 2014

Trinity Aurora viewer

Trinity Aurora viewer

Hola amigos incondicionales de Tardígrados. Vamos a iniciar un apasionante curso por el mundo de la inteligencia artificial, en el que tendremos oportunidad de diseñar sistemas básicos que serán piezas claves para el desarrollo de tecnologias de IA. El primer capitulo lo dedicaremos al estudio de los autómatas celulares, y más concretamente a autómatas celulares de la serie Trinity Aurora v1.0.

Autómatas celulares de la serie Trinity Aurora v1.0

Defino un sistema Trinity Aurora como un autómata celular con tres matrices de NxM células o celdas cada una. Los sucesivos estados de las celdas están condicionados por una tendencia, es decir, un vector tendencia que marca hacia qué estado debe evolucionar cada celda. Eso es posible ya que en un Trinity Aurora los estados de cada celda pueden ser 16.777.216. Si representamos cada estado por un color (true color) de 3 componentes de color RGB, y cada componente puede ser representado en el rango 0-255, tenemos 256 x 256 x 256 = 16.777.216 colores (estados) posibles, es lo que se llama true color. Supongamos que el vector tendencia de una celda en una generación determinada es (t,f)=(0xff0000,128) y que el estado que muestra es c=0x00ff000. ¿Que significará eso?. Veamos, c=0x00ff000, es el color verde puro, o sea esa celda (pixel) en esa generación está mostrando el color verde, pero su vector tendencia es (0xff0000,128) , es decir, tiende hacia el color 0xff0000, que es el rojo puro, 128 indica la fuerza de esa tendencia. La fuerza de una tendencia la he definido dentro del rango de valores 0-255, Una fuerza máxima de f=255 significaría que la celda alcanzaría el color de la tendencia en la siguiente generación y una f=0 significaría que nunca la alcanzaría. ¿Cómo defino la transición de color actual hacia el color definido por el vector tendencia? Pues esa transición no podría ser más que una mezcla de los dos colores, el actual y el de la tendencia, según el porcentaje de mezcla definido por la fuerza de esa tendencia. Es decir, la fuerza, en este caso, es la transparencia del color actual sobre el color tendencia tomado como color de fondo.
Instántanea tomada del Trinity "Expand 2 Iris On Net",con una edad de 328 generaciones. Nació del Caos, y es un sistema que evoluciona eternamente de forma irreversible, incrementando su entropia.

Instántanea tomada del Trinity “Expand 2 Iris On Net”,con una edad de 328 generaciones. Nació del Caos, y es un sistema que evoluciona eternamente de forma irreversible, incrementando su entropia.

Los sistemas Trinity Aurora de la versión V1.0 están constituidos por 3 matrices cuadradas de 128 x128 pixels cada una. En una de ellas representaremos los estados actuales del autómata, y en las 2 restantes los estados del vector tendencia. Como todo autómata celular, cada celda posee un vecindario y un conjunto de reglas de transición. El vecindario en esta versión lo he definido con un radio de r=2, es decir, son celdas vecinas que distan entre 1 ó 2 pixels de la celda propia situada en el centro, o sea es una cudrícula de 5 x 5. La característica más importante de un sistema Trinity Aurora es que el vector tendencia de la celda que esta procesando la regla en una generación dada debe estar protegido. o sea, la regla solo tendrá acceso al vector tendencia de la celda central y nunca al de cualquier otra vecina. La regla tiene acceso pues a los 25 estados (colores) actuales del vecindario de una celda y a su vector tendencia, y el valor que devuelve será siempre una variación de ese vector tendencia, nunca una modificacion directa sobre el estado actual de la celda. En resumen , la regla tiene prohibido el acceso a vectores tendencia del vecindario que no sean el central y tambien tiene prohibido modificar el estado actual de la celda directamente. Si una regla requiere modificar el estado de una celda en la siguiente generacion bastará con modificar el parametro fuerza hacia su valor máximo (255).

Instántanea tomada del Trinity "Iris Netenda",con una edad de tan sólo 133 generaciones. Al igual que el anterior, nació del Caos el 8 de Julio de 2005 a las 3 horas 5 minutos, 21 segundos.

Instántanea tomada del Trinity “Iris Netenda”,con una edad de tan sólo 133 generaciones. Al igual que el anterior, nació del Caos el 8 de Julio de 2005 a las 3 horas 5 minutos, 21 segundos.

Los Sistemas Trinity Aurora son por definición sistemas irreversibles, ya que cada color actual se mezcla con su color tendencia en cada generación según cierto porcentaje. La mezcla de colores supone por lo tanto irreversibilidad, es decir, pérdida de información de sus estados pasados. Dado un estado actual de una celda no podemos saber cuál era su estado pasado en la generación anterior si no sabemos que color tendencia poseia y qué fuerza (porcentaje de mezcla) le fue aplicado. La filosofía tras estos sistemas es que con ellos podemos diseñar modelos de simulación de los fenómenos naturales. Y aunque de momento solo presento autómatas de 2 dimensiones y de reducido tamaño, constituyen el principio de la Nueva Ciencia, ya que con ellos ponemos a nuestra disposición un nuevo lenguaje científico. es decir, una nueva herramienta basada en reglas “simples” que no necesitan ecuaciones diferenciales para conseguir aproximaciones a los modelos. Pero lo más esencial de los Trinity Aurora es que nos hablan de un Universo Virtual que puede ser tratado como un todo sin diferenciación de partes, y por lo tanto, su evolución dependerá unicamente de las condiciones iniciales y de la regla o ley con la que les dotemos, si queremos que sea un sistema cerrado. Por el contrario, si deseamos que el Trinity sea un sistema abierto, es decir, que la regla que lo gobierna pueda considerar estados externos, por ejemplo mediante una cámara web o un micrófono, entonces el sistema evolucionará teniendo en cuenta tambien esos estados externos, con lo cuál las posibilidades prácticas de estos sistemas deben ser seriamente consideradas.
El trinity "Kernel Aurora" a la tierna edad de 87 generaciones. Este autómata es bastante estable aunque al igual que sus hermanos posee naturaleza caótica.

El trinity “Kernel Aurora” a la tierna edad de 87 generaciones. Este autómata es bastante estable aunque al igual que sus hermanos posee naturaleza caótica.

Algunos autores, como Stephen Wolfram, se ilusionaron con la pretenciosa idea de que el universo fisico-químico fuera,en última instancia un autómata celular, o que poseyera una dinámica interna semejante. Tratar al universo como si fuera un autómata celular nos lleva desvirtualizar conceptos como el de partícula, energía. De hecho, elaborar un modelo de autómata celular que simule un sistema de partículas con interacciones gravitatorias, es casi una tarea imposible. No digo que programar un autómata tal no sea posible, pero requeriría añadir al autómata una serie de mecanismos extras para almacenar variables y parámetros auxiliares y eso lo único que conseguiría sería probar que un autómata celular no es la herramienta más adecuada para tal simulación. Cuando nos vemos obligados a rodear una herramienta de mucha parafernalia y aparataje extra, tenemos que preguntarnos si es esa la herramienta mas adecuada. Un autómata celular que simule lográdamente un sistema de partículas no es posible si en las reglas de conectividad local que definimos consideramos magnitudes escalares o vectoriales tales como masa, fuerza, intensidad de campo, energía potencial o cinética.

Posted in Autómatas celulares, informática, Inteligencia artificial | Etiquetado: , , , | Leave a Comment »

Representación gráfica de funciones complejas

Posted by Albert Zotkin en marzo 7, 2014

Hace algún tiempo yo era un obseso de la programación informática. Me pasaba horas y horas programando miles de lineas de código de aplicaciones informáticas de todo tipo. Un día me pregunté si yo sería capaz de programar desde cero una aplicación que dibujara gráfica de funciones y de otros objetos matemáticos. La respuesta a aquella pregunta fue sí, y la aplicación que construí desde cero se llama PrimeGraph, y sirve para representar gráficamente funciones y otros objetos matemáticos. Para quien sienta curiosidad sobre el código fuente de PrimeGraph lo puede encontrar aqui.

Puedo ofrecer ahora varios ejemplos de representaciones gráficas de funciones complejas. Obviamente una representación gráfica estática de una función compleja no puede literalmente ser vista ya que toda función compleja transforma un número complejo z = (a, b) en otro distinto z’= (a’,b’). Es decir, se necesitaría al menos un espacio de cuatro dimensiones para poder visualizar tal gráfica funcional. Pero, es posible, mediante algunos trucos visualizar en un único plano (2D) tales gráficas de funciones complejas. Una de ella es mediante códigos de color en el plano. Puesto que una función de variable compleja transforma un número complejo en otro, Podemos ver cómo los puntos de un plano son re-ubicados con otras coordenadas si cada punto posee un color (pixel). Supongamos que el plano inicial (el que representa a la función identidad) posee el siguiente patrón de color:

0

Partiendo de esta plano coloreado inicial podemos representar funciones complejas, como he dicho, re-ubicando los pixeles en otras coordenadas según nos dicta la función compleja que se trata de representar. Veamos mas especificamente un ejemplo. Sea el siguiente polinomio de variable compleja

\displaystyle f(z)=(z-1-2i)(z+i)(z+2)^2

entonces según el patrón de color que he presentado arriba, la representación gráfica de esa función f(z) será:

1

Supongamos ahora que el plano inicial posee el siguiente patrón de color:

2

entonces una función compleja como cosecante de z, iterada 7 veces

\displaystyle f(z)=csc(z)= \cfrac{1}{\sin (z)}

daría esta bonita y sorprendente representación gráfica:

csc-z

para los que no lo sepan, si iteramos 7 veces una función f(z) obtenemos otra función distinta:

\displaystyle f' (z)= f(f(f(f(f(f(f(z)))))))

veamos otro ejemplo de función compleja iterada usando el mismo patrón de color que antes. Ahora representaremos la función arcoseno de z iterada 2 veces

\displaystyle f(z)= \arcsin (z)

es decir tenemos la función iterada

\displaystyle f'(z)= \arcsin (\arcsin (z))

cuya respresentación gráfica en ese patrón de color será esta:
arcsin-z

Saludos

Posted in informática, Matemáticas | Etiquetado: , , , , , , , , , | 2 Comments »

 
A %d blogueros les gusta esto: