Что такое NP-Complete в информатике?

Что такое NP-полная проблема? Почему это такая важная тема в информатике?

Возможно, вас заинтересуют ответы на этот вопрос: stackoverflow.com/questions/111307/…

Dan Dyer 17.10.2008 14:58

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

grom 24.11.2008 08:22

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

grom 24.11.2008 09:22

Мы никогда не узнаем, потому что с большим n он никогда не завершится;)

Pete Alvin 29.04.2014 00:04

Мне очень нравится и очень рекомендую посмотреть это видео-объяснение: youtube.com/watch?v=YX40hbAHx3s

Maksym Ovsianikov 25.02.2017 23:39

Есть очень хороший лекция arsdigita по дискретной математике, который объясняет, что такое NP-полная проблема. Первые 50 минут в основном посвящены булевой алгебре. Так что переходите прямо к началу 53-й минуты, если вас интересуют только концепции P, NP, NP-полноты, проблемы логической выполнимости и редукции.

davitenio 03.01.2009 03:18

Упомянутая лекция arsdigita по дискретной математике ссылка из видео Google теперь не работает, но доступна здесь, на Youtube: youtu.be/BrDto0heyaQ?t=3181

W.Prins 28.12.2019 02:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
454
7
270 493
14
Перейти к ответу Данный вопрос помечен как решенный

Ответы 14

Честно говоря, Википедия может быть лучшим местом для поиска ответа на этот вопрос.

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

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

Windows programmer 17.10.2008 10:10

Справедливый вопрос. Я предполагаю, что любое доказательство того, что P = NP, скорее всего, будет конструктивным (например, публикация полиномиального алгоритма для 3-SAT).

Chris Conway 17.10.2008 21:43

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

Есть много хороших эвристик для некоторых задач NP-Complete, но в лучшем случае это только обоснованное предположение.

Почти верно. Проблема может иметь неполное решение, которое по-прежнему не является полиномиальным.

Mark Bessey 17.10.2008 05:51

Хотя это не совсем так, но это достаточно близко для практического использования. Педантичное определение не обязательно, хотя ОП, вероятно, хочет педантичного определения. Это хорошее приближение!

doug65536 02.01.2013 23:24
Ответ принят как подходящий

НП обозначает время Недетерминированный Полином.

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

Главное, что нужно вынести из NP-полной задачи, - это то, что она не может быть решена за полиномиальное время каким-либо известным способом. NP-Hard / NP-Complete - это способ показать, что определенные классы проблем не решаются в реальном времени.

Обновлено: как отмечали другие, часто существуют приблизительные решения проблем NP-Complete. В этом случае приближенное решение обычно дает оценку приближения с использованием специальных обозначений, которые говорят нам, насколько близко приближение.

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

Windows programmer 17.10.2008 10:12

«... проблема NP может быть сведена к данной проблеме ...» - важное ограничение на редукцию состоит в том, что она должна быть детерминированно полиномиальной.

Rafał Dowgird 17.10.2008 11:21

Исправлена ​​ошибка аппроксимации записи. спасибо, программист Windows.

Jonathan Adelson 20.11.2008 18:31

Обозначение O () является общим математическим обозначением, используемым повсюду: алгоритмы аппроксимации действительно имеют точность O () - смотрите любую статью об алгоритмах аппроксимации на arxiv.org

Ying Xiao 21.11.2008 04:36

Не нужно путать ответ. Любой язык разрешим с помощью DTM если только, он разрешим с помощью NDTM. Редактирую, чтобы ответить для ясности.

Yuval Adam 28.06.2009 18:25

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

rjzii 06.12.2009 09:06

@Yuval: DTM и NDTM разные (по крайней мере, по временной сложности). Ваше редактирование доказало, что P = NP!

Aryabhatta 20.05.2010 11:45

@Moron - ты ошибаешься. en.wikipedia.org/wiki/…, пожалуйста, откатите свои изменения.

Yuval Adam 20.05.2010 12:05

@ Юваль, о чем ты говоришь? Хотя верно, что набор языков все, принимаемых DTM, такой же, как набор языков все, принятых NDTM, это набор языков, принимаемых DTM за время O (n) (n - размер ввода), такой же, как набор языков, принятый NDTM за O (n) раз? P - это набор языков, принимаемых DTM за полиномиальное время по размеру входных данных. NP - это набор языков, принимаемых NDTM за полиномиальное время по размеру ввода. P = NP - это вопрос, одинаковы ли эти двое.

Aryabhatta 20.05.2010 18:49

N / DTM эквивалентны. Однако, поскольку ответ касается DTM и NDTM в отношении временной сложности, я принимаю ваш откат. Справедливо.

