Kesalahan jangka panjang dalam ilmu komputer

26

Ini adalah pertanyaan pertama saya di stack cstheory, jadi jangan terlalu kasar jika saya entah bagaimana melanggar etika)

Seperti yang kita ketahui, dalam matematika bahkan ahli matematika terkenal, superstar dan genius melakukan kesalahan serius dari waktu ke waktu. Sebagai contoh, teorema 4-warna dan teorema Fermat memberi kita kasus dramatis tentang bagaimana pikiran yang paling cerdas sekalipun dapat diperdaya. Bahkan bisa memakan waktu bertahun-tahun untuk membuktikan kesalahan beberapa bukti palsu.

Pertanyaan saya adalah - dapatkah Anda memberikan beberapa contoh luar biasa dari kesalahan seperti itu dalam ilmu komputer? Saya tidak tahu, kira-kira seperti "Dr. X telah membuktikan pada tahun 1972 bahwa tidak mungkin melakukan Y dalam waktu kurang dari O (log n), tetapi pada tahun 1995 ternyata ia benar-benar salah".

shabunc
sumber
13
Bukan contoh yang luar biasa: algoritma untuk pencocokan bipartit online oleh Karp, Vazirani & Vazirani (1990) memiliki kesalahan dalam satu lemma yang ditemukan sekitar 15 tahun kemudian.
Jagadish
2
@shabunc, pertanyaan semacam ini meminta daftar jawaban, dan tag komunitas-wiki sesuai untuk itu.
Suresh Venkat
4
juga, pertanyaan ini terkait: cstheory.stackexchange.com/questions/3616/…
Suresh Venkat
2
Jika bertanya tentang kesalahan tidak sopan, pertanyaan Anda sendiri tidak sopan dan menghindari kata "kesalahan" pada judul bukanlah solusi.
Tsuyoshi Ito
3
Posting blog yang relevan Math Is Like The Stock Market .
Pratik Deoghare

Jawaban:

28

Contoh terkenal dalam geometri komputasi adalah bukti yang salah dari Teorema Zona untuk pengaturan hyperplane yang diterbitkan oleh Edelsbrunner, O'Rourke, dan Seidel [FOCS 1983, SICOMP 1986]. Buktinya juga muncul dalam buku teks geometri komputasi Edelsbrunner 1987.

Teorema Zona: Dalam setiap susunan hiperplanes dalam R d , kompleksitas total semua sel yang berpotongan dengan hyperplane adalah O ( n d - 1 ) .nRdO(nd1)

Zona Teorema merupakan langkah kunci dalam bukti bahwa standar algoritma tambahan rekursif untuk membangun suatu susunan hyperplanes di R d berjalan di O ( n d ) waktu.nRdO(nd)

Pada tahun 1990, Raimund Seidel menemukan bahwa bukti yang dipublikasikan tidak benar, setelah ditantang pada titik teknis yang halus oleh seorang siswa di kelas geometri komputasinya. Sementara itu, besar literatur tentang hyperplane / halfspace / simplex / rentang semialgebraic pencarian telah dikembangkan, yang semuanya bergantung pada waktu konstruksi untuk pengaturan, yang pada gilirannya bergantung pada Zona Teorema. (Tidak ada penulis yang memperhatikan bug itu. Raimund telah mengajarkan "bukti" yang dipublikasikan secara terperinci selama beberapa tahun sebelum dia ditantang.)O(nd)

Untungnya, Edelsbrunner, Seidel, dan Sharir segera menemukan bukti yang benar (dan jauh lebih sederhana!) Dari Teorema Zona [Hasil Baru dan Tren Baru di CS 1991, SICOMP 1993].

Jeffε
sumber
@ Jɛ ff E, ini contoh yang bagus, terima kasih!
shabunc
4
Apakah Anda kebetulan tahu siapa siswa yang pintar itu?
Suresh Venkat
4
Tidak, tidak. Raimund menceritakan kisah itu kepada saya> 15 tahun yang lalu, ketika saya berada di Berkeley; jika dia memberi tahu saya nama muridnya, saya sudah lama lupa. (Dan mungkin juga Raimund.) Makalah SICOMP 1993 juga tidak menyebutkan siswa.
Jeffε
10

Protokol kriptografi kunci publik Needham-Shroeder, protokol 5-jalur, telah ditunjukkan tidak aman 17 tahun setelah dipublikasikan. Ini adalah contoh favorit orang Verifikasi untuk melakukan analisis formal protokol kripto.

