Поясніть Р = проблема NP до 10-річного віку


54

Це моє перше питання на цьому сайті. Я беру магістерський курс з теорії обчислень. Як би ви пояснили проблему P = NP 10-річній дитині і чому вона має таку грошову винагороду?

Ваш взяти?

Я оновлю це питання, коли моя голова стане зрозумілою.


11
Моя схильність полягає в тому, щоб закрити це, як те, що це не теоретичний рівень інформатики рівня.
Дейв Кларк

11
@Dave: На нього повинні відповісти дослідники, тож, можливо, достатньо запитати його до місця, куди ходять дослідники?
Джеремі

11
Я думаю, що це розумно. Є відомий документ під назвою "Як пояснити своїм дітям протоколи нульового знання", який, на мою думку, вважатиметься рівнем дослідження. Це правда, що може бути важко вибрати "найкращу відповідь", але це часто трапляється з м'якими питаннями. Крім того, це питання може стати гарною рекламою для сайту, якщо з’являться достатньо цікаві відповіді ... багато людей можуть посилатись на відповідь, надану тут, коли їх запитують за поясненням P проти NP.
Філіп Уайт

7
але це дійсно має бути CW.
Суреш Венкат

5
Я запитав мотивацію, тому що формулювання запитання створило у мене враження, що вас не дуже цікавлять відповіді на власне запитання (це виглядало як спосіб завести розмову, а не справжнє запитання), а не тому, що питання німеє . Відповідно до вашої відповіді, ви, здається, ви задали це питання заради того, щоб поставити запитання, і тому мені не цікаво відповідати на нього, тому що воно вам не допоможе. Ми маємо іншу культуру від Stack Overflow, але це зараз не актуально.
Tsuyoshi Ito

Відповіді:


33

Я використовую ці 3 слайди, щоб показати, чому так важко (неможливо?) Придумати швидкий алгоритм для проблеми NP:

Упаковка для сміття Упаковка для контейнерів NP NP 1 Упаковка для контейнерів NP 2


Дуже легко зрозуміти.
Тото

4
Я думаю, що "непростий шлях" потрібно розширити, включаючи масштабування, оскільки кількість блоків збільшується
Ian Ringrose

3
Дуже приємний приклад, але чи це в літературі не називається проблемою упаковки прямокутника?
Мохаммед Аль-Туркстані

1
@ user54609 NP-завершений не означає, що ми можемо перевірити, що упаковка оптимальна за час поліному. NP-завершений означає, що ми можемо перевірити, що рішення є здійсненним у поліноміальний час (а не послідовно знаходимо його в поліноміальний час (якщо P == NP)).
Джеффрі Де Смет

1
О, значить, проблема рішення полягає в тому, "чи можливе рішення". Я бачу.
Ітіса

21

У цій розмові Скотт Аронсон вирішує питання.

TEDxCaltech - Скотт Аронсон - Фізика в 21 столітті: Напруження в тіні Фейнмана

Попередження: Будь ласка, НЕ показуйте цю розмову безпосередньо своїй бабусі / 10 років. чому? дивись це, і ти дізнаєшся. ;-)

РЕДАКТУЙ:
Дайте дитині 8 головоломок королеви для розв’язання. Також дайте йому обмеження часу.

Якщо він «знайде» рішення, то він розумний малюк, ви можете почати навчати його CS відразу. :)
Ще ви покажете йому рішення і попросите його "перевірити", чи правильне воно.

ClassCheckFindExamplePEasyEasyMultiply numbersNPEasyHard8 queens

P - це безліч проблем, з якими комп'ютер може легко знайти рішення.

NP - це безліч проблем, з якими комп'ютер не може легко знайти рішення, але може легко перевірити рішення.

Якщо ми можемо так легко "перевірити" рішення, то чому б ми не могли його легко знайти?

Те, що ви робите в CS - це або вирішити проблему, або довести, що ніхто не може.

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

ClassCheckFindPEasyEasyNPEasyEasy
P=NP

І якщо хтось докаже, що ніхто не може знайти алгоритм "знайти" рішення для проблем, то таблиця залишається такою ж і .PN PNPPNP


3
Можливо, ви могли б узагальнити суть пояснення Скотта.
Дейв Кларк

2
Мені завжди було цікаво, про що йдеться у всьому суєті P = NP, зараз я це роблю!
Лі Ковальковський

Оскільки P ∈ NP, можливо, уточніть, що ви тут говорите про не-P частину NP.
Девід

