Computación vicente Moret Bonillo, Mayo de 2005



Descargar 2,04 Mb.
Página1/23
Fecha de conversión08.06.2017
Tamaño2,04 Mb.
  1   2   3   4   5   6   7   8   9   ...   23
FÍSICA CLÁSICA
Y
COMPUTACIÓN

Vicente Moret Bonillo, Mayo de 2005

FÍSICA CLÁSICA Y COMPUTACIÓN

Las líneas que siguen pretenden razonar sobre las similitudes de la computación y de la física. La computación puede ser tratada, al menos teóricamente, como un sistema físico más y, desde luego, todas las limitaciones que las leyes fundamentales de la física imponen a los sistemas físicos aplican igualmente a la computación. Dicho de otro modo: trataremos de estudiar algunos aspectos que a mí me parecen interesantes de la computación desde la óptica de la física, con los métodos y las herramientas de la física. Razonaremos por analogía, y buscaremos hipótesis, algunas de ellas ciertamente agresivas, para tratar de encontrar dónde están los límites teóricos de la computación, y qué consecuencias pueden derivarse de la existencia de dichos límites. No hablaremos de lo que es computable o no, sino de la computación en sí misma: No seguimos los planteamientos de Gödel, sino los de Shannon, Bennet y Feynman.


De este último, Feynman, copiamos también su estilo y su forma de plantearse problemas. Y tengo que decir que he aprendido mucho tras la lectura de sus obras. Brillante y original, Feynman me ha enseñado que lo importante es trabajar sobre cualquier tema con el único objetivo de comprenderlo. Como él solía decir “… de acuerdo, no he sido el primero pero por lo menos lo entiendo”.
Para ser completamente honrado: estas líneas han sido escritas para tratar de consolidar en mi cabeza gran parte de las reflexiones que Feynman publica en su libro “Conferencias sobre computación”, texto en el que se basa gran parte del material que desarrollamos aquí.
Hablaremos algo de la física de la información, de termodinámica, de la teoría cinética de los gases, del principio de indeterminación y de la mecánica cuántica, para tratar de explicar -por ejemplo- aspectos relacionados con la energía mínima de una computación, o cómo podemos medir la cantidad de información de un mensaje, o dónde están los límites teóricos del aprendizaje. Ninguna de tales cuestiones es original: muchos otros –mucho más informados y mucho más listos que yo- se las han planteado y las han resuelto, pero a mí me ha parecido divertido volver sobre ellas y, de paso, intentar entenderlas.
Algunos de los temas que trataremos van a requerir un esfuerzo nada desdeñable de abstracción. Esto es siempre interesante, ya que suele fomentar discusiones animadas, que espero se produzcan. Otros, por el contrario, serán muy sencillos de conceptualizar. Tan sólo propondremos cambios de enfoque y puntos de vista algo diferentes de los habituales. También será inevitable hacer algo de matemáticas, pero poco… lo estrictamente necesario para poder trabajar con las ideas que iremos desarrollando aquí.
Y ya sin más –como decía Lewis Carroll- comencemos por el principio y cuando lleguemos al final paremos.

