Як не вирішити P = NP?


96

Існує багато спроб довести або або PN P , і, природно, багато людей замислюються над цим питанням, маючи ідеї довести будь-який напрямок.П=NППNП

Я знаю, що є підходи, які, як було доведено, не працюють, і, мабуть, більше таких, які мають історію невдач. Також, здається, існують так звані бар'єри, які багато спроб доказування не вдається подолати.

Ми хочемо уникати розслідувань тупикових ситуацій, і що вони?


16
Я думаю, що це краще бути вікі спільноти (оскільки на це питання немає однозначної відповіді, воно занадто широке).

6
@SaeedAmiri No. Вікі спільноти використовувався як алібі, щоб задавати питання, які не підходили для платформи Stack Exchange, але це вже не робиться .
Жиль

4
Примітка модератора: це питання ширше, ніж звичайне питання обміну стеками, але ми намагаємось побудувати канонічну пару питань і відповідей. Якщо ви вважаєте, що це питання не має існувати в його теперішньому вигляді, будь ласка, обговоріть його на нашому мета-сайті .
Жиль

для подібного питання з протилежної / конструктивної сторони бачите, як можна вирішити теорії та запити інформатики?
vzn

4
Відповідь Ваг: arXiv - скарбниця способів цього не робити.
Псевдонім

Відповіді:


76

Я б сказав, що найбільш відомі бар'єри на шляху до вирішення єP=NP

  1. Релятивізація (як згадував Ран Г.)
  2. Природні докази - за певних криптографічних припущень Рудич і Разборов довели, що ми не можемо довести PNP використовуючи клас доказів, що називаються природними доказами.
  3. Алгебризація - Скотт Ааронсон та Аві Вігдерсон. Вони доводять, що докази алгебризу не можуть відокремити і N PPNП

Ще один, з яким я знайомий, - це результат того, що жодна рецептура LP не може вирішити TSP (Це було доведено Яннакакісом для симетричних LP та зовсім недавно розповсюджене на загальні LP). Ось повідомлення в блозі, де обговорюється результат.


4
Релевантні посилання: про бар'єри загалом та приклади іграшок . Крім того, ви повинні бути обережними з вашим останнім реченням, я думаю, було б розумно включити посилання на допис у блозі, в якому пояснюється, чому TSP, не виконаний загальним результатом LP, не доводить , оскільки людей може збентежити той факт, що LP є P -комплектним. ПNПП
Артем Казнатчеєв

1
Якщо ви хочете вдосконалити відповідь (вона не зовсім готова до прийняття, як є), будь ласка, додайте короткі пояснення та посилання на деталі, щоб допитливий читач знав, про що ви говорите.
Рафаель

57

Примітка: я ще не ретельно перевірив відповідь, і є пропущені частини, які слід написати, вважайте це першим чернетом.

Ця відповідь призначена головним чином для людей, які не є дослідниками теорії складності чи споріднених галузей. Якщо ви теоретик складності і прочитали відповідь, будь ласка, повідомте мене, якщо ви помітили будь-яке питання або маєте ідею покращити відповідь.

Там, де ви можете знайти заявлені рішення P проти NP

  • Існує сторінка P проти NP яка містить перелік таких претензій.
  • Статті, які вимагають вирішити питання, регулярно публікуються на arXiv .

Інші списки того, як не вирішити P проти NP

Lance Fortnow, Отже, ти думаєш, що ти влаштувався П верюс NP , 2009

Скотт Ааронсон, вісім ознак Неправильне доведення P ≠ NP , 2010

Сторінка Polymath для статті Deolalikar , де в розділі подальших читань є хороший список посилань на проблему.


Як не підходити до П проти НП

Дозвольте мені обговорити "як не підходити до П проти НП" не в розумінні ідей, які не спрацюють, а в більш загальному сенсі. P проти NP - це проста проблема констатації (див. Мою відповідь тут ):

NP = P: Для кожної проблеми вирішення алгоритму перевірки поліноміального часу існує алгоритм багаточленного часу.

або рівнозначно

Існує поліноміальний алгоритм часу для SAT.
SAT можна замінити будь-якою іншою проблемою, що не стосується NP .

.

Часто люди надмірно спрощують та перефілософствують проблему та перебільшують практичну важливість проблеми (як зазначено вище). Такі твердження часто мають на меті зрозуміти інтуїцію, але вони жодним чином не заміняють фактичну математичну постановку проблеми.

