Будет ли доказывать P ≠ NP труднее, чем доказывать P = NP?


20

Рассмотрим две возможности для задачи P против NP: P = NP и P NP.

Пусть Q будет одной из известных NP-трудных задач. Чтобы доказать P = NP, нам нужно спроектировать единый полиномиальный алгоритм времени A для Q и доказать, что A правильно решает Q.

Чтобы доказать P NP, нам нужно показать, что никакой алгоритм за полиномиальное время не решает Q. Другими словами, мы должны исключить все алгоритмы за полиномиальное время.

Я слышал, что люди говорят, что это делает вторую более сложную задачу (если предположить, что это действительно так).

Есть ли основания полагать, что доказательство P = NP (при условии, что P = NP) будет проще, чем доказательство P NP (при условии, что P NP)?


31
Этот вопрос некорректен. Поскольку только одно из утверждений может быть правдой, одно невозможно доказать. Другое может быть доказано, и если так, то это будет легче доказать, чем ложное. Ergo, я понятия не имею, какой ответ ты ищешь. Голосование сообщества, пожалуйста! Можно ли вообще на это ответить?
Рафаэль

10
@ Рафаэль Я не согласен. Вы могли бы интерпретировать вопрос OP как «Если бы P = NP были правдой, было бы легче доказать, чем доказательство P ≠ NP, если бы P ≠ NP были правдой?» Я не думаю, что OP серьезно задумал, чтобы это было истолковано как предположение, что оба должны быть правдой.
Анафема

3
FWIW, мне кажется, что a) @ TheAnathema интерпретирует вопрос правильно и b) это значимый вопрос. Другими словами: если P = NP, и доказательство найдено, то это доказательство, вероятно, будет в форме алгоритма за полиномиальное время для NP-полной задачи. С другой стороны, если мы начнем с предположения, что P ≠ NP, какие методы мы можем использовать, чтобы найти доказательство, и какую форму потенциально может принять такое доказательство?
JohannesD


Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
Жиль "ТАК - перестань быть злым"

Ответы:


25

Как объясняет Рафаэль, этот вопрос некорректен, так как самое большее из P = NP и P ≠ NP вообще должно быть доказуемо. Однако аналогичный вопрос возникает в теоретической информатике в нескольких формах, наиболее заметным из которых является область алгоритмов аппроксимации .

Учитывая NP-сложную задачу оптимизации (скажем, максимизации), мы можем спросить, насколько хорошо мы можем ее приблизить. Доказательство верхней границы возможного приближения сродни P = NP, а доказательство нижней границы возможного приближения сродни P ≠ NP. Первое намного проще, чем второе. Действительно, чтобы доказать верхнюю границу, все, что нужно сделать, это придумать алгоритм аппроксимации и проанализировать его. Напротив, все известные нижние оценки являются условными: они действительны, только если P ≠ NP (действительно, если P = NP, тогда каждая NP-сложная оптимизационная задача станет разрешимой). Чтобы доказать эти нижние оценки, мы показываем, что если бы мы могли слишком хорошо аппроксимировать задачу, то получили бы алгоритм с полиномиальным временем для некоторой NP-трудной задачи. Обычно это делается с помощью сложного технического механизма из теоремы PCP. К этой области, известной как твердость аппроксимации , можно обратиться только специалистам, и она технически более сложна, чем большинство алгоритмов аппроксимации. Так что в этом случае, по крайней мере, P = NP действительно проще, чем P ≠ NP.


14
Вы могли бы интерпретировать вопрос OP как «Если бы P = NP были правдой, было бы легче доказать, чем доказательство P ≠ NP, если бы P ≠ NP были правдой?» Я не думаю, что OP серьезно предназначено для того, чтобы это было истолковано как истинное.
Анафема

6
@TheAnathema Я думаю, что нужно интерпретировать вопрос таким образом. Но это все еще довольно некорректно, потому что один из вариантов обязательно неэффективен. Как вы можете сравнить этот контрфактум со сложностью доказать что-то, что правда?
Дэвид Ричерби