1. BUSCANDO AL BIT
¿Qué es un bit? El diccionario de la Real Academia de la Lengua Española (RAE) define el término bit del siguiente modo: “Unidad de medida de información equivalente a la elección entre dos posibilidades igualmente probables”. La definición, estrictamente cierta, no deja de ser un poco espesa –al menos si uno se la encuentra de sopetón-. Perdamos un instante en analizarla: … unidad de medida de información… (hasta aquí todo va bien)… equivalente a la elección entre dos posibilidades igualmente probables… (aquí la cosa ya no va tan bien). El que dos posibilidades sean igualmente probables está bastante claro. Por ejemplo, si tenemos A y tenemos B –y sólo tenemos A y B-, la probabilidad de A, p(A), es igual a la probabilidad de B, p(B). Consideremos que X ≡ {p(A) = p(B)}, es decir denotamos por X a la circunstancia de que los sucesos A y B son equiprobables. Según esto, la definición de bit que propone la RAE podría traducirse del siguiente modo:
BIT ≡ Elección {A,B/X}
Para mí, la dificultad de la definición de la RAE reside en el término “Elección”… La interpretación es confusa.
Otra definición que encontramos, esta vez en el Diccionario de Computación publicado por McGraw-Hill en 1991, establece que un bit es una “unidad de información que equivale a una decisión binaria o a la designación de uno de los dos valores o estados posibles e igualmente probables de un medio empleado para almacenar o transferir información”. Esta definición, que es casi la misma que la de la RAE (aunque cambia el término –elección- por el de –decisión-), menciona ya explícitamente el vínculo del bit con la información y con los medios empleados para almacenarla o transferirla. En mi opinión sigue siendo una definición ambigua y poco precisa.
Una segunda acepción del término bit, que aparece en el diccionario arriba mencionado, establece que “bit es una unidad adimensional de la capacidad de almacenamiento que expresa la capacidad de almacenamiento como el logaritmo en base 2 del número de estados posibles del dispositivo”. Aquí entramos ya en el terreno de las definiciones “por decreto” (perfectamente válidas, por otra parte). La única pega que encontramos es …¿a qué dispositivo nos estamos refiriendo? Por otra parte: ¿por qué el logaritmo en base 2 y no otro? ¿Hay alguna justificación o es por convenio?... Volveremos más adelante sobre esta cuestión.
Dejando ya las fuentes documentales académicas, consulté a varios de mis compañeros –todos ellos profesionales de las ciencias de la computación- sobre cómo definirían ellos el concepto de bit. Les rogué también que trataran de olvidar las definiciones convencionales y me diesen su propia definición. A continuación transcribo algunas de sus respuestas:
- Representación matemática de los dos estados posibles de un interruptor –encendido y apagado-, que utiliza el sistema de numeración en base 2 por poseer éste el mismo número de estados -0 y 1-
- Unidad mínima (de información) de un alfabeto de dos símbolos
- La unidad más pequeña de información en una máquina
- Dígito o guarismo binario (base 2), i.e., 0 ó 1
- Unidad de numeración binaria que puede tomar dos valores asociados, 0 ó 1
- La mínima cantidad de información que puede ser almacenada y transmitida dentro de un sistema informático
- Es un dato con dos posibles valores (o informaciones, según se quiera ver)
Todas las definiciones anteriores, incluidas las académicas, pueden ser englobadas en tres categorías: (a) aquéllas que enfatizan aspectos conceptuales, (b) las que se centran en la idea de unidad de información, y (c) las que resaltan el carácter binario del bit.
Para mí está claro que el bit existe por definición, del mismo modo que el color rojo es rojo porque los científicos se han puesto de acuerdo en que de tal longitud de onda del espectro de radiación electromagnética a tal otra, el color es precisamente rojo. Lo curioso del caso es que la gente de la calle ya sabía lo que era el color rojo mucho antes de que los científicos se pusieran de acuerdo. Así, debe existir algo esencial e intuitivo en los colores de forma que éstos sean reconocidos sin necesidad de recurrir a su definición o a su caracterización formal. Y esto es precisamente lo que vamos a explorar: ¿hay algo que justifique el concepto de bit más allá de su “definición por decreto”?, ¿hay algo que nos permita identificar al bit como una unidad de información?, ¿hay algo que nos permita establecer, sin temor a equivocarnos, la naturaleza binaria del bit?... trataremos de encontrar respuestas a estas cuestiones, pero antes vamos a abrir un pequeño paréntesis.
En casi todas las ciencias es posible razonar de dos formas: desde los datos hacia las conclusiones –lo que en inteligencia artificial, por ejemplo, configuraría un proceso hacia adelante o progresivo-, o desde las hipótesis hacia los datos –lo que, otra vez, en inteligencia artificial configuraría un proceso hacia atrás o regresivo-. En ambos casos es necesario el conocimiento de que disponemos sobre el dominio, lo que cambia es la forma de utilizarlo. Así, en un razonamiento progresivo partimos de un conjunto de datos y utilizamos nuestro conocimiento para obtener conclusiones válidas. Por ejemplo, si yo sé que mi conocimiento  está constituido por 5 axiomas:

 = {(1), (2), (3), (4), (5)}


donde:
(1) A → B

(2) B y C → D

(3) D y E y F → H

(4) A y Z → V

