Долгосрочные ошибки в информатике

26

Это мой первый вопрос о стеке теории, так что не будь слишком груб, если я как-то нарушаю этикет)

Как известно, в математике даже известные математики, суперзвезды и гении время от времени совершают серьезные ошибки. Например, и теорема о 4 цветах, и теорема Ферма дают нам драматические случаи того, как даже самые яркие умы могут быть обмануты. Даже могут потребоваться годы, чтобы доказать ошибочность некоторых ложных доказательств.

Мой вопрос - можете ли вы привести некоторые выдающиеся примеры таких ошибок в информатике? Я не знаю, что-то вроде «Доктор Х доказал в 1972 году, что невозможно сделать Y меньше, чем за O (log n) времени, но в 1995 году оказалось, что он на самом деле был неправ».

шабун
источник
13
Не выдающийся пример: алгоритм согласования двухчастичных данных онлайн, разработанный Karp, Vazirani & Vazirani (1990), допустил ошибку в одной лемме, которая была обнаружена около 15 лет спустя.
Джагадиш
2
@shabunc вопросы такого рода задают список ответов, поэтому для этого подходит тег community-wiki.
Суреш Венкат
4
также этот вопрос связан с: cstheory.stackexchange.com/questions/3616/…
Суреш Венкат
2
Если спрашивать об ошибках невежливо, сам ваш вопрос невежлив, и избегать слова «ошибки» в заголовке не является решением.
Цуёси Ито
3
Соответствующее сообщение в блоге Математика как фондовый рынок .
Pratik Deoghare

Ответы:

28

Печально известным примером в вычислительной геометрии является неверное доказательство теоремы о зоне для гиперплоскостных схем, опубликованное Эдельсбруннером, О'Рурком и Зайделем [FOCS 1983, SICOMP 1986]. Доказательство также содержится в учебнике по вычислительной геометрии Эдельсбруннера 1987 года.

Теорема о зоне. При любом расположении гиперплоскостей в общая сложность всех ячеек, пересекающих любую гиперплоскость, равна .R d O ( n d - 1 )nRdO(nd1)

Теорема о зоне является ключевым шагом в доказательстве того, что стандартный рекурсивный инкрементный алгоритм для построения расположения гиперплоскостей в выполняется за время.R d O ( n d )nRdO(nd)

В 1990 году Раймунд Зайдель обнаружил, что опубликованное доказательство было неверным, после того, как студент из его класса вычислительной геометрии оспаривал тонкую техническую точку зрения. Тем временем была разработана огромная литература по поиску гиперплоскости / полупространства / симплекса / полуалгебраического диапазона, все из которых основывались на времени построения для аранжировок, что, в свою очередь, основывалось на теореме о зоне. (Ни один из этих авторов не заметил ошибку. Раймунд подробно учил опубликованное «доказательство» в течение нескольких лет, прежде чем его оспаривали.)O(nd)

К счастью, Эдельсбруннер, Зайдель и Шарир почти сразу нашли правильное (и намного проще!) Доказательство теоремы о зоне [Новые результаты и новые тенденции в CS 1991, SICOMP 1993].

Jeffε
источник
@ Jɛ ff E, это отличный пример, спасибо!
Шабун
4
Вы случайно не знаете, кто был умным студентом?
Суреш Венкат
4
Нет не знаю Раймунд рассказал мне историю> 15 лет назад, когда я был в Беркли; если он сказал мне имя студента, я давно забыл. (И, вероятно, так же и Раймунд.) В статье SICOMP 1993 года также не упоминается студент.
Джефф
10

Криптографический протокол с открытым ключом Needham-Shroeder, состоящий из 5 строк, оказался небезопасным через 17 лет после его публикации. Это любимый пример проверяющих людей для формального анализа крипто-протоколов.

Loick
источник
8
Если оригинальная статья не дает неверного доказательства безопасности протокола, это не считается ошибкой. Показ того, что предлагаемые криптосистемы небезопасны, на самом деле является частью исследований в криптографии.
MCH
1
согласен с MCH, крипто протоколы это тонкая отдельная история.
Шабун
6
В этом протоколе есть две разные концепции: схема шифрования и протокол связи. Авторы знали, что могут быть атаки на схему шифрования, но они обсудили безопасность протокола связи и пришли к выводу, что он безопасен: «Мы предполагаем, что злоумышленник может вставить компьютер во все каналы связи и, таким образом, может изменить или скопировать части сообщений, воспроизведения сообщений или передачи ложного материала. Хотя это может показаться экстремальным, он является единственным безопасным при разработке протоколов аутентификации "А атака имеет тип" человек посередине ".
Loïck
9

У Дика Липтона есть новый пост о немонотонности математических знаний, и в нем он документирует примеры заявлений, которые оказались ложными или, по крайней мере, нуждались в исправлении.

Суреш Венкат
источник
8

Были гипотезы, которые оказались ложными (например, вложение с постоянным искажением метрик отрицательного типа, опровергнутых Хотом и Вишным), но нет ничего плохого в том, чтобы выдвигать ложную гипотезу, поскольку в конце концов это гипотеза.

Примером реальной путаницы, которая длилась недолго, является параллельное повторение. Первоначально считалось, что для интерактивного протокола с вероятностью ошибки ошибка уменьшается до для параллельных повторений. Это утверждение оказалось ложным, и на самом деле попытки лучше понять параллельное повторение оказались открытием для большого количества прекрасной математики.ϵ к кϵϵkk

Также считается, что Фейнман считал очевидным, что (или, может быть, квантовая механика, очевидно, не может быть эффективно смоделирована классическими компьютерами). Но тогда он не был теоретиком компьютерных наук, и никто не уверен в точности этой истории.PNP

МЧ
источник
+1 за Фейнмана. Можете ли вы предоставить более подробную информацию о Фейнман и P против NP?
becko
2
Спросите Скотта Ааронсона, он хорошо это знает.
MCH
2
Посмотрите этот разговор TED . Но думать, что что-то очевидно, ничего не доказывает и бесполезно.
Pratik Deoghare
6
@ MCH: верил ли Фейнман в эти вещи или нет, я не думаю, что он является уместным примером. Во-первых, широко распространено мнение, что оба эти утверждения верны, а во-вторых, он никогда не утверждал, что доказал эти вещи.
Джо Фицсимонс
2
Правда. Большинство из нас думают, что, очевидно , P NP. Мы просто не можем доказать это!
MCH
7

«Я был шокирован, узнав, что программа бинарного поиска, которую Bentley доказал, что она была правильной и впоследствии протестирована в главе 5« Программирование жемчуга », содержит ошибку. Как только я скажу вам, что это такое, вы поймете, почему она избежала обнаружения в течение двух десятилетий. Я выбираю Bentley, позвольте мне рассказать вам, как я обнаружил ошибку: Версия бинарного поиска, которую я написал для JDK, содержала ту же ошибку. Об этом недавно было сообщено Sun, когда она ломала чью-то программу, после ожидания девять лет или около того. "

-

Джошуа Блох "Extra, Extra - Читать все об этом: почти все бинарные поиски и слияния нарушены" 2006

David Cary
источник
7
Это на самом деле не ошибка в алгоритме, а ошибка в реализации. Алгоритм правильный; проблема в том, что тип int не может иметь дело с произвольными целыми числами.
Аарон Рот