Hace 13 años | Por Hass a ima.umn.edu
Publicado hace 13 años por Hass a ima.umn.edu

En 1991 un misil iraquí impactó en un cuartel estadounidense, matando a 28 soldados. La investigación demostró que el misil fue detectado por el radar, pero el sistema antimisiles Patriot no entró en funcionamiento. El sistema Patriot tenía un error de redondeo (al calcular 1/10) que provocaba un retraso de 0'000000095 segundos cada segundo. Tras 100 horas en funcionamiento, el sistema antimisiles acumulaba un error 0'34 segundos, tiempo suficiente para que un misil Scud iraquí avanzase 600 metros y escapase de la detección.

Comentarios

E

Double, usa double, siempre.

A

#22 Lo que comentas no es fallo del FORTRAN, es cosa de como se representan los numeros en los ordenadores actuales. Basicamente es lo que pasa cuando mapeas algo continuo (los numeros reales por ejemplo) en algo discreto (la resolucion que te pueden dar 32, 64, 128 o mas bits). Cuando trabajas con numeros de coma flotante nunca puedes hacer lo de if(a == 0), porque como bien comentas lo normal es que nunca se de la condicion, y como bien dices, hay que ver si la variable esta lo suficientemente cerca del valor que queremos comparar:

if(fabs(a - numeraco) < CLOSE_ENOUGH)

R

#34 Estoy contigo, recuerdo de los primeros días en la universidad que nos insistieron en que nunca jamás utilizáramos el comparador de igualdad con números con decimales

T

#34 #43 que sí, pero por aquel entonces era joven, y aunque conocía (vaya que si conocía) ese tipo de entresijos de la limitación finita de la representación numérica, no había caído en ello como posible causa, al estar hablando de un lenguaje de programación "orientado a matemáticas"...

D

Relacionado: ejecutar esto en la barra de direcciones de firefox:

javascript:5.2-0.1

iridio77

Que nos concedan la licencia para fabricarlos aquí que redondeamos la mar de bien.

D

#2 Ojo que como tenga que redondear la gente que trabaje en los bares, estos misiles haran genocidios enteros.

D

Anda... ¿y no había ningún familiar que sabía mucho de informática que hubiera implementado el código para resetear el contador cada poco tiempo? Cachis..

D

#14 Luego buscan un Desmond que lo resetée cada 108 minutos.

g

esto con un colegio de informáticos de verdad no pasaría, ejem...

H

#9 EEUU y Francia no parece que tengan ni hayan tenidos Scuds, pero bueno... http://en.wikipedia.org/wiki/Scud_missile#Operators

Milhaud

Fascinante historia y enorme error informático... pero creo que el título lo expresa mal. En realidad el error no fue el redondeo, si no de almacenamiento o de incorrecta secuencia de cálculo.

Si para el almacenamiento se hubieran usado 32 bits en vez de 24, este problema no habría existido. Del mismo modo, si se hubiera mantenido el valor del tiempo en 1/10 de segundo en vez de ser transformado en segundos, este error tampoco habría aparecido.

tarkovsky

La pregunta con dilema moral es: ¿cuántos iraquíes habrían matado esos 28 soldados en los años siguientes?

tarkovsky

#15 Sólo intentaba mirar desde el otro lado del misil ... para los iraquís posiblemente fue una buena noticia: por fin funcionó uno de sus SCUDS. Los americanos son siempre los buenos sólo en las películas de Hollywood y en algunas mentes poco evolucionadas.
Por mi parte no doy por buena ninguna muerte violenta.

D

#6 la pregunta con dilema moral es: cuantos gilipollas como han nacido sin la ley del aborto?
#17 la unica mente poco evolucionada es la tuya y tu atroz antiamericanismo. Anda, vete a votar noticias de tus amigos Castro, Arafat, Ajmadineyad y Kim Jong Il

D

#33 Hombre aunque en parte este de acuerdo con tu comentario... meter a Arafat al lado de Castro, Ajmadineyad y Kim Jong Il es un poco bestia, no? Es como meter en el mismo saco a Isaac Rabin y a Ariel Sharon.

m

Estoy por votar erronea o amarillista... ese error de redondeo no mató a los soldados, a los soldados los mató el que disparó el misil.

araujo

#24 No, los mató el que ordenó disparar el misil.

a

Solo un pequeño fallo en la descripción de la noticia.

Según el artículo en inglés el retraso es de 0'000000095 segundos por cada decima de segundo no de "0'000000095 segundos cada segundo".

