Pourquoi FACTOR est-il dans Co-NP?

12

J'ai du mal à comprendre les problèmes PRIME, COMPOSITE, FACTOR et comment ils sont liés en termes de complexité. Je comprends que PRIME s'est révélé être en par le test de primalité AKS, et je pense que cela fonctionne également pour COMPOSITE.P

Quant à FACTOR,

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

de ce que je l' ai lu semble que ce soit dans le . Je vois qu'il est en N P car un certificat serait composé d'un diviseur premier de m inférieur à r . Mais quel type de certificat peut établir qu'il n'y a pas un tel diviseur premier (en temps polynomial)?NPCoNPNPmr

Fequish
la source
1
Pour qu'une langue soit en preuve NP, l'entrée doit appartenir à la langue doit avoir un certificat qui peut être vérifié en temps polynomial. Cela ne signifie pas qu'il existe un certificat pour les entrées n'appartenant pas à la langue qui peut être vérifié efficacement.
sashas

Réponses:

11

mrmmr

Yuval Filmus
la source
1
Je vous remercie. Et est-ce que je comprends bien que l'algorithme AKS peut nous dire si un nombre est premier ou non en temps polynomial, mais s'il n'est pas premier, il ne nous dit pas les facteurs?
Fequish
1
@Fequish: S'il n'est pas premier alors AKS ne nous dit pas les facteurs.
2
eO((logn)1/3(loglogn)2/3)n
5

Pour ajouter à la réponse de Yuval: Un test de primalité AKS a été découvert en 2002. Avant cela, nous n'avions pas d'algorithme de temps polynomial pour vérifier si un nombre était premier. Cependant Pratt a découvert en 1975 ce qui est maintenant connu sous le nom de certificats de primauté Pratt et a prouvé que Primes est en NP. Nous pouvons inclure ces certificats de primauté Pratt pour les facteurs dans notre certificat pour montrer que FACTOR est en coNP au lieu d'utiliser l'algorithme AKS pour vérifier si les facteurs sont premiers directement.

Denis Pankratov
la source