Utilizamos cookies propias y de terceros para mejorar nuestros servicios y facilitarte el uso de la web mediante el análisis de tus preferencias de navegación. También compartimos la información sobre el tráfico por nuestra web a los medios sociales y de publicidad con los que colaboramos. Si continúas navegando, consideramos que aceptas nuestra Política de cookies .

Inteligencia artificial

Génesis de la ciencia de la computación.

IT BEGAN WITH BABBAGE. THE GENESIS OF COMPUTER SCIENCE
Por Subrata Dasgupta. Oxford University Press, Oxford, 2014.


En cuanto disciplina científica, la ciencia de la computación ocupa un lugar singular, pues se mueve en el terreno de la física experimental y en el plano de la abstracción. El software es, a un tiempo, tangible e intangible, fronterizo. El estudio y la producción de artefactos fronterizos permiten posibilidades creativas que solo se dan en ciencia de la computación. Puesto que todos los dispositivos de ese dominio se conciben con un uso in mente, el científico de la computación no se preocupa tanto de las leyes naturales que gobiernan la física o la química, cuanto de la noción de propósito, de lo artificial.

El intervalo histórico abordado aquí transcurre de 1819 a 1969. En 1819 Charles Babbage (1791-1871) dio los primeros pasos hacia el diseño de una máquina que liberase al hombre de farragosas rutinas aritméticas, capaz de calcular y producir, por sí misma, tablas matemáticas. Así se inició la idea de computación automática (computación sin intervención humana) y se abrió el surco de una nueva disciplina científica que a finales del decenio de los sesenta del siglo XX vendría a llamarse ciencia de la computación.

Gottfried Wilhelm Leibniz (1646-1716), recordado como coinventor, con Newton, del cálculo diferencial, quería que los astrónomos se dedicaran a observar y dejaran los cálculos a las máquinas. Construyó, igual que su contemporáneo Blaise Pascal (1626-1662), una máquina de calcular. La máquina de Pascal podía sumar y restar, la de Leibniz multiplicaba y dividía también. El filósofo y matemático alemán se adelantó a la Revolución Industrial, cuyos inicios se dieron en el ecuador del siglo XVIII cuando el desarrollo de máquinas empezó a transformar sociedades, economías y mentalidades, aunque el uso del vapor para el movimiento automático de las máquinas comenzó en 1712 con Thomas Newcomen (1663-1727), invención a la que siguió la del condensador en 1765 por James Watt (1738-1819). La máquina de vapor se convirtió en el símbolo del nuevo poder. La idea de Leibniz, combinada con el nuevo ingenio, despertó en algunas mentes del siglo XIX el deseo de un cálculo o cómputo automático que liberase al hombre de una tarea tediosa. Entre los seducidos, Charles Babbage.

En su Passages from the life of a philosopher, libro de memorias publicado en 1864, Babbage recuerda que contactó con la obra de Leibniz en su etapa estudiantil, por los años 1812 o 1813, cuando halló una tabla de logaritmos. A comienzos de 1819 abordó el proyecto de su primera máquina de cómpu­to, «el mecanismo de diferencias». Era su propósito que la máquina fuera realmente automática, es decir, que una vez introducidos los números, procediera a operar por el movimiento de un resorte, la caída de un peso u otra fuerza constante. Además, la máquina tenía que ser precisa, no solo en la generación de números, sino también en las tablas impresas. La mecanización de la preparación de las tablas matemáticas liberaría el trabajo humano, aceleraría el proceso, eliminaría la falibilidad humana y sustituiría esta por la infalibilidad de la máquina. El método de las diferencias ofrecía un principio general por el que pudieran computarse todas las tablas mediante un proceso uniforme. En 1822, Babbage construyó un prototipo de mecanismo de diferencias para demostrar la viabilidad de su principio.

Pero el mecanismo de diferencias no alcanzaba la generalidad deseada. Babbage quería construir un artilugio que pudiera realizar todo el análisis matemático. En matemática, el estudio de los procesos infinitos, o funciones transcendentales, se denomina análisis. El mecanismo de análisis sería, pues, una máquina mucho más ambiciosa. En el mecanismo analítico, el cómputo de cada función viene determinado por una secuencia ordenada de operaciones aritméticas sobre valores de las variables. Esa secuencia de operaciones (los programas en los dispositivos actuales) puede codificarse como pautas de agujeros en tarjetas perforadas. La máquina lee un conjunto particular de tarjetas perforadas y realiza la secuencia de operaciones que representan. Mediante la modificación del conjunto de tarjetas perforadas, se emprende una secuencia de operaciones diferente, correspondiente a una computación matemática distinta. Babbage avanzó el primer esbozo de una computación automática universal.

En 1890, Herman Hollerich (1860-1929), estadístico, defendió la tesis In Connection with the electric tabulation system which has been adopted by U.S. Government for the work of the census bureau, en la Escuela de Minas de la Universidad de Columbia. Esa tesis doctoral fue el primer trabajo académico que suponía el reconocimiento de la computación automática como una disciplina respetable.

Hollerich inventó un sistema eléctrico de tabulación. En 1896 fundó Tabulating Machine Company, empresa que en 1911 se fusionó con la Computing Recording Company (CTR) cuya dirección recayó, en 1914, en Thomas J. Watson (1874-1956). Watson cambió el nombre de la subsidiaria canadiense de la compañía en International Business Machines (IBM) en 1917. La propia compañía matriz, CTR, pasó a llamarse IBM en 1924.

