Se la funzione f è in #P, quindi data una stringa di input x di una certa lunghezza N, il valore f (x) è un numero non negativo limitato da . (Ciò deriva dalla definizione, in termini di numero di percorsi di accettazione di un verificatore NP.)2poly(N)
Ciò significa che molte funzioni f trovano fuori della #P per motivi non interessanti --- o perché f è negativo, o, nel caso si parla, perché la funzione cresce più . Ma per il problema n -queens come modellato nel documento, questo è solo un artefatto della decisione degli autori di lasciare che il valore di input n sia codificato in binario. Se l'input previsto era la stringa unaria 1 n , allora f ( 1 n ) : = (numero di n validi2poly(N)nn1nf(1n):=n-queen configurations) sarebbe sicuramente in #P, con un semplice verificatore NP che controlla la validità di una data configurazione.
Se vuoi esplorare alcune funzioni che (congetturalmente) si trovano al di fuori di #P per motivi più interessanti, considera ad esempio queste:
- UNSAT: se ψ è una formula booleana insoddisfacente, altrimenti f ( ψ ) : = 0 . Questa funzione non è in #P, a meno che NP = coNP. Probabilmente non è nemmeno nella classe di conteggio più generale GapP; cioè UNSAT probabilmente non è la differenza f - g di due funzioni #P. Tuttavia, risiede nella classe di complessità di conteggio più generale P # P , che in realtà contiene l'intera Gerarchia polinomiale dal teorema di Toda.f(ψ):=1ψf(ψ):=0P#P
Questo esempio potrebbe non piacerti perché non è un "problema di conteggio" naturale. Ma i prossimi due saranno:
f(ψ(x,y)):=xψ(x,⋅)y
f(ψ(x,y)):=xyψ(x,y)=1
Questi ultimi due problemi non sono noti per essere calcolabili in modo efficiente anche con l'accesso a Oracle su #P. Tuttavia, sono calcolabili all'interno della cosiddetta "gerarchia di conteggio". Per alcuni problemi più naturali classificati in questa classe, vedi ad esempio questo recente documento.
Il conteggio degli equilibri di Nash è apparentemente # P-difficile, vedi qui . Inoltre, anche i problemi in cui il problema di ricerca è semplice possono essere #P difficili da contare, ad esempio il conteggio di corrispondenze perfette.