पी-पूर्णता और समानांतर गणना


23

मैं हाल ही में बायिसिमिलरिटी की जाँच के लिए एल्गोरिदम के बारे में पढ़ रहा था और पढ़ा कि समस्या पी-पूर्ण है । इसके अलावा, इसका परिणाम यह है कि यह समस्या, या कोई P- पूर्ण समस्या, एक कुशल समानांतर एल्गोरिदम होने की संभावना नहीं है।

इस अंतिम कथन के पीछे क्या अंतर्ज्ञान है?


यह NC (उत्तरों को देखें) से संबंधित है, जो imho औपचारिक रूप से "कुशलता से समानांतर करने योग्य" का एक भयानक तरीका है।
राफेल

जवाबों:


17

किसी भी P -complete समस्या, एक कुशल समानांतर एल्गोरिथ्म होने की संभावना नहीं है। क्यूं कर ?

के अस्तित्व P -Complete समस्याओं सबसे महत्वपूर्ण सुराग है कि (PPOLYLOGSPACE)P। तब सवाल यह है कि यह अनुमान समानांतर कंप्यूटिंग के लिए प्रासंगिक क्यों है? आइए एक संगणना में प्रयुक्त संसाधनों के साथ शुरू करें। अनुक्रमिक कंप्यूटिंग के लिए: समय और स्थान; समानांतर कंप्यूटिंग के लिए: समय और हार्डवेयर (प्रोसेसर की संख्या)। क्या कोई रिश्ता है? हाँ! अनुक्रमिक स्थान ential समानांतर समय; अनुक्रमिक समय hardware समानांतर हार्डवेयर। अनुक्रमिक स्थान और समानांतर समय के बीच पत्राचार को अपनाया गया समानांतर कंप्यूटिंग मॉडल से स्वतंत्र लगता है; यह निम्नलिखित की ओर जाता है, इसलिए इसे समानांतर संगणना थीसिस कहा जाता है जो अप्रमाणित है।

(चंद्रा और स्टॉकमेयेर) अंतरिक्ष जटिलता साथ एक टीएम की हर गणना को S(n)समानांतर कंप्यूटिंग मॉडल में समय T(n)=O(S(n)O(1)) और एक समानांतर कंप्यूटिंग की हर गणना में जोड़ा जा सकता है समय जटिलता के साथ मॉडल T(n) अंतरिक्ष जटिलता के साथ एक टीएम से प्रेरित किया जा सकता है S(n)=O(T(n)O(1))

बहुपद स्थान में क्रमिक रूप से समस्याओं का वर्ग और बहुपद समय में हल करने वाली समस्याओं का समूह P है । Since P S P A C E को P , थीसिस की तुलना में समस्याओं का एक बहुत बड़ा वर्ग माना जाता है। समानता द्वारा संभव किए गए प्रभावी सुधार की मात्रा निर्धारित करता है। इस थीसिस का एक परिणाम यह है कि एक PRAM बहुपद समय में एन पी- अपूर्ण समस्याओं को हल कर सकता है ... दुर्भाग्य से, नहीं! समानांतर संगणना थीसिस का अर्थ है कि हम वास्तव में पी एस पी सी से संबंधित समस्याओं से निपट सकते हैंPSPACEPPSPACEPNPPSPACE... लेकिन इसके लिए प्रोसेसर की एक घातांक संख्या की आवश्यकता होती है! एक टाइम-स्पेस ट्रेड-ऑफ काम कर रहा है: अनुक्रमिक कंप्यूटिंग मॉडल पर घातीय समय समानांतर कंप्यूटिंग मॉडल पर प्रोसेसर की एक घातीय संख्या में बदल जाता है, जबकि अनुक्रमिक कंप्यूटिंग मॉडल पर बहुपद स्थान समानांतर पर एक बहुपद समय में बदल जाता है कंप्यूटिंग मॉडल।

इस व्यापार को समझना आसान है यदि हम समानांतर समय और समानांतर हार्डवेयर दोनों को प्रतिबंधित करने का प्रयास करते हैं: यदि समानांतर कंप्यूटिंग मॉडल में बहुपद संख्या प्रोसेसर है, तो समानांतर बहुपद समय में हल करने वाली समस्याओं का वर्ग । यदि हम एक बहुपद के लिए प्रोसेसर की संख्या को सीमित करते हैं तो हम एक अनुक्रमिक मशीन के प्रदर्शन में सुधार कर सकते हैं, लेकिन एक बहुपद कारक से अधिक नहीं। इस प्रकार हम समय की जटिलता का प्रतिनिधित्व करने वाले बहुपद की डिग्री को कम कर सकते हैं, लेकिन हम समानता का उपयोग बहुपद लागतों के लिए घातीय लागत को कम करने में सक्षम नहीं हैं।P

