Keyakinan salah yang umum dalam ilmu komputer teoretis

62

EDIT AT 10/12/08:

Saya akan mencoba mengubah pertanyaan sehingga menarik minat lebih banyak orang untuk berbagi pendapat. Kami MEMBUTUHKAN kontribusi Anda!

Posting ini terinspirasi oleh yang ada di MO: Contoh keyakinan salah yang umum dalam matematika . Daftar besar kadang-kadang menghasilkan sejumlah besar jawaban yang kualitasnya sulit dikendalikan, tetapi setelah keberhasilan pos terkait di MO saya yakin bahwa akan sangat membantu untuk mendaftar sekelompok kepercayaan salah yang umum di TCS.

Namun, karena situs ini dirancang untuk menjawab pertanyaan tingkat penelitian, contoh-contoh seperti berarti waktu non-polinomial seharusnya tidak ada dalam daftar. Sementara itu, kami memang menginginkan beberapa contoh yang mungkin tidak sulit, tetapi tanpa memikirkannya secara terperinci, itu juga masuk akal. Kami ingin contoh-contohnya mendidik, dan biasanya muncul ketika mempelajari subjek pada saat pertama.NP

Apa saja contoh (tidak sepele) dari kepercayaan salah yang umum dalam ilmu komputer teoretis, yang nampak bagi orang-orang yang belajar di bidang ini?

Lebih tepatnya, kami ingin contoh berbeda dari hasil yang mengejutkan dan hasil yang berlawanan dengan intuisi di TCS; hasil semacam ini membuat orang sulit untuk percaya, tetapi mereka BENAR. Di sini kami meminta contoh mengejutkan bahwa orang mungkin berpikir itu benar pada pandangan pertama, tetapi setelah berpikir lebih dalam, kesalahan di dalamnya terungkap.


Sebagai contoh jawaban yang tepat pada daftar, jawaban ini berasal dari bidang algoritma dan teori-grafik:

Untuk grafik n -node G , pemisah k -edge S adalah himpunan bagian dari ukuran k , di mana node GS dapat dipartisi menjadi dua bagian yang tidak berdekatan, masing-masing terdiri dari paling banyak 3n/4 node . Kami memiliki lemma berikut":

Sebuah pohon memiliki pemisah 1-tepi.

Baik?

Hsien-Chih Chang 張顯 之
sumber
Pos telah ditandai untuk diminta sebagai CW.
Hsien-Chih Chang 張顯 之

Jawaban:

59

Ini adalah salah satu yang umum untuk geometri komputasi, tetapi endemik di tempat lain: Algoritma untuk RAM nyata dapat ditransfer ke RAM integer (untuk batasan integer masalah) tanpa kehilangan efisiensi. Sebuah contoh kanonik adalah klaim "Gaussian eliminasi berjalan pada waktu ." Faktanya, perintah eliminasi yang ceroboh dapat menghasilkan bilangan bulat dengan bit yang banyak secara eksponensial .O(n3)

Lebih buruk lagi, tetapi sayangnya masih umum: Algoritma untuk RAM nyata dengan fungsi lantai dapat ditransfer ke RAM integer tanpa kehilangan efisiensi. Bahkan, RAM-nyata + lantai dapat memecahkan masalah di PSPACE atau di # P dalam sejumlah langkah polinomial .

Jeffε
sumber
5
Kesalahpahaman eliminasi Gaussian sangat luas. Mungkin bagian dari masalahnya adalah bahwa kita sering mengerjakan bidang yang terbatas dan, karena tidak ada masalah di sana, kita lupa.
slimton
"Setelah kita melakukan eliminasi Gaussian integer, kita tahu bagaimana menemukan solusi."
Albert Hendriks
40

Saya baru saja mendapatkan mitos lain yang rusak, yang disumbangkan oleh jawaban @ XXYYXX untuk posting ini :

  • Masalah X adalah -Hard jika ada waktu polinomial (atau, logspace) pengurangan dari semua N P masalah untuk X.NPNP
  • Asumsikan hipotesis waktu eksponensial, 3-SAT tidak memiliki algoritma waktu sub-eksponensial. Juga, 3-SAT adalah .NP
  • Jadi tidak ada masalah sulit X memiliki algoritma waktu sub-eksponensial. Kalau tidak, algoritma waktu sub-eksponensial untuk X + pengurangan waktu polinomial = algoritma waktu sub-eksponensial untuk 3-SAT.NP

