16 feb 2018

Del dedo al bit

Un bit es un interruptor, una cabeza girada o un dedo de tu mano. Si escogemos buenos ejemplos, descubriremos que el críptico bit es un concepto muy sencillo y potente, pero que no siempre tuvo el monopolio de la computación... ¿Has oído hablar del trit? ¿Existen ordenadores ternarios? Y, aunque parezca que no tiene nada que ver, ¿sabrías contar hasta 59000 con los dedos de las manos?


Para desembarrar el camino, es fundamental separar la fácil noción de bit (que es simplemente un dígito del sistema binario) de su implementación física (los representamos mediante sistemas que admitan dos estados: como los pozos y llanos de un CD o dos niveles de intensidad de corriente).

Los bits más intuitivos son los diez que tienes en las manos, que además de servir para saludar, señalar o escribir, valen para contar. De hecho, decir meramente que valen para contar es quedarse corto, porque fueron durante muchísimo tiempo las herramientas matemáticas más comunes, tal y como atestigua la palabra dígito (dedo en latín). Otro vestigio de los orígenes del cómputo es el término cálculo, que refleja el empleo de piedrecitas (base de instrumentos como el ábaco, que a pesar de sus 2000 años de edad seguía dando guerra a mediados del pasado siglo, cuando un japonés usando un ábaco logró hacer varias operaciones más rápido que un estadounidense con calculadora).

Pero hemos de operar de manera diferente a la habitual si queremos contar en binario, porque hay que tener en cuenta la posición: si alzamos dedos distintos, representaremos números distintos (cotidianamente, levantar cualquier dedo simboliza 1; aunque el corazón tiene implicaciones que escapan a lo aritmético). Para terminar de habilitarlos como bits, nos queda añadir la regla básica del binario: el dedo por el que empecemos a contar (vamos a elegir el meñique izquierdo) suma 1 (20) si está levantado; el siguiente (anular izquierdo), 2 (21); el corazón, 4 (22) y así hasta terminar en el meñique derecho que sumaría 512 (29). Así que si, por ejemplo, quisiéramos contar 7 deberíamos levantar los tres primeros dedos.

Esta regla hace que contar hasta 10 sea mucho más complicado que como lo solemos hacer, pero permite representar 210 números, lo que (como empezamos por el 0) significa que podemos contar hasta 210 - 1 = 1023.

Como curiosidad (y clickbait de rigor), sería posible utilizar nuestros dedos como trits y contar en ternario (un sistema de numeración con 3 dígitos o posiciones, que serían dedo completamente subido, sólo la falange proximal subida y dedo bajado). Si empleamos este sistema tan engorroso pero posible, podríamos contar hasta la increíble cifra de 310 - 1 = 59048 sólo con los dedos de las manos.

Para que no haya equívocos con el término falange. Como podéis observar, aún podríamos complicar más la cosa deshaciéndonos de los pulgares y empleando las 4 posiciones posibles del resto de dedos (bajado, falange proximal levantada, falange media (y proximal, claro) levantada y todo el dedo levantado). A pesar de perder dos dedos, este sistema de 8 "bits cuaternarios" (¿tetrits? ¿cuatrits?) nos permite llegar más lejos que el de 10 trits, porque 48 = 65 536).

Como ves, cualquier sistema capaz de permanecer en dos estados (hasta que lo modifiquemos) nos sirve para almacenar información en forma de bits. Y casi todo puede ser interpretado de manera binaria, incluso hechos tan peregrinos como si miras a cámara en una foto. A los Friedman, una genial pareja de criptógrafos, les encantaba la frase Knowledge is power; muy propia de su disciplina, que emplea múltiples habilidades matemáticas y lingüísticas para proteger (o conseguir, según tu bando) datos sensibles que sirven para ganar guerras, evitar atentados o modelizar el comportamiento de las masas y manipularlas eficientemente. Les gustaba tanto que, además de plasmarla en su tumba (escrita de forma que, a su vez, contenía otro mensaje, descubierto recientemente), la ocultaron en la foto de graduación de un curso de criptografía militar que impartieron en 1918:


Imagen tomada de una bella entrada sobre la tumba de Friedman. Parece la típica imagen conspiranoica de esas que encuentran triángulos iluminati en los nachos y a un reptiliano en el guacamole, pero no lo es.




La técnica que usaron los Friedman para este guiño fue más bien esteganográfica (esconder un mensaje en un sitio inesperado) que criptográfica (hacer que el mensaje sea incomprensible). Transmitieron información mediante bits que no suelen ser considerados como tales: si alguien mira a cámara, se le asocia la letra A. A quien no mira a cámara, la B. El resto está chupado, a cada grupo de 4 bits (A's y B's que bien podrían ser unos y ceros) le asociamos una letra, tal y como se le ocurrió a Francis Bacon (criptógrafo y esteganógrafo pionero, que según varios frikis escribió obras atribuidas a Shakespeare hace cuatro siglos y las firmó secretamente de formas que me parecerían demasiado cutres para un experto de su talla).


