P-Vollständigkeit und parallele Berechnung


23

Ich habe kürzlich über Algorithmen zur Überprüfung der Bisimilarität gelesen und gelesen, dass das Problem P-vollständig ist . Darüber hinaus hat dies zur Folge, dass es unwahrscheinlich ist, dass dieses Problem oder ein beliebiges P-vollständiges Problem effiziente parallele Algorithmen aufweist.

Was ist die Intuition hinter dieser letzten Aussage?


Dies bezieht sich auf NC (siehe die Antworten), was imho eine schreckliche Möglichkeit ist, "effizient parallelisierbar" zu formalisieren.
Raphael

Antworten:


17

Alles -komplette Problem ist unwahrscheinlich , dass ein effizienten parallelen Algorithmus haben. Warum ?P

Die Existenz von vollständigen Problemen ist der wichtigste Hinweis darauf, dass ( P P O L Y L O G S P A C E ) PP(PPOLYLOGSPACE)P. Die Frage ist also, warum diese Vermutung für das parallele Rechnen relevant ist. Beginnen wir mit den in einer Berechnung verwendeten Ressourcen. Für sequentielles Rechnen: Zeit und Raum; für paralleles Rechnen: Zeit und Hardware (Anzahl der Prozessoren). Gibt es eine Beziehung? Ja! Sequentieller Raum ↔ parallele Zeit; Sequenzielle Zeit ↔ parallele Hardware. Die Entsprechung zwischen sequentiellem Raum und paralleler Zeit scheint unabhängig von dem angewendeten parallelen Rechenmodell zu sein; dies führt zu der folgenden sogenannten parallelen rechentheorie, die nicht bewiesen ist.

