Perché FACTOR è in Co-NP?


12

Sto avendo problemi a avvolgere la testa attorno ai problemi PRIME, COMPOSITE, FACTOR e al modo in cui sono correlati in termini di complessità. Capisco che PRIME ha dimostrato di essere in dal test di primalità di AKS e credo che questo funzioni anche per COMPOSITE.P

Per quanto riguarda FATTORE,

FACTOR={(m,r):s such that1<s<r and s divides m}

da quello che ho letto sembra che sia in . Vedo che è in N P poiché un certificato consisterebbe in un divisore primo di m inferiore a r . Ma che tipo di certificato può stabilire che non esiste un tale divisore principale (in tempo polinomiale)?NPCoNPNPmr


1
Perché una lingua sia in prova NP che l'input appartiene alla lingua deve avere un certificato che può essere verificato in tempo polinomiale. Ciò non significa che esiste un certificato per input non appartenenti alla lingua che può essere verificato in modo efficiente.
sashas,

Risposte:


11

mrmmr


1
Grazie. E capisco correttamente che l'algoritmo AKS può dirci se un numero è primo o meno in un tempo polinomiale, ma se non è un numero primo non ci dice i fattori?
Fequish,

1
@Fequish: se non è primo, AKS non ci dice i fattori.

2
eO((logn)1/3(loglogn)2/3)n

5

Per aggiungere alla risposta di Yuval: il test di primalità di AKS è stato scoperto nel 2002. Prima di allora non avevamo un algoritmo di tempo polinomiale per verificare se un numero è primo. Tuttavia Pratt scoprì nel 1975 quelli che ora sono conosciuti come certificati Pratt per primalità e dimostrò che Primes era in NP. Possiamo includere questi certificati Pratt di primalità per i fattori nel nostro certificato per dimostrare che FACTOR è in coNP al posto dell'utilizzo dell'algoritmo AKS per verificare se i fattori sono primi primi.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.