Теоретична ефективність не є такою ж, як здійсненність на практиці.

Дозвольте спочатку з перебільшеними практичними наслідками.

I. Можливо, що P = NP, але це не допомагає для будь-якої проблеми на практиці!

Скажімо, наприклад, що SAT знаходиться в P, але найшвидший алгоритм його часу роботи - . Цей алгоритм не корисний.2264н65536+22128

II. Цілком можливо , що P NP , і ми можемо вирішувати NP-повні задачі ефективно .

Скажімо, наприклад, що SAT не знаходиться в P, але має алгоритм із часом виконання .нlglgн

Надати вхід, який складе ви повинні використовувати більше електронів, які, як вважають, є у Всесвіті. Отже показник по суті 2 .lgн>62

Тут головним є те, що P - абстрактна проста модель ефективної обчислення, найгірша складність - це абстрактна проста модель оцінки вартості обчислення тощо. Все це абстракції, але ніхто на практиці не розглядає алгоритм як, наприклад, у (I) вище, як ефективний алгоритм. P - хороша абстрактна модель, вона має приємні властивості, робить технічні проблеми легкими, а також корисною. Однак, як і вся математична абстракція, вона приховує деталі, які на практиці можуть нас хвилювати. Існують різні більш вдосконалені моделі, але чим складніша модель стає тим менш приємним, про що можна було б сперечатися.

Те , що люди дбають про на практиці для обчислення в відповідь на проблему за винятком випадків , що вони піклуються про використання розумного кількості ресурсів. Є залежні від завдання і їх слід враховувати.

Спроба знайти кращі алгоритми для практичних випадків важких проблем NP - це цікаве та гідне починання. Існують евристичні алгоритми SAT-solver, які використовуються в галузі та можуть вирішувати практичні екземпляри SAT з мільйонами змінних. Існує навіть Міжнародний конкурс SAT .

(Але також є невеликі конкретні випадки, що всі ці алгоритми виходять з ладу і виходять з ладу досить сильно, ми можемо фактично довести, що всі найсучасніші сучасні SAT-вирішувачі потребують експоненціального часу для вирішення простих прикладів, таких як пропонований принцип «Голубця» .)

Майте на увазі, що правильність та час роботи програм неможливо отримати лише за допомогою програми на екземпляри . Не має значення, скільки екземплярів ви пробуєте, жодна сума недостатня. Існує нескінченно багато можливих входів, і ви повинні показати правильність та ефективність (тобто час роботи є поліном) для всіх програм. Словом, вам потрібні математичні докази правильності та ефективності. Якщо ви не знаєте, що є математичним доказом, то спочатку слід вивчити деякі основні математики (прочитайте підручник з дискретної математики / комбінаторики / теорії графів, це хороша тема, щоб дізнатися про те, що вважається математичним доказом).

Також будьте обережні щодо інших претензій щодо P проти NP та наслідків його відповідей. Такі твердження часто базуються на подібних спрощеннях.

Теоретики складності не дуже цікавляться відповіддю на П проти НП!

Я трохи перебільшував. Звичайно, нам важливо відповісти на П проти НП. Але ми дбаємо про це в контексті. P vs. NP - наша основна проблема, але це не є кінцевою метою. Викласти проблему легко, вона включає багато фундаментальних ідей, вона корисна для пояснення виду питань, які нас цікавлять, людям, які не знайомі з цією темою. Але ми не шукаємо жодної шматочки Так / Ні відповіді на питання.

Ми прагнемо краще зрозуміти природу ефективних обчислень . Ми віримо, що до вирішення питання вдасться з таким розумінням, і це справжня причина, коли ми його турбуємо. Це частина величезного комплексу досліджень. Якщо ви хочете покуштувати те, що ми маємо, перегляньте хороший підручник з теорії складності, наприклад, " Теорія складності: сучасний підхід " Арори та Барака ( версія версії ).

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

Словом, з точки зору теоретика складності

P vs. NP - це не головоломка з відповіддю Так / Ні. Ми шукаємо відповіді на P проти NP, оскільки вважаємо, що це дозволить краще зрозуміти природу ефективних обчислень. Відповідь без значного прогресу в нашому розумінні не дуже цікава.

