Wenn die Funktion f in #P ist, werden eine Eingabezeichenfolge x von einiger Länge N gegeben ist der Wert f (x) eine nicht - negative Zahl begrenzt durch . (Dies ergibt sich aus der Definition der Anzahl der akzeptierenden Pfade eines NP-Verifizierers.)2poly(N)
Dies bedeutet , dass viele Funktionen f liegt außerhalb von #P aus Gründen uninteressant --- entweder weil f negativ ist , oder in dem Fall , den Sie erwähnen, weil die Funktion schneller als wachse . Für das in der Arbeit modellierte n -queens-Problem ist dies jedoch nur ein Artefakt der Entscheidung der Autoren, den Eingabewert n binär codieren zu lassen . Wenn die erwartete Eingabe die unäre Zeichenfolge 1 n war , dann ist f ( 1 n ) : = (Anzahl der gültigen n2poly(N)nn1nf(1n):=n-Königin-Konfigurationen) wäre sicherlich in #P, durch einen einfachen NP-Verifizierer, der die Gültigkeit einer gegebenen Konfiguration prüft.
Wenn Sie einige Funktionen untersuchen möchten, die (mutmaßlich) aus interessanteren Gründen außerhalb von #P liegen, ziehen Sie beispielsweise folgende in Betracht:
- UNSAT: wenn ψ eine unbefriedigende Boolesche Formel ist, sonst f ( ψ ) : = 0 . Diese Funktion ist nicht in #P enthalten, es sei denn, NP = coNP. Es ist wahrscheinlich auch nicht in der allgemeineren Zählklasse GapP; das heißt, UNSAT ist wahrscheinlich nicht der Unterschied f - g zweier #P-Funktionen. Es liegt jedoch in der allgemeineren Zählkomplexitätsklasse P # P , die tatsächlich die gesamte Polynomialhierarchie nach Todas Theorem enthält.f(ψ):=1ψf(ψ):=0P#P
Dieses Beispiel könnte Ihnen nicht gefallen, da es sich nicht um ein natürliches "Zählproblem" handelt. Aber die nächsten beiden werden sein:
Anzahl der Zuweisungen an x , sodass die Boolesche Formel ψ ( x , ⋅ ) für eine Einstellung auf y erfüllt werden kann .f(ψ(x,y)):=xψ(x,⋅)y
die Anzahl von x , so daß für mindestensHälfte aller y , ψ ( x , y ) = 1 .f(ψ(x,y)):=xyψ(x,y)=1
Es ist nicht bekannt, dass die beiden letztgenannten Probleme auch mit Oracle-Zugriff auf #P effizient berechenbar sind. Sie sind jedoch innerhalb der sogenannten "Zählhierarchie" berechenbar. Für einige natürlichere Probleme, die in diese Klasse eingeteilt sind, siehe z . B. diese neuere Veröffentlichung.
Nash-Gleichgewichte zu zählen ist anscheinend # P-schwer, siehe hier . Auch Probleme, bei denen das Suchproblem einfach ist, können #P schwer zu zählen sein, z. B. das Zählen perfekter Übereinstimmungen.