El Año de Turing

El Año de Turing

La informática a la que recurrimos para tuitear o hacernos una resonancia magnética es en esencia Alan Turing, uno de los científicos más importantes de la Historia. Fue un hombre generoso que afrontó con genialidad lógica horrores como el Nazismo pero al que el mundo devolvió sólo injusticia. Acercamos su obra a los lectores para que comprueben lo importante que fueron sus aportaciones. Creó la Informática tal y como la conocemos.

John tiene razón

Por: | 20 de junio de 2013

PABLO NOGUEIRA

Turing
El Test de Turing y la Habitación China de John Searle han sido comentados en entradas anteriores de este blog. Esta entrada trata de por qué el argumento de la Habitación China de Searle es una presentación insatisfactoria de una seria objeción al Test de Turing, y por extensión a la Teoría Computacional de la Mente.

Recordamos brevemente el argumento de Searle:

Tenemos un operador humano sin ningún conocimiento del lenguaje chino dentro de una habitación. El operador recibe a través de una ventanilla de entrada hojas de papel escritas en chino. El operador sigue al dedillo un libro de instrucciones que le indica el texto que debe escribir a partir del texto recibido. El operador desliza la hoja de papel con el texto resultante por la ventanilla de salida, y se repite el proceso.

Fuera de la habitación hay una persona, el «juez» (que podríamos llamar también el «intérprete») que, Searle da por supuesto, está convencida de que está conversando con otra persona china dentro de la habitación. Sin embargo, la persona dentro de la habitación no entiende chino, sólo produce símbolos a partir de símbolos, según le indican las instrucciones del libro.

John_Searle_cortoSearle establece la siguiente analogía: una computadora es como el operador dentro de la habitación. Sigue un libro de instrucciones, un programa. No entiende el significado de los símbolos. Solamente manipula sintaxis. Por lo tanto, la manipulación sintáctica de símbolos no es suficiente para explicar el entendimiento del significado de los mismos. Más llanamente: si una computadora pasa el Test de Turing de chino, no tiene por qué saber realmente de lo que está hablando.

Antes de continuar es preciso aclarar algunos aspectos importantes:

  • En su argumento, Searle usa la palabra «semántica» en vez de «entendimiento». También dice que las mentes humanas «tienen semántica» y «contenidos mentales», que los cerebros tienen «poderes causales», etc. No estoy interesado en esa terminología. Entiendo que Searle la usa de forma intuitiva, y por tanto yo también deseo usar «entendimiento» de forma intuitiva. Ciertamente sería idóneo poseer un significado preciso de «entendimiento». La cuestión es si la manipulación de símbolos sintáctica es suficiente como significado de dicha palabra. Al introducir su terminología Searle está intentando dar una explicación alternativa pero insatisfactoria al entendimiento.
  • El problema de los argumentos ideales es que introducen ruido, oportunidades para debates interminables sobre terminología, sobre las inexactitudes inconsecuentes, o sobre las particularidades del escenario. ¿Es el libro de instrucciones una metáfora adecuada de un programa? ¿Cómo puede elegirse una única respuesta de entre las infinitas posibles? ¿Cómo hace el operador para encontrar la respuesta? ¿Qué significa «significado»? ¿Son «semántica» y «significado» la misa idea? En esta entrada no ahondaré en estos aspectos que, como veremos, son irrelevantes.
  • Hay una objeción biológica al argumento de Searle que atribuye importancia al medio en el que se forman los símbolos. Pero el medio es irrelevante. Los símbolos pueden ser garabatos en papel, caldos moleculares, patrones de bits en la memoria de una computadora, etc. Se trata de una noción de símbolo bastante concreta: algo que el juez es capaz de interpretar como chino.
  • Hay una objeción de sistemas mucho más interesante que dice que el operador no entiende chino porque el entendimiento ocurre en el libro, o más precisamente, en la ejecución de las reglas del libro por el operador. La respuesta de Searle a esta objeción es decepcionante: «aunque el operador memorice el contenido del libro, sigue sin entender chino». Ciertamente, pero esa no es la cuestión. Los programas se almacenan en las memorias de las computadoras. La cuestión es si el programa (en ejecución) entiende chino. Las computadoras son diseñadas para ejecutar programas, una tarea que no requiere entendimiento de chino, más bien (y afortunadamente) no requiere entendimiento de nada. Técnicamente, la computadora es un actor irrelevante. (La idea de Sistema Formal Automático [2], un sistema formal de reglas que ejecuta las reglas por sí mismo y está construido en soporte físico, es quizás un concepto más preciso.) Podemos decir, por extensión o analogía, que una computadora entiende chino, pero lo que realmente decimos es que la computadora ejecuta un programa que entiende chino. Basta con que Searle responda a esta objeción diciendo que la ejecución de reglas por el operador sigue sin explicar el entendimiento del chino.
  • Curiosamente ambas respuestas presuponen que el intérprete es convencido. Pero la afirmación «si un programa convence a un juez de que entiende chino entonces debemos concluir que entiende chino» es una implicación. La premisa no ha sido realizada. Además, el entendimiento no tiene que ser una consecuencia inexorable de un comportamiento adecuado. Basten como contraejemplo los innumerables trabajos en Inteligencia Artifical «suave» (soft AI). Muchos propietarios del perrito robot AIBO de Sony le atribuyen capacidades que los fabricantes niegan categoricamente. Existen programas que realizan tareas mejor que los humanos pero que no entienden dichas tareas.