Занадто багато випадків, коли неексперти заявляли про рішення для П проти НП, і ці вимоги зазвичай страждають від питань, яких вони не мали б висловити, якби просто прочитати стандартний підручник з теорії складності.

Загальні проблеми P = NP

Претензії Р = NP здаються більш поширеними. Я думаю, що наступним є найбільш поширений тип. Хтось має ідею і пише програму і тестує її в декількох випадках і вважає, що це поліноміальний час і правильно вирішує проблему, повну NP. Як я пояснив вище, жодна кількість тестувань не покаже P = NP. P = NP потребує математичного підтвердження , а не просто програми, яка, здається, вирішує повну задачу NP в поліноміальний час.

Ці спроби зазвичай страждають від одного з двох питань:

I. алгоритм насправді не є поліноміальним часом.

II. алгоритм не вирішує всі екземпляри правильно.

[писати]

Як перевірити, що алгоритм насправді не працює

Ви не можете показати, що ваш алгоритм працює правильно, тестуючи. Але ви можете показати, що це не працює правильно, тестуючи! Отже, ось як ви можете переконатися, що ваш алгоритм невірний, якщо ви готові виконати якусь роботу.

По-перше, напишіть програму для перетворення екземплярів SAT (у стандартному форматі CNF) у важку для NP задачу, яку ви вирішуєте. SAT - одна з найбільш вивчених проблем, пов'язаних з NP, а зменшення з інших проблем до SAT - це легко. По-друге, візьміть приклади, з якими стикаються найсучасніші рішення SAT (наприклад, візьміть приклади із змагань SAT) та подайте їх у свій алгоритм і подивіться, як працює ваш алгоритм. Спробуйте такі важкі екземпляри, як пропозиційний принцип «Голубця» (і не обманюйте, жорстко кодуючи їх як особливі випадки), криптографічні екземпляри (наприклад, RSA Factoring Challenges ), випадкові випадки k-SAT біля порогу тощо.

10н2

Як перевірити алгоритмічну ідею P = NP не може працювати

Якщо ви зробите це, ви будете впевнені, що ваш алгоритм не працює (якщо він працює краще, ніж найсучасніші SAT-вирішувачі, то змагатимуться у наступному змаганні, і багато людей будуть зацікавлені у вивченні вашого алгоритму та ідей).

Тепер ви знаєте, що це насправді не працює, але цього недостатньо. Ви хочете знати, чому,

це причина мого алгоритму не працює з невеликою проблемою, яку можна виправити, або є принципова причина, чому він не може працювати?

Іноді проблема з алгоритмом проста, і можна визначити, що було неправильно концептуально. Найкращий результат полягає в тому, що ви розумієте причину, коли ваша ідея не може працювати. Часто це не так, ваша ідея не працює, але ви не можете зрозуміти, чому. У цьому випадку пам’ятайте:

розуміння того, чому якась ідея не може працювати, може бути складніше, ніж вирішити П проти НП!

Якщо ви зможете формалізувати свою ідею достатньо, ви, можливо, зможете довести обмеження певних ідей (наприклад, є результати, які говорять про те, що конкретні формалізації жадібного алгоритму не можуть вирішити проблеми, заповнені NP). Однак це ще складніше, і ви не маєте великих шансів, якщо не прочитали стандартний підручник з теорії складності.

Іноді навіть немає чіткої концептуальної ідеї, чому алгоритм повинен працювати, тобто він заснований на деякій недостатньо зрозумілій евристиці . Якщо у вас немає чіткого концептуального уявлення про те, чому повинен працювати ваш алгоритм, ви, можливо, не будете мати багато шансів зрозуміти, чому це не так!

Випуск 1: автор не знає визначення Р і НП, або ще гірше не розуміє, що є математичним доказом. Оскільки автору бракує базової математичної підготовки, він не розуміє, коли йому кажуть, що він представляє, це не є доказом (наприклад, кроки не випливають із попередніх).

Випуск 2: автор плутає "ми не знаємо як" з "математичною неможливістю". Наприклад, вони роблять різні необґрунтовані припущення і на запитання "чому це твердження є правдивим?" вони відповідають "як це може бути помилковим?". Одним із загальних є припущення, що будь-яка програма, що вирішує проблему, повинна виконувати певні кроки, наприклад, вона повинна обчислювати конкретні проміжні значення, оскільки він не може придумати альтернативний спосіб вирішення проблеми.