Tetapi kami memiliki algoritma waktu sub-eksponensial untuk beberapa masalah NP-hard.

Hsien-Chih Chang 張顯 之
sumber
Saya memiliki kesan yang sama.
Mohammad Al-Turkistany
Jadi apa yang dikatakan di sini tentang Hipotesis Waktu Eksponensial? Atau apakah saya melewatkan beberapa kekurangan dalam alur pemikiran ini?
Mikhail Glushenkov
2
Ada kesalahan di poin 3. Itulah yang saya salah pahami sejak lama :)
Hsien-Chih Chang 張顯 之
Saya tidak yakin apakah saya tidak dapat menemukan kesalahan. Apakah itu karena , reduksi tidak harus selalu polinomial tetapi dapat eksponensial dalam waktu, karena kedua masalah akan di KECUALI (karena ETH?)PNP
chazisop
43
Pengurangan waktu polinomial dapat mengubah ukuran input dengan jumlah polinomial. Jadi jika Anda mengurangi turunan dari Q ukuran n ke turunan P ukuran n kuadrat, algoritma 2 ke root n untuk P hanya memberi Anda algoritma 2 ke n untuk Q.
Russell Impagliazzo
29

Keyakinan keliru yang dipopulerkan tahun ini dan diceritakan berkali-kali ketika seseorang mencoba menjelaskan seluruh masalah , karena P dijelaskan sebagai efisien:PNPP

"Jika , maka kita dapat memecahkan sejumlah besar masalah secara efisien. Jika tidak, kita tidak bisa"P=NP

Jika dapat diselesaikan dalam O ( n g o o g o l p l e x ) maka P = N P . Saya tidak berpikir ada orang yang berpikir untuk menjalankan algoritma ini.3SATO(ngoogolplex)P=NP

Jika , kita masih dapat memiliki algoritma untuk T S P yang berjalan di n log ( log n ) , yang lebih kecil dari n 5 untuk n 2 32 . Kebanyakan orang akan sangat senang bisa menyelesaikan T S P untuk 4 miliar kota secepat itu.PNPTSPnlog(logn)n5n232TSP

chazisop
sumber
5
Posting blog oleh Lipton bagus: rjlipton.wordpress.com/2009/07/03/is-pnp-an-ill-posed-problem
Hsien-Chih Chang 張顯 之
6
“Untuk setiap algoritma waktu polinomial yang Anda miliki, ada algoritma eksponensial yang saya lebih suka jalankan” - Alan Perlis, melalui Lost Letter dari Gödel dan P = NP .
Pål GD
24

Ini benar-benar kepercayaan salah dalam matematika, tetapi sering muncul dalam konteks TCS: Jika variabel acak dan Y adalah independen, maka dikondisikan pada Z mereka tetap independen. (salah bahkan jika Z tidak tergantung pada X dan Y. )XYZZXY

KIA
sumber
2
Apakah Anda memiliki contoh sederhana favorit ini yang akan Anda rekomendasikan, untuk membantu orang dengan cepat mengenali mengapa itu salah?
DW
21
Say dan Y adalah bit independen dan seragam, dan Z = X + Y (mod 2). Kemudian, Z tidak tergantung pada X dan tidak tergantung pada Y , tetapi dikondisikan pada Z , mengetahui X mengungkapkan Y dan sebaliknya. XYZ=X+YZXYZXY
KIA
22

Komputasi terdistribusi = komputasi kinerja tinggi terdistribusi (cluster, grid, cloud, seti @ home, ...).

Algoritma terdistribusi = algoritma untuk sistem ini.


Spoiler: Jika ini tidak terdengar seperti "keyakinan salah", saya sarankan Anda melihat konferensi seperti PODC dan DISC, dan melihat pekerjaan seperti apa yang orang lakukan ketika mereka mempelajari aspek teoritis dari komputasi terdistribusi.