D

#39

¿y en dos horas eres capaz de analizar 250.000 kms^2 en fotografías? Dejaros de chorradas, el SR-71 es para lo que es (para evaluar la capacidad de defensa del contrario) y no puede superar a un satélite en la faceta de reconocimiento. Para empezar, su disponibilidad es ridícula y no hay suficientes para mantener uno de guardia (y con satélites si se puede hacer) Además, si con un satélite sabes cuando pasa a un SR-71 le detectas desde cientos de kms.

Un lanzador de SCUD es algo del tamaño del un camión, muy difícil de localizar desde el aire y sobre todo a Mach 3 desde 25.000 metros de altura. Como para detectar si está pensando en disparar o no.

AlphaFreak

#45 Si no tienes la necesidad de volar a Mach-3 y a 80.000 pies para evadir los SAM, un SR-71 no aporta ninguna ventaja sobre un U-2 (que sigue en servicio en la actualidad).

Como dice #50, el problema no es tomar las fotografías: es analizarlas. No sé si ahora habrá algún sistema automático para hacerlo en tiempo real, pero desde luego en 1990 tenía que hacerlo un ser humano, una vez descargadas las fotografías. La única posibilidad de ver un lanzador de Scud en operación era que lo identificara un piloto "a ojo". Los norteamericanos tenían permanentemente patrullas de F-15E dedicadas a la caza de scuds, pero el territorio a cubrir era demasiado grande.

Rubenix

#50 Discute con la wiki ¿vale?
http://es.wikipedia.org/wiki/Lockheed_SR-71#Marcas
Y no es el único sitio donde vi esta información, ese dato ya se sabía hace mucho tiempo. En una colección que completé de aviones de guerra también lo mencionaban. Uno solo de estos aviones podía fotografiar toda España en 2 horas.

Y claro que la disponibilidad es ridícula, como que ha sido retirado hace más de 10 años...

Y en cuanto a los radares ¿qué radares? Si fueron fulminados por los AGM45, AGM88 estadounidenses, ALARM Ingleses, y ARMAT franceses y los que quedaron fueron distorsionados por los EF-111A. La debilidad de los SR-71 de reconocimiento como tales podría ser lo que comenta #53 imposibilidad de ver los lanzadores porque se escondían en bunkers, bajo puentes, cuevas o entre la maleza. Aunque, en mi opinión, la vida de los civiles y militares amenazados podría hacer que mereciese la pena desplegar los Blackbird

m

Un error clasico de sistemas en tiempo real. Lastima que alcanzara su rango de "clasico" llevandose a 28 personas por delante ...
En la informatica tenemos todo todavia por aprender!

D

Tuve un amigo trabajando para TRW entre otros sitios en guiado de misiles y el mismo me decia que fallaban mas que una escopeta de feria (imagino que tambien por la complejidad) pero vamos que ellos mismos tenian criticas sobre este sistema, que por casualidad son los mismos que estaban haciendo el famoso laser del espacio.

D

Esto con la informática regulada no habría pasado [/porloscojones]

t

Y... ¿a nadie se le ha ocurrido que bastaba con reiniciar el sistema los lunes, miércoles y viernes?

D

#42 Se hizo. Los Israelies notificaron este fallo a los americanos. Pero a parte del reinicio (que para un sistema de alerta 24h no es precisamente lo indicado), el patch llegó justo un día tarde.

Mario91

Ahora entiendo mejor por qué mi profe de física se ponía tan estricta con los redondeos!

War_lothar

Estamos matando las matemáticas caseras, vale con el redondeo pero espero que no me toquen la cuenta de la vieja.

trebol-a

Brevemente: no me lo creo.

P

Hubiera sido más fácil y más barato evitar que hubieran lanzado el misil que no tratar de destruirlo con otro misil.

eduardomo

#39 Para eso están los UAV, que encima son mas discretos y no muere nadie si los derriban.
Me como lo dicho en #9, al menos en lo relativo a los Scud, no en lo relativo a que Sadam era el "hijodeputa" de EEUU, el mismo que les hizo el favor de guerrear contra el Irán de los ayatolás con las armas químicas suministradas por occidente.
Desde luego que en estas cosas los EEUU se lo tendrían que hacer mirar, les pasó con el vietcong, con Irán, con Sadam, con Noriega, con los talibanes... todo el mundo que trabaja para ellos acaba siendo su enemigo y recibiendo sus tortas.