He aquí una versión más sencilla del argumento de la Habitación China:

Una calculadora no entiende el concepto de suma.

Calculadora-chinaSegún la objeción de sistemas, el entendimiento de la suma se encuentra en las reglas de la suma. La calculadora pasa de sobra el Test de Turing Aritmético, convence al juez de que entiende el concepto de suma, pues sabe sumar. Searle nos dice que el entendimiento no se encuentra en las reglas de la suma. Sólo son reglas que permiten a la calculadora comportarse como si las entendiera.

Algo parece faltar en las reglas de la suma y en las hipotéticas reglas del arte de conversar en chino. Si bien la escala es diferente, ambas se construyen utilizando las mismas piezas de acuerdo a la Tesis Church-Turing.

Dejando a un lado el factor importante de la decibilidad y la computabilidad, cualquier programador sabe que sus programas no entienden lo que hacen. Una cosa es atribuir entendimiento a los programas como convencíon de lenguaje: «el programa elige una frase», etc. Otra diferente es reducir el entendimiento a la ejecución del programa: «elegir una frase es ejecutar el programa de elección de frases».

Para entender el entendimiento debemos mirar dentro de la habitación. No basta con atribuciones operacionales. No debería ser necesario justificar ésto invocando un super-libro de reglas de chino. Eso es ciencia ficción. Como no entendemos cómo se puede tener entendimiento en un mundo sintáctico, decidimos que la sintaxis es todo lo que hay. Como los conductistas que afirman que sólo existe el comportamiento. La Teoría Computacional de la Mente parece razonable. Entender chino debe explicarse según el funcionamiento del cerebro, donde observamos procesos electro-químicos, organizaciones celulares, y diferentes niveles de abstracción. El cerebro se parece a una computadora. Se «parece». ¿Pero cómo se explica el entendimiento? ¿Y la conciencia?

A pesar de lo que se venda, nadie sabe cómo. La Teoría Computacional de la Mente no es una teoría. Es una hipótesis. Razonable, con evidencia favorable, pero hipótesis.