(5) V y X y G → W
y además sé que el conjunto de los datos de mi problema es:
∆ = {A, C, E, F}
entonces podemos concluir B, D y H sin más que aplicar los axiomas (1), (2) y (3) sobre mi conjunto de datos ∆. Ésta es una forma de razonar progresivamente. Por el contrario, si yo quiero razonar de forma regresiva tengo que asumir una hipótesis de trabajo, digamos D, y utilizar mis axiomas para buscar información que, a través de un proceso evocativo, y contando con las fuentes de información oportunas, me permita confirmar mi hipótesis. En nuestro ejemplo, para confirmar D necesito utilizar el axioma (2), pero en el antecedente de (2) figuran B y C. C está en ∆, pero B no, y lo necesito para confirmar mi hipótesis inicial de trabajo D. B se convierte en una nueva hipótesis de trabajo. Para confirmar B utilizo el axioma (1) que necesita el dato A para poder ser aplicado. Pero A está en ∆, por lo que (1) es aplicable y B es cierto. Una vez sabemos que B es cierto ya sabemos que todos los elementos del antecedente de (2) son ciertos, por lo que demostramos que D es cierto. D deja de ser una hipótesis de trabajo para convertirse en un hecho demostrado. Nótese que el conjunto de axiomas  y el conjunto de datos ∆ son iguales en ambos casos, pero el resultado final no es el mismo. Así, si  es la “información” final que obtengo después de razonar con mis datos y con mis axiomas:

progresivo= {A, C, E, F, B, D, H}



regresivo = {A, C, E, F, B, D}
La diferencia no está en la información utilizada, sino en la forma de utilizar esta información. Algo parecido -aunque sólo sea de lejos- ocurre en física cuando, por ejemplo, estudiamos electromagnetismo. Uno puede empezar con Coulomb y llegar a las ecuaciones de Maxwell, o postular las ecuaciones de Maxwell y llegar a demostrar la ley de Coulomb. En este caso también razonamos de forma distinta.
… pero ¿qué tiene que ver esto con el bit? Pues seguramente nada. Lo único que he querido resaltar es que la información y los conocimientos pueden utilizarse de forma diferente y producir resultados distintos según nos convenga (y si no se lo creen pregúntenselo a los políticos)… ¡Además es divertido!
Cerremos ahora el paréntesis y volvamos con nuestro amigo el bit. Y supongamos que no tenemos ni idea de lo que es un bit; es decir, que no lo hemos definido. ¿Seremos capaces de justificar de forma razonada su existencia o, incluso, de “demostrarla”?
Iremos un poquito más allá. Supongamos que tenemos un problema del cual inicialmente no sabemos casi nada. Concretaremos un poco ese “casi”: sabemos que tenemos un problema, que el problema tiene solución, y que la solución tiene que ser una de las N soluciones posibles en un universo cualquiera. Como aún no sabemos cuál es la solución de nuestro problema todas las ni  N son igualmente probables (cualquier solución posible puede ser la solución). Poco a poco iremos recabando información que será utilizada para descartar algunas de las opciones iniciales de N. A medida utilicemos esta información, más cerca estaremos de la solución. Finalmente, con un poco de suerte, podremos identificarla perfectamente. La figura pretende ilustrar este proceso de “razonamiento”.

Con lo dicho anteriormente ya estamos en condiciones de formalizar la cuestión en términos matemáticos: Sean N posibilidades equiprobables a priori, que puedo expresar con “n” símbolos (uno por cada una de tales posibilidades, soluciones candidatas u opciones). Evidentemente debemos utilizar información para reducir la dimensionalidad de N. Supondremos que toda la información es relevante; por lo tanto, cuanta más información utilicemos más opciones inicialmente posibles descartaremos, y menor será N. Definiremos la cantidad de información  al más puro estilo Shannon:


 = k Ln(N)
en donde “k” es una constante cuyo valor está determinado por la unidad de información empleada.
Ésta es una asunción tan fuerte como la definición por decreto de nuestro amigo el bit, pero ya hemos dicho que no íbamos a inventar nada nuevo, tan sólo queremos razonar de forma distinta.
En la definición de la cantidad de información  el empleo del logaritmo se justifica fácilmente considerando la existencia de dos sistemas independientes (o espacios de soluciones distintos) con N1 y N2 sucesos equiprobables respectivamente. Considerando al sistema globalmente, el espacio de soluciones completo será N = N1 x N2. La situación es análoga a la que ocurre cuando tenemos 2 universos distintos e independientes, U1 y U2, cada uno de ellos con un conjunto definido de elementos, por ejemplo:
U1 = {a, b, c, d}