Por su parte, las funciones básicas del procesamiento de datos evolucionarían y se crearían nuevas máquinas para ejecutarlas. Tabuladores, calculadores y otros mecanismos eran programables. El sistema de procesamiento de datos con tarjetas perforadas de Hollerich iba mucho más allá del cálculo: comparaba, ajustaba, mezclaba e imprimía. Tales operaciones no alteraban las estructuras simbólicas que procesaban.

Al otro lado del Atlántico, Percy Ludgate (1883-1922) no había olvidado a Babbage. Entendía que una máquina analítica debía contar con los medios para mantener o almacenar los datos numéricos que servían de input para el problema de interés y los resultados producidos por la computación. Debía poseer los medios para enviar pares de números a la unidad que realiza las operaciones aritméticas y para seleccionar de entre los números almacenados los correctos sobre los que operar, además, debía tener capacidad para identificar las operaciones indicadas con tales números escogidos.

No debemos disociar el despegue de la ciencia de la computación de la teoría general sobre autómatas del ingeniero español Leonardo Torres y Quevedo (1852-1936). Escribió en 1915 un ensayo sobre máquinas que, movidas por su propia energía, imitan el comportamiento humano o animal, y realizan su actividad, por lo común reiterativa, sin intervención externa. Una máquina autómata es un sistema adaptativo, que acomoda su comportamiento a las circunstancias cambiantes.

En sus Fundamentos de la matemática, David Hilbert (1862-1943) se preguntaba si la matemática era completa (¿se podía demostrar o rechazar todo enunciado matemático?), consistente y decidible. Hilbert creía que la respuesta era afirmativa siempre. Kurt Gödel (1906-1978), sin embargo, mostraría que los sistemas axiomáticos presentan ciertas limitaciones inherentes, que no es posible una axiomatización completa ni siquiera de la aritmética de los números enteros. Gödel demostró que es imposible establecer la consistencia interna de un amplio espectro de sistemas matemáticos, aritmética incluida; es decir, que no había forma de garantizar que un sistema se halle exento de contradicciones internas. Mostró que existían proposiciones verdaderas en aritmética, cuya certeza podía establecerse recurriendo a conceptos foráneos a la aritmética que no podían demostrarse dentro del sistema de axiomas de la aritmética. Estableció el problema de la indecidibilidad: en un sistema matemático hay proposiciones que no pueden ni demostrarse ni refutarse.

Por el tiempo en que Gödel presentaba sus resultados, Alan Turing (1912-1954) preparaba su graduación en la Universidad de Cambridge. Se centró en el problema de la decisión de Hilbert. Su primer artículo, «On computable numbers with an application to the Entscheidungsproblem», apareció a finales de 1936 en los Proceedings de la sociedad matemática londinense. Por números computables entendía números reales cuya parte decimal era calculable por medios finitos. Esbozó la secuencia de procesos, de operaciones atómicas, que sigue la mente en el cálculo o computación. Y trazó una analogía entre la mente y una máquina que remedara esos pasos, una máquina de computación, como la denominó él, o una máquina de Turing, como la llamamos en su honor. El vocablo computador, que designaba la persona que realizaba un cálculo, pasó a significar la máquina. Así denominaron su creación George Stibitz y Samuel B. Williams. Su «computador complejo» llevaba a cabo operaciones aritméticas sobre números complejos (números de la forma a + ib o aib, donde a y b son números reales e i, igual a la raíz cuadrada de menos 1, es un número imaginario), cálculos necesarios para el diseño de redes para telefonía.

Con el título A symbolic analysis of relay and switching circuits, Claude Shannon (1916-2001) presentaba en 1937 su tesis sobre ingeniería eléctrica en el MIT. Trazaba una analogía entre la idea básica en cálculo proposicional (o, equivalentemente, en álgebra de Boole) y el comportamiento básico de circuitos relé. Shanon inventó, con Warren Weaver, una rama de la matemática que se llamaría teoría de la información, que puso los fundamentos teóricos de la comunicación. A instancias del director del Philosophical Magazine escribió un artículo sobre programación de un ordenador que pueda jugar al ajedrez. Apareció en marzo de 1950. Señalaba que el problema del ajedrez estriba, por un lado en unas reglas y un objetivo perfectamente definidos y, por otro, en la dificultad que entraña alcanzar ese objetivo del jaque mate.

La expresión cerebro electrónico comenzó a adquirir predicamento desde la creación del ENIAC (acrónimo de Electronic Numerical Integrator and Computer) en 1946, al que le precedió el Colossus, construido dos años antes. El ENIAC empleaba 18.000 tubos de vacío de 16 tipos; 70.000 resistores, 10.000 capacitadores, 1500 relés y 6000 conmutadores manuales. En la preparación del ENIAC había trabajado John von Neumann (1903-1957) con el diseño de la programación y con la notación del diagrama de flujos. La imponente máquina constaba de cuatro clases de unidades: unidades input/output, memoria de lectura/escritura, unidad de cómputo y unidad de control. Un paso determinante en los primeros años cincuenta fue la creación de lenguajes. Se impuso el FORTRAN (abreviatura de Formula Translator) para IBM. Se trataba de un programa que no solo ejecutaba los programas codificados a mano, sino que facilitaba la producción de otros mucho más complejos.

Cierra el período abarcado por el libro la obra canónica de Donald Knuth: sus Fundamental algorithms (1968) y Seminumerical algorithms (1969). El concepto de algoritmo nos evoca un procedimiento efectivo, un conjunto de reglas de comportamiento, cuyas características distintivas serían la finitud, definición, input y ouput y efectividad.

Puedes obtener el artículo en...

Los boletines de Investigación y Ciencia

Elige qué contenidos quieres recibir.