Existen programas capaces de derrotar a grandes maestros en el ajedrez. Esto no significa que el cerebro de un gran maestro cuando juega al ajedrez es uno de esos programas. Lo llamativo es que el gran maestro puede competir con uno de esos programas, utilizando la misma «máquina» que utiliza para lavarse los dientes. Es razonable suponer una analogía entre la máquina del gran maestro y el programa. Pero también es una duda razonable que quizás no se trata de un problema de escala y que hay muchos factores que todavía se nos escapan. (Esta falta de conocimiento no justifica las otras cajas negras causales como el alma, que carecen de mucha más evidencia favorable.)

Turing fue práctico: podemos utilizar un test operacional para atribuir X a una máquina, pues ahora mismo no sabemos cómo atribuir X de otra forma que operacionalmente. Searle nos recuerda que una atribución basada en un test operacional es sólo una atribución, no una caracterización. John tiene razón que para entender X debemos mirar dentro de la habitación.

Pablo Nogueira es profesor ayudante doctor de la Universidad Politécnica de Madrid

-----------------------

[1] Searle, J. (1980). Mind, brains and programs, Behavioural and Brain Sciences 3, pp. 417-424.

[2] Haugueland, J. (1985). Artificial Intelligence: The Very Idea. MIT Press.

Alan Turing: El descifrado de la máquina Enigma

Por: | 06 de junio de 2013

JOSEP M. MIRET

Turing1
Muchos han sido los artículos que se han publicado con motivo del centenario del nacimiento de Alan Turing (1912-1954), así como los actos que se han organizado. En este blog también se han abordado distintos aspectos de sus aportaciones y se han destacado sus ingeniosas ideas. Uno de sus logros más extraordinarios ha sido sin duda alguna su labor como criptoanalista. Durante la segunda guerra mundial, su colaboración con el servicio secreto británico condujo a descifrar los códigos producidos por la máquina criptográfica del ejército alemán denominada Enigma. En este artículo nos vamos a centrar pues en los procesos de cifrado y descifrado de esta máquina.

La máquina Enigma

Enigma1Después de la primera guerra mundial, el inventor alemán Arthur Scherbius y su amigo Richard Ritter fundaron una empresa de ingeniería y crearon la máquina Enigma con la finalidad de venderla no solo al ejército sino también a muchas empresas del país. La máquina iba en una caja de dimensiones 34cm x 28cm x 15cm y pesaba unos 12 kg.

Seguir leyendo »

Robots y seres humanos: Los vínculos se estrechan

Por: | 22 de mayo de 2013

CARME TORRAS