=

9

Мы не исключили возможности простого доказательства того, что P = NP. Если кто-то завтра придумает алгоритм, который решает NP-полную проблему за P время, мир меняется.

С другой стороны, мы уже исключили возможность простого доказательства того, что P! = NP. Наши типичные методы доказательства, показывающие, что два разных класса сложности формально оказались недостаточными. Три таких метода известны как «арифметизация», «естественные доказательства» и категория доказательств, называемых «релятивизирующими» (те, которые не заботятся о том, какие оракулы используются). Можно доказать, что любой метод доказательства, который попадает в любые 3 из этих категорий, не может доказать P! = NP.

В действительности, есть убедительные доказательства того, что для доказательства P! = NP требуются новые виды доказательств (новые методы с различными свойствами), а не просто новое применение хорошо известных методов доказательства.


Теперь может оказаться, что P = NP, хотя в P нет простого проверяющего алгоритма, который решает NP-полную задачу, и что для доказательства P = NP требуются новые методы доказательства. (Если P = NP, мы уже знаем забавные алгоритмы, которые технически в P, которые решают сложные NP-задачи, забавно. Их не практично запускать, так как их постоянный коэффициент велик.)

По сути, мы знаем много о том, что мы не можем использовать для доказательства P! = NP, в то время как мы, похоже, мало знаем о том, что мы не можем использовать для доказательства P = NP.


PNPP=NPP=NP

8

Ну, у вас есть идея. Мы обычно думаем, что P! = NP, но понятия не имеем, как мы можем доказать, что эти вещи не равны.

И наоборот, если бы P = NP, вы бы подумали, что к настоящему времени мы нашли бы алгоритм для решения одной из десятков NP-полных задач.

Это очень волнообразные аргументы, но в нескольких предложениях они описывают культуру среди компьютерных ученых.

«Труднее» ли доказывать P! = NP, конечно, зависит от того, что является правдой (за исключением метаматематических результатов?), И что, конечно, мы не знаем.


5

¬n 1,9mod6вентили, которые не могут решить SAT (с точки зрения непрофессионала, возможно, что существует параллельный алгоритм с постоянным временем с полиномиальным числом процессоров, который решает SAT, и каждый процесс вычисляет только один из этих вентилей). Лучшие нижние оценки, которые мы имеем для машин Тьюринга, решающих SAT, не могут даже показать, что не существует алгоритма, чье время работы, умноженное на используемое им пространство, равно . Я могу немного рассказать о довольно смущающем состоянии доказательства нижних границ (но имейте в виду, что у нас также есть барьерные результаты, которые объясняют, почему так трудно доказать нижние границы). Некоторые эксперты считают, что программа GCT Кетана Малмулей является наиболее вероятным решением проблемы P vs. NP, и сам Малмулей повторил, что, по его мнению, для достижения этой цели, вероятно, потребуется более ста лет.n1.9

Однако, некоторые недавние работы Райана Уильямса и других показали, что между доказательством нижних границ и алгоритмами поиска существуют внутренние связи. Например, он показал, что алгоритм немного лучше, чем алгоритм грубой силы для конкретной ограниченной задачи SAT, предполагает нижние границы схемы, а затем он разработал такой алгоритм. Поэтому я думаю, что люди немного менее пессимистичны и, похоже, не разрабатывают алгоритм и не доказывают, что нижние границы являются отдельными, как люди привыкли думать, что они есть.

Теперь давайте вернемся к вопросу и попытаемся взглянуть на него более религиозно. Чтобы ответить на вопрос, нам нужно формализовать то, что мы подразумеваем под трудностью доказательства утверждения. Для этого мы можем использовать теорию доказательств и сложность доказательств, которая точно рассматривает различные способы определения сложности доказательства. Итак, позвольте мне дать краткое объяснение того, что такое сложность доказательства. Система доказательств - это по существу алгоритм верификатора для доказательств. Мы даем строку и строку и спрашиваем, является ли доказательствомφ π φπφπφи алгоритм возвращает да или нет. Таким образом, вы можете думать о любой проверке корректности. Вы также можете думать о доказательствах в математической системе, такой как ZFC, как таковой. Сам процесс проверки может быть выполнен за полиномиальное время в размере доказательства, потому что это синтаксическая задача.

