Чому деякі ігри np-завершені?


50

Я прочитав запис у Вікіпедії про " Список проблем, повних NP ", і виявив, що такі ігри, як супер-маріо, покемон, тетріс або сага, що розчавлюють цукерки, є n-завершеними. Як я можу уявити np-повноту гри? Відповіді не повинні бути надто точними. Я просто хочу отримати огляд того, що означає, що ігри можуть бути завершеними.


4
Дивіться опорне питання про повноту NP. Я думаю, що ваше запитання занадто широке для формату обміну стеками.
Кайл Джонс

5
У Minecraft ви можете створити .... ну комп'ютер ... працює .... minecraft?
djsmiley2k - CoW

4
Побудова калькуляторів за допомогою Magic: Збір карт. Велике задоволення :-)
Мая

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

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

Відповіді:


72

Це просто означає, що ви можете створювати рівні або головоломки в цих іграх, які кодують проблеми NP-Hard. Ви можете вирішити проблему з фарбуванням графіків, створити пов'язаний рівень Super Mario Bros., і цей рівень можна отримати, якщо і лише тоді, коли графік є 3-кольоровим.

Якщо ви хочете побачити конкретний спосіб перетворення проблем NP-Complete в ігри, я рекомендую статтю "Класичні ігри в Nintendo є (обчислювально) важкими" . Це добре написано і легко дотримуватися.

Важливим застереженням, яке слід пам’ятати, є те, що твердість NP вимагає узагальнення ігор «очевидними» способами. Наприклад, у Tetris зазвичай є плата фіксованого розміру, але для підтвердження твердості потрібна гра, щоб дозволити довільно великі дошки. Ще один приклад - вороги поза екраном в Super Mario Bros: доказ - варіант гри, коли вороги поза екраном продовжують рухатись так, ніби вони на екрані, а не перестають існувати і повертаються до вихідної позиції, коли Маріо повертається .


4
Не варто відповідати самостійно, але в цьому є приємна відео лекція: курси.csail.mit.edu/6.890/fall14/lectures/L05.html - Кришталево зрозумілі пояснення.
користувач340082710

4
Можливо, варто включити точний виклад теореми з (надзвичайно цікавого!) Документа, який ви зв'язали, який коротко і точно пояснює, що саме означає сказати, що гра непроста: важко вирішити, чи мета досяжна з початку етапу в узагальненому Super Mario Bros
ymbirtt

Можливо, це не пов'язано, але з останніми іграми Pokemon (Сонце і Місяць) доказ у статті вже не відповідає дійсності (принаймні, як є), оскільки тренери противника вже не рухаються до гравця для боротьби з ними.
simonalexander2005

2
Щоб бути NP-Complete, ви повинні бути спроможними кодувати проблеми NP-Hard та бути в NP. Другий пункт відсутній у наведеній вище відповіді.
Якк

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

20

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

Візьмемо для прикладу тетріс, оскільки це єдиний з тих, кого ви цитуєте, про яких я досить розумію, щоб говорити. У Тетріса є правило, яке називається "ідеально ясно", яке дає гравцеві великий бонус, якщо крапля шматка очищає дошку повністю. Можна поцікавитись, чи, з огляду на впорядковану послідовність відрізків та цілого числа k , існує юридична послідовність ходів для відрізків P, яка досягає принаймні k досконалої очистки. Такі проблеми, як такі, є досить абстрактними, і їх можна моделювати за допомогою інструментів теорії складності.{Пi}кПк

Коротше кажучи, " -комплект" означає одне і лише одне, фантазійні твердження, такі як "Super Mario is N P -complete", повинні бути переведені у формальну заяву, перш ніж вони матимуть фактичний сенс.NПNП


1

Ось спрощене пояснення махання рукою:

О(нжурнал(н))

Такі ігри непрості, оскільки поведінка гравця дуже виразна. Хоча в будь-який момент часу гравець може мати лише обмежену, навіть фіксовану, кількість можливих дій, цього достатньо, щоб створити простір поведінки або стратегій, експоненціальних по довжині гри; і хоча ви, можливо, зможете надати просту умову або логічну формулу щодо дійсності / вигоди / правильності дій гравця на місцевому рівні, в усьому світі ви отримуєте аналогічний ефект, як у великій комбінаторній схемі, або у формулі k-CNF.

Сподіваємось, це має певний інтуїтивний сенс, а також дзвонить достатньо дзвонів теоретичної CS.

PS - Деякі ігри набагато складніші (обчислювально) складні. Наприклад, настільні ігри Hex , Go і Reversi - PSPACE. Це, по суті, тому, що формула, яку вам потрібно задовольнити для виграшної стратегії, - це формула кількісного вимірювання, що багато разів чергується: Існує рух гравця 1, такий, що для кожного ходу гравця 2 є рух гравця 1 тощо. таким чином, що з усіма відіграними рухами будь-який хід гравця 2 недійсний, або у нас виграв дійсний гравець послідовності 1. У NP іграх це поведінка / стратегія / вибір ходу одного гравця.


"Сподіваюся, це має певний інтуїтивний сенс" - не для мене ...
Рафаель

1

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

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


0