Yuval Adam 20.05.2010 19:49

@Yuval: Просто чтобы было понятно. То, что у вас было раньше, было совершенно неправильным (если только P = NP). Из вашего комментария у меня складывается ощущение, что вы думаете, что обе версии были правильными. Если нет, прошу прощения.

Aryabhatta 20.05.2010 21:44

«[Если проблема является NP] и известная проблема NP может быть решена с использованием данной проблемы с модифицированным вводом [...], тогда проблема является NP полной» неверно. Проблема является NP-полной, если она NP и все другие проблемы NP может быть сведена к ней. В качестве альтернативы проблема является NP-полной, если проблема NP и еще один НП-полный может быть сведена к ней.

Adam Zalcman 06.11.2011 22:56

Этот ответ далеко не полон и понятен, и я не могу понять, почему у него так много голосов.

nbro 15.06.2015 16:32

@ RafałDowgird Reduction используется как синоним полиномиальное преобразование многими авторами, включая Гэри и Джонсон.

Cyriac Antony 07.10.2019 09:38

NP-Complete означает что-то очень конкретное, и вы должны быть осторожны, иначе вы получите неправильное определение. Во-первых, проблема NP - это проблема да / нет, такая что

  1. Для каждого случая проблемы существует полиномиальное доказательство с ответом «да», что ответ «да», или (что эквивалентно)
  2. Существует алгоритм с полиномиальным временем (возможно, с использованием случайных величин), который имеет ненулевую вероятность ответить «да», если ответ на экземпляр проблемы - «да», и будет говорить «нет» в 100% случаев, если ответ - нет." Другими словами, алгоритм должен иметь частоту ложноотрицательных результатов менее 100% и не допускать ложных срабатываний.

Проблема X является NP-полной, если

  1. X находится в NP, и
  2. Для любой проблемы Y в NP существует «сокращение» от Y до X: алгоритм с полиномиальным временем, который преобразует любой экземпляр Y в экземпляр X, так что ответ на экземпляр Y будет «да», если и только если ответ X-instance - «да».

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

До сих пор никто не придумал такой детерминированный алгоритм с полиномиальным временем, но никто не доказал, что его не существует (есть миллион долларов для каждого, кто может сделать то же самое: это P = проблема NP). Это не означает, что вы не можете решить конкретный экземпляр проблемы NP-Complete (или NP-Hard). Это просто означает, что у вас не может быть чего-то, что будет надежно работать во всех случаях проблемы так же, как вы можете надежно отсортировать список целых чисел. Вы вполне могли бы придумать алгоритм, который будет очень хорошо работать на всех практических примерах проблемы NP-Hard.

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

Kyle Cronin 17.10.2008 06:41

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

quick_dry 17.10.2008 07:37

Условие № 2 - это утверждение P =? NP, а не стандартное определение NP-полноты. Это должно быть: существует детерминированный поливременной алгоритм, который может преобразовать любой экземпляр X Другие NP в экземпляр Y задачи это s.t. ответ на Y - «да», если и только если ответ на X - «да».

Chris Conway 17.10.2008 09:28

«вы должны быть осторожны, иначе вы получите неправильное определение» - как доказывает сам этот ответ. Этот ответ отчасти верен, но его точно не следовало принимать.

Windows programmer 17.10.2008 10:07

NP-Complete - это класс задач.

Класс P состоит из тех задач, которые разрешимы в полиномиальное время. Например, они могут быть решены за O (nk) для некоторой константы k, где п - размер входных данных. Проще говоря, вы можете написать программу, которая будет работать за время разумный.

Класс NP состоит из тех задач, которые поддающийся проверке за полиномиальное время. То есть, если нам дано потенциальное решение, мы сможем проверить правильность данного решения за полиномиальное время.

Некоторые примеры - проблема логической выполнимости (или СИДЕЛ) или проблема гамильтонова цикла. Известно много проблем, относящихся к классу NP.

NP-Complete означает, что проблема по меньшей мере такая же сложная, как и любая проблема в NP.

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

Многие алгоритмы безопасности зависят от того факта, что не существует известных решений для сложных проблем NP. Если решение будет найдено, это определенно окажет значительное влияние на вычисления.

это не правильно. Проблема в NP может быть преобразована в любую проблему в NP-полной, но не в любую проблему в NP. Это большая разница.

David Nehme 17.10.2008 06:19

Кроме того, «проблема такая же сложная, как и любая проблема в NP» - это правда, но лучше было бы сформулировать «по крайней мере так же сложно». В целом, этот ответ ближе, чем любой другой ответ, который я видел, и ближе, чем, к сожалению, принятый ответ.

