¿Por qué está FACTOR en Co-NP?

12

Tengo problemas para comprender los problemas PRIME, COMPUESTO, FACTOR y cómo están relacionados en términos de complejidad. Entiendo que PRIME ha demostrado estar en mediante la prueba de primalidad AKS, y creo que esto también funciona para COMPOSITE.P

En cuanto a FACTOR,

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

por lo que he leído parece que está en . Veo que está en N P ya que un certificado consistiría en un divisor principal de m menor que r . Pero, ¿qué tipo de certificado puede establecer que no existe tal divisor principal (en tiempo polinómico)?NPCoNPNPmr

Fequish
fuente
1
Para que un idioma esté en NP prueba de que la entrada pertenece al idioma debe tener un certificado que se pueda verificar en tiempo polinómico. No significa que exista un certificado para entradas que no pertenezcan al idioma y que pueda verificarse de manera eficiente.
sashas

Respuestas:

11

mrmmr

Yuval Filmus
fuente
1
Gracias. ¿Y entiendo correctamente que el algoritmo AKS puede decirnos si un número es primo en el tiempo polinómico, pero si no es primo no nos dice los factores?
Fequish
1
@Fequish: si no es primo, entonces AKS no nos dice los factores.
2
eO((logn)1/3(loglogn)2/3)n
5

Para agregar a la respuesta de Yuval: La prueba de primalidad AKS se descubrió en 2002. Antes de eso, no teníamos un algoritmo de tiempo polinómico para verificar si un número es primo. Sin embargo, Pratt descubrió en 1975 lo que ahora se conoce como certificados Pratt de primalidad y demostró que Primes está en NP. Podemos incluir estos certificados de primitividad de Pratt para los factores en nuestro certificado para mostrar que FACTOR está en coNP en lugar de usar el algoritmo AKS para verificar si los factores son primos directamente.

Denis Pankratov
fuente