Loïck
sumber
8
Kecuali jika kertas asli memberikan bukti yang salah bahwa protokol aman, ini tidak dihitung sebagai kesalahan. Menunjukkan bahwa cryptosystem yang diusulkan tidak aman sebenarnya adalah bagian dari penelitian crypto.
MCH
1
setuju dengan KIA, protokol crypto adalah cerita yang berbeda.
shabunc
6
Ada dua konsep berbeda dalam protokol ini: skema enkripsi dan protokol komunikasi. Penulis sadar bahwa mungkin ada serangan pada skema enkripsi, tetapi mereka membahas keamanan protokol komunikasi dan menyimpulkannya aman: "Kami berasumsi bahwa penyusup dapat menempatkan komputer di semua jalur komunikasi, dan dengan demikian dapat mengubah atau menyalin bagian dari pesan, pesan replay, atau memancarkan materi palsu. Meskipun ini mungkin tampak ekstrem, itu adalah satu-satunya yang aman ketika merancang protokol otentikasi "Dan serangannya adalah tipe man-in-the-middle.
Loïck
9

Dick Lipton memiliki posting baru tentang non-monotonisitas pengetahuan matematika, dan di dalamnya ia mendokumentasikan contoh-contoh klaim yang ternyata salah, atau setidaknya perlu diperbaiki.

Suresh Venkat
sumber
8

Ada dugaan yang ternyata salah (mis., Penyisipan distorsi konstan dari metrik tipe negatif yang dibantah oleh Khot dan Vishnoi), tetapi tidak ada yang salah dengan mengajukan dugaan palsu karena bagaimanapun juga itu dugaan.

Contoh kebingungan yang sebenarnya, yang tidak bertahan lama, adalah pengulangan paralel. Awalnya diyakini bahwa untuk protokol interaktif dengan probabilitas kesalahan , kesalahan berkurang menjadi ϵ k untuk k pengulangan paralel. Klaim ini ternyata salah, dan pada kenyataannya upaya untuk lebih memahami pengulangan paralel ternyata membuka pintu bagi banyak matematika yang indah.ϵϵkk

Ia juga percaya bahwa Feynman telah berpikir bahwa (atau mungkin mekanika kuantum jelas tidak dapat disimulasikan secara efisien oleh komputer klasik). Tapi kemudian dia bukan ilmuwan komputer teoretis, juga tidak ada yang yakin dengan keakuratan cerita ini.PNP

KIA
sumber
+1 untuk Feynman. Bisakah Anda memberikan detail lebih lanjut tentang Feynman dan P vs NP?
becko
2
Tanya Scott Aaronson, dia tahu hal ini dengan baik.
MCH
2
Tonton ceramah TED ini . Tetapi berpikir bahwa sesuatu itu jelas tidak membuktikan apa-apa dan tidak ada gunanya.
Pratik Deoghare
6
@MCH: Apakah Feynman percaya hal-hal ini atau tidak, saya tidak berpikir dia adalah contoh yang relevan. Pertama, kedua pernyataan itu secara luas diyakini benar, dan kedua dia tidak pernah mengklaim telah membuktikan hal-hal ini.
Joe Fitzsimons
2
Benar. Sebagian besar dari kita berpikir bahwa, jelas , P NP. Kami tidak bisa membuktikan itu!
MCH
7

"Saya terkejut mengetahui bahwa program pencarian biner yang terbukti benar oleh Bentley dan kemudian diuji dalam Bab 5 Pemrograman Mutiara mengandung bug. Setelah saya memberi tahu Anda apa itu, Anda akan mengerti mengapa ia lolos dari deteksi selama dua dekade. Jangan sampai Anda berpikir Saya memilih Bentley, izinkan saya memberi tahu Anda bagaimana saya menemukan bug: Versi pencarian biner yang saya tulis untuk JDK berisi bug yang sama. Dilaporkan kepada Sun baru-baru ini ketika ia merusak program seseorang, setelah menunggu untuk menunggu sembilan tahun atau lebih. "

-

Joshua Bloch "Extra, Extra - Read All About It: Hampir Semua Pencarian Biner dan Mergesort Rusak" 2006

David Cary
sumber
7
Yang ini sebenarnya bukan bug dalam algoritme, tetapi bug dalam implementasinya. Algoritma itu benar; masalahnya adalah bahwa tipe "int" tidak bisa benar-benar berurusan dengan bilangan bulat sewenang-wenang.
Aaron Roth