Errores duraderos en informática

26

Esta es mi primera pregunta sobre la pila de teoría, así que no seas demasiado grosero si estoy violando la etiqueta de alguna manera)

Como sabemos, en matemáticas incluso matemáticos famosos, superestrellas y genios están cometiendo serios errores de vez en cuando. Por ejemplo, tanto el teorema de 4 colores como el teorema de Fermat nos proporcionan casos dramáticos de cómo se pueden engañar incluso las mentes más brillantes. Incluso puede llevar años demostrar la incorrección de algunas pruebas falsas.

Mi pregunta es: ¿puede proporcionar algunos ejemplos destacados de tales errores en informática? No sé, algo así como "El Dr. X demostró en 1972 que es imposible hacer Y en menos tiempo que O (log n), pero en 1995 resultó que en realidad estaba equivocado".

shabunc
fuente
13
No es un ejemplo sobresaliente: el algoritmo para la correspondencia bipartita en línea de Karp, Vazirani y Vazirani (1990) tuvo un error en un lema que se descubrió unos 15 años después.
Jagadish
2
@shabunc este tipo de preguntas están pidiendo una lista de respuestas, por lo que la etiqueta community-wiki es adecuada para ello.
Suresh Venkat
44
también, esta pregunta está relacionada: cstheory.stackexchange.com/questions/3616/…
Suresh Venkat
2
Si preguntar sobre los errores es descortés, su pregunta en sí es descortés y evitar la palabra "errores" en el título no es una solución.
Tsuyoshi Ito
3
Publicación de blog relevante Math Is Like The Stock Market .
Pratik Deoghare

Respuestas:

28

Un ejemplo infame en geometría computacional es la prueba incorrecta del teorema de zona para arreglos de hiperplano publicado por Edelsbrunner, O'Rourke y Seidel [FOCS 1983, SICOMP 1986]. La prueba también aparece en el libro de texto de geometría computacional de 1987 de Edelsbrunner.

Teorema de zona: en cualquier disposición de hiperplanos en , la complejidad total de todas las celdas que intersecan cualquier hiperplano es .R d O ( n d - 1 )nRdO(nd1)

El teorema de zona es un paso clave en la prueba de que el algoritmo incremental recursivo estándar para construir una disposición de hiperplanos en ejecuta en tiempo .R d O ( n d )nRdO(nd)

En 1990, Raimund Seidel descubrió que la prueba publicada era incorrecta, después de ser cuestionado en un punto técnico sutil por un estudiante en su clase de geometría computacional. Mientras tanto, se había desarrollado una gran literatura sobre la búsqueda de hiperplano / medio espacio / simplex / rango semialgebraico, todo lo cual dependía del tiempo de construcción para los arreglos, que a su vez se basaba en el Teorema de la Zona. (Ninguno de esos autores notó el error. Raimund había enseñado la "prueba" publicada en detalle durante varios años antes de ser cuestionado).O(nd)

Afortunadamente, Edelsbrunner, Seidel y Sharir encontraron casi de inmediato una prueba correcta (¡y mucho más simple!) Del Teorema de la zona [Nuevos resultados y nuevas tendencias en CS 1991, SICOMP 1993].

Jeffε
fuente
@ Jɛ ff E, este es un gran ejemplo, ¡gracias!
shabunc
44
¿Sabes quién era el estudiante inteligente?
Suresh Venkat
44
No lo hago Raimund me contó la historia hace 15 años, cuando estaba en Berkeley; Si me dijo el nombre del estudiante, hace mucho que lo olvido. (Y probablemente también lo haya hecho Raimund). El artículo de SICOMP 1993 tampoco menciona al estudiante.
Jeff el
10

El protocolo de criptografía de clave pública Needham-Shroeder, un protocolo de 5 líneas, se ha mostrado inseguro 17 años después de su publicación. Este es el ejemplo favorito de las personas de verificación para hacer análisis formales de protocolos criptográficos.

Loïck
fuente
8
A menos que el documento original proporcione una prueba incorrecta de que el protocolo es seguro, esto no cuenta como un error. Mostrar que los criptosistemas propuestos son inseguros es, de hecho, una parte de la investigación en criptografía.
MCH
1
de acuerdo con MCH, los protocolos criptográficos son una historia sutil diferente.
shabunc
66
Hay dos conceptos diferentes en este protocolo: el esquema de cifrado y el protocolo de comunicación. El autor sabía que podría haber ataques al esquema de encriptación, pero discutieron la seguridad del protocolo de comunicación y concluyeron que es seguro: "Suponemos que un intruso puede interponer una computadora en todas las rutas de comunicación y, por lo tanto, puede alterar o copiar partes de mensajes, reproducir mensajes o emitir material falso. Si bien esto puede parecer una visión extrema, es la única segura cuando se diseñan protocolos de autenticación "Y el ataque es del tipo hombre en el medio.
Loïck
9

Dick Lipton tiene una nueva publicación sobre la no monotonicidad del conocimiento matemático, y en él documenta ejemplos de afirmaciones hechas que resultaron ser falsas, o al menos necesitadas de reparación.

Suresh Venkat
fuente
8

Ha habido conjeturas que resultaron ser falsas (por ejemplo, incrustación de distorsión constante de métricas de tipo negativo refutadas por Khot y Vishnoi), pero no hay nada de malo en plantear una conjetura falsa ya que después de todo es una conjetura.

ϵϵkk

PNP

MCH
fuente
+1 para Feynman. ¿Puede proporcionar más detalles sobre Feynman y P vs NP?
Becko
2
Pregúntale a Scott Aaronson, él sabe esto bien.
MCH
2
Mira esta charla TED . Pero pensar que algo es obvio no prueba nada y no sirve de nada.
Pratik Deoghare
66
@MCH: Si Feynman creyó estas cosas o no, no creo que sea un ejemplo relevante. Primero, se cree que ambas afirmaciones son ciertas, y en segundo lugar, nunca afirmó haber probado estas cosas.
Joe Fitzsimons
2
7

"Me sorprendió saber que el programa de búsqueda binaria que Bentley demostró ser correcto y que posteriormente probó en el Capítulo 5 de Programming Pearls contiene un error. Una vez que le diga qué es, comprenderá por qué escapó a la detección durante dos décadas. Estoy molestando a Bentley, déjenme decirles cómo descubrí el error: la versión de búsqueda binaria que escribí para el JDK contenía el mismo error. Se informó a Sun recientemente cuando rompió el programa de alguien, después de esperar nueve años más o menos ".

-

Joshua Bloch "Extra, Extra - Lea todo sobre esto: casi todas las búsquedas binarias y Mergesorts están rotas" 2006

David Cary
fuente
77
Este no es realmente un error en el algoritmo, sino un error en la implementación. El algoritmo es correcto; El problema es que el tipo "int" en realidad no puede tratar con enteros arbitrarios.
Aaron Roth