Rubenix

#40 Pero los UAV no son tan rápidos y su alcance es paupérrimo. Si quieres buscar Scud en el desierto, con un UAV tardarías semanas antes de encontrar el primero, y no harías ni la décima parte de lo que hace un SR71 en una hora...

Por cierto, ningún SR71 fue derribado en combate, y eso que fueron atacados con más de 4000 misiles. Lo de salvar vidas con el UAV frente al SR71 es una falacia. Te daría la razón si es por motivos económicos. Una hora de operación del Blackbird cuesta 20.000$. Pero tampoco es para tanto, más cuesta cambiar la órbita de un satélite para cambiar su frecuencia ¿no?

taranganas

Pues no era por cuestion de que los skud volaban en metros y los patriot en yardas?? Siempre intentan colarnos una milonga de estas. O sea que ellos no lo han probado en el desierto que tienen para probar estas cosas??

D

No. Un error de redondeo no mató a nadie, lo que los mató fue un misil, y si hay que culpar a algo es a la estupidez humana por protagonizar conflictos bélicos entre ellos.

sieteymedio

Como un editor sensacionalista convirtió 0'34 segundos en 0'000000095

D

Saddam y Rumsfeld haciendo migas...

kakolukillam_1

Esta misma historia la contó mi profesor de Computación numérica el primer día de clases hace ya unos años... ahora todos saben el peligro del error relativo!!

D

creo que la próxima versión va a estar cargada de unsigned double, para asegurar.

D

No le den más vueltas. Eso fue un simple "daño colateral" sin importancia. Los yanquis matan a un montón de gente todos los meses por daños colaterales y no pasa nada.

H

Vaya, pues justamente yo leído por ahí hace poco que si no hubieran retirado el SR-71 el año anterior las plataformas de lanzamiento de los Scud hubieran sido detectadas con mucha más facilidad, y éstas, entre otras muertes, se podrían haber evitado.

Rubenix

#10 Los Satélites no pueden suplir eficazmente a los SR-71. Todos los países saben a qué hora pasa tal o cual satélite espía. Por eso los SR-71 fueron reactivados en el 95.

http://es.wikipedia.org/wiki/Lockheed_SR-71

Respecto a lo del desierto. Un SR-71 es capaz de fotografiar una superficie de 250.000km² cada hora. Creo que es una capacidad suficiente si los despliegan en Arabia Saudí, podrían fotografiar todo Irak en 2 horas y volver a su base en el Reino Unido antes de que a los operarios iraquíes les diese tiempo de montar sus Scud.

D

#3

el SR-71 servía para tocar las narices a las defensas antiaéreas soviéticas, no para detectar el lanzamiento de misiles. Fueron retirados tras una emboscada tendida por varios Mig-31 (similar a una emboscada israelí a mig-25 sirios años atrás) y vueltos al servicio cuando el colapso económico de la URSS impidió el uso regular de estos aviones. Cuando la URSS volvió a operar los mig-31 de nuevo, USA dijo que eran antieconómicos otra vez y los volvió a retirar. Creo que queda alguno operado por la NASA.

D

#27 Exactamente, de hecho el SR71 era un avion muy curioso, que volaba tan alto y tan rapido que como bien dices tocaba las narices a las defensas antiaereas. Como curiosidad anadida este avion 'tenia perdidas' de fuel cuando estaba parado que se sellaban por la dilatacion del material a altas velocidades (que ademas era un fuel bastante caro).

D

Pues a mí me enseñaron que NUNCA se debe comparar con cero, sino calcular una diferencia y compararlo con epsilon (arbitrariamente pequeño según la aplicación). Pero los militares son tan estúpidos como arrogantes (cuando van armados).

AlphaFreak

#48 Dudo que ese código lo escribiera un militar. Sería un ingeniero de Raytheon.

Por cierto, hay otro "bug" famoso que viene a ser la imagen especular del que estamos comentando:

http://en.wikipedia.org/wiki/Ariane_5_Flight_501

En este caso, se trató de un overflow, no de un error de redondeo. Y las consecuencias fueron realmente espectaculares (y no se tuvo que lamentar muertos, por suerte).

D

¿Y quién les vendió los misiles a Sadam? Venga, que no es tan difícil.

F

#7 ¿la URSS?

eduardomo

#8 Pues no, mas bien fueron EEUU y Francia.
Al igual que lo fuera en su dia Pinochet, Sadam era "su hijodeputa"... hasta que les salió rana.