martes, 24 de marzo de 2020

El día que un misil mató a 28 soldados porque el sistema de defensa antimisiles ignoró un error de 0,000000095 segundos




Desde el 2 de agosto de 1990 hasta el 28 de febrero de 1991, nuestro planeta fue testigo de una gran guerra entre 34 países de las Naciones Unidas liderados por Estados Unidos contra la República de Irak. La Guerra del Golfo, como es conocida. Los misiles Scud fueron grandes protagonistas de este conflicto, puesto que Irak los usaba para bombardear objetivos en Israel. Ante esta situación, Estados Unidos dispuso varias baterías de "misiles antimisiles" Patriot a lo largo del territorio que se podría decir que no eran perfectos.

Tanto es así que el 25 de febrero de 1991, los Patriot ignoraron por completo un misil Scud que, finalmente, acabó matando a 28 soldados. El motivo, tal y como explica Julio Mulero, profesor de Matemáticas en la Universidad de Alicante, fue un error de 0,000000095 segundos en su sistema de detección. Como explica Mulero, "los Patriots son misiles tierra-aire de largo alcance y carácter defensivo. Cuando el radar de la batería detectaba un ataque con misiles, los Patriot eran lanzados con el propósito de destruir la amenaza antes de que alcanzara su objetivo", pero ese día el sistema falló.
Una bola de nieve matemática que acaba en desastre
Sistema de defensa antimisiles Patriot - Imagen: Darkone con licencia CC BY-SA 2.5.

Mulero explica que el funcionamiento de este sistema de defensa era bastante sencillo. Primero, el radar detectaba un objeto extraño, que en este caso era un Scud. Dichos misiles tienen una velocidad de 1,7 km/s, es decir, Mach 5, así que sabiendo la velocidad, el sistema "predecía su posible futura ubicación y comprobaba si el objeto había seguido esa trayectoria". De ser así, el sistema lanzaba los misiles Patriot para explotar la amenaza en el aire.


La empresa fabricante de este sistema es Raytheon, que aseguraba, explica el profesor, un 80% de eficacia. Dicha cifra contrastaba, y mucho, con la de los expertos, que creían que era más bien del 50%. De hecho, en octubre de 1992, un análisis del desempeño de estos misiles dejó ver que la tasa de acierto era de un 9% y que el 45% de los despliegues (158 misiles en total) era contra escombros u objetos falsos. Se necesitaban entre tres y cuatro Patriot para interceptar un Scud, así que de derribarlo, el acierto sí es de 100%, pero la precisión es del 25% o 33,33%, según la cantidad de misiles lanzados.

Siguiendo con la historia, el 25 de febrero de 1991, Irak lanzó un Scud contra un cuartel general a las afueras de Dhahran. Sobre el papel, el sistema Patriot tuvo que haberlo interceptado, pero un desfase en el reloj interno hizo que los misiles no se activasen. "Su sistema había de predecir la trayectoria del misil, punto a punto, en función de dos variables (reales): la velocidad (conocida) y el último momento de tiempo en que fue detectado en el radar", explica Mulero.

La velocidad del Scud era un número real (1,7 km/s), pero el tiempo se "calculaba mediante un reloj interno como una variable entera en décimas de segundo". Es decir, "tanto mayor cuanto mayor era el entero que representaba el tiempo". Los Patriot almacenaban los números reales con 24 bits, por lo que "solo se podían almacenar unos cuantos dígitos que debían estar expresados en el sistema binario".

Inicialmente, el tiempo se expresaba en décimas de segundo, ergo tenía que ser convertido a segundos, por lo que se debía multiplicar por 1/10. El problema es que el número 1/10 expresado en binario es:


0,0001100110011001100110011001100… con cifras infinitas después de la coma.

Como el ordenador solo podía almacenar unos cuantos dígitos, se sustituía el valor real por una aproximación:


0.00011001100110011001100.

Es un error binario equivalente a 0,000000095 segundos, pero el problema está en que los ordenadores llevaban 100 horas funcionando. 100 horas son 3.600.000 décimas de segundo. Si a cada décima le aplicamos un error de 0,000000095 segundos, el error total es de 0,342 segundos. "Dado que un Scud viaja a 1.676 ms/s (aprox.), el desplazamiento adicional del misil en 0,342 segundos fue de 573,192 metros". Más de medio kilómetro, ahí es nada. El sistema entendió que era una falsa alarma, los Patriot no despegaron y el Scud se estrelló contra la base, matando a 28 soldados e hiriendo a 100 personas.



Este problema fue identificado por los expertos israelíes, que informaron al ejército estadounidense en febrero de 1991. La solución temporal era reiniciar el sistema informático, pero los oficiales ignoraron la recomendación. También ignoraron la actualización de software liberada, que llegó el 24 de febrero (un día antes del ataque) y que se instaló en el sistema de defensa un día después después del fatídico impacto del misil.

Mulero explica que no fallaron los algoritmos ni los ordenadores, sino que simplemente "se ignoró un minúsculo error de "0,000000095 segundos". La Guerra del Golfo acabó tres días después de este ataque con la rendición de Irak. 378 soldados de la coalición internacional perdieron la vida y 1.000 fueron heridos, mientras que los iraquíes recibieron entre 25.000 y 30.000 bajas.

Vía | Julio Mulero

No hay comentarios:

Publicar un comentario