Un ordenador destruye la sonda "Mars Polar Lander"

El pasado mes de diciembre todos lamentamos la pérdida de la sonda espacial "Mars Polar Lander" de la NASA. Estuvimos esperando una señal de la sonda. Sin embargo, no hubo respuesta. Se había perdido para siempre. Un comité presidido por John Casani, ex-ingeniero jefe del Laboratorio de Propulsión a Chorro (JPL) encargado de controlar la sonda, ha identificado el responsable del accidente: un error de programación. La nueva filosofía de la NASA, desde que la dirige Daniel Goldin, misiones "mejores, más rápidas y más baratas", ha vuelto a fallar.

Las sondas espaciales que aterrizan en un planeta utilizan paracaídas para amortiguar el aterrizaje. Para ahorrar peso y volumen en los paracaídas, la "Mars Polar Lander" utilizaba un sistema de retro-populsores para aterrizar. Los retro-populsores se usaron en las misiones lunares Apolo bajo control humano, pero en esta sonda estaban en manos de un programa de ordenador. El programa de ordenador decía que se sacan los paracaídas, se sueltan y se activan los retro-populsores, y cuando los sensores de la nave "sientan" tierra firme, se sacan las patas de la sonda y se aterriza. Sin embargo, el comité presidido por John Casani ha comprobado que si los sensores "sienten" un golpe fuerte al entrar en la atmósfera, parecido al aterrizaje, se activan las patas y el programa de ordenador se "olvida" de activar los retro-propulsores, con lo que la sonda se estrella contra el suelo.

No es la primera vez que un error de programación destruye una sonda espacial de la NASA. Todos recordamos la reciente pérdida de la sonda "Mars Climate Orbiter" por confundir millas con kilómetros. Quizás menos conocida es la pérdida en 1962 de la sonda Mariner 1, que estudiaría el planeta Venus, debida a sustituir una "," por un "." en un programa, o la pérdida de la sonda Voyager 2 debido a estimar mal la masa del planeta Urano, o el incendio en 1994 de un cohete propulsor del Programa Lunar debido al malfuncionamiento de un ordenador, o la pérdida del "Mars Sojourner" en 1997 debido a un reinicio del programa en un momento inadecuado. Pero también la Agencia Espacial Europea perdió al Ariane 5, que explotó en 1996, debido a un problema de conversión de números, o la sonda marciana rusa Phobos 1, explotó en 1988 porque el ordenador la giró donde no tenía que hacerlo.

Pero no sólo las Agencias Espaciales tienen problemas de programación, en 1991, durante la guerra del Golfo, un error de redondeo hizo que un misil Patriot-Scud matará a unos inocentes, en 1988 un airbus cayó donde no debía en el conflicto de Irán por un problema en los programas de reconocimiento de imágenes, desde 1975 a 1987 el aparato de rayos X Therac-25 irradió con dosis peligrosas a gran número de pacientes, los índices de la bolsa de Vancouver fueron erróneos en 1983 por un error de redondeo, un reactor nucleor se paró en 1979 debido a un problema numérico, un tren dejó de funcionar en 1995 en Alemania debido a la falta de memoria en el ordenador, etc.

En resumen, el "software", los programas de ordenador son el invento del hombre más complejo en toda la historia. Evitar errores en un programa de ordenador es prácticamente imposible. Se estima que un programa normal tiene unos 25 errores cada 1000 líneas y que un programa crítico debe tener menos de un error cada 10000 líneas de código. Un teléfono móvil tiene un programa de más de 200000 líneas luego tendrá unos 600 errores. Windows 95 tiene más de 10 millones de líneas, luego tiene más de 200000 errores. No es de extrañar que en la presentación de Windows 98 el ordenador se le colgó al mismísimo Bill Gates, quien pasará a la historia por convencernos a los usuarios de que un programa de ordenador es normal que falle.

Francisco R. Villatoro (Profesor de la Universidad de Málaga)