Apakah ada kelas kompleksitas yang ditetapkan dengan bilangan real?


14

Seorang siswa baru-baru ini meminta saya untuk memeriksa bukti kekerasan NP untuk mereka. Mereka melakukan pengurangan sepanjang garis:

Saya mengurangi masalah ini P yang dikenal sebagai NP-lengkap untuk masalah saya P (dengan banyak-satu pengurangan poli-waktu), jadi P adalah NP-keras.

Jawaban saya pada dasarnya:

Karena P memiliki instance dengan nilai-nilai dari R , itu sepele bukan Turing-computable sehingga Anda dapat melewati pengurangan.

Meskipun secara formal benar, saya tidak berpikir pendekatan ini berwawasan luas: kami tentu ingin dapat menangkap "kompleksitas yang melekat" dari masalah keputusan (atau optimasi) yang bernilai nyata, mengabaikan keterbatasan yang kami hadapi dalam berurusan dengan masalah nyata. angka; menyelidiki masalah ini adalah untuk hari lain.

Tentu saja, tidak selalu semudah mengatakan, "versi terpisah dari Subset Sum adalah NP-lengkap, jadi versi kontinu adalah 'NP-hard' juga". Dalam hal ini, pengurangannya mudah tetapi ada kasus terkenal dari versi kontinu yang lebih mudah, misalnya pemrograman linier vs integer.

Terpikir oleh saya bahwa model RAM secara alami meluas ke bilangan real; biarkan setiap register menyimpan angka nyata dan memperpanjang operasi dasar yang sesuai. Model biaya seragam masih masuk akal - sama halnya dalam kasus diskrit - sementara yang logaritmik tidak.

Jadi, pertanyaan saya bermuara pada: apakah ada gagasan tentang kompleksitas masalah bernilai nyata? Bagaimana mereka berhubungan dengan kelas diskrit "standar"?

Pencarian Google menghasilkan beberapa hasil, misalnya ini , tetapi saya tidak memiliki cara untuk mengatakan apa yang ditetapkan dan / atau berguna dan apa yang tidak.


1
Anda mungkin menemukan "Kompleksitas dan Komputasi Nyata" yang menarik amazon.com/Complexity-Real-Computation-Lenore-Blum/dp/…
Kurt Mueller

Tampaknya bagi saya bahwa jawaban Anda kepada siswa Anda tidak beralasan karena satu alasan sederhana: Perhitungan apa pun yang kita gunakan untuk melihat yang didasarkan pada real dapat dilakukan juga menggunakan real yang dapat dihitung . Saya tidak tahu apakah ini adalah jawaban yang dapat digunakan untuk tujuan siswa Anda, tetapi setidaknya harus menghilangkan kurangnya argumen komputabilitas Turing. Sayangnya, saya tidak cukup ahli dalam masalah ini untuk mengembangkan ini lebih lanjut.
babou

@ Bobou Sejauh komputasi berjalan, itu mungkin merupakan pembatasan yang masuk akal (tapi mereka harus menyatakan!). Namun, apa yang terjadi dengan kompleksitas?
Raphael

@ Raphael Maksud saya sebenarnya bukan pembatasan, dan tidak perlu dinyatakan. Ini tidak bisa dihindari. Satu-satunya real yang dapat Anda pertimbangkan dalam perhitungan adalah real yang dapat dihitung (Tesis Church-Turing). Bagian yang bagus tampaknya tidak mengubah matematika yang relevan, dengan perawatan yang tepat. Melampaui real yang dapat dihitung adalah, seperti menggunakan level yang lebih tinggi dari hierarki Turing, spekulasi yang memukau, dengan dampak yang mungkin kecil pada sesuatu yang nyata (pun tak terhindarkan).
babou

Jawaban:


8

Iya. Ada.

Ada model real-RAM / BSS yang disebutkan dalam jawaban lain. Model memiliki beberapa masalah dan AFAIK tidak banyak kegiatan penelitian tentang hal itu. Boleh dibilang, itu bukan model perhitungan yang realistis .