Pengaturan masalah yang umum adalah sebagai berikut: Kami memiliki siklus dengan node; node diberi label dengan pengidentifikasi unik dari set { 1 , 2 , . . . , poli ( n ) } ; node bersifat deterministik dan bertukar pesan satu sama lain secara sinkron. Berapa banyak putaran komunikasi sinkron (sebagai fungsi dari n ) yang diperlukan untuk menemukan set independen maksimal? Berapa putaran yang diperlukan untuk menemukan set independen dengan setidaknya n / 1000 node? [Jawaban untuk kedua pertanyaan ini persis Θ ( log n{1,2,...,poly(n)}nn/1000 , ditemukan pada 1986–2008.]Θ(logn)

Artinya, orang sering mempelajari masalah yang benar-benar sepele dari perspektif algoritma terpusat, dan memiliki sedikit kesamaan dengan semua jenis superkomputer atau komputasi kinerja tinggi. Intinya tentu saja bukan mempercepat perhitungan terpusat dengan menggunakan lebih banyak prosesor, atau semacamnya.

Tujuannya adalah untuk membangun teori kompleksitas dengan mengklasifikasikan masalah grafik mendasar sesuai dengan kompleksitas komputasinya (misalnya, berapa banyak putaran sinkron yang diperlukan; berapa banyak bit yang ditransmisikan). Masalah seperti set independen dalam siklus mungkin tampak tidak ada gunanya, tetapi mereka melayani peran yang mirip dengan 3-SAT dalam komputasi terpusat: titik awal yang sangat berguna dalam pengurangan. Untuk aplikasi nyata di dunia nyata, lebih masuk akal untuk melihat perangkat seperti router dan sakelar di jaringan komunikasi, daripada komputer di grid dan cluster.

Keyakinan salah ini tidak sepenuhnya tidak berbahaya. Ini sebenarnya membuatnya cukup sulit untuk menjual karya yang berkaitan dengan teori algoritma terdistribusi kepada khalayak TCS umum. Saya telah menerima laporan wasit lucu dari konferensi TCS ...

Jukka Suomela
sumber
1
Mengenai komputasi, saya tidak akan mengatakan ini bukan keyakinan yang salah, tetapi yang sudah ketinggalan zaman. Selain prosesor multicore, komputasi terdistribusi skala kecil adalah kasus sepele dari yang berkinerja tinggi (dari apa yang saya tahu setidaknya). Dengan core yang menjadi "komputer" tetapi dalam jarak yang sangat kecil, tanpa jaringan di antara mereka, muncul masalah baru. Namun saya setuju bahwa algoritma terdistribusi harus digunakan untuk m> = 2 node.
chazisop
Jadi Anda hanya mengatakan bahwa orang membingungkan komputasi paralel dengan komputasi terdistribusi?
Sasho Nikolov
Saya pikir klaim Anda tidak berlaku untuk ilmuwan komputer teoretis, meskipun itu mungkin berlaku untuk pengguna yang tidak memiliki latar belakang teoritis. Seperti yang ditunjukkan oleh Sasho Nikolov, orang yang bekerja di lapangan tahu betul perbedaan antara komputasi paralel dan terdistribusi. Masalah yang timbul dalam cluster, grid, cloud dll sangat tergantung pada konteksnya. Misalnya, kami tidak menganggap kegagalan saat menggunakan cluster atau cloud, tetapi kami lakukan untuk grid. Dan seterusnya.
Massimo Cafaro
Selain itu, untuk komunitas ilmiah ini, algoritma terdistribusi adalah algoritma untuk masalah seperti yang biasa ditemukan dalam buku-buku Nancy Lynch, Hagit Attiya dan Jennifer Welch, dan Gerard Tel. Dan, dengan demikian, algoritma ini dirancang untuk model komputasi terdistribusi teoretis tertentu, dan dianalisis sesuai kebutuhan dalam hal sumber daya yang digunakan (kompleksitas waktu, kompleksitas pesan, kompleksitas bit, jumlah putaran dll).
Massimo Cafaro
@ MassimoCafaro: Tentu saja orang yang bekerja di bidang komputasi terdistribusi tahu apa itu komputasi terdistribusi. Namun, pengalaman saya adalah bahwa para ilmuwan komputer teoretis secara umum tidak tahu apa itu komputasi terdistribusi.
Jukka Suomela
20

Yang dasar, tetapi umum ketika kita pertama kali berurusan dengan notasi asimptotik. Pertimbangkan "bukti" berikut untuk relasi berulang dan T ( 1 ) = 1 :T(n)=2T(n/2)+O(nlogn)T(1)=1

Kami membuktikan dengan induksi. Untuk kasus dasar ini berlaku untuk . Anggap relasi berlaku untuk semua angka yang lebih kecil dari n ,n=1n

T(n)=2T(n/2)+O(nlogn)=2O(n/2logn/2)+O(nlogn)=O(nlogn/2)+O(nlogn)=O(nlogn)

QED (kan?)

Hsien-Chih Chang 張顯 之
sumber
16
Saya telah melihat siswa melakukan ini. Ini adalah salah satu jebakan dari penyalahgunaan notasi dan penulisan daripada f ( x ) O ( g ( x ) ) . f(x)=O(g(x))f(x)O(g(x))
Aaron Roth
Saya telah melihat para peneliti dalam ilmu komputer teoritis melakukan varian kesalahan ini juga;)
Jeremy
12

