Это немного зависит от точной интерпретации вашего вопроса, но я думаю, что ваш сценарий может быть в общих чертах описан как проблема «ВЫЧИСЛИТЬ Y», где дан некоторый универсально фиксированный алгоритм полиномиального времени и полиномиальное на входе , выведите строку , такую, что выдает 1, а всегда существует для всех возможных .Tp⟨x,1n⟩y∈{0,1}p(n)T(x,y,1n)yx
Тогда возникает один вопрос: подразумевает ли алгоритм полиномиального времени для «COMPUTE Y»P=NP
В этом случае предположим, что вы можете решить (скажем) 3SAT за полиномиальное время с постоянным числом обращений к оракулу, который решает «COMPUTE Y», т.е. некоторый алгоритм где если выполнимо, противном случае. Переверните выходной бит, чтобы получить , алгоритм, в котором если выполнимо, и если неудовлетворительно.AA(ϕ)=1ϕA(ϕ)=0A¯A¯(ϕ)=0ϕA¯(ϕ)=1ϕ
Преобразуйте этот алгоритм (который использует оракул для «COMPUTE Y») в недетерминированный алгоритм (который не использует оракулов), просто заменив каждый вызов оракула недетерминированной догадкой которую вы можете проверить с помощью вызова , Теперь у вас есть недетерминированный алгоритм, который успешно решает неудовлетворительные экземпляры 3CNF, поэтому уТНР=СОНРA¯yTNP=coNP
Кроме того, если , это означает, что все полные задачи (такие как -clique или 3SAT) имеют небольшие вариации, чье решение проблемы легко (всегда «да»), но чья поисковая версия является труднойN P K N PNP=coNPNPkNP