Теперь рассмотрим формулу . Что значит для быть трудно доказать? Одна возможность состоит в том, что самое короткое доказательство очень большое. Если он слишком велик, скажем, число битов, необходимых для его представления, больше тогда мы даже не сможем сформулировать доказательство. Вторая возможность состоит в том, что доказательство не слишком велико, но его трудно найти. Позвольте мне объяснить это немного: подумайте об алгоритме поиска доказательства. Большинство правил являются детерминированными в такой системе, как LKφ φ 2 65536φφφ265536в том смысле, что вы можете определить предыдущие строки из текущей строки в доказательстве и правиле. Важным исключением является правило обрезки. Это важно, потому что, хотя нам не нужно правило сокращения для доказательства утверждений, оно может значительно уменьшить размер кратчайшего доказательства. Однако правило разреза не является детерминированным: мы должны угадать формулу разреза. Вы можете думать о срезанном правиле как о проверке лемм и их использовании. Формула разреза похожа на лемму. Но какую лемму мы должны доказать, что она нам поможет? Это сложная часть. Зачастую результат подтверждается в математике путем нахождения хорошей леммы. Также, когда вы используете ранее проверенные результаты, вы, по сути, используете правило сокращения. Другим важным компонентом в доказательстве утверждений являются определения. Часто мы определяем новую концепцию, а затем доказываем утверждения об этом, и, наконец, применить его в нашем конкретном случае. Использование определений уменьшает размер формул (попробуйте расширить некоторые математические формулы до чисто теоретического языка множеств, расширив определения, чтобы получить представление о том, насколько важны определения). Опять же, какие новые определения мы должны использовать? Мы не знаем Это подводит меня к третьему смыслу утверждения, которое трудно доказать. Утверждение может быть трудно доказать, потому что вам нужны сильные аксиомы. Взять например Утверждение может быть трудно доказать, потому что вам нужны сильные аксиомы. Взять например Утверждение может быть трудно доказать, потому что вам нужны сильные аксиомы. Взять напримерСН . Это не может быть доказано в ZFC и не может быть опровергнуто в ZFC. Это крайний случай, но это случается чаще, чем вы думаете. Например, нужны ли нам большие кардинальные аксиомы (чтобы иметь возможность работать во вселенных Гротендика ), чтобы доказать FLT, или мы можем доказать это в гораздо более слабой теории, такой как PA ? Это еще одна концепция, касающаяся сложности доказывания утверждений.

Теперь давайте вернемся к P против NP. У нас нет результатов, которые утверждают, что проблема не может быть решена так или иначе в довольно слабых арифметических теориях. Александр Разборов в 1995 году написал статью под названием «Недоказуемость нижних границ размера контура в некоторых фрагментах ограниченной арифметики», в которой показано, что доказать это невозможно в некоторой слабой теории, но теория действительно очень слабая. Насколько мне известно, не было большого прогресса в распространении этого на значительно более сильные теории, такие как ограниченные арифметические теории Сэма Бусса, и даже если результат распространяется на них, они все еще далеки от чего-то вроде PA или ZFC. Короче говоря, мы не только не можем доказать, что SAT не находится в классах очень маленькой сложности, мы не можем даже доказать, что не можем доказать PНП в очень слабых теориях. Формальная причина, по которой мы имеем в виду, почему трудно доказать P NP, - это барьерные результаты, утверждающие, что такие и такие методы сами по себе не могут доказать, что P NP. Это хорошие результаты, но они даже не исключают возможности объединения этих техник для показа P NP.