+1 Багато чудових відповідей у ​​цій темі, але це єдиний, хто навіть намагається визначити, що означають навіть P і NP!
Марк Е. Хааз

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

19

Одне з головних речей, якими користуються комп’ютери - це пошук. Такі програми, як Google, навіть називають "пошуковими системами", і вони використовуються мільйони разів на день. Нещодавно комп'ютер побив людей на небезпеці, тому що він міг шукати багато даних, дуже швидко.

Але деякі речі навіть важко знайти. Звучить дивно, чи не так? Один із прикладів - зворотне множення. Звичайно, якщо я скажу "Що 5 разів 3?" ви можете сказати "15" в наносекунд, вуаш! Але яка відповідь на те, "Які два числа змішані разом дорівнюють 21?" (Чекайте відповіді, 7 х 3.) Правильно! Тепер, які два числа, помножені разом, рівні 23? (Зачекайте відповіді чи розчарування.)

Єдине два числа, помножене разом на рівні 23, - це 1 і 23. Це задумалося, чи не так? А 23 - це невелика кількість. Подумайте, чи була цифра сотнями цифр. І річ у тому, що найкращі програми світу не можуть змінити множення набагато краще, ніж це може спробувати 7-річний, просто перевіривши одне число, а потім наступне, а потім наступне. Комп'ютери можуть це зробити швидше , але ми не знаємо, як сказати комп'ютеру робити його розумнішим . Люди отримують кандидатів у цій роботі, і вони лише знають, як сказати комп'ютерам робити зворотне множення трохи розумнішим.

Тож, можливо, розумнішого способу немає. Але, можливо, є, і ми просто його ще не знайшли. Це проблема P / NP у двох словах: якщо я можу розпізнати відповідь відразу - 1 раз 23 - 23, так - чи допоможе мені швидше шукати відповідь? Люди вважають, що це так важливо, що людина, яка з'ясує відповідь, так чи ні, виграє мільйон доларів.


4
Хороший. Напевно, не має значення, що факторинг є випадково поганим прикладом (або це?).
Рафаель

4
Факторинг був прикладом, який Майк Сіпсер використав у своєму відео "Поясни P / NP для публіки" для Інституту математики глини. Я вважаю, що для нього це досить добре .....
Аарон Стерлінг

3
Проблема суми підмножини може бути пояснена учням, які ще не вивчали множення!
Тегірі Ненасі

16

Я думаю, що проблема P проти NP може бути пояснена дуже м’яко з точки зору судоку. Я припускаю, що десятирічна особа знайома з Судоку. Я спробую віддати перевагу простоті над строгістю у своєму поясненні.

Ось моя спроба пояснити P = NP гіпотетичному десятирічному:

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

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

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

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

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

Як бачите, я "буквально пояснив це десятирічній" частині я зрозумів трохи буквально. :)

Сподіваюся, це допомагає.


Дуже гарна спроба, хоча я не знаю, чи зможе 10-річний знати, що таке загадка судоку.
chazisop

2
@chazisop З досвіду можу сказати, що основні версії головоломок судоку (тобто на сітці 4х4) дітям давались у 3 та 4 класах як вправи, тому це не необгрунтоване припущення.
Боб Фрейзер

Добре беріть, але: 1) Відкиньте P і NP від ​​пояснення. Вони не мають значення. 2) "дуже швидко" створює абсолютно неправильну інтуїцію. є розумною інтуїцією "дуже швидкою", але поліноміальною. n1000
Рафаель

1
@Mohsin, ви дуже раді. @ Рафаель, я не думаю, що мені потрібно скидати P і NP; десятирічний може просто прийняти моє визначення проблеми, не знаючи, що означають P та NP, і я не впевнений, як би я міг пояснити проблему, не звертаючись до неї :). Крім того, я сказав, що я віддаю перевагу ясності щодо повної точності ... таким чином, я не думаю, що було несправедливо використовувати "дуже швидкий" і "поліноміальний час" взаємозамінно.
Філіп Білий

Моя думка, що використання "швидкого" не створює ясності. Якщо припустити, що P = NP, можливо, "єдиною" проблемою є те, що ми шукаємо "швидкі" алгоритми для проблем, які не можна вирішити "швидко", а лише поліноміально з високими ступенями.
Рафаель

8

Ось як я пояснив це своїй мамі, сподіваюсь, вона послужить вам :)

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

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

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