Mola la idea, ¿eh?
Cuando observamos la foto, nos damos cuenta de que hay gente que mira a la derecha de la cámara y otros a la izquierda, lo cual no debería ser casual en una foto tan planeada. ¿Será también interpretable como trits y esconderá otro mensaje aún sin descubrir?

¿Por qué dos?

Llegados a este punto, tendría sentido preguntarse por qué la totalidad del mundo digital está basada en el bit. No esperéis una respuesta rotunda, probablemente se deba a una combinación de factores teóricos y prácticos.

El más evidente es la simplicidad: el binario es la forma más sencilla de representar números (el unario, que sería equivalente a nuestra forma habitual de contar levantando cualquier dedo, es claramente muy ineficiente).

Además, viene como anillo al dedo al álgebra de Boole, la lengua en la que piensan los ordenadores, porque las variables booleanas sólo pueden tomar dos valores: verdadero y falso (o nada y universo, tal y como propuso inicialmente Boole). Esta estructura algebraica es idónea para realizar operaciones lógicas e ilustra la conexión entre software y hardware: los condicionales booleanos if, else y compañía son la base de todo código; mientras que su traducción física, las puertas lógicas (otras descendientes directas del trabajo de Boole), son los ladrillos con los que se construye cualquier procesador.

Desde el punto de vista pragmático, hay menos probabilidad de errores si sólo tenemos en cuenta los dos valores extremos del sistema que si consideramos las cantidades intermedias como un tercer estado (se reduce el rango de tolerancia de cada estado). Además, una vez que nos hemos decantado por el binario, ¿quién estaría dispuesto a construir una máquina a base de trits, abocada a la incompatibilidad total con el resto del universo electrónico?

El misterioso Setun, según Atomic Toasters

Pues un ruso soviético, cómo no.

Hace seis décadas, Sobolev y Brousentsov, unos valientes investigadores de la Universidad Estatal de Moscú se aventuraron a construir el Setun, el último ordenador ternario de la historia (basado, cómo no, en una lógica trivalente alejada de la dualidad booleana). La información sobre el mismo es escasa, siendo mi fuente más extensa un artículo del propio Brousentsov, en el que habla maravillas del mismo y culpa de su fracaso (sólo se produjeron 50) a la rigidez burocrática soviética.

Os dejo con su versión:

Such testing was passed in Apr. 1960 very successfully. The computer demonstrated unusual for that times reliability and stability of operation in wide range of ambient temperature and supply voltage. It was found that the computer is rather simple both in manufacturing and in service, suitable for wide range of applications. "Setun" was recommended for production.
Unfortunately the officials of the computer production in the USSR had negative position about non-planned and unusual "fruit of university fantasy". Instead of supporting the innovation and taking a possible profit they permanently attempted to annihilate "ugly duckling". There were many orders of "Setun", including ones for export, but only 10-15 computers were produced annually and none of them was exported aboard. The planned manufacture of "Setun" in Czechoslovakia was also broken. At 1965 the manufacturing of "Setun" was stopped in spite of unsatisfied requests. It was replaced by a binary computer of the same performance but more than 2.5 times more expensive.
Brousentsov N. P., Maslov S. P., Ramil Alvarez J., Zhogolev E.A.





Fuentes, comentarios y lectura recomendada

Feynman también desafió al ábaco, como cuenta en ¿Está usted de broma, señor Feynman?, sólo que él no usó calculadora, sino su mente. Creo recordar que salió victorioso en varios cálculos utilizando atajos ingeniosos que escapaban a la rigidez mecánica del ábaco.

El byte, normalmente integrado por 8 bits ordenados, suele tener más protagonismo que el bit (el GB, mil millones de bytes, es la unidad de memoria más popular) porque es más cómodo considerar una cantidad mayor de bits como unidad mínima (un byte tiene 256 estados distintos, por lo que permite codificar todos los caracteres, por ejemplo).

Sobre la tumba de los Friedman:

https://nakedsecurity.sophos.com/2018/01/22/famous-cryptographers-tombstone-cryptogram-decrypted/

Sobre el Setun:

http://www.computer-museum.ru/english/setun.htm



https://en.wikipedia.org/wiki/Setun

https://mason.gmu.edu/~drine/History-of-Ternary-Computers.htm

Sobre el ternario:

https://stackoverflow.com/questions/764439/why-binary-and-not-ternary-computing

https://es.wikipedia.org/wiki/Sistema_ternario

Etimologías y cálculo primitivo:

https://es.wikipedia.org/wiki/%C3%81baco#El_%C3%A1baco_en_la_actualidad

http://etimologias.dechile.net/PIE/?deik

http://etimologias.dechile.net/?dedo

http://etimologias.dechile.net/?calcular

Donde habitan los bits:

https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording

https://es.wikipedia.org/wiki/Disco_compacto#Lectora

Boole, Turing,...

https://en.wikipedia.org/wiki/Boolean_algebra

https://en.wikipedia.org/wiki/Turing_machine

https://es.wikipedia.org/wiki/%C3%81lgebra_de_Boole#Historia 

http://noahkennedy.net/george-boole-the-holy-trinity-and-the-birth-of-the-computer/

http://www.bbc.com/news/blogs-magazine-monitor-30376235



No hay comentarios:

Publicar un comentario