, 20 tweets, 15 min read
My Authors
Read all threads
El 25 de febrero de 1991, durante la Guerra del Golfo, una batería de misiles #Patriot estadounidenses no logró interceptar un misil #Scud. Murieron 28 soldados.

La causa: un error de 0.000000095 frente al gran error de la #guerra.

📺 latimes.com/archives/la-xp…

¿Qué ocurrió? ⬇️
Los #Patriot eran (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.

📺
El proceso era sencillo:

1⃣ El radar detectaba un objeto extraño.
2⃣ Sabiendo la velocidad de un #Scud, el sistema predecía su "posible" futura ubicación y comprobaba si el objeto había seguido dicha trayectoria.
3⃣ Si la amenaza se confirmaba, se lanzaban los #Patriot.
Así ocurrió, por ejemplo, el 18 de enero de 1991 (elpais.com/diario/1991/01…). He aquí la rueda de prensa del presidente #Bush:

#Raytheon (raytheon.com), la empresa fabricante, aseguraba, triunfante, que el sistema tenía un 80% de eficacia.
Sin embargo, ya desde los primeros momentos de su uso (masivo durante esta #guerra), los expertos dudaron de dicho porcentaje. En cualquier caso, no aseguraban ninguna cifra mayor del 50%.

Un cara o cruz. Y una de las más desgraciadas cruces ocurrió el fatídico 25 de febrero.
Serían las 20:30 cuando comenzaron a sonar las sirenas y un arcoiris de fuego iluminó el cielo en la fría noche del desierto.

Un #Scud, lleno de muerte, viajó “plácidamente” a más de 1600 metros por segundo (m/s) hasta un cuartel a las afueras de #Dhahran.
Debía haber sido interceptado. Los Patriot debían haber actuado, pero algo falló.

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.
La #velocidad de un Scud (conocida) es un número real.

El #tiempo es una magnitud real, pero el sistema la calculaba mediante un reloj interno como una variable entera en décimas de segundo. Tanto mayor cuanto mayor era el entero que representaba el tiempo.
Ahora bien, los ordenadores de los Patriot almacenaban los números reales representados en punto flotante con 24 #bits. Esa era la máxima precisión.

A fin de cuentas, solo se podían almacenar unos cuantos dígitos que debían estar expresados en el sistema binario.

#CerosYUnos
El tiempo, que inicialmente se expresaba en unidades de #décimas de segundo, debía ser transformado a #segundos. Esta operación pasaba necesariamente por multiplicar internamente por 1/10.

Pero… ¿cómo se escribe 1/10 en el sistema #binario?
El número 1/10 es igual a:

1/2⁴+1/2⁵+1/2⁸+1/2⁹+1/2¹²+1/2¹³+ ....

En otras palabras, la representación binaria de 1/10 es:

0.0001100110011001100110011001100…

¡Tras la coma, hay #infinitas cifras!
Como solo se podían almacenar unos cuantos dígitos, el ordenador sustituía el valor real por:

💻 0.00011001100110011001100,

introduciendo un #error (binario) de:

0.0000000000000000000000011001100...

que son, aproximadamente, 0.000000095 segundos (en decimal).
Los ordenadores llevaban alrededor de 100 horas funcionando, es decir:

100×60×60×10=3600000 décimas de segundo.

Si en cada décima de segundo se introduce un error de 0.000000095 segundos, el #ErrorTotal es de:

0.000000095×3600000=0.342 segundos.
Dado que un #Scud viaja a 1676 m/s (aprox.), el desplazamiento adicional del misil en 0.342 s fue de 573.192 m… ¡Suficiente para escapar de la #validación de la posición!

El sistema asumió que era una #falsa alarma y el Scud alcanzó su objetivo sin oposición alguna.
Toda la situación se relata en un informe de la GAO (U.S. Government Accountability Office) de febrero de 1992 titulado "Un problema de software condujo a un fallo del sistema en Dhahran, Arabia Saudita":

📋 gao.gov/assets/220/215…
Los expertos israelíes habían identificado el problema y habían informado al ejército estadounidense el 11 de febrero de 1991.

Recomendaban #reiniciar el sistema informático como solución temporal; sin embargo, los oficiales estadounidenses ignoraron la recomendación.

#Reset
Por otra parte, #Raytheon había remitido el software actualizado al ejército y fue recibido en #Riad el 24 de febrero,

pero, de nuevo, los expertos técnicos no creyeron urgente la actualización y llegó a las 21 baterías de los Patriot justo el día después del ataque.
El resultado fue dramático 28 fallecidos y más de 100 heridos. La Guerra del #Golfo acabó tres días después con la rendición de #Iraq.

📺
Sin embargo...

¿Se puede decir que fallaron los algoritmos? No. ¿Que fallaron los ordenadores? No. En este caso, simplemente se ignoró un minúsculo error de 0.000000095.

Pero no nos olvidemos de una cosa: LA GUERRA ES SIEMPRE EL MAYOR ERROR.

¿Y ahora la #IIIWORLDWAR? ¿Really?
Si has leído hasta aquí, muchísimas gracias. Todo el texto, junto con los gifs, puede ser consultado en mi blog:

elultimoversodefermat.wordpress.com/2020/01/09/la-…

Otros enlaces interesantes sobre errores numéricos o informáticos pueden ser consultados en:

www-users.math.umn.edu/~arnold//disas…
www5.in.tum.de/~huckle/bugse.…
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Julio Mulero

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!