बहुपद समय जटिलता के साथ समानांतर में हल की गई समस्याएं से संबंधित समस्याएं हैं । प्रोसेसर की संख्या पर बहुपद बाधा TM के समतुल्य समानांतर कंप्यूटिंग मॉडल की ओर ले जाती है। दो महत्वपूर्ण व्यावहारिक विचार हैं: प्रोसेसर की कौन सी बहुपद संख्या स्वीकार्य / सस्ती है? व्यवहार में, प्रोसेसर की बहुपद संख्या रैखिक या बंद होने के लिए होती है। कौन सा उप-प्रोटोमील समय साध्य है? यह पता चला कि लगभग सभी अत्यधिक समानांतर संभव समस्याएं पॉलीग्लारिथमिक समानांतर समय को प्राप्त कर सकती हैं। समानांतर में, एक समय जटिलता जो कि इनपुट लंबाई में लॉगरिदमिक है, एक कुशल समानांतर गणना का प्रतिनिधित्व करती है। एक समानांतर एल्गोरिथ्म को कुशल माना जाता है, यदि प्रोसेसर की बहुपद संख्या दी जाती है, तो इसकी समय जटिलता पॉलीग्लारिथमिक है।P

यह देखते हुए एक समस्या जहां कश्मीर और स्थिरांक कर रहे हैं, समानांतर गणना थीसिस एक समानांतर एल्गोरिथ्म के अस्तित्व के लिए निकलता है आर के साथ समय जटिलता हे ( ( एल जी एन ) कश्मीर ' ) जहां कश्मीर 'RTIME_SPACETM(nk,(logn)h)khRO((logn)k)kएक स्थिर है। अनुक्रमिक और समानांतर समय के बीच तुलना को एक समस्या के रूप में वर्गीकृत करने की अनुमति देती है जो एक उच्च समानांतर (एक समय परिप्रेक्ष्य से) है।R

समानांतर कम्प्यूटेशन थीसिस से, यह निम्नानुसार है कि समस्याओं का वर्ग है जो अत्यधिक समानांतर है। पी एल वाई एल जी एस पी सी लॉग-अंतरिक्ष के लिए कटौती के संबंध में पूरा समस्याओं शामिल नहीं हैं; यह संकेत मिलता है पी एल वाई एल जी एस पी सी पी । ऐसा लगता हैPOLYLOGSPACEPOLYLOGSPACEPOLYLOGSPACEP

  1. POLYLOGSPACEP
  2. PPOLYLOGSPACE

समस्याओं कि polylogarithmic स्थान का उपयोग कर बहुपद समय में हल किया जा सकता हैं। पी -Complete समस्याओं शायद के अंतर्गत आता है पी - ( पी पी एल वाई एल जी एस पी सी )PPOLYLOGSPACEPP(PPOLYLOGSPACE)

(निक के वर्ग - तो निकोलस Pippenger, पहले के सम्मान में कहा जाता है की पहचान करने और 1979 में यह चिह्नित करने के लिए), समस्याओं के वर्ग कि polylogarithmic समय (यानी में हल किया जा सकता है समय जटिलता के साथ हे ( ( एल जी एन ) कश्मीर ) ) प्रोसेसर की एक बहुपद संख्या (Ie, से घिरा के साथ हे ( ( एन ) ) कुछ बहुपद समारोह के लिए जहां n समस्या आकार) समानांतर गणना थीसिस का तात्पर्य है एन सी ( पी पी NCO((logn)k))O(f(n))fnNC(PPOLYLOGSPACE)

हालांकि, दुर्भाग्य से परिभाषा में बहुत सारी समस्याएं शामिल हैं जो कुशलता से समानांतर नहीं हैं। सबसे कुख्यात उदाहरण समानांतर बाइनरी खोज है । परेशानी यह है कि इस समस्या में p = 1 के लिए भी बहुपत्नी काल जटिलता है । 1. किसी भी अनुक्रमिक एल्गोरिथ्म में सबसे खराब समय में सबसे अधिक लघुगणक समय की आवश्यकता होती है, इसके समानांतर व्यवहार्यता की परवाह किए बिना एन सी में है !NCpNC

अब, हम अंत में समझा सकते हैं कि अपूर्ण समस्याएं सबसे कठिन समानांतर समस्या क्यों हैं। यह देखते हुए एक पी -Complete समस्या क्यू , यह बहुत संभावना नहीं एक कुशल समानांतर एल्गोरिथ्म के अस्तित्व है: अगर इस तरह के एक समानांतर एल्गोरिथ्म समय जटिलता के साथ मौजूद होगा हे ( ( एल जी एन ) कश्मीर ) , तो समानांतर गणना थीसिस अस्तित्व मतलब होगा अंतरिक्ष जटिलता के साथ एक अनुक्रमिक एल्गोरिथ्म के हे ( ( एल जी एन ) कश्मीर ' ) एक ही समस्या के लिए। चूँकि Q एक P हैPPQO((logn)k)O((logn)k)QP-Complete समस्या बदले में यह संकेत जाएगा कि में हर समस्या पाली लॉग अंतरिक्ष में हल किया जा सकता: ( पी पी एल वाई एल जी एस पी सी ) = पी । आप पहले से ही जानते हैं, हम बजाय का मानना है कि ( पी पी एल वाई एल जी एस पी सी ) पी है, भले ही हम अभी तक यह साबित करने में सक्षम नहीं हैं।P(PPOLYLOGSPACE)=P(PPOLYLOGSPACE)P

बहुपद प्रोसेसर आवश्यकता के बारे में एक अंतिम अवलोकन। खैर, यह एक सैद्धांतिक कथन है। व्यवहार में: एक प्रोसेसर की आवश्यकता जो समस्या के आकार की तुलना में तेज़ी से बढ़ती है वह वास्तव में उपयोगी नहीं हो सकती है।


10

क्योंकि "कुशल समानांतर" अंदर गिर जाता है NC (प्रोसेसर की एक बहुपद संख्या के साथ polylogarithmic समय में डिसाइडेबल समस्याओं की "निक के कक्षा"), और यह व्यापक रूप से किया जाता है का मानना था कि NCP । इसलिए किसी भी समस्या नहीं है का मानना था (के बाद से है कि अर्थ होगा कि एक कुशल समानांतर एल्गोरिथ्म के लिए पी = एन सी )।P-completeP=NC

बेशक यह सब उस व्यक्त करने के लिए है , जैसा कि आप जानते हैं कि यह एक खुली समस्या है कि पी एन सी के पहले स्तर में नहीं है , अर्थात हम नहीं जानते कि एन सी 1पीNCPPNCNC1P

इससे भी अधिक, हम यह भी नहीं जानते हैं कि यदि आप को A C 0 [ 6 ] में समस्याएँ हल नहीं कर सकते हैं , अर्थात निरंतर गहराई (= स्थिर समानांतर समय) के साथ बूलियन सर्किटPAC0[6] द्वार।mod6

अधिक जानकारी के लिए, निम्नलिखित पुस्तक पर एक नज़र डालें:

रेमंड ग्रीनलाव, एच। जेम्स हूवर, वाल्टर एल। रूज़ो, " लिमिट्स टू पैरेलल कंप्युटेशन : पी-कम्प्लीटनेस थ्योरी ", 1995।


नेकां में बहुत सारी समस्याएं भी शामिल हैं जो कुशलता से समानांतर नहीं हैं। विवरण के लिए मेरा उत्तर देखें।
मैसिमो कैपरो

आप स्पष्ट रूप से यह कहना चाह सकते हैं कि "यदि कोई समस्या N C में है तो N C = P "। P-completeNCNC=P
एलेक्स दस ब्रिंक

1
@unforgiven, इस बारे में कई राय हैं कि कौन से वर्ग "कुशल समानांतर" एल्गोरिदम को सही ढंग से कैप्चर करते हैं, इस कारण से मैंने एक वर्ग का उपयोग किया था जिसे ऊपरी स्तर माना जाता है। मुझे लगता है कि पी बनाम एनसी एक विशिष्ट कारण है कि लोग सोचते हैं कि पी-पूर्ण समस्याओं में कुशल समानांतर एल्गोरिदम नहीं हैं हालांकि आपके विवरण में वर्णित दिलचस्प विवरण हैं। मैंने अपने उत्तर के लिए एक संदर्भ जोड़ा।
केव

1
@ केव, मैं आपसे सहमत हूँ। ज्यादातर लोग इसके बारे में इन शब्दों में बिल्कुल सोचते हैं। यही कारण है कि मैं समानांतर संगणना थीसिस के आधार पर थोड़ा अलग दृष्टिकोण पेश करना चाहता था। आपके द्वारा प्रदान किया गया संदर्भ उत्कृष्ट और प्रतिनिधित्व करता है, वास्तव में, उस विषय का सबसे अच्छा उपचार जो मैंने कभी पढ़ा है।
मैसिमो कैपरो

6

केव के उत्तर में "समानतावाद" की सामान्य परिभाषा शामिल है, जो कि नेकां है। यह सवाल कि क्या पी एनसी जटिलता सिद्धांत में कठिन सवालों में से एक है (और कुछ मायनों में पी < एनपी प्रश्न के रूप में प्रासंगिक है )।<<

The intuition behind it is that some problems in P, like linear programming, or DFS order feel like they have a lot of dependencies that force a long "critical path" that can't be parallelized. This is not a proof any more than non-determinism seeming to be very powerful is, but this is the basic idea.

Edit: To clarify for the comments, the point of this answer is to say why (some) people don't think that P and NC are the same. Much as with P and NP, nobody knows how to prove whether the two are different, but there is something about the hard problems that makes (some) computer scientists think they are.

Another aside is that NC is "polylog time on polynomially many processors", which is asking for a very dramatic speedup but giving a lot of processors. Thus it might not fit a practical notion of parallelizable.

In particular, if you think that P < NP, then you will start looking at heuristics and approximation algorithms right away for NP-complete problems. On the other hand, even if you think that NC is smaller than P, you might be able to get non-trivial speedups from the kinds of parallelism available from today's computers.


The intuition you are giving is not correct, the fact that one cannot turn a particular algorithm into an efficient parallel one doesn't mean that the problem cannot be solved in efficient parallel time. One could have said something similar to say primarily is not in P because you have to test a lot of numbers and it seems that most of them are unrelated, but that is false as we know and primality is in P.
Kaveh

But Louis's point should be viewed as intuition, and is not entirely wrong. What's problematic though is that P-completeness of DFS is very fragile - you need lexicographics DFS and it's also in RNC etc etc.
Suresh

@Suresh: Yes. I mean, I have no idea how to prove that lex. order DFS can't be simulated deterministically in a way much better than just doing it, but people don't "feel" like it is possible without randomness. (If it matters, my "religion" is that a lot of randomness has some power.)
Louis

@Kaveh: This "critical path" (also called "work depth") is no a feature of the algorithm but of the problem; that's why it is hard to show. It is the longest sequence of "work pieves" that have be investigated in sequence (by any algorithm).
Raphael

@Raphael, given a language there is no known reason why an algorithm solving it should follow a particular sequence of steps, if you could show that it would imply a lowerbound which we don't have. And this is one of the reasons why proving lowerbounds is so difficult, you can't assume anything about how computation of an algorithm solving the problem will look like. That is my point.
Kaveh

3

Be very mindful of who takes "efficient parallel algorithms" to mean what, exactly.

The older answers explain the perspective of complexity theory. There, "efficient" usually means something vague like "runtime in O(f(n)) time with O(g(n)) processors". Note that the number of processors can depend on the input size!

In particular, the often named class NC is the

set of decision problems decidable in polylogarithmic time on a parallel computer with a polynomial number of processors.

This has nothing to do with whether there are parallel algorithms for these problems which are efficient in more practical terms¹:

  • If you have an NC algorithm you get no information about how to solve the problem (efficiently) on any machine with a fixed number of processors.
  • Just because there is no NC algorithm for a problem does not mean there isn't a "real" one; just because we can not break apart the problem into polynomially many very small pieces does not mean we can not break it into constantly many sufficiently smaller ones, as n grows.

    For instance, on constantly many processors with shared memory, CYK parsing can be done in parallel with asymptotically optimal speedup (see my master thesis, even though context-free parsing is P-complete.

Describing efficiency on machines with finitely many processors in a useful way requires more precise analysis than O() since speed-up is bounded by a finite constant, the number of processors². You rarely find this in complexity theory. Therefore, if you want to learn about parallel algorithms that are of use in the real world, I would advise to look elsewhere.


  1. Let Tp:NR0 the runtime function of a parallel algorithm. You might want to call an algorithm "efficient" if T1(n)/Tp(n)p, or if T1(n)T(n) for T the runtime function of a good sequential algorithm. I propose this in a more rigorous fashion in my master thesis, building from literature cited therein.

  2. This is not always true; memory hierarchy and hardware may allow for larger speedup, at least sometimes. There will be another constant bound, though.


0

Suppose tomorrow someone discovered a proof that P = NC. What would the consequences for computer science research and practical applications be in this case?

That question was marked as duplicate this question, so let me just assume that it is really a duplicate, and provide one possible answer.

We know that NC != PSPACE, hence a proof that P=NC would also prove P != PSPACE. That may not sound like a big deal, but it is one consequence for computer science research.

Why do we know NC != PSPACE? Well, we know NCk ⊆ DSPACE(O(logk)), so we can just use the space hierarchy theorem.


In term of practical applications, the applications around linear (and convex) programming might be so seducing that custom parallel architectures together with compilers for translating linear programming formulations efficiently to that hardware could be developed and sold.

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.