Questa è una domanda molto interessante
Innanzitutto, un'osservazione chiarificatrice. Si noti che "limite superiore sul numero di testimoni" non è una proprietà di un problema computazionale di per sé, ma di un particolare verificatore utilizzato per decidere un problema , proprio come un "limite superiore sul numero di stati" non sarebbe un proprietà di un problema ma di una macchina di Turing che lo decide. Quindi dire " Problema N P con limite superiore sul numero di soluzioni" non è abbastanza accurato, e se P = N P allora ogni problema N P ha un verificatore con un numero qualsiasi di soluzioni desiderate (incluso zero e includendo tutte le possibili stringhe) .NPNPP=NPNP
Quindi dobbiamo fare una definizione, per rispondere alla tua domanda. Per , supponiamo che un problema N P L "abbia al massimo s ( n ) soluzioni" se per qualche costante c esiste un verificatore di tempo O ( n c ) V tale che, per ogni lunghezza di ingresso n e per ogni x ∈ L di lunghezza n , vi sono distinti y 1 , … , y s ( ns : N → NNPLs ( n )cO ( nc)Vnx ∈ Ln di lunghezza n c tale cheV(x, y i )accetta per tuttii, eV(x,y)rifiuta tutti gli altriydi lunghezza n c .y1, ... , ys ( n )ncV( x , yio)ioV( x , y)ync
Tutto quello che penso di poter dire al momento è questo:
- Ogni problema -complete So (definito da un verificatore naturale) ha un corrispondente evidente # P versione conteggio Completa (con lo stesso verificatore).NP# P
- Per qualsiasi problema -complete definito con un verificatore avente al massimo p o l y ( n ) soluzioni (o anche 2 n O ( 1 ) soluzioni) la versione di conteggio corrispondente probabilmente non è # P -complete.NPp o l y( n )2no ( 1 )# P
Maggiori dettagli: Supponiamo che sia N P- completo, con un verificatore V che abbia al massimo soluzioni O ( n c ) . Quindi la versione "decisione" di conteggio naturale di L , che definiamo comeLNPVO ( nc)L
Co u n tL( x ) : = il numero di y tale che V( x , y) accetta
è calcolabile in , che è una funzione polytime conO(logn)query aNP. Questo perché decidere se il numero di soluzioni perxè al massimokè inNP: il testimone, se esiste, è semplicemente il numero di y che sto facendoaccettareV, chesappiamoessere al massimoO( n c )FPNP[ O ( logn ) ]O ( logn )NPXKNPyioVO ( nc). Allora possiamo binari di ricerca utilizzando questo problema per calcolare il numero esatto di soluzioni a L .NPL
Pertanto, un problema Completa di questo tipo non potrebbe essere esteso a un # P problema Completa nel solito modo, a meno che # P ⊆ F P N P [ O ( log n ) ] . Sembra improbabile; l'intera gerarchia temporale polinomiale sarebbe sostanzialmente crollata in P N P [ O ( log n ) ] .NP# P# P⊆FPNP[O(logn)]PNP[O(logn)]
Se supponi in precedenza, otterrai comunque una conseguenza improbabile. Lo dimostrerestis(n)=2no(1) può essere calcolato in 2 n O ( 1 ) tempo con un N P oracolo. È più che sufficiente per dimostrare, ad esempio, che E X P N P ≠ P P e successivamente E X P N P ⊄ P / p o l y#P2no(1)NPEXPNP≠PPEXPNP⊄P/poly. Non che tali separazioni siano improbabili, ma sembra improbabile che possano essere dimostrate dando un algoritmo -oracle con tempo di sottoexp per il permanente.NP
A proposito, non ho detto nulla di troppo penetrante qui. C'è quasi certamente un argomento come questo in letteratura.