Ну, це, безумовно, в NP, тому що можливе рішення - це лише обмежена кількість входів (у кожному вхідному кадрі ви можете вибрати будь-яку з кнопок k, ми представляємо кожен вибір кнопок для кожного кадру буквою), що приводить вас до виграш-екран. Ми знаємо, що в цій грі вже били, тому знаємо, що рішення є. NTM переходить його стрічку і магічно вгадує правильний сертифікат довжини n. Потім він імітує Super Mario з входом і перевіряє його. Перевірку можна здійснити в поліноміальний час (фактично лінійний час, якщо рішення правильне, для виграшу знадобиться рівно n кадрів).

Щоб показати NP-повноту, ми могли б зменшити до нього 3-SAT, побудувавши 3-сат-контрольну програму з генератором рівня (який будується за допомогою довільного виконання коду https://www.youtube.com/watch?v=IOsvuEA2h4w ).

Отже, у нас є 3-SAT CNF-вхід, який ми спочатку перевіряємо на правильність форматування. Якщо він погано відформатований, ми просто переводимо його на один "стрибок"-вхід (перемогти Super Mario в одному кадрі неможливо, виконуючи стрибок).

Ми називаємо довжину входу 3-CNF n.

Якщо він правильно відформатований, ми переводимо його на ряд входів, що створює для нас 3-CNF-перевірку (завжди той самий код довжини k), переводить 3-CNF у рядок входів, що будує конкретні 3- CNF в шасі (в O (n)) і перевіряє всі можливі рішення за допомогою грубої сили. Він простоює і нічого не робить, якщо після переходу всіх рішень жоден не знайдеться. Він перезапускає гру і використовує відоме рішення для Super Mario, щоб обіграти гру (код для цього - довжина j). Таким чином, наше перетворення відбувається в O (n), тому воно відбувається в межах многочлена.

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

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


"Ну, це, безумовно, в NP, тому що можливе рішення - це лише обмежена кількість входів" Бути в NP вимагає, щоб рішення було поліноміально обмежене розміром вхідних даних. Просто бути обмеженим - недостатньо.
Девід Річербі

0

Я переписав цю відповідь, щоб спробувати вирішити деякі коментарі до попередньої версії.

Я припускаю, що ви прочитали визначення Вікіпедії для NP-повноти, яка насправді не зосереджена на іграх. Я трохи заношу точний зміст NP-повноти та теорії ігор та поясню суть гри NP-Complete.

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

Зауважте, що ідеальна гра не означає, що ви завжди будете вигравати. Правила гри можуть бути такими, що перший чи другий гравець повинен виграти. Також деякі ігри, такі як Tic-Tac-Toe, повинні закінчитися внічию. Таким чином, що означає «ідеальна гра» в цій дискусії, це:
(1) що ви ніколи не будете в виграшному становищі, а потім програєте, тому що зробили «поганий» крок
(2) Ви ніколи не пропустите можливість отримати у виграшну позицію, якщо виникає така можливість.

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

СБнТ


  • ТаБа+бБα-1+cБα-2+...+годБ0
    α

  • ТаБн
    н

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

Зауважте, що час роботи - це невід'ємна кількість обчислень, а не час відгуку, сприйняте людиною. Для такої маленької гри, як Tic-Tac-Toe, комп'ютер міг грати всі можливі майбутні кроки і все ще швидко реагувати так, як сприймається людиною.

Для Німа можна створити алгоритм багаточленного часу. У будь-який момент гри алгоритм може обчислити, який гравець має виграшний хід і яким повинен бути цей хід.

З іншого боку, давайте візьмемо гру Qubic . (Ви намагаєтеся створити лінію 3D у 3D-сітці. Отже, це по суті tic-tac-toe на сітці 4x4x4.) Qubic є NP-завершеним, тому немає поліноміального алгоритму часу для обчислення наступного ідеального ходу. Єдиний спосіб дізнатися, чи є у вас виграшний хід - спробувати всі можливі ходи обох гравців, щоб переконатися, що певна хода є переможцем або, принаймні, не програв.

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

Тепер давайте обговоримо шахи, щоб обговорити функцію оцінювання, ігноруючи деякі інші особливості програм шахової гри. Шахи все ще залишаються невирішеною грою . Невідомо, чи повинен виграти перший чи другий гравець. Неможливо отримати будь-яку позицію правління і з упевненістю передбачити, хто виграє. Насправді в шахах є таке велике ігрове дерево, що шукати все ігрове дерево просто неможливо. Вам знадобляться комп'ютери, які не просто в 10 чи 100 разів швидші, але мільярди мільярдів часу швидші, ніж будь-який сучасний комп'ютер. (Є надія, що квантові обчислення могли прорізати цей Гордіїв вузол.)

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


"Не можна / неможливо / мати ефективний алгоритм, поліноміальний час, для гри, що завершує NP. Повна задача NP, за визначенням, повинна вирішуватися неефективним алгоритмом, який працює в неполіноміальний час." - Це не правильно. Невідомо, чи можна розв’язати задачі, повні з NP, у поліноміальний час: більшість дослідників настійно очікують, що відповідь "ні", але ми не знаємо цього точно, і це не за визначенням. Я закликаю вас витрачати більше часу на читання фактичного визначення NP-завершеного. Ви можете знайти деякі ресурси на цьому сайті та у Вікіпедії.
DW

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

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