« Windows Ultimate6/6/6 6:6:6 »

El punto flotante no es suficiente

De pequeño me gustaba leer, e imaginarme cosas. Recuerdo que una vez cayó en mis manos un libro para niños del tipo "elige tu propia aventura", sobre un ordenador que era capaz de hablar y se convertía en el mejor amigo del protagonista. Supongo que siempre me han gustado estas maquinitas.

Sin embargo, esto me hizo reflexionar: ¿cómo se podría hacer que un ordenador hablase, y que lo hiciese de forma razonada?

En aquellos años no tenía ni idea de nada (no tenía ni ordenador, creo recordar), pero me pareció que no debería ser muy complejo establecer un conjunto de relaciones entre palabras de forma que, aunque el programa no supiese "realmente" lo que dice, sí pudiese seguir un camino entre los conceptos hasta llegar a formar una respuesta que tuviese sentido. Años más tarde apareció el programa "herbie", y más tarde el "Dr. Sbaitso", que hacían algo parecido aunque de forma mucho más rudimentaria. Recuerdo que incluso llegué a hacer una lista de conceptos y relaciones básicas para hacer un programa parecido.

Pronto vi lo fútil de esta tarea. Un sistema que sólo sigue patrones, sin imaginar lo que significan, sería poco mejor que un simple buscador. Vale que sería un buscador muy bueno, pero supondría una tarea muy superior a lo que podría hacer en el tiempo libre después de clase.

Hoy tenemos ontologías, que son las mismas listas de conceptos y relaciones que entonces había imaginado, y podemos ver el trabajo que supone trasponer un solo campo de conocimiento para que sea de alguna utilidad. Complejo no es mucho, sólo harto arduo.

Pero entonces pensé en llevar la idea un paso más adelante: ¿por qué no simular el universo en sí, dejar un agente libre capaz de aprender del entorno, y ver qué conocimiento era capaz de obtener? Entonces no sabía que eso lo llamaban inteligencia artificial, ni me importaba mucho. Lo que sí era fácil de ver es la complejidad de simular un universo completo, la cantidad ingente de datos que esto requeriría, así como la simulación del cerebro del agente encargado de aprender en él.

Era una tarea que mi 8088 con 640KB de RAM y 20MB de disco duro nunca sería capaz de realizar. Por aquél entonces no imaginaba que 15 años más tarde pensaría lo mismo de un AMD 2600+ con 640MB de RAM y 20GB de disco duro. Hemos multiplicado por 1000 la capacidad de los sistemas domésticos en 15 años, pero aún así no tenemos la capacidad suficiente para simular el universo.

En realidad, nunca la tendremos. El razonamiento es muy simple: para simular el universo, hace falta un sistema igual o más complejo que el universo, pero dado que existimos atrapados dentro del universo, el universo mismo es la única entidad capaz de sostener una simulación íntegra de sí mismo, lo cual es tautológico e irrelevante.

Así que debemos simplificar.

La realidad es que, desde nuestro punto de vista, vivimos en un "mundo" mucho más simple de lo que es el universo como totalidad. No somos capaces de ver los átomos, aunque veamos sus efectos. No somos capaces de ver las estrellas, aunque en un momento dado podamos ver sus imágenes ampliadas. En general nos limitan nuestros sentidos de una forma atroz, y todo lo que deseamos observar y con lo que queramos interactuar, debe ser "llevado" a nuestro nivel de percepción entre el de las hormigas y el de las ballenas. En realidad, si sólo tratásemos las entradas-salidas de nuestra mente, sería suficiente para simular una realidad completa.

Así que, tenemos definidas unas restricciones en los dispositivos de entrada-salida y en el flujo de datos que no podemos evitar; para crear una simulación perfecta sólo necesitamos emular estos estímulos para que sean indistinguibles de la realidad. Esta es una tarea mucho más simple de lo que parece.

La simulación "clásica" se basa en recrear un universo completo, limitado por las capacidades (de almacenamiento) del dispositivo, para mostrarlo en función de las limitaciones de los dispositivos de entrada-salida (se podría decir que es el mundo del revés). Para paliar el efecto de las limitaciones del hardware impuestas por las optimizaciones de rendimiento en forma de limitación del número de operaciones y el tamaño de los operandos, ha surgido la solución mágica: el punto flotante.

Con la aritmética en punto flotante podemos realizar cálculos en los distintos niveles de tamaño distintos al nuestro, desde lo ínfimo a lo más grande, de forma tan simple y eficaz como si lo estuviésemos haciendo con los números limitados a las optimizaciones de hardware arriba mencionadas.