Windows programmer 17.10.2008 10:17

Спасибо за ваши наблюдения. Я обновил ответ, чтобы включить ваши исправления.

Vincent Ramdhanie 19.10.2008 06:06

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

nbro 15.06.2015 17:49

Если вы ищете пример NP-полной проблемы, я предлагаю вам взглянуть на 3-СБ.

Основная предпосылка заключается в том, что у вас есть выражение в конъюнктивная нормальная форма, которое является способом сказать, что у вас есть серия выражений, соединенных оператором OR, которые все должны быть истинными:

(a or b) and (b or !c) and (d or !e or f) ...

Задача 3-SAT состоит в том, чтобы найти решение, которое удовлетворяет выражению, в котором каждое из OR-выражений имеет ровно 3 логических значения для сопоставления:

(a or !b or !c) and (!a or b or !d) and (b or !c or d) ...

Решением этого может быть (a = T, b = T, c = F, d = F). Однако не обнаружено никакого алгоритма, который решал бы эту проблему в общем случае за полиномиальное время. Это означает, что лучший способ решить эту проблему - это, по сути, угадывать и проверять грубой силой и пробовать разные комбинации, пока не найдете ту, которая работает.

Особенность задачи 3-SAT заключается в том, что ЛЮБАЯ NP-полная задача может быть сведена к задаче 3-SAT. Это означает, что если вы сможете найти алгоритм с полиномиальным временем для решения этой проблемы, вы получите 1 000 000 долл. США, не говоря уже об уважении и восхищении компьютерных ученых и математиков во всем мире.

Возможно, меня смущают другие объяснения здесь, но не следует ли здесь читать «ЛЮБАЯ проблема NP может быть сведена к задаче 3-SAT за полиномиальное время». Разве это не то, что делает 3-SAT NP-Complete?

DubiousPusher 06.10.2017 21:04

@DubiousPusher Нет. Ответ утверждает это правильно. Это изображение поясняет stackoverflow.com/a/7367561/2686502

jayeshsolanki93 10.05.2020 17:13

Приведенные выше определения полных проблем NP верны, но я подумал, что могу лирически рассуждать об их философской важности, поскольку никто еще не обратился к этой проблеме.

Почти все сложные проблемы, с которыми вы столкнетесь, будут NP Complete. В этом классе есть что-то очень фундаментальное, и это кажется вычислительно отличным от легко решаемых задач. У них вроде как есть своя изюминка, и распознать их не так уж и сложно. Это в основном означает, что вы не можете точно решить любой умеренно сложный алгоритм - планирование, оптимизация, упаковка, покрытие и т. д.

Но не все потеряно, если вы столкнетесь с проблемой NP Complete. Существует обширная и очень техническая область, в которой люди изучают алгоритмы аппроксимации, что дает вам гарантии того, что вы приблизитесь к решению полной NP-проблемы. Некоторые из них являются невероятно надежными гарантиями - например, для 3sat вы можете получить гарантию 7/8 с помощью действительно очевидного алгоритма. Более того, на самом деле существуют очень сильные эвристики, которые превосходно дают отличные ответы (но без гарантий!) На эти проблемы.

Обратите внимание, что две очень известные проблемы - изоморфизм графов и факторизация - не известны как P или NP.

Нам нужно разделить алгоритмы и проблемы. Мы пишем алгоритмы для решения проблем, и они определенным образом масштабируются. Хотя это упрощение, давайте обозначим алгоритм буквой «P», если масштабирование достаточно хорошее, и «NP», если это не так.

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

Это означает, что многие простые проблемы тоже находятся «в NP», потому что мы можем писать плохие алгоритмы для решения простых задач. Было бы хорошо знать, какие проблемы в NP являются действительно сложными, но мы не просто хотим сказать: «Это те, для которых мы не нашли хорошего алгоритма». В конце концов, я мог бы придумать проблему (назовите ее X), для которой, как мне кажется, нужен супер-удивительный алгоритм. Я говорю миру, что лучший алгоритм, который я мог придумать для решения X, плохо масштабируется, и поэтому я думаю, что X - действительно сложная проблема. Но завтра, может быть, кто-нибудь умнее меня изобретет алгоритм, который решает X и находится в P. Так что это не очень хорошее определение сложных проблем.

Тем не менее, в NP много проблем, для которых никто не знает хорошего алгоритма. Итак, если бы я мог доказывать, что X - это проблема определенного типа: та, где хороший алгоритм для решения X мог бы использоваться каким-то окольным путем также, чтобы дать хороший алгоритм для каждый другой проблемы в NP. Что ж, теперь люди могут быть более убеждены в том, что X - действительно сложная проблема. И в этом случае мы называем X NP-Complete.