Когда вы говорите об определении вопроса «более религиозно», я предполагаю, что вы имеете в виду «более строго»? :-)
Дэвид Ричерби

2
@ Дэвид, да, автокоррекция иногда делает это. :)
Kaveh

4

Я думаю, что вопрос можно свести к следующему: легче ли доказать, что что-то существует, или доказать, что что-то не существует?

Аргумент в пользу доказательства того, что что-то существует, заключается в том, что легко конструировать вещи, которые могут удовлетворять требованиям, и также легко проверить, действительно ли они их удовлетворяют.

В некоторых случаях это действительно так: если вы хотите найти корень многочлена, легко построить числа и легко проверить, являются ли они корнями.

Проблема, конечно, в том, что вам нужно быть счастливчиком. Вы можете уменьшить пространство поиска, например, доказав, что оно должно быть кратно 5 или от 1 до 10; но, если вы не ограничите его конечным набором чисел (в этом случае вы на самом деле не используете метод «угадать и проверить»), у вас не будет метода для решения проблемы: у вас есть только метод, который, предполагая вам очень повезло, вы можете найти решение.

Но если вы хотите этого, одинаково легко доказать, что чего-то не существует! Генерируйте тексты, которые могут быть возможными решениями, и проверяйте, действительно ли они есть.

Следовательно, наличие метода, который может дать решение по чистой случайности, не означает, что доказать, что что-то существует, легче.

Теперь проще ли доказать, что что-то существует каким-то другим методом? Это зависит от реальной проблемы, потому что в противном случае доказательство того, что что-то не существует, сводится к доказательству того, что доказательство того, что оно не существует, существует. И я боюсь, что мы не можем измерить это, поскольку никогда не было чего-то, что, как было доказано, существует и не существует, поэтому мы можем (пытаться) измерить трудность доказательства.


1
Если это «что-то» существует, легче доказать, что оно существует (тривиально, вы не можете доказать, что его не существует; это не значит, что найти указанное доказательство не так уж чертовски сложно). То же самое, наоборот. Как говорится в комментариях, сам вопрос не имеет смысла.
vonbrand

@ vonbrand Я не говорю for any X: is it easier to prove that X exists or to prove that X does not exist, я говорю, что, for any X,Y: is it easier to prove that X exists or to prove that Y does not exist.например, если E множество доказательств, которые доказывают предложения формы «X существует», а NE множество доказательств, которые доказывают предложения формы «Y не существует», и d ( P) трудность доказательства, правда ли, что d (X) <d (Y) где X в E и Y в NE.
Танос Тинтинидис

d(X)XXX

@ vonbrand да; более того, я утверждаю, что вы не можете использовать метод OP (продолжайте генерировать потенциальные решения, пока вы его не найдете) в качестве аргумента для предположения, что доказать существование легче, чем доказать небытие, так как вы можете преобразовать преобразование S1 из небытия до утверждения S2 о существовании доказательства утверждения S1. Хотя я начинаю сомневаться в ценности этого
Танос Тинтинидис


-2

Я считаю, что невозможно доказать P <> NP, потому что вам придется исключить все алгоритмы, которые могут доказать P = NP. Там может быть бесконечное количество из них возможно. Нет способа опровергнуть бесконечность, поэтому это невозможно. С другой стороны, все, что нужно, это единственный алгоритм, чтобы доказать P = NP, если это так. Поэтому либо P = NP, который кто-то докажет, либо мы никогда не узнаем.


Добро пожаловать в информатику ! Вы верите или можете доказать, что это не доказуемо? Я думаю, что ответ Якка проливает свет на эту тему.
зло

2
«Невозможно опровергнуть бесконечность» Люди все время исключают бесконечно много возможностей в математике; нам не обязательно проверять каждый вручную, чтобы знать, что ничего не работает. Ваш «аргумент» подразумевает, что мы никогда не сможем разделить классы сложности, что является бессмысленным.
Ноа Швебер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.