U2 = {x, y, z, t, v}


Aunque no hace falta, supondremos que cada elemento de U1 y U2 tiene una probabilidad dada de ocurrir: p(a), p(b), p(c), p(d) para los elementos de U1 y p(x), p(y), p(z), p(t), p(v) para los elementos de U2 . De este modo, la probabilidad conjunta de, por ejemplo “a” y “x” será:
p(a  b) = p(a) x p(b)
Pero sigamos con la justificación del logaritmo. Tenemos que hacer compatible el hecho de que N = N1 x N2 con el hecho de que la información es una propiedad aditiva (i.e., la cantidad de información se incrementa a medida que aparecen nuevos elementos de información). Así, puesto que  = k Ln(N), si desarrollamos la expresión resulta que:
 = k Ln(N) = k Ln(N1 x N2) = k Ln(N1) + k Ln(N2) = 1 + 2
… y ya está. Gracias al logaritmo hemos logrado construir algo coherente y bien estructurado. Dicho de otro modo, de paso nos acabamos de cargar el “decretazo” de Shannon según el cual se define el concepto de cantidad de información.
Sigamos ahora con nuestras reflexiones. Decíamos hace ya algunas líneas que: “Sean N posibilidades equiprobables a priori, que puedo expresar con “n” símbolos (uno por cada una de tales posibilidades, soluciones candidatas u opciones)…” Pero, si yo tengo “n” símbolos ¿Cuántos estados equiprobables puedo representar? La respuesta es evidente: N = 2n.
Así, si n = 3 (pongamos por caso: A, B, C), los N estados en principio equiprobables que yo puedo representar son:


No A, No B, No C

No A, B, C

No A, No B, C

A, No B, C

No A, B, No C

A, B, No C

A, No B, No C

A, B, C

De este modo, si utilizamos la equivalencia N = 2n en la expresión definida para la cantidad de información obtenemos que:


 = k Ln(N) = k Ln(2n) = k n Ln(2) = n [k Ln(2)]
Si yo quiero simplificar la expresión y hacer que  = n (recordemos que habíamos definido k como una constante cuyo valor está determinado por la unidad de información empleada), entonces:
k Ln(2) = 1 → k = 1/Ln(2)
Volviendo a la conocida expresión  = k Ln(N), y sustituyendo valores:
 = k Ln(N) = Ln(N)/Ln(2) = Log2(N) = n
… et voilà: ¡Acaba de nacer el “bit”!
El que no se crea que Ln(N)/Ln(2) = Log2(N) puede hacer lo siguiente:
Ln(N)/Ln(2) = a → Ln(N) = a Ln(2) → N = 2ª → Log2(N) = a Log2(2) = a
Interesante …¿verdad?

2. ENERGÍA, ENTROPÍA E INFORMACIÓN
Vamos a plantearnos ahora una cuestión completamente distinta a la anterior, y mucho más cercana a la física tradicional: ¿Existe alguna relación entre la energía, la información y la computación? Le respuesta parece trivial. Los que trabajamos con ordenadores –que hoy en día somos casi todos- sabemos que sí. Cuanto más tiempo estamos conectados (supongamos que trabajando) más información manipulamos, más se calienta el equipo, y durante más tiempo funciona el molesto ventilador del ordenador… La energía (en forma de calor, ruido, etc.) está omnipresente cuando realizamos una computación (si no se lo cree intente realizar algo tan sencillo como una suma con el ordenador desconectado y sin baterías). Esta perspectiva energética de la computación (y recordemos que computamos información) está directamente relacionada con el soporte físico de la misma. En efecto, para realizar una computación es preciso el flujo de electrones a través de cables y dispositivos, lo que genera fricción que se disipa en forma de calor. Para evitar que este calor estropee el equipo debemos refrigerarlo, por lo que instalamos un ventilador que necesita energía para funcionar y que además genera ruido –otra forma de energía-. Además el propio ordenador necesita estar alimentado para poder trabajar con él. ¡Hay energía por todas partes!... pero no es esto lo que nos interesa aquí. Y ya hemos dicho que trataríamos de hablar de la computación en sí misma. Para ello nos acercaremos a las cuestiones energéticas de la computación desde la información que manipulamos1, y poco a poco iremos profundizando en la cuestión.
Consideremos el sistema representado en la figura. En dicho sistema, que está constituido por dos depósitos conectados entre sí por medio de un tubo que se puede abrir o cerrar con una válvula, hay dos tipos de partículas diferentes y perfectamente distinguibles: partículas (x) y partículas (o). La figura representa al sistema en dos estados distintos. En el estado 1 todas las partículas (o) están a la izquierda, todas las partículas (x) están a la derecha, y la válvula está cerrada. En el estado 2 la válvula está abierta y ambos tipos de partículas (o) y (x) se distribuyen homogéneamente en ambos depósitos. Consideremos a nuestro sistema desde una perspectiva macroscópica: Si el número de ambas partículas es grande… ¿cómo podemos evaluar energéticamente la cantidad de información contenida en ambos estados de nuestro sistema?