Sin embargo, esta es una visión muy antropocéntrica, o "usuario-céntrica". El problema del punto flotante está en que a mayor valor, mayor es la imprecisión. En el caso de la realidad virtual esto no importa, pues de todas formas nuestra capacidad de percepción se reduce con el cuadrado de la distancia. En realidad, todo el universo parece funcionar con una reducción en el cuadrado de la distancia, lo cual podría plantear unas cuantas reflexiones muy interesantes sobre la naturaleza misma del universo: en realidad, el universo parecería estar siendo simulado, o al menos su estructura es sospechosamente similar a la que derivaría en una simulación óptima aprovechando al máximo los recursos necesarios para mantener la simulación dentro de unos parámetros de rendimiento y funcionalidad mínimos, principalmente requeridos por los agentes autónomos que consumen y generan estos datos.

El punto flotante sin embargo nos limita: no nos permite especificar resoluciones variables a una misma distancia para dos agentes diferentes. Cuando ampliamos el número de agentes esto sólo empeora, pues o mantenemos un sistema de referencia separado para cada agente, o nos resignamos a la persistencia de los datos en niveles de resolución realmente no utilizados por nadie con la "vaga esperanza" de que alguien los requiera en algún momento. Si hay una definición mejor de "saturación prematura" y "malgastar recursos", que alguien me la diga.

Así que, si no podemos usar el punto flotante, ¿qué podemos hacer? El análisis de la relación entre percepción y persistencia nos da una sugerencia muy interesante: niveles de resolución fractal y abstracción. Sí, estoy hablando de abstracción en el mundo físico, ¿suena muy raro? Pues es lo que hay. Si modelamos un universo donde el centro son los agentes perceptores -sin caer en la paranoia de "no existe suceso si no existe un observador" derivado en la seudo-mitología de "el observador crea el suceso"- podemos obtener un universo donde los sucesos existen, pero en un formato comprimido en función de una serie de probabilidades de aspectos respecto a una acción de percepción determinada. Mi sospecha personal es que el universo pueda ser una sopa de probabilidades de objetos inexistentes que se materializan para cada agente en el instante de ser observados. Alguno hablaría de colapsos de funciones de onda y otras ideas similares. Yo hablaría de empaquetar y desempaquetar, de generar bajo demanda, de comprimir con pérdida, y de optimizar los recursos disponibles para mantener la simulación. Interesante paralelismo, ¿verdad?

Yo la llamo la realidad fractal, no sé si tendrá algún otro nombre.

En un universo así, no podemos centrarnos en unos agentes determinados para realizar los cálculos de probabilidad o realidad de un suceso. Así mismo, el concepto mismo de probabilidad, generación y recogida de basura permearían hasta la última fibra de esta realidad. Necesitamos un sistema de cálculo y combinación de probabilidad de sucesos dispares -pero relacionados- en puntos de resolución variable respecto a múltiples agentes de forma simultánea. El punto flotante -el mejor invento para los cálculos centrados en agente- nos recorta esta capacidad, nos impone un lastre de definición y definibilidad del que no podemos escapar sin acudir a otras herramientas.

Haría falta un sistema de cálculo fractal, de resolución variable, capaz de tolerar la aparición y desaparición de elementos en función de probabilidades, que permita coalescer a eventos distantes para formar eventos mientras sean requeridos por el agente, y posteriormente devolverlos a un estado parecido al original. Tal vez no sea una forma de cálculo sino un algoritmo, aunque tal vez no tenga mucho sentido la distinción.

Lo que sí me parece de relevancia filosófica, es la idea de que si el universo tiene "agujeros" de compresión con pérdida, sí seríamos capaces de mantener una simulación del mismo dentro de él mismo. Incluso, podríamos simular más de un universo... Me pregunto cómo notaríamos el aumento de carga del sistema cuando nuestros agentes simulados decidiesen crear otro nivel de simulación más ;)

Trackback address for this post

This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)

No feedback yet

Deja un comentario


Your email address will not be revealed on this site.

Your URL will be displayed.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)

¿Cuántas OREJAS hay en la foto?

(si fallas, puedes volver a intentarlo... al menos por ahora)

Jaroslaw Filiochowski
jar<QUIT@ESTO>fil@gmail.com
(e-mail, jabber, gtalk)
Desde: Bilbao, España

Noviembre 2008
Lun Mar Mié Jue Vie Sáb Dom
 << <   > >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Ordenar por:

Yo NO veo TV

Yo NO veo TV
00 horas de TV a la semana
image

powered by

powered by b2evolution free blog software

+

Gentoo
Gentoo


photos powered by

Foto de una cámara de fotos difital Nikon Coolpix 7600
Nikon Coolpix 7600

+

Foto de un móvil Nokia 3650 con logo personalizado
Nokia 3650

Por cortesía de NokiaGame 2002


Creative Commons License
Esta obra está bajo una licencia Creative Commons salvo donde se especifique explícitamente otra licencia.


IBSN: 3-3718-9164-1