P-Kelengkapan dan Komputasi Paralel


23

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?


Ini berhubungan dengan NC (lihat jawaban) yang merupakan cara mengerikan untuk memformalkan "efisien parallelisable".
Raphael

Jawaban:


17

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(PPOLYLOGSPACE)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 EPSPACEPPSPACEPNPPSPACE... 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 RRTIME_SPACETM(nk,(logn)h)khRO((logn)k)kR

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 PPOLYLOGSPACEPOLYLOGSPACEPOLYLOGSPACEP

  1. POLYLOGSPACEP
  2. PPOLYLOGSPACE

P P - ( P P O L Y L O G S P A C E )PPOLYLOGSPACE berisi masalah yang dapat dipecahkan dalam waktu polinomial menggunakan ruang polylogarithmic. masalah lengkap mungkin milik .PP(PPOLYLOGSPACE)

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))fnNC(PPOLYLOGSPACE)

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 CNCpNC

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 ituPPQO((logn)k)O((logn)k)QPP(PPOLYLOGSPACE)=P(PPOLYLOGSPACE)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.


10

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 ).NCN CP P - c o m p l e t e P = N CNCPP-completeP=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 1PNCPPNCNC1P

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 ]PAC0[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.


NC juga mencakup banyak masalah yang tidak dapat diparalelkan secara efisien. Lihat jawaban saya untuk detailnya.
Massimo Cafaro

Anda mungkin ingin secara eksplisit mengatakan bahwa "Jika ada masalah ada di maka ". P-completeNCNC=P
Alex ten Brink

1
@ unforgiven, ada berbagai pendapat tentang kelas mana yang benar menangkap algoritma "parallel efisien", untuk alasan itu saya menggunakan kelas yang dianggap sebagai upperbound. Saya pikir P vs NC adalah alasan khas mengapa orang berpikir masalah P-complete tidak memiliki algoritma paralel yang efisien meskipun ada detail menarik seperti yang dinyatakan dalam jawaban Anda. Saya menambahkan referensi ke jawaban saya.
Kaveh

1
@ Kaveh, saya setuju dengan Anda. Sebagian besar orang berpikir tentang ini persis dalam istilah ini. Itu sebabnya saya ingin menawarkan sudut pandang yang sedikit berbeda, berdasarkan tesis komputasi paralel. Referensi yang Anda berikan sangat bagus dan mewakili, de facto, perawatan terbaik dari subjek yang pernah saya baca.
Massimo Cafaro

6

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.<


Intuisi yang Anda berikan tidak benar, fakta bahwa seseorang tidak dapat mengubah algoritma tertentu menjadi paralel yang efisien tidak berarti bahwa masalahnya tidak dapat diselesaikan dalam waktu paralel yang efisien. Orang bisa mengatakan sesuatu yang mirip dengan mengatakan terutama tidak dalam karena Anda harus menguji banyak angka dan tampaknya sebagian besar dari mereka tidak berhubungan, tetapi itu salah seperti yang kita tahu dan keutamaan ada di . PP
Kaveh

Tetapi poin Louis harus dipandang sebagai intuisi, dan tidak sepenuhnya salah. Apa yang bermasalah adalah bahwa kelengkapan-P DFS sangat rapuh - Anda perlu DFS leksikografi dan juga di RNC dll.
Suresh

@ Suresh: Ya. Maksudku, aku tidak tahu bagaimana membuktikan lex itu. memesan DFS tidak dapat disimulasikan secara deterministik dengan cara yang jauh lebih baik daripada hanya melakukannya, tetapi orang tidak "merasa" seperti itu mungkin tanpa keacakan. (Jika itu penting, "agama" saya adalah bahwa banyak keacakan memiliki kekuatan.)
Louis

@ Kaveh: Ini "jalur kritis" (juga disebut "kedalaman kerja") bukan fitur dari algoritma tetapi dari masalah; itu sebabnya sulit untuk ditunjukkan. Ini adalah urutan terpanjang dari "work pieves" yang telah diselidiki secara berurutan (dengan algoritma apa pun).
Raphael

@Raphael, diberi bahasa tidak ada alasan yang diketahui mengapa algoritma yang menyelesaikannya harus mengikuti urutan langkah-langkah tertentu, jika Anda bisa menunjukkan bahwa itu akan menyiratkan lowerbound yang tidak kita miliki. Dan ini adalah salah satu alasan mengapa membuktikan lowerbounds sangat sulit, Anda tidak dapat mengasumsikan apa-apa tentang bagaimana perhitungan algoritma penyelesaian masalah akan terlihat seperti. Itu poin saya.
Kaveh

3

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

serangkaian masalah keputusan yang dapat ditentukan dalam waktu polylogaritmik pada komputer paralel dengan jumlah prosesor yang jumlahnya banyak.

Ini tidak ada hubungannya dengan apakah ada algoritma paralel untuk masalah ini yang efisien dalam hal yang lebih praktis¹:

  • Jika Anda memiliki algoritma NC, Anda tidak mendapatkan informasi tentang cara menyelesaikan masalah (efisien) pada mesin apa pun dengan jumlah prosesor tetap.
  • 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()


  1. 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:NR0T1(n)/Tp(n)pTT1(n)T(n)T

  2. Ini tidak selalu benar; hirarki memori dan perangkat keras mungkin memungkinkan untuk peningkatan yang lebih besar, setidaknya kadang-kadang. Akan ada batas konstan lainnya.


0

Misalkan besok seseorang menemukan bukti bahwa P = NC. Apa konsekuensi untuk penelitian ilmu komputer dan aplikasi praktis dalam kasus ini?

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.

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.