Si la fonction f est dans #P, alors étant donné une chaîne d'entrée x d'une certaine longueur N, la valeur f (x) est un nombre non négatif limité par . (Cela découle de la définition, en termes de nombre de chemins d'acceptation d'un vérificateur NP.)2poly(N)
Cela signifie que de nombreuses fonctions f se trouvent en dehors de #P pour des raisons sans intérêt --- soit parce que f est négatif, soit, dans le cas que vous mentionnez, parce que la fonction croît plus vite que . Mais pour le problème des n -queens tel que modélisé dans l'article, ce n'est qu'un artefact de la décision des auteurs de laisser la valeur d'entrée n être codée en binaire. Si l'entrée attendue était la chaîne unaire 1 n , alors f ( 1 n ) : = (nombre de n valides2poly(N)nn1nf(1n):=n-queen configurations) serait certainement en #P, par un simple vérificateur NP qui vérifie la validité d'une configuration donnée.
Si vous voulez explorer certaines fonctions qui (conjecturellement) se trouvent en dehors de #P pour des raisons plus intéressantes, considérez par exemple celles-ci:
- UNSAT: si ψ est une formule booléenne insatisfaisante, sinon f ( ψ ) : = 0f(ψ):=1ψf(ψ):=0 . Cette fonction n'est pas dans #P, sauf si NP = coNP. Ce n'est probablement pas non plus dans la classe de comptage plus générale GapP; c'est-à-dire que UNSAT n'est probablement pas la différence f - g de deux fonctions #P. Cependant, il se trouve dans la classe de complexité de comptage plus générale , qui contient en fait la hiérarchie polynomiale entière par le théorème de Toda.P#P
Vous pourriez ne pas aimer cet exemple car ce n'est pas un "problème de comptage" naturel. Mais les deux prochains seront:
le nombre d'affectations à x telles que la formule booléenne ψ ( x , ⋅f(ψ(x,y)):=xψ(x,⋅)y
f(ψ(x,y)):=xyψ(x,y)=1
Les deux derniers problèmes ne sont pas connus pour être calculés efficacement même avec un accès Oracle à #P. Cependant, ils sont calculables dans la soi-disant "hiérarchie de comptage". Pour certains problèmes plus naturels classés dans cette classe, voir par exemple ce document récent.
Compter les équilibres de Nash est apparemment # P-difficile, voir ici . De plus, même les problèmes où le problème de recherche est facile peuvent être difficiles à compter #P, par exemple, compter les correspondances parfaites.