ICRA 2013En el marco del IEEE Conference on Robotics and Automation (ICRA'13) celebrado del 6 al 10 de mayo en Karlsruhe tuvieron lugar tres foros abiertos al público general, dedicados a la industria, la ciudadanía y la ciencia, respectivamente. Este último, organizado por los Profs. Yoshihiko Nakamura y Giulio Sandini, estuvo centrado en la confluencia de la Robótica con las Humanidades.

Robótica y HumanidadesEn la presentación del evento, el Prof. Sandini hizo una breve referencia a la celebración del año Turing y al test tratado previamente en diversas entradas de este blog: 8-11-2012, 6-12-2012, 13-12-2012, 24-1-2013. Habida cuenta del contexto,  planteó una adaptación del test de Test de Turing y robotsTuring a la robótica, en donde se trataría de decidir si dentro de un robot humanoide hay una persona manejándolo o no. Véase la foto adjunta, en cuyo pie se lee “Sistemas que pueden pasar el test de Turing basado en comportamientos” (en lugar de basado en textos escritos, como en el test original), y la mujer piensa “Hay un hombre dentro!”. Ello va en la línea de las investigaciones recientes que resaltan que la verdadera inteligencia ha de ser corpórea, encarnada (“embodied”).

Seguir leyendo »

De Blaise Pascal a Maurice Wilkes

ALBERTO PRIETO ESPINOSA

En la conmemoración del centenario del nacimiento de Alan Turing, muy merecidamente se han destacado las dotes de este extraordinario personaje. Me mueve a escribir estas líneas pensar que muchas personas erróneamente crean que la contribución europea al desarrollo de las primeras máquinas de calcular y computadores se circunscribe al loable trabajo de Turing; cuando ha habido otros pioneros, algunos coetáneos a él, que también destacaron por su inteligencia e imaginación en este campo. Voy a referirme básicamente a aspectos de ingeniería, a máquinas en sí, no a aspectos teóricos.

La historia reconoce que las primeras máquinas de calcular, basadas fundamentalmente en ruedas dentadas y engranajes, fueron desarrolladas en Europa, destacando las siguientes contribuciones:

  • Blaise Pascal (1624) ideó y construyó la primera calculadora mecánica para sumar y restar (Pascalina). La desarrolló para ayudar a su padre que era recaudador de impuestos de la alta Normandia, nombrado por el cardenal Richelieu.
  • Gottfried W. Leibnitz (Leipzig) en 1671 concluyó una máquina
    que, Aritmómetromediante el uso de cilindros escalonados, incluía por primera vez el producto y la división
  • Charles Xavier Thomas de Colmar (Francia) patentó 
    el 18 de noviembre de 1820 el Aritmómetro, que fue la primera calculadora de sobremesa capaz de realizar las cuatro operaciones básicas de forma sencilla y sin errores con resultados de hasta 12 cifras.

Mención aparte merece Charles Babbage que ideó en 1837 su Máquina Analítica, e introdujo conceptos fundamentales como:

  • Máquina AnalíticaLa definición de una estructura funcional para las máquinas de calcular: almacén (lo que hoy denominamos “memoria”), taller (en la actualidad “unidad aritmético-lógica”), y unidades de entrada y salida.
  • La noción de programabilidad de la máquina, por medio del
    encadenamiento automático de secuencias por medios
    mecánicos.

BrunsvigaEn 1982 la empresa alemana GNC (Grimme, Natalis & Co.) diseña la calculadora mecánica de sobremesa “dupla” Brunsviga, siendo de las más utilizadas en el mundo desde 1885 hasta la década de los 1950. En 1955 la empresa ocupaba a más de mil personas y hasta 1957 se fabricaron más de 500.000 de esas máquinas en varios modelos.

 El AjedrecistaDentro de los sistemas mecánicos de cálculo que se concibieron en aquella época conviene hacer referencia a la contribución del español Leonardo Torres Quevedo (1852-1936). En la línea de Babbage trabajó en la construcción de máquinas automáticas de cálculo analógico, siendo celebre su estudio sobre “máquinas algebraicas” que presentó en las academias de ciencias española (1893) y francesa (1900). En la Feria Mundial de Paris de 1914 presentó una máquina (El Ajedrecista) que jugaba automáticamente un final de rey y torre contra el rey de un oponente humano.  Siempre ganaba, pero no en un número mínimo de movimientos. El 6 de noviembre de 1915 en la revista Scientific American se citaba a este trabajo como "Torres and His Remarkable Automatic Device“.

Sin lugar a dudas dos de los europeos que más contribuyeron en el desarrollo de los primeros computadores fueron el alemán Konrad Zuse (1910-1995) y el inglés Maurice Wilkes (1913-2010). Zuse trabajó en la  Ford Motor Company y en la Henschel Aircraft Factory ubicadas en Berlin-Schönefeld. Su trabajo requería realizar muchos operaciones matemáticas a mano, lo que le llevó a proyectar sistemas automáticos de cálculo. Así, en  mayo de 1941 concluyó el Z3 que es considerado como el primer computador controlado por programa en funcionamiento. Este computador estaba proyectado para realizar cálculos aeronáuticos y no era de uso general, y utilizaba en su construcción relés de telefonía. Otro hecho notable es que era entre Konrad Zuse4 y 5 veces más rápido que el computador Mark I, concluido 3 años más tarde por  Howard T. Aiken en la Universidad de Harvard  con la colaboración de IBM. De 1943 a 1945 definió un lenguaje de programación de alto nivel que denominó Plankalkül  (“Plan de Cálculo”). Posteriormente construyó el Z4 que se convirtió en 1950 en el primer computador comercializado del mundo (un año antes que el UNIVAC I en Estados Unidos).

Desde un  punto de vista conceptual, la contribución de Sir Maurice Wilkes (Universidad de Cambridge) a la   arquitectura de computadores fue fundamental. En el verano de 1946  Wilkes asiste a un curso de verano sobre computadores electrónicos  impartido por Mauchly y Eckert en la Moore School (Filadelfia). Estos investigadores acababan de concluir el ENIAC, que puede considerarse como el primer computador electrónico del mundo. Durante esta estancia cae en sus manos el documento First Draft of a Report on the EDVAC donde John von Neuman proponía la idea de introducir los programas en una memoria como si fuesen datos y junto a estos (programa almacenable en memoria). Literalmente en una noche “devora” este documento (no había por entonces fotocopiadoras) que tenía que devolver con premura.

A su vuelta a Cambridge concibe el EDSAC que construye en tres años y, se adelanta al EDVAC, ya que ejecuta su primer programa el 6 de mayo de 1949. El EDSAC es considerado el primer computador operativo de programa almacenado. Algunas aplicaciones del EDSAC fueron:

  • 1950, resolución de ecuaciones diferenciales que modelan la frecuencia de generación de genes (primer uso del computador para resolver un problema en el campo de la biología)
  • EDSAC1951, obtención de un número primo de 79 dígitos.
  • 1952, desarrollo del primer videojuego del mundo: el tres en raya (OXO). La salida gráfica se obtiene en una pantalla de un osciloscopio (CRT).
  • 1960, recopilación de una serie de evidencias numéricas sobre las soluciones de las ecuaciones elípticas.

En 1951 Wilkes publica con David J. Wheeler y Stanley Gill el primer libro del mundo sobre programación de computadores “The preparation of programs for an electronic digital computer”. Personalmente opino que la contribución más notable a la arquitectura de computadores de Wilkes, que tuvo también lugar en 1951, fue el concepto de unidad de control microprogramada. Supuso una alternativa para el diseño de los computadores, y que para poner de manifiesto su ingenio paso a describir a continuación.

Una unidad de control tradicional o “cableada” (“hard-wired”) de un computador está constituida por componentes electrónicos interconectados (mediante cables o conductores) que generan las señales eléctricas de control para monitorizar el funcionamiento de los distintos elementos del sistema. Obviamente, un modelo de computador distinto a otro requiere de una unidad de control distinta con diferentes circuitos e interconexiones. La ejecución de una instrucción lleva consigo la generación por la unidad de control de una serie precisa y ordenada en el tiempo de señales de control binarias. Pues bien, la genial idea de Wilkes consiste en sustituir la unidad de control cableada por una memoria especializada (de control) que tenga almacenados los valores de las señales de control. El conjunto de valores de las señales de control correspondientes a la ejecución de una instrucción se denomina “microprograma”, diciéndose por ello que  estas unidades de control son microprogramadas.

Una unidad de control microprogramada es como si hubiese un computador de control dentro del  computador. Podemos pasar de un computador a otro sin más que cambiar los microprogramas almacenados en su memoria de control. Las ventajas que se obtienen son: facilidad de diseñar e implementar nuevos procesadores, posibilidad de que con una misma estructura hardware  se puedan emular distintas arquitecturas, facilidad de migración dentro de una serie de computadores, y computación reconfigurable. Hablando con rigor, cuando decimos que una persona debe de “cambiar el chip” deberíamos decir “debe de cambiar los microprogramas”, lo cual sería  mucho más sencillo de realizar.

El concepto de unidad de control microprogramada, ha sido ampliamente adoptado por la industria desde sus orígenes hasta la actualidad. Una gran parte de los procesadores de uso general actuales lo utilizan, así como sistemas más especializados como es el caso del co-procesador Reality de la Nintendo 64 o las unidades vectoriales VU0 and VU1 de la Sony PlayStation 2.

Maurice WilkesMe gustaría no concluir estas líneas sin relacionar la vida de Maurice Wilkes con la de Alan Turing. Los dos fueron coetáneos, es más, estudiaron un grado en matemáticas en la misma clase en la Universidad de Cambridge obteniendo exactamente las mismas calificaciones. Como confesó el propio Wilkes, posteriormente sus encuentros fueron ocasionales, eran plenamente cordiales aunque encontraba a Alan reservado en sus maneras, existiendo cierta rivalidad entre ellos. Turing fue un pionero de la computación teórica describiendo un computador sobre el papel, mientras que Wilkes construyó el primer computador operativo de programa almacenado del mundo y desarrolló conceptos de arquitectura y métodos de programación que aún hoy día se siguen utilizando. Otro contraste notable entre ellos: mientras Alan Turing vivió sólo 42 años (1954), Wilkes murió con 97 (2010). Curiosamente Maurice recibió el premio Alan Turing (considerado el Nobel de la Informática), en su segunda edición (1967).

En mi modesta opinión, el desarrollo de los computadores se ha producido, en gran medida, por la conjunción de: 1) la inventiva europea, 2) los medios y recursos de los Estados Unidos y 3) el poder de “asimilación y reproducción” asiático.