Sampai saat ini saya pikir bahwa setiap multi-pita Turing mesin yang berjalan dalam waktu T ( n ) dapat disimulasikan dengan dua pita menyadari Turing machinne M o dalam waktu O ( T ( n ) log T ( n ) ) sebagai berikut merasakan:MT(n)MoO(T(n)logT(n))

  • pergerakan kepala 's hanya bergantung pada panjang masukanMo
  • untuk semua input dengan panjang yang sama, berhenti pada saat yang sama (yaitu Θ ( T ( n ) log T ( n ) ) ).MoΘ(T(n)logT(n))

(lihat posting rjlipton ini misalnya)

Nah, baris kedua tidak berlaku secara umum, jika . Kita membutuhkan fungsi urutan waktu yang sepenuhnya dapat dibangun oleh waktu Θ ( T ( n ) log T ( n ) ) (lihat pertanyaan ini untuk definisi fungsi (sepenuhnya) yang dapat dikonstruksi waktu) atau kita perlu mengizinkan M o dijalankan untuk waktu yang tak terbatas (kami mengizinkan M o dijalankan setelah mencapai kondisi penerimaan diEXPTIMENEXPTIMEΘ(T(n)logT(n))MoMo waktu). Masalahnya adalah, untuk T : NN yang dapatdikonstruksikan secara umum,kami tidak dapat "mengukur" Θ ( T ( n ) log T ( n ) ) langkah waktu O ( T ( n ) log T ( n ) ) kecuali E X P - T I M EO(T(n)logT(n))T:NNΘ(T(n)logT(n))O(T(n)logT(n)) .EXPTIME=NEXPTIME

Bukti dari klaim ini sangat mirip dengan bukti dalam jawaban Q1 di sini , jadi kami hanya akan memberikan ide-ide kunci.