Gagasan yang lebih aktif dari komputasi nyata adalah model komputasi tipe yang lebih tinggi. Ide dasarnya adalah Anda mendefinisikan kompleksitas untuk fungsi tipe yang lebih tinggi dan kemudian menggunakan fungsi tipe yang lebih tinggi untuk mewakili bilangan real.

Studi tentang kompleksitas fungsi tipe yang lebih tinggi kembali ke setidaknya ke [1]. Untuk pekerjaan terbaru, periksa makalah Akitoshi Kawamura tentang kerumitan operator nyata.

Referensi klasik untuk kompleksitas fungsi nyata adalah buku Ker-I Ko [2]. Bab 6 buku yang lebih baru dari Klause Weihrauch [3] juga membahas kompleksitas komptasi nyata (tetapi lebih fokus pada komputabilitas daripada kompleksitas).

  • [1] Stephen Cook dan Bruce Kapron, "Karakterisasi fungsi dasar yang layak dari tipe terbatas", 1990.

  • [2] Ker-I Ko, "Kompleksitas Komputasi Fungsi Riil", 1991.

  • [3] "Analisis Komputasi" Klaus Weihrauch, 2000.


Apa yang membuat model fungsi tipe lebih tinggi lebih realistis daripada model RAM nyata?
Raphael

1
@ Raphael, saya pikir saya menjelaskannya dalam pertanyaan terkait. Jika Anda ingin lebih banyak melalui perawatan ada beberapa, satu adalah bab 9 dari Weirauch. IIRC, satu lagi yang bagus adalah artikel karya Tucker dan Stolenberg-Hansen.
Kaveh

1
Dalam pandangan saya model real-RAM memiliki dua masalah utama: di satu sisi ia tidak memiliki gagasan tentang perkiraan rasional presisi acak dari bilangan real yang bisa dibilang properti utama mereka, di sisi lain itu memungkinkan perbandingan bilangan real yang AFAIK tidak ada yang tahu bagaimana melakukannya dalam praktek. Akibatnya beberapa fungsi nyata yang kami anggap dapat dihitung secara efisien dalam praktiknya tidak dapat dihitung dalam model, sementara beberapa fungsi nyata yang dapat dihitung secara efisien dalam model tidak dapat dihitung sama sekali dalam praktiknya.
Kaveh

@ Kaveh Saya terganggu dengan ketidaktepatan seluruh diskusi, dalam pertanyaan dan jawaban. Apakah kita berbicara tentang real yang tak terhitung jumlahnya tradisional, atau real yang dapat dihitung. Dari komentar terakhir Anda, Anda berbicara tentang "fungsi nyata yang kami anggap dapat dihitung secara efisien dalam praktik", jadi saya cenderung percaya ini adalah tentang real yang dapat dihitung. Apa maksudmu sebenarnya?
babou

8

Model yang Anda gambarkan dikenal sebagai model Blum-Shub-Smale (BSS) (juga model Real RAM) dan memang digunakan untuk mendefinisikan kelas kompleksitas.

Beberapa masalah yang menarik dalam domain ini adalah kelas , N P R , dan tentu saja pertanyaan apakah P R = N P R . Dengan P R yang kami maksud masalahnya adalah polinomially dapat ditentukan, N P R adalah masalahnya dapat diverifikasi secara polinomi. Ada kekerasan / kelengkapan pertanyaan tentang kelas N P R . Sebuah contoh dari N P R masalah lengkap adalah masalah Q P S , Kuadrat Polinomial System, di mana input adalah polinomial nyata dalamPRNPRPRNPRPRNPRNPRNPRQPS variabel, dan p 1 , . . . , P nR [ x 1 , . . . , x n ] derajat paling banyak 2, dan setiap polinomial memiliki paling banyak 3 variabel. Pertanyaannya apakah ada solusi nyata yang umum R n , sehingga p 1 ( a ) , p 2 ( a ) , . . . p n ( a ) = 0mp1,...,pn R[x1,...,xn]Rnp1(a),p2(a),...pn(a)=0. Ini adalah masalah lengkap.NPR

