Es el 20 de julio de 1969. Neil Armstrong y Buzz Aldrin están a punto de alunizar. Serán los primeros humanos en poner un pie en el único satélite natural de la Tierra. De repente, la computadora de a bordo parpadea: “Alarma 1202”. Durante los siguientes 278 segundos, se activan cuatro alarmas más: “Alarma 1202”, “Alarma 1201”, “Alarma 1202”, “Alarma 1202”.
El sistema está sobrecargado. La tripulación de la NASA en tierra ordena a Aldrin y Armstrong que procedan con el aterrizaje. Pero los miembros del equipo de la NASA saben que sus colegas hicieron un buen trabajo y programaron una red de seguridad. Y gracias a los mensajes de error, saben cómo solucionar el problema.
La científica informática Margaret Hamilton fue una de las responsables de las características que finalmente hicieron posible el alunizaje, a pesar de esos mensajes de error. Y su hija que entonces tenía cuatro años puede haber ayudado a estimular sus pensamientos.
Sobre el apoyo al periodismo científico
Si está disfrutando de este artículo, considere apoyar nuestro periodismo galardonado suscribiéndose. Al comprar una suscripción, ayudas a garantizar el futuro de historias impactantes sobre los descubrimientos y las ideas que dan forma a nuestro mundo actual.
Cómo describir el mundo con una computadora
La computadora a bordo del módulo lunar del Apolo 11 tenía apenas 74 kilobytes de almacenamiento en forma de memoria de sólo lectura (ROM). Para poner esto en perspectiva, los teléfonos inteligentes actuales tienen fácilmente 128 gigabytes de almacenamiento ROM, que es aproximadamente dos millones de veces más, todo para que podamos matar el tiempo en Instagram y TikTok.
La programación también era completamente diferente en los años 60. Los lenguajes de programación comunes como Python o Rust, que contienen comandos de texto plano más o menos comprensibles para operaciones aritméticas, no existían en aquel entonces. Las computadoras de esa época también se veían completamente diferentes a los dispositivos compactos que usamos hoy.
Cuando Hamilton comenzó a trabajar con computadoras, tuvo que hacer consideraciones completamente diferentes a las de los programadores de hoy: ¿Qué registro almacena qué número? ¿Cómo deben interactuar los contenidos de los registros para sumar y multiplicar dos números? ¿Qué espacio de memoria asigno para estos registros y cuál bloqueo?
La computadora a bordo del módulo lunar tuvo que determinar la velocidad, la altitud y la rotación del módulo, que son todas cantidades variables. En principio, el ordenador de a bordo resolvió ecuaciones diferenciales que dependen no sólo de variables como xey, sino también de sus derivadas.
Estas ecuaciones describen todo lo que cambia. Pero no existe un método universalmente aplicable para resolver estas ecuaciones diferenciales. Muchos ni siquiera tienen una solución exacta. Por tanto, tenemos que confiar en métodos de aproximación.
Para comprender cómo funcionan estos métodos, considere el siguiente problema de ejemplo: suponga que una nave espacial se mueve con aceleración constante, a, y desea averiguar la distancia que recorre en un tiempo determinado, t. Conoces tanto la posición inicial, x0, como la velocidad inicial de la nave espacial, v0. Para resolver el problema exactamente, debes resolver las siguientes ecuaciones diferenciales:
Puede encontrar la solución directamente para estos problemas. Pero si eso no es posible, puedes encontrar la solución mediante incrementos paso a paso en la posición y la velocidad:
xn + 1 = xn + vnΔt,
vn + 1 = vn + aΔt
Para evaluar estas ecuaciones para un pequeño paso de tiempo (como Δt = 1 segundo), primero calcule x1 = x0 + v0 × 1s y v1 = v0 + a × 1s. Luego puedes sustituir los resultados respectivos de x1 y v1 en las ecuaciones para obtener x2 y v2 y obtener resultados posteriores de la misma manera. Luego puedes seguir el proceso de esta manera hasta que encuentres la distancia que ha recorrido la nave espacial después de un cierto tiempo, t.
Estos sistemas recursivos de ecuaciones todavía forman parte de la investigación fundamental hoy en día, aunque en una forma significativamente más compleja. Independientemente de si se estudia cosmología, física de partículas, medicina o procesos químicos, siempre se trata de sistemas variables y, por tanto, de ecuaciones diferenciales. Y para resolverlos, generalmente se emplea un conjunto de ecuaciones recursivas que una computadora puede evaluar.
En la época de Hamilton, la potencia informática era muy limitada. Los programadores tuvieron que encontrar formas de codificar ecuaciones de la manera más eficiente posible. Y como se mencionó, los lenguajes de programación tal como los conocemos hoy aún no existían. Hamilton y sus contemporáneos tuvieron que idear las ecuaciones matemáticas relevantes, luego traducirlas en instrucciones claras para la computadora que utilizaría registros que ellos también tuvieron que crear y finalmente codificar estas instrucciones en una secuencia de 0 y 1.
Incluso después de escribir el código, la tarea aún no estaba completa; En aquel entonces, las computadoras no tenían campos de entrada para convertir texto en código ejecutable como los de hoy. Para ejecutar un programa, primero había que perforar el código en una cinta de papel; un agujero representaba un 1, y ningún agujero representaba un 0, correspondiente a las dos unidades de código binario con las que trabajan la mayoría de las computadoras.
El clima es caótico
Margaret Hamilton comenzó con las computadoras en el Instituto Tecnológico de Massachusetts en el grupo de investigación de Edward Lorenz, un conocido meteorólogo. Había derivado 12 ecuaciones interdependientes para diversas condiciones climáticas como temperatura, presión del aire y humedad. Dadas las condiciones iniciales precisas, se suponía que estas ecuaciones predecirían patrones climáticos futuros.
Inicialmente, el grupo de investigación no contaba con ningún ordenador. Si sus miembros querían crear un pronóstico del tiempo para los próximos tres días, necesitaban cinco días para calcular las complejas ecuaciones diferenciales. Eso no era nada práctico. Por eso, el equipo de Lorenz quedó encantado cuando instaló el “ordenador de escritorio” Royal McBee LGP-30 en su oficina. Pesaba unos 360 kilogramos, parecía un congelador y hacía tanto ruido como un helicóptero. Lorenz compró el LGP-30 en 1959, el mismo año en que Hamilton se unió a su laboratorio.
Mientras Lorenz se concentraba en los aspectos físicos y matemáticos del problema, Hamilton y sus colegas estaban ocupados programando la computadora de escritorio. Marcó los códigos correspondientes en cinta de papel usando una especie de máquina de escribir. Debido a que ocurrían errores constantemente y se hacían cambios frecuentes en el código, Hamilton a veces editaba la copia impresa a mano sellando los agujeros sobrantes con cinta transparente o perforando los que faltaban en la cinta de papel con un lápiz afilado.
Con este ordenador de mesa el grupo de Lorenz hizo su mayor descubrimiento: los investigadores observaron que la previsión meteorológica cambiaba completamente según cómo se redondeaban las cifras. Incluso si los datos de entrada difirieran sólo en los últimos decimales, ese cambio podría tener un efecto enorme en el resultado. Esto es lo que hoy se conoce en matemáticas como sistema caótico.
Cuando Lorenz, como autor único, publicó su innovador artículo sobre lo que se convertiría en la base de la teoría del caos, Hamilton estaba a punto de trabajar para la NASA.
Chocar el simulador de vuelo
Mientras trabajaba para el Laboratorio de Instrumentación del MIT, que fue contratado por la NASA para desarrollar software para el programa Apollo, Hamilton solía llevar a su hija Lauren a trabajar con ella por las tardes y los fines de semana, y a veces permitía que la niña jugara con el simulador de vuelo del laboratorio. Un día, la niña de cuatro años presionó todo tipo de botones en el dispositivo, lo que provocó que el ordenador de a bordo fallara: había intentado ejecutar el programa de prelanzamiento mientras la simulación estaba en vuelo, lo que significaba que dos programas intentaban ocupar la misma sección de la memoria del ordenador.
Esto hizo que Hamilton se detuviera a pensar: quería crear urgentemente una manera de evitar que ocurrieran problemas como el que Lauren había provocado durante una misión real. Al principio, la NASA no estaba entusiasmada, pero finalmente la agencia estuvo de acuerdo. Hamilton creó una forma de comunicarse con los astronautas cuando ocurrían emergencias o errores en la programación. Junto con sus colegas, también ayudó a desarrollar una especie de red de seguridad diseñada para abordar este tipo de fallos del sistema reiniciando los programas en orden de prioridad después de un cierre o fallo. Por eso ayudó a programar “soluciones de emergencia”, procedimientos de contingencia que se implementaban cuando sucedía algo inesperado durante una misión.
Este trabajo evitó que se abortara el primer alunizaje, a pesar de que la computadora de a bordo estaba sobrecargada. Buzz Aldrin había accionado un interruptor en el módulo lunar que activó el “radar de encuentro”, que se utilizó para garantizar que el módulo pudiera acoplarse posteriormente con el módulo de comando. Sin embargo, cuando Aldrin activó ese radar, el módulo lunar estaba en su aproximación final y tuvo que procesar una gran cantidad de datos. Las señales de encuentro adicionales abrumaron el sistema y provocaron mensajes de error recurrentes, alertando a los astronautas y a la NASA sobre el problema específico.
Pero entonces la red de seguridad de Hamilton y su equipo se activó, lo que llevó al programa a priorizar los procesos en ejecución que eran cruciales para un aterrizaje seguro. Como sabía lo que significaban los códigos de error al trabajar con Hamilton, el fallecido ingeniero de la NASA Jack Garman tuvo la confianza para dar luz verde al aterrizaje. Y así, en 1969, la humanidad pudo pisar por primera vez otro cuerpo celeste.
Hamilton no había recibido mucho reconocimiento por sus importantes contribuciones hasta 2016, cuando el presidente estadounidense Barack Obama le entregó a la mujer de 80 años la Medalla Presidencial de la Libertad.
Este artículo apareció originalmente en Spektrum der Wissenschaft y fue reproducido con autorización. Fue traducido de la versión original alemana con la ayuda de inteligencia artificial y revisado por nuestros editores.