Щодня стикаються з проблемами, повними NP


34

Марк Домінус зібрав декілька прикладів скорочення поліноміального часу від різних задач, пов'язаних з NP, до відповідності "регулярному вираженню" . Передбачення поліномічних перевірок не є величезним стрибком.

Як ви ілюструєте клас NP-повний для магістрантів чи друзів з інших галузей, які хотіли зрозуміти недавню метушню з приводу статті Деолікаліка?

Відповіді:


24

Мій улюблений приклад для використання з друзями, які не належать до CS, це:

Авраам, А. Блюм, Сандгольм. Очищення алгоритмів бартерних обмінних ринків: налагодження загальнодержавних обмінів нирок. EC07.

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

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

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


1
Чудовий приклад! Девід Менлоу широко працював над такими проблемами (як обміном, так і узгодженням); системи використовуються у Великобританії та Угорщині. dcs.gla.ac.uk/~davidm/publications.html Наскільки я знаю, ці підходи перемагають алгоритми NRMP, а алгоритм наближення 3/2 Еріка Макдерміда є найбільш відомим. dx.doi.org/10.1007/978-3-642-02927-1_57
Андраш Саламон

13

Деякі проблеми "щодня", які є важкими для NP, мають належну формулювання:

  • Призначення університетських занять часовим графіком, щоб мінімізувати конфлікти у графіку.

  • Призначення гостей весілля на місця, щоб друзі сиділи за одним столом, а вороги - ні.

  • Планування поїздки для відвідування всіх туристичних місць у списку, щоб мінімізувати водіння.


12

Проблема продавця подорожей, мабуть, доступна ... принаймні там, де я перебуваю, ця здається є найбільш популярною проблемою CS серед людей, які не є CS. Я також виявив таку ілюстрацію Vertex Cover досить привабливою, як представлена ​​моїм інструктором з алгоритмів:

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

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

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

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


3
Максимальна узгодження досить для двох наближень, що набагато простіше обчислити і пояснити.
Воррен Шуді

1
@Warren: Дякую, що вказали на це, звичайно, ви цілком праві!
Нельдхара

8

Я думаю, що паралельне паркування є важким для NP.

Фактично, більш загальна проблема пошуку найкоротшого шляху з обмеженою кривизною, який приймає полігональний об'єкт від його вихідного положення до його кінцевого положення в полігональному середовищі, є NP-жорстким. Доказ можна знайти тут - http://portal.acm.org/citation.cfm?id=298976


7

Рюкзак досить легко зрозуміти, особливо для тих, кому довелося мати справу з невеликою валізаю. Хороший приклад, якщо вони знають динамічне програмування.

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

В обох випадках здається, що наївні стратегії можуть змусити вдатися до перевірки всіх підмножин.

Якщо у них більше фону, приємно наростати проблеми, скидаючи обмеження. Наприклад, починаючи з проблеми з максимальним потоком, перетворюючи її на лінійну програму і перетворюючи її на цілу програму. (Прекрасно, звичайно, це MAX-CUT, оскільки для людей, які мають більше досвіду, ви також можете підняти UGC; я дещо цього торкаюсь у відповіді МО https://mathoverflow.net/questions/33036/is-quadratic-programming -still-np-hard-if-you-have-limit-and-a-aaasible-point / 33048 # 33048. ) Також є акуратні речі, такі як проблеми, схожі на подібні, які мають різну складність (шлях Ейлера (краю) лінійний час, шлях Гамільтонів (вершина) NP-повний).


7
Мені подобається наступна версія підмножини: вам дають 10 фунтів стерлінгів, щоб придбати закуски в магазині. Чи можете ви знайти саме правильну комбінацію покупок, щоб грошей не залишилось?
Андраш Саламон

6

Побудова кросворду - NP-Complete: Давши набір відповідей, спробуйте вкласти їх у сітку.


5

Я створив веб-сайт Tagxedo, http://www.tagxedo.com , генератор хмарних слів, який підходить до форми слів (розміром за їх частотами). Результати дуже гарні, але ця проблема легко виявляється важкою для NP (проблема з упаковкою).

Цікаво, що багато NP-важких проблем мають "легке" наближення. Здається, Tagxedo у багатьох випадках робить майже ідеальну роботу. Це призводить до цікавої дискусії щодо практичного наслідку Р проти НП та теми наближення.


4

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


так, але він намагався мінімізувати споживання газу? :)
Суреш Венкат

Навіть знайти можливий графік було важко, оскільки стадіони відкриті не щодня (гамільтонівський цикл із часовими вікнами).
Jeffε

4

Завдяки успіху таких компаній, як Uber та Lyft, у багатьох людей є дуже доступний прямий досвід вирішення проблем, пов'язаних з NP.

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

Ця проблема (коли це переосмислено) - це NPC, і я думаю, що люди в якийсь момент задалися питанням, як Uber вирішує з'єднати водіїв та пасажирів.


3

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


2
Я не впевнений, скільки людей стикаються з цим щодня.
Дейв Кларк

3

Повна проблема Np, як Sudoku (на nxn sqaure), є універсальним інструментом, який дозволяє нам ефективно вирішувати всі проблеми, які мають ефективно перевірені рішення. Єдина вимога - мати ефективний метод вирішення судоку.


2

NП

нpjмNПpjкNП-комплект у цій ситуації. Зверніть увагу, що це не повинні бути блоки, якщо ми припускаємо, що вони не можуть перекинутися. Це можуть бути пачки паперів, ящики чи таблички.

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


2

Примхливий доступний приклад - це коротка презентація Марка Домінуса (див. Відповідну публікацію в блозі ) під назвою «Моя улюблена проблема NP-завершення», де зображення нижче - це пунктирний огляд точного обкладинки 3-ма наборами .

Заголовки у відеосерії включають

  • Танці, музика та книги
  • Руки, вуха та ноги
  • Прокидайся з Елмо (про спати, одягаючись і чистивши зуби)
  • Люди у вашому районі (про пожежників, рятувальників та медсестер)

Чіткий намір полягав у тому, щоб кожне відео містило три епізоди на загальну тему, складені з кола тем, що цікавлять маленьких дітей.

Дивною качкою в серіалі було відео про "квіти, банани та ... волосся".

Квіти, банани та ... волосся.


0

Особливо, якщо згодом розглядати проблему "Рюкзак", ця проблема, що не відповідає повному рівню, може бути цілком придатною:

Відгадування чисел, де ви можете здогадуватися лише по одних цифрах, поки не зрозумієте це правильно.

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