♯P-complete
Das #P-Complete Probleme (ausgesprochen "scharfe p abgeschlossen" oder "Nummer P vollständig") Form a Komplexitätsklasse in Computerkomplexitätstheorie. Die Probleme in dieser Komplexitätsklasse werden durch die folgenden zwei Eigenschaften definiert:
- Das Problem ist in #P, die Klasse von Problemen, die definiert werden können, um die Anzahl der Akzeptanzwege von a zu zählen Polynomzeit Nichtdeterministische Turing-Maschine.
- Das Problem ist #P-Hard, was bedeutet, dass jedes andere Problem in #P a hat Turing Reduktion oder Polynomzeitzählreduzierung dazu. Eine Zählreduktion ist ein Paar Polynom-Zeit-Transformationen von Eingaben des anderen Problems zu Eingaben des gegebenen Problems und von Ausgaben des gegebenen Problems zu den Ausgängen des anderen Problem Problem. Eine Turing -Reduktion ist ein Algorithmus für das andere Problem, das eine Polynomzahl von Aufrufen an eine Unterroutine für das gegebene Problem darstellt und außerhalb dieser Aufrufe die Polynomzeit verwendet. In manchen Fällen sparsame ReduktionenEs wird eine spezifischere Art der Reduktion verwendet, die die genaue Anzahl von Lösungen bewahrt.
#P-Complete-Probleme sind mindestens so schwierig wie NP-Complete Probleme.[1] Ein Polynom-Zeit-Algorithmus zur Lösung eines #P-Completenproblems, wenn es existiert, würde die Lösung des P gegen NP -Problem Indem sie impliziert, dass P und NP gleich sind. Es ist kein solcher Algorithmus bekannt, und es ist auch kein Beweis bekannt, dass ein solcher Algorithmus nicht existiert.
Beispiele
Beispiele für #P-Complete-Probleme sind:
- Wie viele verschiedene variable Zuordnungen erfüllen eine bestimmte allgemeine boolesche Formel? (#Sat)
- Wie viele verschiedene variable Zuordnungen werden eine bestimmte erfüllen DNF Formel?
- Wie viele verschiedene variable Zuordnungen werden eine bestimmte erfüllen 2-Satsfabilität Problem?
- Wie viele Perfekte Matchings Gibt es für eine Selbstverständlichkeit Bipartitale Grafik?
- Was ist der Wert der dauerhaft einer bestimmten Matrix, deren Einträge 0 oder 1 sind? (Sehen #P-Completness von 01 Permanent.))
- Wie viele Grafikfarbe Verwendung k Farben sind für ein bestimmtes Diagramm da G?
- Wie viele verschiedene lineare Erweiterungen Gibt es für eine Selbstverständlichkeit teilweise bestelltes Setoder gleichwertig wie viele verschiedene Topologische Ordnung Gibt es für eine Selbstverständlichkeit Regie acyclische Graphen?[2]
Dies sind alles notwendigerweise Mitglieder der Klasse #P auch. Betrachten Sie als Nichtbeispiel den Fall von Lösungen für ein 1-satem-Problem: eine Reihe von Variablen, die jeweils individuell eingeschränkt sind, aber keine Beziehungen zueinander haben. Die Lösungen können effizient gezählt werden, indem die Anzahl der Optionen für jede Variable isoliert multipliziert wird. Somit ist dieses Problem in #P, kann aber nicht #p-complete sein, es sei denn #P=FP. Dies wäre überraschend, wie es das bedeuten würde P=Np=PH.
Einfache Probleme mit hart zählenden Versionen
Einige #P-Complete-Probleme entsprechen einfach (Polynomzeit) Probleme. Die Bestimmung der Erfüllbarkeit einer booleschen Formel in DNF ist einfach: Eine solche Formel ist befriedigend, wenn sie nur dann eine befriedigende Konjunktion enthält (eine, die keine Variable und ihre Negation enthält), während das Zählen der Anzahl der zufriedenstellenden Zuordnungen #P- ist. Komplett. Darüber hinaus ist die Entscheidung von 2-Sats-Unzufriedenheit im Vergleich zu der Anzahl der zufriedenstellenden Aufträge einfach. Topologisch sortieren ist im Gegensatz dazu einfach, die Anzahl der topologischen Sendungen zu zählen. Ein einzelnes Perfektes Matching Kann in Polynomzeit gefunden werden, aber das Zählen aller perfekten Matchings ist #P-Complete. Das perfekte Problem mit dem Matching Counting war das erste Zählproblem, das einem einfachen P-Problem entsprach, das sich als #P-Complete in einem Papier von 1979 von 1979 befand Leslie Valiant Dies definierte auch die Klasse #P und die #P-Completenprobleme zum ersten Mal.[3]
Annäherung
Es gibt Probabilistische Algorithmen Diese kehrt gute Annäherungen an einige #P-C-C-Complete-Probleme mit hoher Wahrscheinlichkeit zurück. Dies ist eine der Demonstrationen der Kraft probabilistischer Algorithmen.
Viele #P-Complete-Probleme haben a Randomisierte Approximationsschema vollständig polynomiale Zeit, oder "FPRAS", was informell mit hoher Wahrscheinlichkeit eine Annäherung an willkürliche Genauigkeit erzeugt, die in Bezug auf die Größe des Problems und des erforderlichen Genauigkeitsgrades polynomisch ist. Jerrum, Tapfer, und Vazirani zeigten, dass jedes #P-Complete-Problem entweder ein FPRA hat oder im Wesentlichen unmöglich zu approximieren ist. Wenn es einen Polynom-Zeit-Algorithmus gibt, der konsequent eine Annäherung an ein #P-Complete-Problem erzeugt, das sich innerhalb eines Polynomverhältnisses in der Größe der Eingabe der genauen Antwort befindet, kann dieser Algorithmus zum Erstellen von FPRA verwendet werden.[4]
Verweise
- ^ Valiant, Leslie G. (August 1979). "Die Komplexität der Aufzählung und Zuverlässigkeitsprobleme" (PDF). Siam Journal über Computing. 8 (3): 410–421. doi:10.1137/0208032.
- ^ Brightwell, Graham R.; Winkler, Peter (1991). "Lineare Erweiterungen zählen". Befehl. 8 (3): 225–242. doi:10.1007/bf00383444..
- ^ Leslie G. Valiant (1979). "Die Komplexität der Berechnung der Permanenten". Theoretische Informatik. Elsevier. 8 (2): 189–201. doi:10.1016/0304-3975 (79) 90044-6.
- ^ Mark R. Jerrum; Leslie G. Valiant; Vijay V. Vazirani (1986). "Zufällige Erzeugung kombinatorischer Strukturen aus einer einheitlichen Verteilung". Theoretische Informatik. Elsevier. 43: 169–188. doi:10.1016/0304-3975 (86) 90174-x.
Weitere Lektüre
- Vazirani, Vijay V. (2003). Näherungsalgorithmen. Berlin: Springer. ISBN 3-540-65367-8.