Что такое НП?

NP - это набор всех проблемы решения (вопросов с ответом «да» или «нет»), для которых ответ «да» может быть проверено за полиномиальное время (O (nk), где п - размер проблемы, а k - константа) автор: детерминированная машина Тьюринга. Полиномиальное время иногда используется как определение быстрый или быстро.

Что такое п?

P - это набор всех проблем решения, которые могут быть решено в полиномиальное время с помощью детерминированная машина Тьюринга. Поскольку они могут быть решены за полиномиальное время, они также могут быть проверены за полиномиальное время. Следовательно, P является подмножеством NP.

Что такое NP-Complete?

Проблема x, которая находится в NP, также находится в NP-Complete если и только если, любая другая проблема в NP может быть быстро (т. Е. За полиномиальное время) преобразована в x.

Другими словами:

  1. x находится в NP, и
  2. Каждая проблема в NP - это сводимый to x

Итак, что делает NP-Complete настолько интересным, так это то, что если какая-либо из проблем NP-Complete должна быть решена быстро, то все проблемы НП могут быть решены быстро.

Смотрите также пост Что такое «P = NP?» И почему это такой известный вопрос?

Что такое NP-Hard?

NP-Hard - это задачи, которые не менее сложны, чем самые сложные задачи NP. Обратите внимание, что NP-Complete задачи также являются NP-трудными. Однако не все NP-сложные проблемы являются NP (или даже проблемой решения), несмотря на наличие NP в качестве префикса. То есть НП в NP-харде не означает недетерминированное полиномиальное время. Да, это сбивает с толку, но его использование укоренилось и вряд ли изменится.

«То есть NP в NP-hard не означает неполиномиальный» <- NP в NP-полном (или где-либо еще) также не означает неполиномиальный.

sepp2k 19.03.2010 20:19

Спасибо sepp2k за исправление. Я хотел сказать, что это не означает NP (т.е. недетерминированное полиномиальное время).

grom 16.04.2010 05:07

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

SoftwareSavant 17.09.2012 23:14

@DmainEvent, какую часть вы не понимаете? Например, проверка задач NP-Complete en.wikipedia.org/wiki/Karp%27s_21_NP-complete_problems в частности задачи о ранце. Надеюсь, это поможет.

grom 03.10.2012 10:13

О Н.П .: Думаю, так и должно быть: проблему можно решить с помощью недетерминированной машины Тьюринга. (недертерминированный, а не дерминистический)

hqt 17.10.2012 21:11

@hqt Я правильно написал ... Обратите внимание на слово "проверено". Вы также правы, NP может быть решено за полиномиальное время недетерминированной машиной Тьюринга

grom 18.10.2012 05:51

@grom Этот ответ представляет собой скорее краткое изложение наиболее известных классов сложности, чем исчерпывающее объяснение того, что такое проблемы NP-Complete. Итак, я буду отрицать, даже если этот ответ действительно хорош, но для другого вопроса.

nbro 15.06.2015 17:39

Я думаю, вам следует добавить комментарий @hqt к своему ответу, чтобы помочь людям понять часть недетерминированный в Недетерминированный полином.

hashlash 18.11.2019 10:48

Я слышал объяснение, а именно: " NP-полнота, вероятно, одна из самых загадочных идей в изучении алгоритмов. «NP» означает «недетерминированное полиномиальное время» и является названием того, что называется классом сложности, к которому могут принадлежать проблемы. Важная особенность класса сложности НП заключается в том, что проблемы в этом классе могут быть проверено с помощью алгоритма полиномиального времени. В качестве примера рассмотрим задачу о подсчете вещей. Предположим, на столе стоит гроздь яблок. Проблема в том, «Сколько там яблок?» Вам предоставляется возможный ответ: 8. Вы можете проверить этот ответ за полиномиальное время, используя алгоритм подсчета яблок. Подсчет яблок происходит за O (n) (это обозначение Big-oh), потому что для подсчета каждого яблока требуется один шаг. Для n яблок нужно n шагов. Эта проблема относится к классу сложности NP.

Проблема классифицируется как НП-полный, если можно показать, что это одновременно NP-Hard и поддающийся проверке за полиномиальное время. Не углубляясь слишком глубоко в обсуждение NP-Hard, достаточно сказать, что существуют определенные проблемы, для которых не были найдены решения за полиномиальное время. То есть требуется что-то вроде n! (n факториальных) шагов для их решения. Однако, если вам дано решение проблемы NP-Complete, вы можете проверить его за полиномиальное время.

