Erreurs de longue durée en informatique


26

Ceci est ma première question sur la pile cstheory, alors ne soyez pas trop impoli si je viole l'étiquette d'une manière ou d'une autre)

Comme nous le savons, en mathématiques, même des mathématiciens, des superstars et des génies célèbres font de temps en temps de graves erreurs. Par exemple, le théorème à 4 couleurs et le théorème de Fermat nous fournissent des cas dramatiques de la façon dont même les esprits les plus brillants peuvent être trompés. Cela peut même prendre des années pour prouver l'inexactitude de certaines preuves de falsification.

Ma question est - pouvez-vous fournir des exemples remarquables de telles erreurs en informatique? Je ne sais pas, quelque chose comme "Le Dr X a prouvé en 1972 qu'il était impossible de faire Y en moins de O (log n), mais en 1995, il s'est avéré qu'il avait en fait tort".


13
Ce n'est pas un exemple remarquable: l'algorithme de correspondance bipartite en ligne de Karp, Vazirani et Vazirani (1990) a commis une erreur dans un lemme découvert environ 15 ans plus tard.
Jagadish

2
@shabunc ces types de questions demandent une liste de réponses, et donc la balise wiki communautaire est appropriée pour cela.
Suresh Venkat

4

2
Si poser des questions sur les erreurs est impoli, votre question elle-même est impolie et éviter le mot «erreurs» dans le titre n'est pas une solution.
Tsuyoshi Ito

3
Article de blog pertinent Math is Like The Stock Market .
Pratik Deoghare

Réponses:


28

Un exemple tristement célèbre en géométrie informatique est la preuve incorrecte du théorème de zone pour les arrangements d'hyperplan publié par Edelsbrunner, O'Rourke et Seidel [FOCS 1983, SICOMP 1986]. La preuve apparaît également dans le manuel de géométrie computationnelle de 1987 d'Edelsbrunner.

Théorème de zone: dans tout arrangement de hyperplans dans R d , la complexité totale de toutes les cellules coupant tout hyperplan est O ( n d - 1 ) .nRO(n-1)

Le théorème de zone est une étape clé dans la preuve que l'algorithme incrémentiel récursif standard pour construire un arrangement de hyperplans dans R d s'exécute en temps O ( n d ) .nRO(n)

En 1990, Raimund Seidel a découvert que la preuve publiée était incorrecte, après avoir été contestée sur un point technique subtil par un étudiant de sa classe de géométrie computationnelle. Pendant ce temps, une énorme littérature sur la recherche d'hyperplans / demi-espace / simplex / semi-algébrique avait été développée, qui s'appuyait toutes sur le temps de construction pour les arrangements, qui à leur tour s'appuyaient sur le théorème de zone. (Aucun de ces auteurs n'a remarqué le bogue. Raimund avait enseigné la "preuve" publiée en détail pendant plusieurs années avant qu'il ne soit mis au défi.)O(n)

Heureusement, Edelsbrunner, Seidel et Sharir ont presque immédiatement trouvé une preuve correcte (et beaucoup plus simple!) Du théorème de zone [Nouveaux résultats et nouvelles tendances dans CS 1991, SICOMP 1993].


@ Jɛ ff E, celui-ci est un excellent exemple, merci!
shabunc

4
Savez-vous par hasard qui était l'élève intelligent?
Suresh Venkat

4
Non, non. Raimund m'a raconté l'histoire il y a> 15 ans, quand j'étais à Berkeley; s'il m'a dit le nom de l'élève, je l'ai depuis longtemps oublié. (Et probablement Raimund aussi.) Le document SICOMP 1993 ne mentionne pas non plus l'étudiant.
Jeffε

10

Le protocole de cryptographie à clé publique Needham-Shroeder, un protocole à 5 lignes, s'est révélé non sécurisé 17 ans après sa publication. C'est l'exemple préféré des personnes chargées de la vérification pour effectuer une analyse formelle des protocoles de cryptographie.


8
À moins que le document d'origine ne donne une fausse preuve que le protocole est sécurisé, cela ne compte pas comme une erreur. Montrer que les cryptosystèmes proposés ne sont pas sûrs fait en fait partie de la recherche en crypto.
MCH

1
d'accord avec MCH, les protocoles de cryptographie sont une histoire différente subtile.
shabunc

6
Il existe deux concepts différents dans ce protocole: le schéma de cryptage et le protocole de communication. L'auteur était conscient qu'il pouvait y avoir des attaques contre le schéma de cryptage, mais ils ont discuté de la sécurité du protocole de communication et conclu qu'il est sécurisé: "Nous supposons qu'un intrus peut interposer un ordinateur dans tous les chemins de communication, et peut donc modifier ou copier des parties de messages, rejouer des messages ou émettre de faux éléments. Bien que cela puisse sembler une vue extrême, c'est le seul sûr lors de la conception de protocoles d'authentification "Et l'attaque est de type homme au milieu.
Loïck


8

Il y a eu des conjectures qui se sont révélées fausses (par exemple, une distorsion constante incorporant des métriques de type négatif réfutées par Khot et Vishnoi), mais il n'y a rien de mal à poser une fausse conjecture car après tout, c'est une conjecture.

ϵϵkk

PNP


+1 pour Feynman. Pouvez-vous fournir plus de détails sur Feynman et P vs NP?
Becko

2
Demandez à Scott Aaronson, il connaît bien ce genre de choses.
MCH

2
Regardez cette conférence TED . Mais penser que quelque chose est évident ne prouve rien et ne sert à rien.
Pratik Deoghare

6
@MCH: Que Feynman ait cru ces choses ou non, je ne pense pas qu'il soit un exemple pertinent. Premièrement, ces deux déclarations sont généralement considérées comme vraies et, deuxièmement, il n'a jamais prétendu avoir prouvé ces choses.
Joe Fitzsimons

2

7

"J'ai été choqué d'apprendre que le programme de recherche binaire que Bentley a prouvé correct et testé par la suite dans le chapitre 5 de Programming Pearls contient un bogue. Une fois que je vous dirai ce que c'est, vous comprendrez pourquoi il a échappé à la détection pendant deux décennies. De peur que vous ne pensiez Je choisis Bentley, laissez-moi vous dire comment j'ai découvert le bogue: la version de la recherche binaire que j'ai écrite pour le JDK contenait le même bogue. Il a été signalé à Sun récemment lorsqu'il a interrompu le programme de quelqu'un, après avoir attendu neuf ans ou plus. "

-

Joshua Bloch "Extra, Extra - Lisez tout à ce sujet: presque toutes les recherches binaires et fusions sont brisées" 2006


7
Celui-ci n'est pas en fait un bug dans l'algorithme, mais un bug dans l'implémentation. L'algorithme est correct; le problème est que le type "int" ne peut pas réellement traiter des entiers arbitraires.
Aaron Roth
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.