[буде завершено]

[писати]

Якщо позов не страждає від цих основних питань, то відхилити його стає складніше. На першому рівні можна знайти неправильний крок у аргументі. Типова відповідь автора полягає в тому, що я можу це виправити, і це можна продовжувати. Подібно до рішень P = NP, часто буває дуже важко знайти фундаментальну проблему з ідеєю, яка може показати, що вона не може працювати, особливо коли сама ідея неформальна.


Наскільки мені подобається сторінка Р-проти-НП, мені прикро, що вона не відслідковує, які докази були відкликані їхніми авторами. Для деяких з посилань arXiv ви знаходите явні сповіщення про arXiv "цей документ вилучено". Я майже впевнений, що є більше вилучених доказів, аніж архівні документи з чітким повідомленням. Гаразд, я знаю, що вилучені докази не слід завищувати, оскільки відкликання "попередньої спроби доказування" не означає, що ті ж автори не спробують повторити пізніше. Але мовчання про відкликані спроби доказування все ж справляє необ’єктивне враження.
Томас Клімпель

@thomas мало хто з "кривошипних" авторів коли-небудь "відкликав" свої документи. невимовним моментом списку woegorgi є те, що його явно менша якість, ніж архівські папери. але, погодившись, бажаю, щоб woegorgi міг додати додаткову інформацію і щоб у його редагуванні було трохи гнучкіше. наприклад, він не додав до списку мого П проти НП навіть після того, як надіслав йому електронну пошту, хоча нещодавно він опублікував ще один пункт із підтвердження фукуями, пов’язаний із тривалим чатом cstheory.se.
vzn

1
Я вдячний, що ви переглядаєте це! Здається, я передчасно сподівався на винагороду невірній людині. ;) Зауважте, що ви можете використовувати stackedit.io для підготовки публікації з часом. З нетерпінням чекаємо решти посту!
Рафаель

34

Можливо, найпоширенішою технікою, яку неможливо застосувати, є релятивізація , тобто наявність TM з доступом до Oracle.

АБПА=НПАПБНПБ

ПНПОПОНПОА

П=?НП


1
Просто, щоб повністю виправити, тут діагоналізація означає пряму просту діагоналізацію. Дивіться це запитання
Каве

1
Тож релятивізація - це не техніка доказування, а ефект, який порушує доказ? Чи можете ви надати / посилатися на приклад доказу, який можна релативізувати?
Рафаель

2
так, релятивізація не є доказовою технікою, вона є властивістю доказування (не бути офіційним тут btw). якщо доказ працює незмінним, коли всі машини Тьюрінга замінені машинами Oracle, то доказ відновиться. Ви можете переконати себе, що доказ теореми часової ієрархії релятивізується, наприклад, у цьому сенсі.
Сашо Ніколов

10

Я б запропонував прочитати цю публікацію в блозі від Ленса Фортнова :

  1. Отже, ти думаєш, що ти влаштувався П вернус NP, ти помилився. Вияснив це. Іноді ви все-таки можете врятувати щось цікаве зі свого недосконалого доказу.
  2. Ви вважаєте, що доказ правильний. Ваше переконання неправильне. Поверніться до кроку 1.
  3. Ви робите якісь припущення чи ярлики, навіть, здавалося б, невеликі та очевидні? Чи використовуєте ви такі слова, як "чітко", "очевидно", "легко бачити", "повинен", "повинен" або "ймовірно"? Ви претендуєте на вирішення, мабуть, найважливішого питання з усієї математики. Ви не можете робити припущення. Поверніться до кроку 1.
  4. нк
  5. Ви подаєте папір до он-лайн архіву. Можливо, деякі люди скажуть вам, що у вашому документі пропущено чи що не так. Це повинно змусити вас перейти до кроку 1. Але замість цього ви внесете кілька безглуздих змін у свій папір та репост.
  6. Зрештою люди ігнорують ваш папір. Вам цікаво, чому ви не отримуєте слави і статку.
  7. Ви подаєте свою статтю в журнал.
  8. Папір відхилено. Якщо ти розумний, ти б повернувся до кроку 1. Але якби ти був розумним, ти ніколи не перейшов би до кроку 7.
  9. Ви скаржитеся редактору, що або редактор не розуміє доказ, або що його легко виправити. Ви шоковані, коли поважний редактор чи журнал ставилися до вашої роботи таким чином.
  10. Ви повторно подаєте папір, оскаржуєте, пробуєте інші журнали безрезультатно.
  11. Ви переконані, що "заклад" цілеспрямовано пригнічує ваш документ, оскільки наше поле стане набагато менш цікавим, якщо ми вирішимо проблему "П проти НП", тому нам доведеться залишати його відкритим за будь-яку ціну.
  12. Якщо я скажу вам інакше, чи повірите ви мені?

