Donnerstag, 28. März 2024

Archiv


Runder Fehler

Informationstechnologie. – Im Winter 1990/1991 vertrieben Truppen unter der Führung der USA den Irak aus dem besetzten Kuwait. Bei dieser Gelegenheit setzten die Amerikaner zum ersten Mal ihr Arsenal an Hightech-Waffen ein. Eine davon, die Abwehrrakete "Patriot" patzte allerdings ziemlich, und das aufgrund eines Rechenfehlers.

Von Frank Grotelüschen | 10.06.2008
    25. Februar 1991. Im US-Stützpunkt Dhahran in Saudi-Arabien schlägt eine irakische Scud-Rakete ein. Sie tötet 28 amerikanische Soldaten, 100 werden verletzt. Die Militärs sind perplex. Eigentlich hatten sie sich vor Scud-Angriffen in Sicherheit gewogen, denn die Kaserne war durch ein modernes Abwehrsystem geschützt, die Patriot-Rakete. Sie hätte rechtzeitig abheben und der Scud-Rakete entgegenfliegen sollen, um sie im Fluge abzuschießen. Doch das System hatte versagt – wie sich zeigen sollten wegen eines ziemlich simplen Rechenfehlers in der Steuersoftware des Abwehrsystems.

    "Die interne Uhr von einem Steuerprogramm von so einer Rakete gibt die Zeit in Zehntel Sekunden an","

    erläutert Christine Gräfe, Mathematikerin an der Freien Universität Berlin,

    ""das Steuerprogramm selbst aber rechnet in Sekunden. Also muss das umgerechnet werden."

    Nun gut, wo liegt das Problem? Zehntel Sekunden in Sekunden umrechnen – das kann doch jedes Kind. Zum Beispiel:

    "1 Zehntel Sekunde = 0,1 Sekunden."

    Richtig.

    "5 Zehntel Sekunden = 0,5 Sekunden."

    Genau.

    "10 Zehntel Sekunden = 1 Sekunde."

    Und so weiter, und so fort. Für einen Computer aber ist dieses Umrechnen nicht so einfach. Schließlich rechnet ein Computer nicht wie wir im Dezimalsystem, also mit Zehnern, Hunderten und Tausendern. Nein, er rechnet in Bits, mit binären Zahlen, mit Nullen und Einsen. Das Problem: Bestimmte Zahlen lassen sich damit nur schwierig darstellen, sagt Christine Gräfe, zum Beispiel ein Zehntel, also 0,1. Gräfe:

    ""Wenn man sie darstellen möchte, dann gibt es einen Term, der heißt: 0.00011001100 und so weiter und so fort."

    Also ein Bandwurm aus Nullen und Einsen, der ewig weitergeht und einfach nicht aufhört. Da aber ein Rechner mit unendlichen Zahlenfolgen nicht umgehen kann, schneidet er den Bandwurm einfach irgendwann ab. Bei der Patriot-Abwehrrakete passierte das nach der 24. Stelle. Das Resultat: ein Rundungsfehler. Gräfe:

    "In diesem Fall war der Rundungsfehler ungefähr 9,5 mal 10 hoch -8. Das heißt dieser Rundungsfehler war sehr, sehr klein."

    10 hoch -8 – eine Zahl mit sieben Nullen hinter dem Komma. Das ist in der Tat ziemlich winzig und sollte das Raketenabwehrsystem eigentlich nicht weiter stören. Aber nun kommt der entscheidende Fehler. Gräfe:

    ""Wenn das System sehr, sehr lange läuft, dann schaukelt sich dieser Rundungsfehler auf. Wenn dieses System 100 Stunden läuft, dann verrechnet es sich bereits schon um 0,34 Sekunden."

    Und genau das war im Februar 1991 passiert: Der Patriot-Steuercomputer war schon rund 100 Stunden gelaufen, als sich die Scud-Rakete näherte. Gräfe:

    ""Wenn man bedenkt, dass die Geschwindigkeit einer Scud-Rakete ungefähr 6000 Stundenkilometer beträgt. Dann sind 0,34 Sekunden eine Auswirkung von einem halben Kilometer, der verfehlt wird."

    Und diese Abweichung von 0,34 Sekunden beziehungsweise einem halben Kilometer führte dann dazu, dass die Patriot-Rakete gar nicht erst abgefeuert wurde, um die herannahende Scud-Rakete abzufangen. Gräfe:

    "Das hätte vermieden werden können, wenn man die Systemzeituhr immer wieder zurückgesetzt hätte. Dann hätte man in dem Moment den Fehler klein halten können. Das wurde aber anscheinend nicht gemacht. Somit hat sich dieser Fehler aufgeschaukelt. Und somit kam es leider zu diesem Unglück."

    Besonders tragisch: Schon zwei Wochen vor dem Vorfall hatte die israelische Armee festgestellt, dass das Patriot-System ungenau wird, wenn man das Steuerprogramm länger als acht Stunden ununterbrochen laufen lässt. Daraufhin hatten die US-Militärs die Software überarbeitet und das Update an alle Patriot-Stützpunkte geschickt. Nur: In Saudi-Arabien kam es am 26. Februar 1991 an – also einen Tag, nachdem die irakische Scud-Rakete eingeschlagen war. Mathematikerin Gräfe zieht aus dieser Geschichte die folgende Lehre: Traue nie voll und ganz den Rechenfähigkeiten einer Maschine:

    "Selbst im Taschenrechner kann man kleine Aufgaben geben, wo einfach falsche Ergebnisse rauskommen. Also man sollte immer bedenken, wenn man mit Computern rechnet: Das ist nicht das A und O, der sagt nicht auf jeden Fall die Wahrheit. Sondern es könnte durchaus Fehler geben."