Почему ФАКТОР в Co-NP?

12

У меня возникают проблемы, когда я обдумываю проблемы ПРАЙМ, КОМПОЗИТ, ФАКТОР и их взаимосвязь с точки зрения сложности. Я понимаю, что PRIME был показан в тестом на примитивность AKS, и я считаю, что это работает и для COMPOSITE.P

Что касается ФАКТОРА,

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

от того, что я читал, кажется , что он находится в . Я вижу, что это в N P, так как сертификат будет состоять из простого делителя m меньше чем r . Но какой сертификат может установить, что такого простого делителя не существует (за полиномиальное время)?NPCoNPNPmr

Fequish
источник
1
Для того чтобы язык был в NP, доказательство того, что входные данные принадлежат языку, должно иметь сертификат, который можно проверить за полиномиальное время. Это не означает, что существует сертификат для входных данных, не принадлежащих языку, который можно эффективно проверить.
Саш

Ответы:

11

mrmmr

Юваль Фильмус
источник
1
Спасибо. И правильно ли я понимаю, что алгоритм AKS может сказать нам, является ли число простым в полиномиальном времени, но если оно не простое, оно не сообщает нам факторы?
Fequish
1
@ Fequish: Если это не главное, то AKS не говорит нам факторы.
2
eO((logn)1/3(loglogn)2/3)n
5

В дополнение к ответу Ювала: тестирование простоты AKS было открыто в 2002 году. До этого у нас не было алгоритма полиномиального времени, чтобы проверить, является ли число простым. Однако в 1975 году Пратт обнаружил то, что сейчас известно как свидетельство Пратта о первичности, и доказал, что Прим находится в NP. Мы можем включить эти сертификаты первичности Pratt для факторов в нашем сертификате, чтобы показать, что FACTOR находится в coNP вместо использования алгоритма AKS, чтобы проверить, являются ли факторы первичными непосредственно.

Денис Панкратов
источник