Trade off antara waktu dan kompleksitas permintaan

18

Bekerja secara langsung dengan kompleksitas waktu atau batas bawah sirkuit menakutkan. Karenanya, kami mengembangkan alat seperti kompleksitas kueri (atau kompleksitas pohon keputusan) untuk menangani batasan yang lebih rendah. Karena setiap kueri mengambil setidaknya satu langkah unit, dan perhitungan antara kueri dihitung sebagai bebas, kompleksitas waktu paling tidak setinggi kompleksitas kueri. Namun, bisakah kita mengatakan sesuatu tentang pemisahan?

Saya ingin tahu tentang karya dalam literatur klasik, atau kuantum, tetapi memberikan contoh dari QC karena saya lebih akrab.

Beberapa algoritma terkenal seperti pencarian Grover dan penemuan periode Shor, kompleksitas waktu berada dalam faktor-faktor poli-logaritmik dari kompleksitas kueri. Untuk yang lain, seperti Masalah Subkelompok Tersembunyi, kami memiliki kompleksitas kueri polinomial , namun algoritma waktu polinomial tidak diketahui.

Karena ada celah yang berpotensi antara kompleksitas waktu dan kueri, tidak jelas bahwa algoritma kompleksitas waktu yang optimal harus memiliki kompleksitas kueri yang sama dengan algoritma kompleksitas kueri yang optimal.

Apakah ada contoh kompromi antara kompleksitas waktu dan kueri?

Apakah ada masalah di mana algoritma kompleksitas waktu yang paling dikenal memiliki kompleksitas kueri yang berbeda dari algoritma kompleksitas kueri yang paling dikenal? Dengan kata lain, dapatkah kita melakukan lebih banyak kueri untuk membuat operasi antar-kueri lebih mudah?

Atau adakah argumen yang menunjukkan bahwa selalu ada versi algoritma permintaan optimal asimptotik yang memiliki implementasi dengan kompleksitas waktu terbaik asimptotik?

Artem Kaznatcheev
sumber
Apakah Anda menginginkan masalah alami atau apakah masalah buatan juga baik-baik saja?
Robin Kothari
2
Masalah alami lebih disukai, tetapi masalah buatan lebih baik daripada tidak ada jawaban.
Artem Kaznatcheev

Jawaban:

9

Berikut adalah upaya membuat fungsi buatan dengan properti berikut:

  • Masalahnya dapat diselesaikan dengan kueri , tetapi membutuhkan waktu exp ( n ) .O(logn)exp(n)
  • Masalahnya dapat diselesaikan dengan waktu tetapi itu membutuhkan O ( n ) queryO(n)O(n)

Biarkan ukuran input menjadi . Biarkan log pertama n bit (sebut string ini x) menyandikan input ke masalah lengkap untuk EEXP. N bit berikutnya (sebut saja string ini y) memiliki properti yang semuanya nol jika dan hanya jika x adalah NO instance dari masalah EEXP-complete.n+lognlognn

Dengan kata-kata, bit pertama menyandikan masalah yang sulit, dan n bit berikutnya memberi Anda petunjuk tentang solusi masalah. Namun, untuk mencari solusinya dengan melihat string n bit Anda membuat Ω ( n ) query.lognnnΩ(n)

Jadi masalah ini dapat diselesaikan dengan hanya membaca bit pertama dan menghabiskan exp (n) waktu atau dengan membaca n bit dan hanya menggunakan waktu linear.lognn

Fungsi yang sama berlaku untuk kompleksitas kueri kuantum .. masukkan tanda-tanda root kuadrat jika perlu.

Robin Kothari
sumber
7

Versi yang lebih ekstrim dari contoh Robin:

Biarkan ukuran input menjadi , dengan n - 1 bit pertama (sebut string ini x ) mengkode mesin Turing T x . Perbaiki beberapa fungsi f ( n ) . Biarkan bit terakhir dari string menjadi 1 jika mesin Turing T x berhenti dalam kurang dari langkah f ( n ) . Masalahnya kemudian untuk menentukan apakah T x berhenti dalam kurang dari f ( n ) langkah dan paritas x adalah genap.nn1xTxf(n)1Txf(n)Txf(n)x