Tetapi yang lebih menarik, ada beberapa penelitian tentang hubungan antara (Probalistically Checkable Proofs) dengan Reals, yaitu kelas P C P R , dan bagaimana kaitannya dengan model perhitungan aljabar. Model BSS panci untuk semua N P lebih real. Ini adalah standar dalam literatur, dan apa yang kita ketahui saat ini adalah bahwa N P R memiliki "transparan bukti lama", dan "bukti pendek transparan". Dengan "bukti panjang transparan" berikut ini tersirat: N P R terkandung dalam P C P R ( p o l yPCPPCPRNPNPRNPR . Ada juga ekstensi yang mengatakan, "Versi Pendek Hampir (kira-kira)" juga benar. Bisakah kita menstabilkan bukti dan mendeteksi kesalahan dengan memeriksa komponen (nyata) yang jauh lebih sedikit daripada n ? Hal ini menimbulkan pertanyaan tentang keberadaan nol untuk (sistem) polinomial univariat yang diberikan oleh program garis lurus. Juga, dengan "bukti panjang transparan" yang kami maksudPCPR(poly,O(1))n

  1. "transparan" - Hanya, untuk dibaca,O(1)

  2. panjang - jumlah superpolinomial dari komponen nyata.

Buktinya terkait dengan , dan yakin salah satu cara untuk melihat masalah dihargai nyata adalah bagaimana mungkin terkait dengan Subset Sum - algoritma pendekatan bahkan untuk masalah nyata dihargai akan -seperti yang menarik untuk optimasi - Linear Programming kita tahu adalah di kelas F P , tapi ya itu akan menarik untuk melihat bagaimana approximatability mungkin dampak kelengkapan / kekerasan untuk kasus N P R masalah. Juga, pertanyaan lain adalah N P R = c o - N P R ? 3SATFPNPRNPR = co-NPR

Sambil memikirkan kelas , ada kelas penghitungan yang juga didefinisikan untuk memungkinkan alasan tentang aritmatika polinomial. Sedangkan # P adalah kelas fungsi f yang didefinisikan lebih dari { 0 , 1 } N yang memiliki waktu polinom Turing mesin M dan p polinomial dengan properti yang n N , dan x { 0 , 1 } n , f ( x )NPR#Pf{0,1} NMpnNx{0,1}nf(x)menghitung jumlah string { 0 , 1 } p ( n ) yang diterima Mesin Turing M { x , y } . Untuk real kami memperluas ide ini ada mesin BSS aditif - mesin BSS yang hanya melakukan penambahan, dan perkalian (tidak ada divisi, tidak ada pengurangan). Dengan mesin BSS aditif (node ​​dalam perhitungan hanya memungkinkan penambahan, dan multiplikasi) model untuk # P menjadi salah satu di mana penghitungan berada di atas vektor yang diterima oleh mesin BSS aditif. Jadi, kelas penghitungan adalah # P a d dy{0,1}p(n)M{x,y}#P#Padd kelas ini berguna dalam mempelajari angka Betti, dan juga karakteristik Euler.


Mesin real-RAM (Random Access Machine), atau BSS (Blum-Shub-Smale) adalah model, yang disebutkan sebelumnya diterima secara luas sebagai norma untuk alasan tentang kelas-kelas ini.
user3483902

Tidak, klaim itu sama sekali salah. Misalnya, lihat CCA-Net dan lihat berapa banyak peneliti yang menggunakan model itu.
Kaveh

Nah, model yang digunakan untuk kelas kompleksitas di pos menggunakan model BSS, dan seiring berjalannya waktu mungkin ada model lain, apakah model-model lain bekerja dengan kelas kompleksitas di pos? BTW, komentar itu adalah klarifikasi tentang model yang digunakan di kelas yang bersangkutan, yang dibahas oleh pos, jadi tidak ada klarifikasi apakah ada model lain. Sekali lagi, klarifikasi adalah tentang model yang digunakan di kelas, tidak ada klaim.
user3483902
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.