7
Питання вимагає "підходів, які, як було доведено, не працюють", а також підходів, "які мають історію невдач", і ця відповідь не згадує жодного підходу.
Цуйосі Іто

6
Моя думка полягає в тому, що оскільки запис у блозі взагалі не відповідає на питання, безглуздо копіювати та вставляти його.
Цуйоші Іто

7
Це справді не відповідає на питання. Повідомлення в блозі - це химерний перелік кроків, типовий P = NP? кривошип проходить. Незважаючи на розваги, це не дає мені конкретних теорій, які, як було показано, не здатні розділити (або розвалити) P і NP.
Рафаель

4
Як щодо цього? Це питання задає перешкоди для доведення P! = NP. Перешкодами у цій відповіді (як зазначено в коментарях) є "припущення чогось", "погана інтерпретація", "сказати, що щось зрозуміло", "вірити в щось". Ці бар'єри занадто загальні, тому що вони є бар'єрами для доведення чого-небудь, а не конкретно перешкодами для доведення P! = NP.
Тайсон Вільямс

1
У коментарях, поки є дійсними, не вистачає базової точки. Блог був написаний ланцем fortnow, експертом теорії складності та світовим авторитетом з цього питання; він щойно вийшов з новою книгою про P vs NP Golden Ticket . тому він говорить в основному з особистого досвіду.
vzn

2

ось дещо незрозумілий / глибокий / важкий / інсайдерський кут / посилання / поворот, що стосується підходів через схеми, що датуються 1980-х роками, спочатку мені вказував Лука Тревісан ще в кіберпросторі, а також повторив Стасіс Юкна, автор чудової книги посилання поблизу теми, булева функціональна складність: аванси та межі (алгоритми та комбінаторика, т. 27 ).

можна побачити більш ранню тенденцію в деяких мисленнях Разборова, що врешті-решт призвело до папери " Природні докази" (так звана "натуралізація"). ref [273] є дуже технічним та складним і, схоже, не цитується, не будується / розширюється, ні багато чого повторюється пізнішими паперами / книгами, хоча природні докази можна розглядати як більш пізнє узагальнення. уривок від John E Savages відмінні посилання Моделі обчислення p457

Ω(н2)н

[270] А. А. Разборов, “Нижні межі щодо монотонної складності деяких булевих функцій”, Докл. Акад. Наук СРСР (Радянський математич. Докл.) 281 (1985), 798–801, (рос.); Переклад англійською мовою на радянську математику. Докл. 31 (1985), 354–357

[271] А. А. Разборов, “Нижня межа монотонної складності мережі логічної постійної”, Матем. Zametki 37 (1985), 887–900, (російською); Переклад англійською мовою математики. Примітки 37 (6) (1985), 485–493.

[273] А. А. Разборов, “Про метод наближення”, Зб. 21-а Енн. ACM Symp. Теорія обчислень (1989), 167–176.


2
Я не бачу, як це відповідає на питання "як не довести P? = NP". Зараз це більше схоже на якусь спекуляцію щодо чиїхось думок.
Juho


2
Звичайно, я лише пропоную зробити все це явним. Складність ланцюга не є навіть матеріалом рівня недооцінки, тому деяке тло виправдане. Справедливо чекати, що читач не буде знавцем теорії складності.
Juho

@juho гаразд. Одного разу побачивши книгу "Сажаж" (яка дуже "орієнтована на схему"), що використовується в класі нижчого ступеня, мене це теж здивувало. погодився з її передовим матеріалом, звідси формулюючи перше речення. що стосується "спекуляцій на думках", то таких немає, окрім цитування власних думок Розборова, написаних / записаних у його власних статтях.
vzn

1
і, до речі, загалом це дуже складне питання (не дуже ступінь бакалаврату), а інші відповіді є розширеними та взагалі поза рівнем бакалаврату.
vzn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.