Dengan demikian, dengan membuat query masalah dapat diselesaikan dalam waktu O ( f ( n ) ) , sementara dengan membuat n query, masalah dapat diselesaikan dalam waktu O ( n ) .n1O(f(n))nO(n)

Joe Fitzsimons
sumber
Anda mungkin bermaksud bahwa bit terakhir sedemikian sehingga paritas x bahkan jika mesin Turing berhenti tepat waktu (jika tidak pertanyaan hanya membutuhkan satu permintaan;)). Ini bagus dan dapat dimodifikasi untuk memberikan segala jenis pemisahan yang kita inginkan antara waktu dan permintaan. Pertimbangkan fungsi dan g ( n ) < n , lalu biarkan g ( n ) bit x pertama menjadi deskripsi mesin Pemutar. Biarkan yang lain n - g ( n ) dari xg(n)=ω(1)g(n)<ng(n)xng(n)xbit sedemikian rupa sehingga paritas bahkan iff Tx berhenti dalam kurang dari langkah f ( n ) > n . Maka kita memiliki g ( n ) versus n kueri dengan biaya Θ ( f ( n ) ) versus n pada waktunya. Txf(n)>ng(n)nΘ(f(n))n
Artem Kaznatcheev
Abaikan kalimat pertama dari komentar saya sebelumnya.
Artem Kaznatcheev
7

Saya suka jawaban Robin Kothari dan modifikasi Joe Fitzsimons. Dalam ekstensi jawaban mereka yang jelas mereka dapat mencapai rasio pemisahan apa pun (kecuali konstan-vs-tidak-konstan) antara kompleksitas kueri yang lebih kecil dan lebih besar dan kompleksitas waktu yang lebih besar dan lebih kecil. Namun, tidak ada cara yang jelas untuk membuat fungsinya non-parsial. Saya ingin menunjukkan masalah alami di mana kami memiliki pemisahan dan menunjukkan bahwa pemisahan besar lebih sulit untuk fungsi total.


Masalah alami

Ben Reichardt menunjukkan melalui email masalah evaluasi formula. Kompleksitas kueri kuantum untuk mengevaluasi rumus AND-OR baca-sekali umum pada variabel adalah Θ ( n. Namun,O(Θ(n)Algoritma query tidak efisien waktu. Di sini, algoritma yang paling cepat diketahui ditunjukkan untuk menghasilkanO(O(n)kueri dan jalankan dalam waktu secara polilogaritma lebih buruk. Jadi kita memiliki masalah total alami di mana ada pemisahan yang diketahui. Meskipun tidak ada bukti bahwa pemisahan ini harus ada.O(nlogn)

Fungsi total lebih sulit dipisahkan?

Bagi saya, sepertinya lebih sulit untuk menemukan fungsi total dengan pemisahan yang dapat dibuktikan. Untuk menunjukkan bahwa kasus fungsi total dan parsial berbeda, saya akan memberikan argumen tentang pemisahan terbesar antara kerumitan kueri dari algoritma kueri-optimal dan waktu-optimal untuk fungsi total.

mΩ(logm)mnnmm0

, kemudian untuk fungsi total, diberikan algoritma query-optimal dengan kompleksitas ( q 1 ( n ) , t 1 ( n ) ) , ada algoritma optimal-waktu dengan kompleksitas ( q 2(query complexity,time complexity)(q1(n),t1(n))(q2(n),t2(n))q2(n)f(q1(n))f(n)=O(2n)

[1] HU Simon, "A Z ketat (loglogn) - terikat pada waktu untuk paralel RAM untuk menghitung fungsi Boolean non-merosot", di: Symp. tentang Yayasan Teori Komputasi, Catatan Kuliah di Ilmu Komputer, Vol. 158, Springer, Berlin, 1983, hlm. 439-444.

Artem Kaznatcheev
sumber