Dauerhafte Fehler in der Informatik


26

Dies ist meine erste Frage auf dem Cstheory-Stapel, sei also nicht zu unhöflich, wenn ich irgendwie gegen die Etikette verstoße.

Wie wir wissen, machen in der Mathematik sogar berühmte Mathematiker, Superstars und Genies von Zeit zu Zeit schwere Fehler. Zum Beispiel liefern sowohl der 4-Farben-Satz als auch der Fermat-Satz dramatische Beispiele dafür, wie selbst klügste Köpfe getäuscht werden können. Es kann sogar Jahre dauern, um die Fehlerhaftigkeit einiger falscher Beweise zu beweisen.

Meine Frage ist: Können Sie herausragende Beispiele für solche Fehler in der Informatik nennen? Ich weiß nicht, so etwas wie "Dr. X hat 1972 bewiesen, dass es unmöglich ist, Y in weniger als 0 (log n) Zeit zu machen, aber 1995 stellte sich heraus, dass er tatsächlich falsch lag".


13
Kein herausragendes Beispiel: Ein Algorithmus für Online-Bipartite-Matching von Karp, Vazirani & Vazirani (1990) hatte einen Fehler in einem Lemma, der etwa 15 Jahre später entdeckt wurde.
Jagadish

2
@shabunc Diese Art von Fragen fordert eine Liste von Antworten an, weshalb das Community-Wiki-Tag dafür geeignet ist.
Suresh Venkat

4
Auch diese Frage ist im Zusammenhang: cstheory.stackexchange.com/questions/3616/…
Suresh Venkat

2
Wenn es unhöflich ist, nach Fehlern zu fragen, ist Ihre Frage selbst unhöflich und das Vermeiden des Wortes „Fehler“ im Titel ist keine Lösung.
Tsuyoshi Ito

3
Relevanter Blogbeitrag Math Is Like The Stock Market .
Pratik Deoghare

Antworten:


28

Ein berüchtigtes Beispiel für Computergeometrie ist der von Edelsbrunner, O'Rourke und Seidel veröffentlichte falsche Beweis des Zonensatzes für Hyperebenenanordnungen [FOCS 1983, SICOMP 1986]. Der Beweis erscheint auch in Edelsbrunners Lehrbuch zur rechnergestützten Geometrie von 1987.

Zonensatz: In jeder Anordnung von Hyperebenen in ist die Gesamtkomplexität aller Zellen, die eine Hyperebene schneiden, .R d O ( n d - 1 )nRdO(nd1)

Der Zonensatz ist ein wichtiger Schritt, um zu beweisen, dass der standardmäßige rekursive Inkrementalalgorithmus zum Erstellen einer Anordnung von Hyperebenen in in läuft .R d O ( n d )nRdO(nd)

Raimund Seidel entdeckte 1990, dass der veröffentlichte Beweis falsch war, nachdem er von einem Studenten in seiner Klasse für rechnergestützte Geometrie in einem subtilen technischen Punkt in Frage gestellt worden war. Inzwischen eine riesige Literatur über Hyper / Halbraum / simplex / semialgebraische Bereich gesucht hatte entwickelt, die alle auf das verlassene Bauzeit für Vereinbarungen, die wiederum auf der Zone Satz verlassen. (Keiner dieser Autoren bemerkte den Fehler. Raimund hatte den veröffentlichten "Beweis" mehrere Jahre lang detailliert gelehrt, bevor er herausgefordert wurde.)O(nd)

Glücklicherweise fanden Edelsbrunner, Seidel und Sharir fast sofort einen korrekten (und viel einfacheren!) Beweis für den Zonensatz [Neue Ergebnisse und neue Trends in CS 1991, SICOMP 1993].


@ Jɛ ɛ E, das ist ein tolles Beispiel, danke!
Shabunc

4
Weißt du zufällig, wer der kluge Student war?
Suresh Venkat

4
Nein ich nicht Raimund erzählte mir die Geschichte vor> 15 Jahren, als ich in Berkeley war; Wenn er mir den Namen des Schülers sagte, habe ich ihn längst vergessen. (Und wahrscheinlich auch Raimund.) In der Arbeit von SICOMP 1993 wird der Student auch nicht erwähnt.
Jeffs

10

Das Needham-Shroeder-Verschlüsselungsprotokoll mit öffentlichem Schlüssel, ein 5-Zeilen-Protokoll, wurde 17 Jahre nach seiner Veröffentlichung als unsicher eingestuft. Dies ist das beliebteste Beispiel von Verification-Mitarbeitern für die formale Analyse von Kryptoprotokollen.