Ми з’ясували, як виявити зв’язки між проблемами (наприклад, якщо ви знаєте, як піти до школи, ви знаєте, як перейти до пекарні, яка знаходиться прямо перед нею) та легко перевірити проблеми, пов’язані з усіма іншими легко перевіряються проблемами ( NP-завершений, але давайте назвемо їх "ключовими проблемами") так, що якщо хтось одного дня засвідчить, що одна з ключових проблем легко вирішується, то всі проблеми, які легко перевіряються, також легко вирішуються (тобто P = NP). З іншого боку, якщо хтось виявить, що одна з ключових проблем не може бути легко вирішуваною, то жодна з інших не може бути легко вирішуваною (тобто P <> NP).

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



1

Я трохи скептично ставлюсь до можливості пояснити цю проблему 10-річному віку, або навіть непростої людині, не маючи на меті уявлення ключових понять.

Усі пояснення, сформульовані з точки зору "легкості" проти "твердості" пошуку проти перевірки рішень, припускають тезу Кобхама, яка, в загальному випадку, є помилковою, і в кращому випадку може вважатися трохи більше, ніж правило.


Це не відповідь на запитання.
Дейв Кларк

Чому ні? Питання було "Як би ви пояснили проблему P = NP 10-річній дитині", і моя відповідь полягає в тому, що належного пояснення, яке не викривить проблему, ймовірно, не існує. Ви, звичайно, не погоджуєтесь з моєю відповіддю, але чому ви стверджуєте, що це не стосується питання?
Антоніо Валеріо Міцелі-Бароне

3
На мою думку, це можлива відповідь, хоча я не згоден. Це правда, що ми не можемо бездумно ототожнювати P з чимось на зразок "набору проблем, які можна ефективно вирішити в реальному світі". Однак я не думаю, що це виключає можливість пояснення проблеми P =? NP десятирічна дитина на інтуїтивному рівні. Наприклад, діти десятирічного віку вивчають область кола. Будь-яке суворе поводження з територією вимагає великої обережності, але це не виключає можливості навчити поняття місцевості на інтуїтивно зрозумілому рівні корисним чином.
Tsuyoshi Ito

P

1
P

1

Стратегії виграшів для різних класичних настільних ігор, наприклад, лінкор чи (останнім часом) відеоігри, було доведено NP завершеним, і це відмінний спосіб / кут подання / опису деяких основних теорій для новачків.

лінійний корабель як NP повне вирішення проблеми Merlijn Sevenster ICGA журнал вересень 2004 року

тральщик - NP повний FAQ , заданий математиком RW Kaye. Випуск 2000 року випуску математичного інтелектуала (том 22, № 2, стор. 9--15)

Гра - це важка робота, але хтось повинен її виконувати! арксівський папір Джованні Вігліетти. аналізує обчислювальну складність Pac-Man, Tron, Lode Runner, Boulder Dash, Deflektor, Mindbender, Pipe Mania, Skweek, Prince of Persia, Lemmings, Doom, Puzzle Bobble 3 та Starcraft.

Пакман є важкою екстремальною технічною статтею, наведеною вище


див. також ОПИТАННЯ NP-COMPLETE PUZZLES від Kendall, Parkes, Spoerer та грати в ігри з алгоритмами: Алгоритмічна теорія комбінаторних ігор від Demaine and Hearn
vzn

0

І ось мій погляд на проблему.

Кідо!

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

З іншого боку, у минулу ніч на нашій гру гру, яка б була найкраща стратегія, щоб виграти гру? Ми можемо перемістити перший пішак на один крок, або другий пішак на один крок, або ми можемо перемістити другий пішак на два кроки і перший пішак один крок, щоб ви побачили, що існує багато і багато можливостей. Але чи є спосіб для нас або ретранслятор, який дає нам повний впорядкований набір рухів, які дають найкращі результати і для магістра? Отже, ви бачите, що це важко кинути, тому що так багато можливостей кожен крок. Мільярди і мільярди, як каже Карл Саган.

Але дорогий, що, якщо я скажу вам усі позиції правління і запитаю вас, чи це мат-мат? Звичайно, ви зможете швидко за кілька експертиз сказати, чи залишилися королі якісь правові кроки.

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

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


Можливо, варто підтягнути текст. Ви спробували прочитати це вголос?
Андрас Саламон

Все не повинно бути жорсткішим, як математичні визначення, я думаю.
Mohsin Hijazee

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

n×n

Це посилання, можливо, більш чітке, ніж попереднє: cstheory.stackexchange.com/questions/6563/…
Juan Bermejo Vega
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.