sábado, 28 de julio de 2012

SETUN, el computador ternario soviético


Desde que comenzaron a construirse dispositivos de cálculo mecánicos, han debido establecerse compromisos de diseño entre la facilidad de utilización y la facilidad de construcción de dichos dispositivos. Por ello, muchas veces los distintos ingenios de cálculo se han alejado de los sistemas de numeración usados para la realización de cálculos manuales. Ya en la antigüedad, los griegos usaban ábacos cuyo concepto era enteramente distinto del de sus sistema de numeración. Cuando comenzaron a construirse máquinas calculadoras, sus ingenieros evaluaron la conveniencia de utilizar sistemas de numeración distintos del sistema decimal. El ejemplo más paradigmático es sin duda el computador digital moderno, que utiliza un sistema de numeración binario.

Pero no siempre los computadores utilizaron el sistema binario. Los primeros computadores construidos en 1945-1946 utilizaban el sistema decimal. Von Neumann fue el que propuso la utilización del sistema binario, el que recién vino a consolidarse en los años 60.

En 1958, bajo la dirección de Nikolay Brusentsov y Sergei Sobolev, se construyó en la Universidad Estatal de Moscú Mikhail Lomonosov, en la URSS, el computador SUTAN, el único computador de la historia basado en el sistema de numeración ternario balanceado. El sistema balanceado ternario usa base tres pero, a diferencia del sistema ternario tradicional, que usa los dígitos 0, 1 y 2, utiliza los dígitos 1, 0 y -1.

SUTAN se programaba en un lenguaje ad hoc, DSSP. El computador estuvo en operaciones hasta 1965, cuando fue reemplazado por una máquina binaria, construída también en la URSS.

En la foto, el computador SETUN.

Calculadoras y algoritmos de cálculo

Cuando usamos una calculadora, queremos obtener un resultado relativamente exacto dentro de un tiempo razonable. Para una exactitud dada, los diseñadores de los circuitos electrónicos de la calculadora implementan aquéllos algoritmos que sean más fáciles de construir y que sean más rápidos.

Tomemos como ejemplo el cálculo del número e, la base de los logaritmos naturales. La definición de e por Jacob Bernoulli (1) en el s. XVII es el límite, cuando n se hace infinitamente grande, de la expresión:

( 1 + 1/n ) ^ n.

En el siglo XVIII, se probó que e es el límite cuando n se hace infinitamente grande de la sumatoria:

sumatoria desde k = 0 hasta n de 1/k!

Para un n dado, la definición de Bernoulli es aparentemente más simple, pues bastan sólo tres operaciones para calcular e: una división (1/n), una suma y una elevación a potencia. En cambio, el método de la sumatoria parece tremendaente engorroso: hay que calcular n+1 términos (desde 0 hasta n), empleando para cada uno una división y el cálculo de un factorial. Tenemos por lo tanto 2(n+1) operaciones, a las que hay que agregar n sumas, para un total de 3n+2 operaciones.

Pero si miramos un poco más de cerca las cosas, veremos que hay un poco más de trabajo en el cálculo de la potencia y del factorial, respectivamente. Un buen algoritmo de potenciación requiere del orden de raiz(n) multiplicaciones para elevar un número dado a n. En el caso del cálculo de n!, se requieren n-1 multiplicaciones; pero como n! se calcula dentro de una sumatoria, se puede usar para cada término k el resultado de (k-1)! obtenido en el término anterior para calcular k! simplemente usando una multiplicación adicional.

En resumen, para calcular e se requieren aproximadamente 2 + raiz(n) operaciones usando la definición de Bernoulli y 4n+3 operaciones usando la sumatoria. Pareciera que todavía el uso de la definición de Bernoulli lleva la delantera.

Pero ahora entra a tallar la precisión del método: por el método de Bernoulli (2), el primer decimal exacto de e se obtiene para n=74 (o sea, aprox. 11 operaciones); el método de la sumatoria llega a su primer decimal exacto para n=4 (19 operaciones).

Para llegar a su segundo decimal exacto, por Bernoulli necesitamos n=164 (15 operaciones), mientras la sumatoria requiere n=5 (23 operaciones).

A partir del tercer decimal exacto, el método de la sumatoria toma ventaja sobre Bernoulli: Bernoulli requiere n=4822 (72 operaciones), mientras que la sumatoria requiere n=6 (27 operaciones). Para el cuarto decimal, Bernoulli requiere n=16.600 (131 operaciones), mientras que la sumatoria requiere n=7 (31 operaciones). Para el quinto decimal, Bernoulli requiere n=744000 (864 operaciones), mientras la sumatoria necesita sólo n=9 (37 operaciones).

Con n=15, el método de la sumatoria permite obtener 12 decimales exactos. El de Bernoulli, para todos los efectos prácticos, está limitado a una precisión de seis decimales, a causa de los inevitables errores de redondeo y truncamiento y su propagación, que se producen al representar decimales no exactos (como 1/3.000.000) en el espacio limitado de un circuito electrónico.



Notas:
(1) Bernoulli descubrió que la expresión (1+1/n)^n convergía a una cantidad, aunque el no usó la letra e para denotar dicha cantidad; el uso de "e" fue obra de Euler, a principios del s. XVIII.
(2) En este artículo usamos la expresión "el método de Bernoulli" para denotar el cálculo de e usando la expresión (1+1/n)^n descubierta por Bernoulli. No hay un método formal llamado "Método de Bernoulli".