La Academia de Ciencias Matemáticas, Físico-Químicas y Naturales de Granada, en el centenario del nacimiento de Alan Turig organiza el ciclo de conferencias De Alan Turing a nuevos retos científicos europeos en procesamiento de la información, en la ciudad de Granada durante el mes de mayo. Más información puede encontrarse aquí.

Alberto Prieto Espinosa es catedrático de la Universidad de Granada.

Para las fotografías relacionadas con M. Wilkes, derechos de autor del Laboratorio de Informática de la Universidad de Cambridge. Reproducidas con permiso.

DAVID DE FRUTOS

RICARDO PEÑA

Toni HoareSir Charles Antony Richard Hoare, conocido inicialmente entre los informáticos como C. A. R. Hoare, y más coloquialmente como Tony Hoare, es uno de los científicos y académicos que más huella han dejado en nuestra disciplina. Recibió el Premio Turing en 1980, fue nombrado miembro de la Royal Society en 1982, y Sir por la Reina Británica en 2000. En su larga vida científica, ha sentado los fundamentos de muchas de las teorías y técnicas que hoy enseñamos en las facultades de Informática de todo el mundo, tanto a nivel de grado como de posgrado. Sus aportaciones han contribuido decisivamente a hacer de la programación de computadores una disciplina científicamente fundada, partiendo de una situación inicial en la que parecía más un arte, o un oficio artesanal, que una ciencia. Tony Hoare será investido Doctor Honoris Causa por la Universidad Complutense de Madrid el próximo 10 de mayo. Con estas líneas, queremos glosar su figura y su obra para que los informáticos más jóvenes y la sociedad en general conozcan más de cerca quién es este gran científico, y aprovechar la ocasión para invitaros a los distintos actos que se organizarán en nuestra Universidad con motivo de su visita.

Seguir leyendo »

Sobre los autores

Este blog es una obra colectiva en la que participarán científicos y expertos españoles y extranjeros cuya obra haya bebido de las aportaciones de Alan Turing. Aunque principalmente recogerá los avances científicos en la Informática, abarcará otras opiniones sobre la importancia de la misma en otros ámbitos: la Medicina, la Física, la Política, la Economía. El blog está coordinado por Pedro Meseguer y Juan José Moreno Navarro.

TWITTER

Alan Turing Year

Archivo

junio 2013

Lun. Mar. Mie. 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

El País

EDICIONES EL PAIS, S.L. - Miguel Yuste 40 – 28037 – Madrid [España] | Aviso Legal