Saya baru-baru ini membaca tentang algoritma untuk memeriksa bisimilaritas dan membaca bahwa masalahnya adalah P-complete . Selain itu, konsekuensi dari ini adalah bahwa masalah ini, atau masalah P-lengkap, tidak mungkin memiliki algoritma paralel yang efisien.
Apa intuisi di balik pernyataan terakhir ini?
complexity-theory
parallel-computing
Dave Clarke
sumber
sumber
Jawaban:
Setiap masalah -Lengkap, tidak mungkin untuk memiliki algoritma paralel efisien. MengapaP
Keberadaan masalah -Lengkap adalah yang paling petunjuk penting bahwa . Pertanyaannya kemudian, mengapa dugaan ini relevan dengan komputasi paralel? Mari kita mulai dengan sumber daya yang digunakan dalam perhitungan. Untuk komputasi berurutan: waktu dan ruang; untuk komputasi paralel: waktu dan perangkat keras (jumlah prosesor). Apakah ada hubungannya? Iya nih! Ruang berurutan ↔ waktu paralel; Waktu berurutan ↔ perangkat keras paralel. Korespondensi antara ruang sekuensial dan waktu paralel tampaknya independen dari model komputasi paralel yang diadopsi; ini mengarah pada yang berikut, yang disebut tesis komputasi paralel yang tidak terbukti.P (P∩POLYLOGSPACE)≠P
(Chandra dan Stockmeyer) Setiap perhitungan TM dengan kompleksitas ruang dapat disimulasikan dalam model komputasi paralel dalam waktu dan setiap perhitungan model komputasi paralel dengan kompleksitas waktu dapat disimulasikan oleh TM dengan kompleksitas ruang .T ( n ) = O ( S ( n ) O ( 1 ) ) T ′ ( n ) S ′ ( n ) = O ( T ′ ( n ) O ( 1 ) )S(n) T(n)=O(S(n)O(1)) T′(n) S′(n)=O(T′(n)O(1))
Kelas masalah yang dapat dipecahkan secara berurutan dalam ruang polinom adalah dan sekumpulan masalah yang dapat dipecahkan dalam waktu polinom adalah Karena dianggap sebagai kelas masalah yang jauh lebih besar daripada , tesis ini menghitung peningkatan efektif yang dimungkinkan oleh paralelisme. Konsekuensi dari tesis ini adalah bahwa PRAM dapat menyelesaikan masalah lengkap dalam waktu polinomial ... Sayangnya, tidak! Tesis komputasi paralel menyiratkan bahwa kita benar-benar dapat menangani masalah-masalah yang dimiliki olehP P S P A C E P N P P S P A C EPSPACE P PSPACE P NP PSPACE ... tetapi ini membutuhkan sejumlah prosesor yang eksponensial! Trade-off time-space berfungsi: Waktu eksponensial pada model komputasi sekuensial diubah menjadi sejumlah eksponensial prosesor pada model komputasi paralel, sedangkan ruang polinomial pada model komputasi sekuensial diubah menjadi waktu polinomial pada paralel. model komputasi.
Ini trade-off lebih mudah untuk memahami jika kita mencoba untuk membatasi baik waktu paralel dan hardware paralel: jika paralel Model komputasi memiliki sejumlah polinomial prosesor, maka kelas masalah dipecahkan dalam waktu polinomial paralel . Jika kita membatasi jumlah prosesor menjadi polinomial, kita dapat meningkatkan kinerja mesin sekuensial, tetapi tidak lebih dari faktor polinomial. Dengan demikian kita dapat mengurangi tingkat polinomial yang merepresentasikan kompleksitas waktu, tetapi kita tidak dapat menggunakan paralelisme untuk mengurangi biaya eksponensial menjadi biaya polinomial.P
Masalah diselesaikan secara paralel dengan kompleksitas waktu polinomial adalah mereka masalah milik . Batasan polinomial pada jumlah prosesor mengarah ke model komputasi paralel yang setara dengan TM. Ada dua pertimbangan praktis yang penting: jumlah prosesor yang jumlahnya banyak / terjangkau? Dalam praktiknya, jumlah prosesor polinomial dimaksudkan untuk linear atau tertutup. Waktu subpolinomial mana yang dapat dicapai? Ternyata hampir semua masalah layak yang sangat paralel dapat mencapai waktu paralel polylogarithmic. Secara paralel, kompleksitas waktu yang logaritmik pada panjang input mewakili komputasi paralel yang efisien. Algoritma paralel dianggap efisien jika, mengingat jumlah prosesor yang banyak, kompleksitas waktunya adalah polylogaritmik.P
Diberikan masalah mana dan adalah konstanta, tesis komputasi paralel menyiratkan adanya algoritma paralel untuk dengan kompleksitas waktu di mana adalah konstan. Perbandingan antara waktu berurutan dan paralel memungkinkan mengklasifikasikan sebagai masalah yang sangat dapat diparalelkan (dari perspektif waktu).k h R O ( ( l o g n ) k ′ ) k ′ RR∈TIME_SPACETM(nk,(logn)h) k h R O((logn)k′) k′ R
Dari tesis komputasi paralel, dapat bahwa adalah kelas masalah yang sangat paralel. tidak mengandung masalah yang lengkap terkait dengan pengurangan ruang-log; ini berarti . TampaknyaP O L Y L O G S P A C E P O L Y L O G S P A C E ≠ PPOLYLOGSPACE POLYLOGSPACE POLYLOGSPACE≠P
P P - ( P ∩ P O L Y L O G S P A C E )P∩POLYLOGSPACE berisi masalah yang dapat dipecahkan dalam waktu polinomial menggunakan ruang polylogarithmic. masalah lengkap mungkin milik .P P−(P∩POLYLOGSPACE)
O ( ( l o g n ) k ) ) O ( f ( n ) ) f n N C ⊂ ( P ∩ P O L Y L O G S P A C E )NC (kelas Nick - disebut untuk menghormati Nicholas Pippenger, yang pertama mengidentifikasi dan mencirikannya pada 1979) adalah kelas masalah yang dapat diselesaikan dalam waktu polylogarithmic (yaitu, dengan kompleksitas waktu dengan jumlah prosesor polinom (yaitu, dibatasi oleh untuk beberapa fungsi polinom mana adalah ukuran masalah) Tesis perhitungan paralel menyiratkan .O((logn)k)) O(f(n)) f n NC⊂(P∩POLYLOGSPACE)
Namun, sayangnya menurut definisi juga mencakup banyak masalah yang tidak dapat diparalelkan secara efisien. Contoh yang paling terkenal adalah pencarian biner paralel . Masalahnya adalah bahwa masalah ini memiliki kompleksitas waktu polylogarithmic bahkan untuk = 1. Algoritma berurutan yang membutuhkan paling banyak waktu logaritmik dalam kasus terburuk adalah di terlepas dari kelayakan paralelnya!p N CNC p NC
Sekarang, kita akhirnya bisa menjelaskan mengapa masalah -complete adalah masalah paralel yang paling sulit. Diberikan masalah lengkap , sangat tidak mungkin keberadaan algoritma paralel yang efisien: jika algoritma paralel seperti itu akan ada dengan kompleksitas waktu , maka tesis komputasi paralel akan menyiratkan adanya algoritma berurutan dengan kompleksitas ruang untuk masalah yang sama. Karena adalah masalah -Lengkap ini pada gilirannya akan berarti bahwa setiap masalah dalam dapat diselesaikan dalam ruang poli-log: . Seperti yang sudah Anda ketahui, kami malah percaya ituP P Q O((logn)k) O((logn)k′) Q P P (P∩POLYLOGSPACE)=P (P∩POLYLOGSPACE)⊂P , meskipun kami belum dapat membuktikan ini.
Satu pengamatan terakhir, tentang persyaratan prosesor polinomial. Ya, itu pernyataan teoretis. Dalam praktiknya: persyaratan prosesor yang tumbuh lebih cepat dari ukuran masalah mungkin tidak terlalu berguna.
sumber
Karena "paralel efisien" termasuk dalam ("Kelas Nick" dari masalah yang dapat diputuskan dalam waktu polylogarithmic dengan jumlah prosesor yang jumlahnya banyak), dan secara luas diyakini bahwa . Jadi setiap masalah tidak diyakini memiliki algoritma paralel yang efisien (karena itu akan menyiratkan bahwa ).NC N C ≠ P P - c o m p l e t e P = N CNC≠P P-complete P=NC
Tentu saja semua ini sampai pada dugaan bahwa , seperti yang Anda tahu itu adalah masalah terbuka yang tidak di tingkat pertama dari , yaitu kita tidak tahu apakah .P N C N C 1 ≠ PNC≠P P NC NC1≠P
Terlebih lagi, kami bahkan tidak tahu apakah Anda tidak dapat menyelesaikan masalah di di , yaitu kedalaman konstan (= waktu paralel konstan) sirkuit boolean dengan gerbang .A C 0 [ 6 ]P AC0[6] mod6
Untuk informasi lebih lanjut, lihat buku berikut:
Raymond Greenlaw, H. James Hoover, Walter L. Ruzzo, " Batas untuk Komputasi Paralel: Teori P-Completeness ", 1995.
sumber
Jawaban Kaveh mencakup definisi "paralelisme" yang biasa, yaitu NC. Pertanyaan apakah P NC adalah salah satu pertanyaan paling sulit dalam teori kompleksitas (dan dalam beberapa hal sama relevannya dengan pertanyaan P NP).< <
Intuisi di baliknya adalah bahwa beberapa masalah dalam P, seperti pemrograman linier, atau urutan DFS terasa seperti mereka memiliki banyak dependensi yang memaksa "jalur kritis" panjang yang tidak dapat diparalelkan. Ini bukan bukti selain non-determinisme yang kelihatannya sangat kuat, tetapi ini adalah ide dasarnya.
Sunting: Untuk memperjelas komentar, inti dari jawaban ini adalah untuk mengatakan mengapa (beberapa) orang tidak berpikir bahwa P dan NC adalah sama. Seperti halnya P dan NP, tidak ada yang tahu bagaimana membuktikan apakah keduanya berbeda, tetapi ada sesuatu tentang masalah-masalah sulit yang membuat (beberapa) ilmuwan komputer mengira mereka berbeda.
Selain itu, NC adalah "waktu polylog pada banyak prosesor", yang meminta peningkatan kecepatan yang sangat dramatis tetapi memberikan banyak prosesor. Dengan demikian mungkin tidak cocok dengan gagasan praktis yang dapat diparalelkan.
Secara khusus, jika Anda berpikir bahwa P NP, maka Anda akan mulai melihat heuristik dan algoritma perkiraan segera untuk masalah NP-lengkap. Di sisi lain, bahkan jika Anda berpikir bahwa NC lebih kecil dari P, Anda mungkin bisa mendapatkan speedup non-sepele dari jenis paralelisme yang tersedia dari komputer saat ini.<
sumber
Berhati-hatilah dengan siapa yang mengambil "algoritma paralel efisien" untuk mengartikan apa, tepatnya.
Jawaban yang lebih tua menjelaskan perspektif teori kompleksitas. Di sana, "efisien" biasanya berarti sesuatu yang tidak jelas seperti "runtime dalam waktu dengan prosesor ". Perhatikan bahwa jumlah prosesor dapat bergantung pada ukuran input!O(f(n)) O(g(n))
Secara khusus, yang sering disebut kelas NC adalah
Ini tidak ada hubungannya dengan apakah ada algoritma paralel untuk masalah ini yang efisien dalam hal yang lebih praktis¹:
Hanya karena tidak ada algoritma NC untuk masalah tidak berarti tidak ada yang "nyata"; hanya karena kita tidak dapat memecah masalah menjadi polinomi banyak potongan yang sangat kecil tidak berarti kita tidak dapat memecahnya menjadi banyak yang terus-menerus cukup kecil, karena tumbuh.n
Sebagai contoh, pada banyak prosesor yang memiliki memori bersama, parsing CYK dapat dilakukan secara paralel dengan speedup optimal asimptotik (lihat tesis master saya , meskipun parsing bebas konteks adalah P-lengkap.
Menjelaskan efisiensi pada mesin dengan banyak prosesor dengan cara yang bermanfaat membutuhkan analisis yang lebih tepat daripada karena kecepatan-up dibatasi oleh konstanta hingga, jumlah prosesor². Anda jarang menemukan ini dalam teori kompleksitas. Oleh karena itu, jika Anda ingin mempelajari tentang algoritma paralel yang digunakan di dunia nyata, saya akan menyarankan untuk mencari di tempat lain.O(…)
Misalkan fungsi runtime dari algoritma paralel. Anda mungkin ingin menyebut algoritma "efisien" jika , atau jika untuk fungsi runtime dari algoritma sekuensial yang baik. Saya mengusulkan ini dengan cara yang lebih ketat dalam tesis master saya , membangun dari literatur yang dikutip di dalamnya. T 1 ( n ) / T p ( n ) ≈ p T 1 ( n ) ≈ TTp:N→R≥0 T1(n)/Tp(n)≈p TT1(n)≈T(n) T
Ini tidak selalu benar; hirarki memori dan perangkat keras mungkin memungkinkan untuk peningkatan yang lebih besar, setidaknya kadang-kadang. Akan ada batas konstan lainnya.
sumber
Itu pertanyaan ditandai sebagai duplikat pertanyaan ini, jadi saya hanya menganggap bahwa itu benar-benar duplikat, dan memberikan satu jawaban yang mungkin.
Kita tahu bahwa NC! = PSPACE, maka merupakan bukti bahwa P = NC juga akan membuktikan P! = PSPACE. Itu mungkin tidak terdengar seperti masalah besar, tetapi merupakan salah satu konsekuensi untuk penelitian ilmu komputer.
Mengapa kita tahu NC! = PSPACE? Kita tahu NC k ⊆ DSPACE (O (log k )), jadi kita bisa menggunakan teorema hierarki ruang.
Dalam hal aplikasi praktis, aplikasi di sekitar pemrograman linier (dan cembung) mungkin sangat menggoda sehingga arsitektur paralel khusus bersama dengan kompiler untuk menerjemahkan formulasi pemrograman linier secara efisien sehingga perangkat keras dapat dikembangkan dan dijual.
sumber