Arthur Lee Samuel (1901-90) es uno de esos pioneros de los juegos de computadora y de la inteligencia artificial (IA). Inició su carrera como ingeniero eléctrico pero sus intereses científicos lo llevaron al Boston Tech, el nombre anterior de lo que hoy es el Massachussetts Institute of Technology (MIT). En esta institución trabajó por un tiempo con Vannervar Bush, en una computadora analógica que se convirtió con el tiempo en lo que llamaban un analizador diferencial. En 1928 se unió a los Laboratorios Bell para desarrollar bulbos de larga vida para los repetidores de telefonía trasatlánticos.
En 1930 por accidente halló a una vieja amiga del colegio en una calle de Nueva York y un año después se habían casado. Samuel trabajó en ese tiempo en bulbos de microondas durante la Guerra e hizo contribuciones significativas a su diseño. En su larga vida hizo un buen número de patentes que fue parte de lo que consideró importante de todo el trabajo que realizó en tantos años.
Al final de la Guerra se le consideraba una autoridad en la electrónica de microondas, pero era una profesión muy mal pagada y tan era así que el propio Samuel perdió el interés en ello. Él sospechaba que pronto habría algo que reemplazara a los bulbos y no se equivocó. Eventualmente llegaría el transistor. A los 45 años Samuel decidió que debía reinventarse a sí mismo y regresó a la academia, a la Universidad de Illinois, en donde cambió muchas cosas de su persona: inició un laboratorio para hacer bulbos al alto vacío, compró una avioneta y aprendió a volar.
En su trabajo de laboratorio tenía que analizar cómo los electrones se encaminaban hacia el cátodo y requería hacer una buena cantidad de cálculos. Así pues, pensó que lo que debía hacer era comprar una computadora o de plano, armar una para este propósito. Samuel entonces consiguió 110,000 dólares (aunque pedía sólo 90,000), para el proyecto de su computadora y para ello visitó cuatro lugares donde se hacía trabajo relevante en cómputo: MIT, Harvard, Pennsylvania y Princeton.
Al final de 1948 se estaba quedando sin dinero del proyecto y su diseño requería de más fondos. Alguien sugirió a Samuel hacer algo dramático para llamar la atención y entonces por ese tiempo leyó el famoso artículo de Shannon sobre cómo escribir un programa para jugar al ajedrez. Él decidió entonces escribir uno que jugara a las damas inglesas, que parecían ser más fáciles en muchos sentidos. Samuel dijo: “Pensé que sería un trabajo trivial programar una computadora para jugar a las damas inglesas”.
Así entonces, Samuel se sentó a escribir un programa con el conocimiento que tenía de programación, el cual era nulo. Shannon, de hecho, sólo bosquejó en su artículo el problema, pero no mostró nada parecido a lo que representaría el código. La idea de Samuel estaba motivada por el hecho que el campeonato mundial de damas inglesas se llevaría a cabo en un pueblo vecino. La idea es que él pensaba que podía crear un programa que pudiese ganar.
“Yo empecé escribiendo un programa para una máquina inexistente, usando un conjunto de instrucciones que soñaba que debían ser necesarias”, dice Samuel. Pero la realidad lo alcanzó y se percató que su programa era mucho más complejo que una demostración de su máquina. Para colmo, ya se estaba quedando sin dinero y el interés por su laboratorio había decaído. Así, decidió buscar un nuevo trabajo y un mejor salario. En la primavera de 1949 se fue a IBM con un contrato de 20 mil dólares anuales. Samuel comentó que eso era cuatro veces lo que le pagaban en Bell.
En IBM su trabajo era extraño. Se le asignó trabajar con el equipo que producía lo que sería la IBM 701, una computadora muy grande. Sin embargo, parece que la mayor parte del tiempo fungió como consejero tecnológico. Eventualmente, lo pusieron en un área de investigación pura después de persuadir a IBM que necesitaba hacer investigación además de producir computadoras o equipos contables electrónicos.
IBM le pidió que, además, analizara la estructura de la computadora 701 y eventualmente terminó hablando con Nathaniel Rochester, uno de los diseñadores principales de la 701. Discutieron entonces si requerían una arquitectura de 32 o de 36 bits… Y eso le llevó a Samuel a repensar su inacabado programa de damas inglesas. Finalmente, decidió usar el conjunto inacabado de instrucciones de la 701 para escribir su programa de damas inglesas.
Samuel fue la primera persona que hizo programación en serio en la 701 en donde no había ningún programa de soporte. No había ensamblador y Samuel tuvo que escribir todo usando los códigos numéricos y las direcciones. Esto sin duda es una hazaña por sí sola. El juego de damas inglesas se mantuvo entonces ya como una obsesión para Samuel y fue el primer programa de la IA. “Me intrigaba tanto este tipo de problemas en general en donde escribir un programa pudiese exhibir la inteligencia que ocupaba mi cabeza en cada momento libre. Esto pasó todo el tiempo que estuve en IBM y por algunos años más”, indica Samuel.
Eventualmente la 701 se construyó y se incorporaron los cambios que Samuel sugirió como resultado de su trabajo. Samuel escribió en ella su primer programa de damas inglesas usando pequeños módulos auto contenidos, los cuales eran cargados por un módulo central, algo así como un sistema operativo primitivo.
Cuando ya la 701 estaba en producción, escribió un desensamblador para convertir su código a ensamblador en lugar de empezar de cero. El desensamblador se convirtió en una herramienta muy popular. Inventó además una técnica de hash que usó John Backus en su primer compilador de Fortran.
El programa de damas inglesas se estuvo desarrollado por años. la primera versión corrió en 1954 en la 701, pero en 1955 fue cuando Samuel halló un esquema para que la máquina aprendiera. Su programa se portó después a la IBM 704. “No fue hasta que la 704 fue desarrollada cuando tuve acceso a mucho tiempo máquina. Había muchas máquinas en la fábrica y desde medianoche hasta la siguiente mañana no se usaban. Entonces me dejaron poner mi programa de damas y pude correrlo por muchas horas contínuas. Tenía hasta cuatro máquinas que jugaban entre sí y se iban acumulando datos y estadísticas de sus esquemas de juego. Esto se hizo por muchos meses y la gente de IBM estaba contenta porque fue una manera de probar el desempeño de sus equipos” dice Samuel.
Samuel decidió que su trabajo en las damas inglesas debía publicarse y convenció a IBM de empezar una publicación especializada en Investigación & Desarrollo. En 1959 publicó su primer artículo sobre aprendizaje de las computadoras bajo el título: “Some Studies of Machine Learning Using the Game of Checkers”, en donde presentó su programa usando la poda alpha-beta. Este artículo se incluyó en los trabajos sobre IA que publicaría más adelante Edward A. Feigenbaum y Julian Feldman. Samuel entonces usó esto como una oportunidad para retar al campeón estatal de Connecticut, el #4 de los estados Unidos. El programa de Samuel venció al ser humano. Los juegos que se realizaron se incluyeron como un apéndice del atículo de Samuel.
En 1966 se retiró de IBM pero no estaba listo para dejar de trabajar. Se fue a la Universidad de Stanford como un investigador asociado y después profesor. Trabajó sobre reconocimiento de voz usando transformadas de Fourier y por supuesto, en su programa de amas inglesas. En los años 1970s Samuel dejó de trabajar sobre el juego de damas, pero hizo una versión de TeX en Pascal con Donald Knuth y escribió un editor de textos. Igualmente trabajó en el sistema operativo SAIL y escribió una serie de libros introductorios de computación y TeX.
¡Más adelante Samuel incursionó en los videojuegos! Una compañía llamadas Video Brain quería construir una máquina de 500 dólares para jugar y Samuel les dio su programa de damas. Bajó su código de 40K a 4K solamente. incluso, escribió una mejor versión del juego de Othello. Cuando Samuel trabajaba en su tercer juego, Video Brain cerró y Samuel se acercó a Atari y Apple para convertir sus juegos a estas plataformas, pero no halló eco ni interés en su trabajo.
En 1987 se le dio el premio al pionero en cómputo de la IEEE por sus ideas en procesamiento adaptivo no numérico. Samuel murió en julio de 1990, después de una larga y apasionada vida dedicada a la programación.
Referencias: