Apakah sebuah oracle pernah berguna jika Anda tidak dapat mengontrol instance input?


8

Katakanlah adalah oracle untuk masalah di , tapi saya tidak bisa menyebut oracle ini dengan instance input apa pun. Sebagai gantinya, setiap kali saya menelepon saya akan mendapatkan contoh dan solusi acak. Jadi, saya tahu ituFNPFF sebenarnya mampu memecahkan sewenang-wenang NPMasalah-sulit, saya tidak bisa menentukan yang mana saya ingin menyelesaikannya.

Apakah mungkin untuk menggunakan oracle seperti itu untuk menyelesaikan NPMasalah -complete lebih cepat? Perasaan saya mengatakan tidak karena penggunaan naungan oracle masih membutuhkanO(2n)waktu dengan menelepon oracle cukup untuk memeriksa setiap solusi. Saya hanya tidak bisa memikirkan cara untuk membuktikan ini.


2
Mungkin Anda harus mengubah pertanyaan dengan cara ini: "... setiap kali saya menelepon FSaya mendapatkan contoh ukuran acak n dengan distribusi seragam ... "(di manan adalah ukuran input dari mesin Turing yang dapat diakses F).
Vor

@Vor, saya berpikir tentang menambahkan ketentuan itu juga, tapi saya tidak yakin itu benar-benar membuat perbedaan sama sekali. Bahkan jika distribusinya sedemikian rupa sehingga memungkinkan sejumlah panggilan polinomial untuk mendapatkan instance tertentu, itu masih membutuhkan lebih dari sekadar panggilan polinomial untuk mendapatkan sebagian besar instance. Saya pikir satu-satunya hal yang penting adalah bahwa distribusinya adalah bahwa saya tidak dapat mengubah distribusinya agar condong ke contoh spesifik saya.
Mike Izbicki

1
Saya setuju dengan Anda, tetapi tanpa ikatan / distribusi "contoh acak" tidak ada artinya.
Vor

1
Saya pikir dengan "lebih cepat" maksudmu "dalam P" tetapi Anda mungkin ingin bertanya apakah itu dalam BPP .
Xodarap

@Xodarap Saya lebih tertarik pada metode untuk menggunakan oracle seperti itu untuk mengkonversi dari kelas mana pun (secara hipotetis) menjadi kelas yang lebih lemah. Belum tentu NP -> P. Juga, saya tidak terlalu melihat bagaimana kelas probabilistik akan berguna.
Mike Izbicki

Jawaban:


8

Seperti yang ditunjukkan Xodarap, jika Anda memerlukan algoritme Anda dengan "oracle acak" untuk selalu menampilkan jawaban yang benar, maka oracle acak tidak berguna. Masalahnya menjadi lebih menarik jika kita membiarkan probabilitas kesalahan yang kecil (di mana probabilitas tersebut berkenaan dengan instance acak yang dipilih oleh oracle).

Selain itu, seperti yang ditunjukkan oleh Vor dalam komentar pada pertanyaan, tidak ada artinya untuk mengatakan "contoh acak" tanpa menentukan distribusi probabilitas. Salah satu asumsi yang masuk akal untuk dibuat di sini adalah bahwa instance acak ini dipilih secara seragam secara acak dari himpunan semua string panjang p ( n ), di mana n adalah panjang input dan p adalah beberapa polinomial tetap. Kita bisa membuat asumsi lain, lebih lemah, pada distribusi probabilitas.

Di sini kita akan membuat asumsi yang cukup umum, dan akan menunjukkan bahwa keberadaan algoritma waktu polinomial acak dengan "ramalan acak" untuk masalah lengkap NP memiliki konsekuensi yang mengejutkan bahkan di bawah asumsi yang lemah ini.

Mari kita jatuhkan persyaratan bahwa "oracle acak" akan menyelesaikan masalah dalam NP (pada contoh yang dipilih secara acak). Sekarang "oracle acak" dapat berupa distribusi probabilitas yang telah ditentukan sebelumnya atas string panjang polinomial, dan setiap kali ditanya, ia memancarkan string sesuai dengan distribusi probabilitas ini. Satu-satunya persyaratan adalah bahwa distribusi probabilitas ini hanya bergantung pada panjang input. Perhatikan bahwa model Anda memang merupakan kasus khusus dari model ini. Dalam model Anda, distribusi probabilitas diperlukan untuk memiliki bentuk berikut: pertama memilih sebuah seragam acak contoh y dari satu set tergantung pada panjang input, dan kemudian kembali sepasang ( y , g ( y )), di mana g: {0, 1} * → {0, 1} adalah fungsi karakteristik dari beberapa masalah keputusan dalam NP. Sekarang kita membiarkan setiap distribusi probabilitas, selama distribusi ditentukan oleh panjang masukan saja.

"Peramal" dari bentuk umum ini disebut saran acak . Kelas masalah keputusan yang dapat diputuskan oleh algoritma waktu polinomial acak dengan saran acak (dengan kesalahan dua sisi terikat) disebut BPP / rpoly, dan diketahui bahwa kelas ini sama dengan P / poli . (Penyertaan BPP / rpoly⊆P / poli dapat dibuktikan dengan cara yang sama seperti penyertaan terkenal BPP⊆P / poli. Untuk bukti yang terakhir, lihat misalnya Teorema 6.3 dari Goldreich [Gol08].)

Ini berarti bahwa jika masalah NP-complete dapat diselesaikan dalam model Anda, maka NP⊆P / poly. Namun, diketahui bahwa NP⊆P / poli menyiratkan bahwa hierarki polinomial runtuh ke tingkat kedua [KW98, Cai07]. Kebanyakan ahli teori kompleksitas menganggap keruntuhan hierarki polinomial sebagai kejutan besar. Jika kami percaya bahwa hierarki polinom tidak runtuh, maka masalah NP-complete tidak dapat diselesaikan secara efisien dengan "oracle acak" dalam pengertian Anda.

Referensi

[Cai07] Jin-Yi Cai. S 2 p ⊆ ZPP NP . Jurnal Ilmu Komputer dan Sistem , 73 (1): 25–35, Februari 2007. DOI: 10.1016 / j.jcss.2003.07.015 .

[Gol08] Oded Goldreich. Kompleksitas Komputasi: Perspektif Konseptual . Cambridge University Press, 2008.

[KW98] Johannes Köbler dan Osamu Watanabe. Konsekuensi runtuhnya baru NP memiliki sirkuit kecil. Jurnal SIAM tentang Komputer , 28 (1): 311–324, 1998. DOI: 10.1137 / S0097539795296206 .


0

Mari kita secara khusus memikirkan masalah NP-complete favorit semua orang: 3SAT.

Mungkin saja (walaupun tidak mungkin) bahwa setiap kali Anda menelepon oracle Anda, itu memberi Anda tugas untuk contoh yang sama. Secara khusus, setiap kali itu bisa memberi Anda tugas untuk kalimat sepele:

(xxx)(xxx)...

Tapi Anda sudah tahu tugas untuk ini. Jadi Oracle Anda tidak bisa berguna.

Lebih formal lagi, jika kami menyebut oracle Anda SEBUAH, kemudian PSEBUAHNP (asumsi PNP...)


Itu tidak berarti bahwa setiap dua instance 3SAT adalah waktu polinomial yang dapat direduksi. Hanya bahwa mereka waktu polinomial direduksi diberi contoh acak oracle. Baik?
Mike Izbicki

Diklarifikasi; beri tahu saya jika saya tidak mengerti apa yang Anda maksud dengan "instance instan oracle".
Xodarap

Yah, itu akan membutuhkan jumlah panggilan eksponensial untuk mendapatkan tugas untuk contoh yang sama. Bahkan, itu akan mengambil panggilan sebanyak mungkin untuk mendapatkan tugas untuk masalah tertentu yang saya coba pecahkan! Anda membuang semua pekerjaan itu, dan mungkin ada beberapa cara cerdas untuk menggunakannya.
Mike Izbicki

@ Mike: Kompleksitas berkaitan dengan skenario terburuk . Karena dalam kasus terburuk oracle tidak berguna (seperti yang ditunjukkan di atas), hanya itu yang perlu kita ketahui.
Xodarap
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.