C'est une question très intéressante.
Tout d'abord, une remarque de clarification. Notez que la "borne supérieure du nombre de témoins" n'est pas la propriété d'un problème de calcul en soi, mais d'un vérificateur particulier utilisé pour décider d'un problème , tout comme une "borne supérieure du nombre d'états" ne serait pas un propriété d'un problème mais d'une machine de Turing le décidant. Donc, dire " problème N P avec la limite supérieure du nombre de solutions" n'est pas tout à fait exact, et si P = N P, alors chaque problème N P a un vérificateur avec un certain nombre de solutions souhaitées (y compris zéro et toutes les chaînes possibles) .NPNPP= NPNP
Nous devons donc faire une définition, pour répondre à votre question. Pour , disons qu'un problème N P L "a au plus s ( n ) solutions" si pour une constante c il y a un vérificateur de temps O ( n c ) V tel que, pour chaque longueur d'entrée n et pour chaque x ∈ L de longueur n , il y a distinctement y 1 , … , y s ( ns : N → NNPLs ( n )cO ( nc)Vnx ∈ Ln de longueur n c telle queV(x, y i )accepte pour touti, etV(x,y)rejette tous les autresyde longueur n c .y1, … , Ys ( n )ncV( x , yje)jeV( x , y)ync
Tout ce que je pense pouvoir dire pour le moment, c'est ceci:
- Chaque problème -complet que je connais (défini par un vérificateur naturel) a une version de comptage # P -complete correspondante correspondante évidente (avec le même vérificateur).NP# P
- Pour tout problème complet défini avec un vérificateur ayant au plus p o l y ( n ) solutions (ou même 2 n o ( 1 ) solutions) la version de comptage correspondante n'est probablement pas # P- complète.NPp o l y( n )2no ( 1 )# P
Plus de détails: Supposons que est N P- complet, avec un vérificateur V qui a au plus O ( n c ) solutions. Ensuite, la version de «décision» de comptage naturel de L , que nous définissons commeLNPVO ( nc)L
Co u n tL( x ) : = le nombre de y tel que V( x , y) accepte
est calculable en , qui est une fonction de temps polynomial avec O ( log n ) des requêtes à N P . C'est parce que décider si le nombre de solutions à x est au plus k est dans N P : le témoin, s'il existe, est simplement le nombre de y i faisant accepter V , que nous savons être au plus O ( n c )FPNP[ O ( logn ) ]O ( logn )NPXkNPyjeVO ( nc). Ensuite , nous pouvons binaires recherche en utilisant ce problème pour calculer le nombre exact de solutions à L .NPL
Par conséquent, un problème complet de ce type ne peut pas être étendu à un problème # P- complet de la manière habituelle, sauf si # P ⊆ F P N P [ O ( log n ) ] . Cela semble peu probable; toute la hiérarchie polynomiale temporelle s'effondrerait essentiellement en P N P [ O ( log n ) ] .NP# P# P⊆ FPNP[ O ( logn ) ]PNP[ O ( logn ) ]
Si vous supposez que dans ce qui précède, vous obtiendriez toujours une conséquence improbable. Vous montreriez que # P peut être calculé en 2 n o ( 1 ) fois avec un oracle N P. C'est plus que suffisant pour prouver, par exemple, que E X P N P ≠ P P et ensuite E X P N P ⊄ P / p o l ys ( n ) = 2no ( 1 )# P2no ( 1 )NPEXPNP≠ PPEXPNP⊄ P/ poly. Non pas que ces séparations soient peu probables, mais il semble peu probable qu'elles soient prouvées en donnant un algorithme de sous-expiration -oracle pour le permanent.NP
Soit dit en passant, je n'ai rien dit de trop perspicace ici. Il existe presque certainement un argument comme celui-ci dans la littérature.