Ambil masalah yang sewenang-wenang , L { 0 , 1 } . Lalu ada sebuah k N , st L dapat diselesaikan oleh NDTM M di 2 n k langkah. Kita dapat mengasumsikan bahwa pada setiap langkah M masuk paling tidak dua negara yang berbeda untuk kesederhanaan. Selanjutnya, tentukan fungsi f ( n ) = { ( 8 n + 2LNEXPTIMEL{0,1}kNLM2nkM Dapat dibuktikan bahwafadalah konstruksi waktu.

f(n)={(8n+2)2if (first logn+1k bits of bin(n))L8n+1else
f

Sekarang anggaplah bahwa beberapa mesin Turing yang tidak disadari berjalan dalam waktu . Maka g sepenuhnya dapat dibangun waktu.g(n)=Θ(f(n)logf(n))g

Sekarang algoritma berikut memecahkan :L

  • pada input , misalkan n menjadi angka dengan representasi biner x 00 ... 0 ( | x | k - 1 nol). Maka x = ( first k xnx000|x|k1.x=(first logn+1k bits of bin(n))
  • menghitung dalam waktu g ( n ) . Jika g ( n ) cukup besar, maka x L , lain x L . (ini hanya bekerja untuk cukup besar n . Berapa besar tergantung pada g .)g(n)g(n)g(n)xLxLng

Algoritma ini berjalan dalam waktu eksponensial dan memecahkan . Sejak LL adalah sewenang-wenang, E X P - T I M E = N E X P - T I M E .LNEXPTIMEEXPTIME=NEXPTIME

David G
sumber
11

Inilah dua sen saya:

Kelas kompleksitas , yang logspace acak , didefinisikan sebagai analog dari R P , yaitu, masalah keputusan yang dapat diselesaikan oleh non-deterministik mesin logspace M , di manaRLRPM

  • untuk contoh positif, menerima dengan probabilitas setidaknya 1 / 2 ;M1/2
  • untuk contoh negatif, menolak dengan probabilitas 1 .M1

Selanjutnya, mesin selalu berhenti.

Apakah definisi itu benar? (Tidak)

Hsien-Chih Chang 張顯 之
sumber
9

Misalkan dan g sepenuhnya fungsi yang dapat dibangun waktu (yaitu ada DTM yang pada input 1 n menghasilkan f ( n ) (resp. G (fg1nf(n)langkah-langkah n ) )dan biarkan f ( n + 1 ) = o ( g ( n ) ) .g(n)f(n+1)=o(g(n))

Hirarki waktu nondeterministik berkali- kali (secara dangkal) dinyatakan sebagai . (bukti: minta hierarki waktu nondeterministik dari Google).NTIME(f(n))NTIME(g(n))

Nah, hierarki sebenarnya hanya memberikan . Kita akan membutuhkan misalnya f ( n ) g ( n ) untuk n ) ) . Untuk fungsi f , g sedemikian sehingga f ( n + 1 ) = o (NTIME(g(n))NTIME(f(n))f(n)g(n)NTIME(f(n))NTIME(g(n))f,g , f ( n ) g ( n ) sangat umum. Tetapi secara tegas, hierarki waktu nondeterministik sering kali dinyatakan secara dangkal.f(n+1)=o(g(n))f(n)g(n)

Untuk menunjukkan bahwa tidak berlaku untuk semua sepenuhnya waktu-constructible f , g st f ( n + 1 ) = o ( g ( n ) ) , tentukan f ( n ) = { n + 1 n  ganjil (NTIME(f(n))NTIME(g(n))f,gf(n+1)=o(g(n)) dang(n)=f(n+1)2. Mudah untuk melihat bahwafdangsepenuhnya dapat dikonstruksikan secara waktu danf(n+1)=o(g(n)). Dari hierarki waktu nondeterministik kita tahu bahwa ada beberapa bahasaLNTIME((n+1

f(n)={n+1n aneh(n+1)3lain
g(n)=f(n+1)2fgf(n+1)=Hai(g(n)) lebih dari { 0 , 1 } . Definisikan L 1 = { 0 x 1 0 x 2 ... 0 x n ; x 1 x 2 ... x nL } .L.NTsayaM.E((n+1)3)-NTsayaM.E((n+1)2){0,1}
L.1={0x10x2...0xn;  x1x2...xnL.}.

Oleh karena itu . Mudah untuk melihat bahwa dari L 1N T I M E ( g ( n ) ) mengikuti L N T I M E (L1NTIME(f(n))L1NTIME(g(n)) , yang tidak benar. Oleh karena itu, L 1N T I M ELNTIME((n+1)2) .L1NTIME(f(n))NTIME(g(n))

David G
sumber
9

Saya sudah sering mendengar itu menyatakan bahwa Valiant-Vazirani mengatakan bahwa acak mengurangi ke U P , atau bahwa NNPUP , atau bahwa N PRU P . Secara khusus, ini akan berarti bahwa jika Valiant-Vazirani bisa derandomized, maka N P = U P . Namun pada kenyataannya Valiant-Vazirani mengatakan bahwa N PR P P r o m i s e U P .NPRPUPNPRUPNP=UPNPRPPromiseUP

UPLxLUSUSUPcoNPUS

Joshua Grochow
sumber
apa yang dimaksud dengan 'properti semantik yang pada semua contoh'?
T ....
1
@ 777: properti semantik berarti: tidak dapat diverifikasi secara langsung dari struktur (alias sintaks) dari TM / algoritma itu sendiri. Ungkapan ini lebih masuk akal jika Anda meneruskannya melewati koma, yaitu: properti yang: "pada semua contoh paling banyak ada satu saksi"
Joshua Grochow
-2

μX{X=μ}

pengguna1596990
sumber
9
Ini tentu saja merupakan kepercayaan salah yang umum di kalangan mahasiswa ilmu komputer teoretis, tetapi tidak begitu umum di kalangan peneliti ilmu komputer teoretis .
Jeffε