Классическим примером проблемы NP-Complete является задача коммивояжера ".

Автор: ApoxyButt От: http://www.everything2.com/title/NP-complete

В основном проблемы этого мира можно разделить на следующие категории:

1) Неразрешимая проблема 2) неразрешимая проблема 3) NP-проблема 4) P-проблема


1) Первый - это не решение проблемы. 2) Во-вторых, необходимо экспоненциальное время (то есть O (2 ^ n) выше). 3) Третий называется НП. 4) Четвертая - простая задача.


P: относится к решению проблемы полиномиального времени.

NP: ссылается на полиномиальное время, пока не найдено решение. Мы не уверены, что существует решение для полиномиального времени, но как только вы предоставите решение, его можно будет проверить в полиномиальном времени.

NP Complete: относится к полиномиальному времени, нам еще предстоит найти решение, но его можно проверить в полиномиальном времени. Проблема NPC в NP является более сложной проблемой, поэтому, если мы сможем доказать, что у нас есть P-решение проблемы NPC, то проблемы NP, которые можно найти в P-решении.

NP Hard: относится к полиномиальному времени еще предстоит найти решение, но точно не может быть проверено в полиномиальном времени. NP Hard проблема превосходит сложность NPC.

Рад видеть этот ответ, часть категоризации довольно выразительна для всей концепции. Я думал, что взаимодействующие проблемы - это NP-проблемы.

PeerNet 21.05.2019 03:19

NP-полные задачи - это совокупность задач, для каждой из которых любая другую NP-задачу можно редуцировать за полиномиальное время, и решение которой все еще можно проверить за полиномиальное время. То есть любая проблема NP может быть трансформируется в любую из NP-полных задач. - Неформально NP-полная задача - это NP-проблема, которая по крайней мере такая же «жесткая» как и любая другая проблема в НП.

НП Проблема: -

  1. Проблема NP - это такая проблема, которая может быть решена за недетерминированное полиномиальное время.
  2. Недетерминированный алгоритм работает в два этапа.
  3. Этап недетерминированного предположения && Этап недетерминированной проверки.

Тип проблемы Np

  1. НП завершена
  2. NP Hard

Н.П. Полная проблема: -

1 Задача принятия решения A называется NP-полной, если она имеет следующие два свойства:

  1. Принадлежит к классу NP.
  2. Любая другая задача в NP может быть преобразована в P за полиномиальное время.

Некоторые Ex: -

  • Задача о рюкзаке
  • проблема суммы подмножества
  • Задача о вершинном покрытии

Быстрый вопрос о ваших этапах ... не может ли этап проверки быть детерминированным? Проблемы NP не проверены в P-time

Branden Keck 06.11.2019 20:23

Насколько я понимаю

P - это набор задач, которые могут быть решены за полиномиальное время с помощью детерминированного TM.

NP - это набор задач, который требует решения недетерминированной TM за полиномиальное время. Это означает, что мы можем проверять все различные комбинации переменных параллельно, причем каждый экземпляр занимает полиномиальное время. Если проблема разрешима, то хотя бы один из этих параллельных экземпляров TM остановится с ответом «да». Это также означает, что если вы можете сделать правильное предположение о переменных / решении, вам просто нужно проверить его достоверность за полиномиальное время.

NP-Hard - это набор, в котором проблемы не менее сложны, чем NP. Это означает, что задачи NP-Hard равны или сложнее любых задач из набора NP.

  1. Примером NP-сложной задачи, которая сложнее, чем NP, является проблема остановки.
  2. Примером NP-сложной задачи, которая в равной степени сложна с NP-проблемой, является любая задача из NP-полного набора (см. Ниже).

NP-Complete - это множество пересечений NP и NP-Hard. Задачу в NP-Complete можно свести к любой другой NP-Complete задаче. Это означает, что если какая-либо проблема NP-Complete будет иметь эффективное решение, то все проблемы NP-Complete могут быть решены одним и тем же решением.

Как доказать, что P = NP, и выиграть приз в размере 1000000 долларов США?
Если бы вы могли показать, что каждая проблема NP сводится к любой другой проблеме NP, тогда набор NP-Complete охватывает все наборы NP (определение NP-Complete), то есть NP-Complete = NP. Кроме того, поскольку P⊆NP, это означает, что по крайней мере одна из этих NP-Complete задач решается за полиномиальное время, что означает, что все NP-множество может быть решено за полиномиальное время. Ясно, что можно было бы заключить, что P = NP. Что ж, это всего лишь один способ доказать, что P = NP, может быть много других способов.

Пожалуйста, дайте мне знать, если я допустил ошибку.

Другие вопросы по теме