8
Dies gilt nicht als Fehler, es sei denn, das Originalpapier liefert einen falschen Beweis für die Sicherheit des Protokolls. Zu zeigen, dass vorgeschlagene Kryptosysteme unsicher sind, ist in der Tat ein Teil der Kryptoforschung.
MCH

1
stimmen Sie mit MCH überein, Kryptoprotokolle sind subtil unterschiedliche Geschichte.
Shabunc

6
In diesem Protokoll gibt es zwei verschiedene Konzepte: das Verschlüsselungsschema und das Kommunikationsprotokoll. Der Autor war sich bewusst, dass es zu Angriffen auf das Verschlüsselungsschema kommen könnte, erörterte jedoch die Sicherheit des Kommunikationsprotokolls und gelangte zu dem Schluss, dass es sicher ist: "Wir gehen davon aus, dass ein Eindringling einen Computer in alle Kommunikationspfade einschließen und somit Änderungen oder Kopien vornehmen kann Teile von Nachrichten, Wiedergeben von Nachrichten oder Veröffentlichen von falschem Material. Auch wenn dies eine extreme Ansicht zu sein scheint, ist es die einzig sichere, wenn Authentifizierungsprotokolle entworfen werden. "Und der Angriff ist vom Typ Man-in-the-Middle.
Loïck


8

Es hat Vermutungen gegeben, die sich als falsch erwiesen haben (z. B. die von Khot und Vishnoi widerlegte Einbettung von negativen Metriken durch konstante Verzerrung), aber es ist nichts Falsches daran, eine falsche Vermutung aufzustellen, schließlich handelt es sich um eine Vermutung.

Ein Beispiel für eine tatsächliche Verwirrung, die jedoch nicht lange anhielt, ist die parallele Wiederholung. Anfänglich wurde angenommen, dass für ein interaktives Protokoll mit einer Fehlerwahrscheinlichkeit der Fehler für k parallele Wiederholungen auf ϵ k reduziert wird . Diese Behauptung erwies sich als falsch, und Versuche, parallele Wiederholungen besser zu verstehen, ergaben sich als Türöffner für eine Menge schöner Mathematik.ϵϵkk

Es wird auch angenommen, dass Feynman es für offensichtlich hielt, dass (oder vielleicht, dass die Quantenmechanik von klassischen Computern offensichtlich nicht effizient simuliert werden kann). Aber dann war er weder ein theoretischer Informatiker, noch ist sich jemand der Richtigkeit dieser Geschichte sicher.PNP


+1 für Feynman. Können Sie mehr über Feynman und P vs NP erfahren?
Becko

2
Fragen Sie Scott Aaronson, er kennt sich gut aus.
MCH

2
Sehen Sie sich diesen TED-Vortrag an . Aber zu denken, dass etwas offensichtlich ist, beweist nichts und nützt nichts.
Pratik Deoghare

6
@MCH: Ob Feynman diese Dinge glaubte oder nicht, ich glaube nicht, dass er ein relevantes Beispiel ist. Erstens wird allgemein angenommen, dass beide Aussagen wahr sind, und zweitens hat er nie behauptet, diese Dinge bewiesen zu haben.
Joe Fitzsimons

2

7

"Ich war schockiert, als ich erfuhr, dass das Binärsuchprogramm, das Bentley in Kapitel 5 von Programming Pearls als richtig erwiesen und anschließend getestet hat, einen Fehler enthält. Wenn ich Ihnen erst einmal sage, was es ist, werden Sie verstehen, warum es zwei Jahrzehnte lang der Erkennung entgangen ist. Damit Sie nicht glauben Ich wähle Bentley aus und möchte Ihnen sagen, wie ich den Fehler entdeckt habe: Die Version der binären Suche, die ich für das JDK geschrieben habe, enthielt denselben Fehler. Sie wurde Sun kürzlich gemeldet, als sie das Programm von jemandem brach, nachdem sie darauf gewartet hatte neun Jahre oder so. "

-

Joshua Bloch "Extra, Extra - Lesen Sie alles darüber: Fast alle binären Suchen und Zusammenführungen sind fehlerhaft" 2006


7
Dies ist eigentlich kein Fehler im Algorithmus, sondern ein Fehler in der Implementierung. Der Algorithmus ist korrekt; Das Problem ist, dass der Typ "int" keine willkürlichen ganzen Zahlen verarbeiten kann.
Aaron Roth
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.