(Chandra und Stockmeyer) Jede Berechnung eines TM mit Raumkomplexität kann in einem Parallelrechenmodell in der Zeit T ( n ) = O ( S ( n ) O ( 1 ) ) und jede Berechnung eines Parallelrechnens simuliert werden Modell mit Zeitkomplexität T ' ( n ) kann durch ein TM mit Raumkomplexität S ' ( n ) = O ( T ' ( n ) O simuliert werdenS(n)T(n)=O(S(n)O(1))T(n).S(n)=O(T(n)O(1))

Die Klasse der im Polynomraum sequentiell lösbaren Probleme ist und die Menge der in der Polynomzeit lösbaren Probleme ist P. Da P S P A C E als viel größere Klasse von Problemen angesehen wird als P , die These quantifiziert die effektive Verbesserung, die durch Parallelität ermöglicht wird. Eine Konsequenz dieser These ist, dass ein PRAM N P -komplette Probleme in der Polynomzeit lösen kann … Leider nein! Die parallele Rechnerthese impliziert, dass wir uns tatsächlich mit Problemen befassen können, die zu P S P A C E gehörenPSPEINCEPPSPEINCEPNPPSPEINCE… Aber das erfordert eine exponentielle Anzahl von Prozessoren! Ein Zeit-Raum-Kompromiss funktioniert: Die Exponentialzeit im sequentiellen Rechenmodell wird im parallelen Rechenmodell in eine exponentielle Anzahl von Prozessoren umgewandelt, während der Polynomraum im sequentiellen Rechenmodell in eine Polynomzeit im parallelen Rechenmodell umgewandelt wird Rechenmodell.

Dieser Kompromiß ist leichter zu verstehen , wenn wir beide parallel Zeit und parallel Hardware zu beschränken versuchen: Wenn das parallele Rechenmodell eine Polynom Anzahl der Prozessoren hat, dann ist die Klasse von Problemen parallel Polynomzeit auflösbar ist . Wenn wir die Anzahl der Prozessoren auf ein Polynom beschränken, können wir die Leistung einer sequentiellen Maschine verbessern, jedoch nicht mehr als einen Polynomfaktor. Auf diese Weise können wir den Grad des Polynoms reduzieren, der die zeitliche Komplexität darstellt, aber wir können Parallelität nicht verwenden, um exponentielle Kosten auf Polynomkosten zu reduzieren.P

Die Probleme, die parallel zur polynomiellen Zeitkomplexität gelöst werden, sind die Probleme, die zu . Die polynomielle Beschränkung auf die Anzahl der Prozessoren führt zu einem parallelen Rechenmodell, das TM entspricht. Es gibt zwei wichtige praktische Überlegungen: Welche polynomiale Anzahl von Prozessoren ist akzeptabel / erschwinglich? In der Praxis soll die Polynomzahl der Prozessoren linear oder nahe sein. Welche subpolynomiale Zeit ist erreichbar? Es stellte sich heraus, dass fast alle hochparallelen möglichen Probleme eine polylogarithmische Parallelzeit erreichen können. Parallel dazu repräsentiert eine Zeitkomplexität, die in der Eingangslänge logarithmisch ist, eine effiziente parallele Berechnung. Ein paralleler Algorithmus wird als effizient angesehen, wenn seine zeitliche Komplexität bei einer gegebenen polynomiellen Anzahl von Prozessoren polylogarithmisch ist.P

Bei einem Problem , wobei k und h Konstanten sind, die parallele Berechnung Arbeit wird die Existenz eines parallelen Algorithmus impliziert für R mit Zeitkomplexität O ( ( l o g n ) k ' ) wobei k 'RTichME_SPEINCETM(nk,(lOGn)h)khRO((lOGn)k)kist eine Konstante. Der Vergleich zwischen sequentieller und paralleler Zeit erlaubt es, als ein Problem zu klassifizieren, das (aus zeitlicher Sicht) stark parallelisierbar ist.R

Aus der parallelen Berechnung These, folgt, dass die Klasse von Problemen höchst parallelisierbaren ist. P O L Y L O G S P A C E enthält keine Probleme in Bezug auf die Reduzierung des Speicherplatzes; Dies bedeutet , P O L Y L A G S P A C E P . Es scheint, dassPOLY.LOGSPEINCEPOLY.LOGSPEINCEPOLY.LOGSPEINCEP

  1. POLY.LOGSPEINCEP
  2. PPOLY.LOGSPEINCE

enthält die Probleme, die in der Polynomzeit unter Verwendung des polylogarithmischen Raums gelöst werden können. P- vollständige Probleme gehören wahrscheinlich zu P - ( P P O L Y L O G S P A C E ) .PPOLY.LOGSPEINCEPP-(PPOLY.LOGSPEINCE)

(Nicks Klasse - so genannt zu Ehren von Nicholas Pippenger, der es 1979 als erster identifizierte und charakterisierte) ist die Klasse von Problemen, die in polylogarithmischer Zeit (dh mit Zeitkomplexität O ( ( l o g n ) k ) ) mit einer Polynomzahl von Prozessoren (dh, begrenzt durch O ( f ( n ) ) für eine Polynomfunktion f, wobei n die Problemgröße ist) Die parallele Berechnungsarbeit impliziert N C ( P P ONCO((lOGn)k))O(f(n))fn .NC(PPOLY.LOGSPEINCE)

Doch leider definitions enthält auch eine Menge Probleme , die sind nicht effizient parallelizable. Das berüchtigtste Beispiel ist die parallele binäre Suche . Das Problem ist , dass dieses Problem polylogarithmischen Zeitkomplexität auch für hat p = 1. Jeder sequentiellen Algorithmus höchstens logarithmische Zeit im schlimmsten Fall erfordert , ist in N C unabhängig von ihrer parallelen Machbarkeit!NCpNC

Nun können wir endlich erklären, warum vollständige Probleme die am schwersten parallelisierbaren Probleme sind. Bei einem P- vollständigen Problem Q ist es sehr unwahrscheinlich, dass ein effizienter Parallelalgorithmus existiert: Wenn ein solcher Parallelalgorithmus mit der Zeitkomplexität O ( ( l o g n ) k ) existieren würde , würde die parallele Berechnungsthese die Existenz implizieren eines sequentiellen Algorithmus mit Raumkomplexität O ( ( l o g n ) k ' ) für das gleiche Problem. Da Q ein P istPPQ.O((lOGn)k)O((lOGn)k)Q.P-komplette Problem Dies wiederum impliziert wird , dass jedes Problem in in Poly-log Raum gelöst werden können: ( P P O L Y L A G S P A C E ) = P . Wie Sie bereits wissen, glauben wir stattdessen, dass ( P P O L Y L O G S P A C E ) P , obwohl wir dies noch nicht beweisen können.P(PPOLY.LOGSPEINCE)=P(PPOLY.LOGSPEINCE)P

Eine letzte Bemerkung zur Polynomprozessoranforderung. Nun, das ist eine theoretische Aussage. In der Praxis: Eine Prozessoranforderung, die schneller als die Problemgröße wächst, ist möglicherweise nicht wirklich nützlich.


10

Weil "effiziente Parallele" in NC fällt ("Nicks Klasse" von Problemen, die in polylogarithmischer Zeit mit einer polynomiellen Anzahl von Prozessoren entscheidbar sind), und es wird allgemein angenommen, dass NCP . Es wird also nicht angenommen , dass ein Problem einen effizienten parallelen Algorithmus aufweist (da dies implizieren würde, dass P = N C ist ).P-completeP=NC

Natürlich liegt all dies in der Annahme, dass , da Sie wissen, dass es ein offenes Problem ist, dass P nicht in der ersten Ebene von N C liegt , dh wir wissen nicht , ob N C 1P ist .NCPPNCNC1P

Außerdem wissen wir nicht einmal, ob Sie Probleme in in A C 0 [ 6 ] , dh boolesche Schaltungen mit konstanter Tiefe (= konstante Parallelzeit), nicht lösen könnenPAC0[6] Tore.mod6

Weitere Informationen finden Sie in folgendem Buch:

Raymond Greenlaw, H. James Hoover, Walter L. Ruzzo, " Grenzen der parallelen Berechnung: P-Vollständigkeitstheorie ", 1995.


NC enthält auch viele Probleme, die nicht effizient parallelisierbar sind. Siehe meine Antwort für Details.
Massimo Cafaro

Sie könnten explizit möchte sagen , dass "Wenn Problem ist in N C dann N C = P ". P-completeNCNC=P
Alex ten Brink

1
@unforgiven, es gibt verschiedene Meinungen darüber, welche Klasse "effiziente parallele" Algorithmen korrekt erfasst. Aus diesem Grund habe ich eine Klasse verwendet, die als überbunden gilt. Ich denke, P vs. NC ist der typische Grund, warum Leute denken, dass P-vollständige Probleme keine effizienten parallelen Algorithmen haben, obwohl es interessante Details gibt, wie in Ihrer Antwort angegeben. Ich habe einen Verweis auf meine Antwort hinzugefügt.
Kaveh

1
@Kaveh, ich stimme dir zu. Die meisten Leute denken genau in diesen Begriffen darüber nach. Aus diesem Grund wollte ich eine etwas andere Sichtweise anbieten, basierend auf der These der parallelen Berechnung. Die Referenz, die Sie angegeben haben, ist ausgezeichnet und repräsentiert de facto die beste Behandlung des Themas, das ich je gelesen habe.
Massimo Cafaro

6

Kavehs Antwort deckt die übliche Definition von "Parallelität" ab, die NC ist. Die Frage, ob P< NC ist eine der schwierigeren Fragen in der Komplexitätstheorie (und in gewisser Weise genauso relevant wie die P < NP-Frage).

Die Intuition dahinter ist, dass einige Probleme in P, wie die lineare Programmierung oder die DFS-Reihenfolge, das Gefühl haben, viele Abhängigkeiten zu haben, die einen langen "kritischen Pfad" erzwingen, der nicht parallelisiert werden kann. Dies ist kein Beweis mehr als der Nicht-Determinismus, der sehr mächtig zu sein scheint, aber dies ist die Grundidee.

Bearbeiten: Um die Kommentare zu verdeutlichen, ist der Sinn dieser Antwort zu sagen, warum (einige) Leute nicht denken, dass P und NC gleich sind. Ähnlich wie bei P und NP weiß niemand, wie man beweist, ob sich die beiden unterscheiden, aber es gibt etwas an den schwierigen Problemen, die (einige) Informatiker glauben machen, dass sie es sind.

Eine andere Tatsache ist, dass NC "polylog time on polynomially many processors" ist, was nach einer sehr dramatischen Beschleunigung verlangt, aber eine Menge Prozessoren liefert. Daher passt es möglicherweise nicht zu einem praktischen Begriff von parallelisierbar.

Insbesondere, wenn Sie denken, dass P <NP, dann werden Sie sofort beginnen, sich mit Heuristiken und Approximationsalgorithmen für NP-vollständige Probleme zu befassen. Auf der anderen Seite können Sie, selbst wenn Sie glauben, dass NC kleiner als P ist, nicht-triviale Beschleunigungen durch die Parallelität erzielen, die auf heutigen Computern verfügbar ist.


Die Intuition, die Sie geben, ist nicht korrekt. Die Tatsache, dass man einen bestimmten Algorithmus nicht in eine effiziente Parallele verwandeln kann, bedeutet nicht, dass das Problem nicht in einer effizienten Parallelzeit gelöst werden kann. Man hätte sagen können, dass etwas Ähnliches, um zu sagen, in erster Linie nicht drin istPweil man viele Zahlen testen muss und es scheint, dass die meisten von ihnen nichts miteinander zu tun haben, aber das ist falsch, wie wir wissen und in dem sich die Ursprünglichkeit befindetP.
Kaveh

Aber Louis 'Argument sollte als Intuition angesehen werden und ist nicht ganz falsch. Was jedoch problematisch ist, ist, dass die P-Vollständigkeit von DFS sehr fragil ist - Sie benötigen lexikografische DFS und es ist auch in RNC usw. usw.
Suresh

@ Suresh: Ja. Ich meine, ich habe keine Ahnung, wie ich das beweisen soll. order DFS kann nicht viel besser deterministisch simuliert werden, als es nur zu tun, aber die Leute "fühlen" sich nicht so, als ob es ohne Zufall möglich wäre. (Wenn es darauf ankommt, ist meine "Religion", dass viel Zufälligkeit eine gewisse Macht hat.)
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

Denken Sie genau daran, wer genau unter "effizienten parallelen Algorithmen" versteht, was zu verstehen ist.

Die älteren Antworten erklären die Perspektive der Komplexitätstheorie. Dort bedeutet "effizient" normalerweise etwas Unbestimmtes wie "Laufzeit in"O(f(n)) Zeit mit O(G(n)) Prozessoren ". Beachten Sie, dass die Anzahl der Prozessoren von der Eingangsgröße abhängen kann!

Insbesondere die häufig benannte Klasse NC ist die

Satz von Entscheidungsproblemen, die in polylogarithmischer Zeit auf einem Parallelcomputer mit einer polynomiellen Anzahl von Prozessoren entscheidbar sind.

Dies hat nichts damit zu tun, ob es für diese Probleme parallele Algorithmen gibt, die in praktischerer Hinsicht effizienter sind¹:

  • Wenn Sie einen NC-Algorithmus haben, erhalten Sie keine Informationen darüber, wie Sie das Problem (effizient) auf einer Maschine mit einer festen Anzahl von Prozessoren lösen können.
  • Nur weil es keinen NC-Algorithmus für ein Problem gibt, heißt das nicht, dass es keinen "echten" gibt. Nur weil wir das Problem nicht in viele sehr kleine Teile zerlegen können, heißt das nicht, dass wir es nicht in ständig viele ausreichend kleine Teile zerlegen könnenn wächst.

    Beispielsweise kann auf ständig vielen Prozessoren mit gemeinsamem Speicher das CYK-Parsen parallel zu einer asymptotisch optimalen Beschleunigung durchgeführt werden (siehe meine Masterarbeit , obwohl das kontextfreie Parsen P-vollständig ist).

Um die Effizienz von Maschinen mit endlich vielen Prozessoren sinnvoll beschreiben zu können, ist eine genauere Analyse erforderlich als O()da die Beschleunigung durch eine endliche Konstante begrenzt ist, die Anzahl der Prozessoren². Sie finden dies selten in der Komplexitätstheorie. Wenn Sie sich mit parallelen Algorithmen auseinandersetzen möchten, die in der realen Welt von Nutzen sind, empfehle ich Ihnen, sich anderswo umzusehen.


  1. Lassen Tp:NR0die Laufzeitfunktion eines parallelen Algorithmus. Vielleicht möchten Sie einen Algorithmus "effizient" nennen, wennT1(n)/Tp(n)p, oder wenn T1(n)T(n) zum Tdie Laufzeitfunktion eines guten sequentiellen Algorithmus. Ich schlage dies in meiner Masterarbeit strenger vor und baue dabei auf der darin zitierten Literatur auf.

  2. Das ist nicht immer wahr; Speicherhierarchie und Hardware können, zumindest manchmal, eine höhere Geschwindigkeit ermöglichen. Es wird jedoch eine weitere konstante Grenze geben.


0

Angenommen, morgen hat jemand einen Beweis gefunden, dass P = NC ist. Was wären in diesem Fall die Konsequenzen für die Informatikforschung und die praktische Anwendung?

Diese Frage wurde als Duplikat dieser Frage markiert. Nehmen wir also an, dass es sich tatsächlich um ein Duplikat handelt, und geben Sie eine mögliche Antwort.

Wir wissen, dass NC! = PSPACE, daher ein Beweis, dass P = NC auch P! = PSPACE beweisen würde. Das klingt vielleicht nicht nach einer großen Sache, ist aber eine Konsequenz für die Informatikforschung.

Warum kennen wir NC! = PSPACE? Nun, wir kennen NC k ⊆ DSPACE (O (log k )), also können wir einfach den Satz der Raumhierarchie verwenden.


In Bezug auf praktische Anwendungen könnten die Anwendungen im Bereich der linearen (und konvexen) Programmierung so verführerisch sein, dass benutzerdefinierte parallele Architekturen zusammen mit Compilern zur effizienten Umsetzung linearer Programmierformulierungen auf diese Hardware entwickelt und verkauft werden könnten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.