Vamos a tratar de responder a esta pregunta a través de la mecánica estadística, también denominada termodinámica estadística. En mecánica estadística se define el concepto de entropía del siguiente modo: “La entropía es una medida del desorden de un sistema, igual a la constante de Boltzmann por el logaritmo natural del número de estados microscópicos correspondientes al estado termodinámico del sistema”… ¡Qué curioso! Así que de acuerdo con la definición anterior:
S = k Ln(N)
expresión en la que S es la entropía, k es la constante de Boltzmann, y N es el número de estados microscópicos correspondientes al estado termodinámico del sistema… veamos ¿a qué me suena esto? Recordamos que la cantidad de información definida por Shannon era:
 = k Ln(N)
quizás la “k” y la “N” no sean las mismas en ambas expresiones (o sí, en todo caso no nos importa), pero las ecuaciones son idénticas… debe haber algún nexo de unión entre la entropía y la cantidad de información de un sistema. Sigamos razonando: si la entropía es una medida del desorden de un sistema, está claro que el estado 2 está mucho más desordenado que el estado 1. Dicho de otro modo, hay muchos más estados microscópicos posibles en el estado 2 que en el estado 1 –podemos distinguir perfectamente una partícula (x) de una partícula (o), pero todas las partículas (x) son iguales entre sí. Lo mismo podemos decir de todas las partículas (o). Por lo tanto la entropía del estado 1 es mucho menor que la del estado 2. Si N(1) es el número de microestados del estado 1, y N(2) es el número de microestados del estado 2, entonces:
S(1) = entropía del estado 1 = k Ln[N(1)]

S(2) = entropía del estado 2 = k Ln[N(2)]


Pero en física no tiene mucho sentido hablar de entropías absolutas; por el contrario, se trabaja con incrementos de entropía. Así:
∆S = S(2) – S(1) = k Ln [N(2)] – k Ln[N(1)] = k Ln [N(2)/N(1)]
En esta formulación subyace la asunción de que partimos del estado 1, abrimos la válvula, y dejamos que el sistema evolucione. De este modo las partículas se desordenan, y la entropía del sistema aumenta, por lo que ∆S es positivo. Pero analicemos ahora qué ha pasado con nuestra información. Cuando tenemos a nuestro sistema en el estado 1 sabemos muchas cosas… sabemos que todas las partículas (o) están a la izquierda y que todas las partículas (x) están a la derecha. Abramos ahora la válvula y dejemos que el sistema empiece a evolucionar. Al principio del proceso –es decir, justo después de abrir la espita- podemos saber que “casi” todas las (o) están a la izquierda y “casi” todas las (x) están a la derecha, pero ya hay algunas partículas infiltradas en el depósito que no les toca. Estoy perdiendo información. Cuando el sistema alcanza el equilibrio (lo que –más o menos- quiere decir que, macroscópicamente, ya no evoluciona más) he perdido toda la información. De hecho, si con el sistema en el estado 1 alguien me pidiese que sacara del sistema una partícula (x) iría directamente al depósito de la derecha y sacaría una cualquiera sin fijarme, seguro de que le daba la partícula correcta. Si alguien me pidiese lo mismo con el sistema en el estado 2, iría a uno cualquiera de los depósitos, sacaría una partícula, comprobaría que es una (x) y, en caso contrario, devolvería la partícula al sistema y seguiría probando hasta que el azar quisiera darme por fin una maldita partícula (x).
  1   2   3   4   5   6   7   8   9   ...   23


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal