Объяснение вычислительной теории сложности

22
задан Dukeling 10 December 2017 в 00:14
поделиться

10 ответов

Ого-го, докторский ретроспективный кадр аккомпанемента. Хорошо, здесь идет.

Мы запускаем с идеи проблемы решения, проблемы, для которой алгоритм может всегда отвечать на "да" или "нет". Нам также нужна идея двух моделей компьютера (Машина Тьюринга, действительно): детерминированный и недетерминированный. Детерминированный компьютер является обычным компьютером мы всегда размышление; недетерминированный компьютер является тем, который является точно так же, как мы привыкли к тому, за исключением того, что, имеет неограниченный параллелизм, так, чтобы любое время, Вы приходите к ответвлению, Вы порождаете новый "процесс" и исследуете обе стороны. Как сказанный Yogi Berra, когда Вы приходите к ветвлению на дороге, необходимо взять ее.

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

проблемы, которые, как известно, были в P, находятся тривиально в NP---, недетерминированная машина просто никогда не беспокоит себя разветвлять другой процесс и действия точно так же, как детерминированное. Существуют проблемы, которые, как известно, не являются ни в P, ни в NP; простой пример должен перечислить все битовый векторы длины n. Неважно, что, который берет 2 <глоток> n шаги.

(Строго, проблема решения находится в NP, если nodeterministic машина может достигнуть ответа в поливремя и детерминированной машины, может проверять , что решение корректно в poly время.)

, Но существуют некоторые проблемы, которые, как известно, находятся в NP, которым никакое поливремя известен детерминированный алгоритм; другими словами, мы знаем, что они находятся в NP, но не знают, находятся ли они в P. Традиционным примером является версия проблемы решения проблемы Коммивояжера (решение-TSP): учитывая города и расстояния, там маршрут, который покрывает все города, возвращаясь к начальному вопросу, в [меньше чем 112] x расстояние? Это легко в недетерминированной машине, потому что каждый раз недетерминированный коммивояжер приходит к ветвлению на дороге, он берет его: его клоны направляются на следующем городе, который они не посетили, и в конце они обмениваются мнениями и видят, взял ли какой-либо из клонов [меньше чем 113] x расстояние.

(Затем экспоненциально много клонов добираются для побеждения его для того, которые должны быть уничтожены.)

не известно, является ли решение-TSP в P: нет никакого известного решения поливремени, но нет никакого доказательства, такое решение не существует.

Теперь, еще одно понятие: учитывая проблемы решения P и Q, если алгоритм может преобразовать решение для P в решение для Q в полиномиальное время, сказано, что Q поливремя, приводимое (или просто приводим) к P.

проблема А полна NP, если можно доказать что (1) это находится в NP и (2) шоу, что это - поливремя, приводимое к проблеме, которая, как уже известно, была полна NP. (Твердая часть этого была, просоперничают первый пример полной NP проблемы: это было сделано Steve Cook в Теорема Cook .)

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

проблема А является NP-трудной, если и только если это, "по крайней мере, как" трудно как полная NP проблема. Более стандартная проблема Коммивояжера нахождения краткого маршрута является NP-трудной, не строго полной NP.

61
ответ дан Charlie Martin 29 November 2019 в 03:29
поделиться

К сожалению, лучшие две книги, о которых я знаю ( Garey и Johnson и Hopcroft и Ullman) оба, запускаются на уровне выпускника, ориентированного на доказательство на математику. Это почти наверняка необходимо, поскольку целую проблему очень легко неправильно понять или превратно истолковать. Jeff почти жевал его уши прочь , когда он попытался приблизиться к вопросу слишком простонародным/забавным тоном.

, Возможно, лучший способ состоит в том, чтобы просто сделать большую практическую работу с нотацией "большого О" использование большого количества примеров и упражнений . См. также этот ответ . Обратите внимание, однако, что это - не совсем то же самое: отдельные алгоритмы могут быть описаны асимптотами, но говорящий то, что проблема имеет определенную сложность, является оператором [приблизительно 116] каждый возможный алгоритм для нее. Поэтому доказательства являются так сложными!

4
ответ дан Community 29 November 2019 в 03:29
поделиться

Michael Sipser Введение в Теорию Вычисления является замечательной книгой и очень читаемо. Другой большой ресурсом является Scott Aaronson Прекрасные идеи в Теоретической Информатике курс.

формализм, который используется, должен посмотреть на проблемы решения (проблемы с Ответом "да"/"нет", например, "делает этот график, имеют гамильтонов цикл") как "языки" - наборы строк - вводят, для которого ответ - Да. Существует формальное понятие того, что "компьютер" (Машина Тьюринга), и проблема находится в P, если существует полиномиальный алгоритм времени для решения, что проблема (учитывая входную строку, скажите да или нет) на Машине Тьюринга.

проблема А находится в NP, если это поддающееся проверке в полиномиальное время, т.е. если, для исходных данных, где ответ Да, существует (полиномиальный размер) сертификат, данный, который можно проверить, что ответ - Да в полиномиальное время. [Например, учитывая гамильтонов цикл как сертификат, можно, очевидно, проверить, что это - то.]

Это ничего не говорит о том, как к находят тот сертификат. Очевидно, можно попробовать "все возможные сертификаты", но это может занять время; не ясно, будете ли Вы всегда иметь для взятия больше, чем полиномиальное время для решения Да или Нет; это - P по сравнению с вопросом о NP.

проблема А является NP-трудной, если способность решить ту проблему означает способность решить все проблемы в NP.

Также посмотрите этот вопрос: , Что такое полное NP в информатике?

, Но действительно, все они, вероятно, только неопределенны Вам; это стоит занять время для чтения, например, книга Sipser. Это - красивая теория.

5
ответ дан Community 29 November 2019 в 03:29
поделиться

Я помню "Вычислительную Сложность" от Papadimitriou (я надеюсь, что написал имя правильно) как хорошая книга

2
ответ дан flolo 29 November 2019 в 03:29
поделиться

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

1
ответ дан mfx 29 November 2019 в 03:29
поделиться

Вот несколько ссылок на предмет:

В Вас знакомы с идеей кардинальности набора, которая является числом элементов в наборе, тогда можно было просмотреть вопрос как P представление кардинальности Целых чисел, в то время как NP является тайной: действительно ли это - то же, или действительно ли это больше как кардинальность всех Вещественных чисел?

1
ответ дан JB King 29 November 2019 в 03:29
поделиться

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

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

0
ответ дан benjismith 29 November 2019 в 03:29
поделиться

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

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

0
ответ дан James McMahon 29 November 2019 в 03:29
поделиться

В зависимости от того, сколько времени Вы имеете, возможно, было бы лучше запуститься в DFA, NDFA, и затем показать, что они эквивалентны. Тогда они понимают ND по сравнению с D и поймут регулярные выражения намного лучше как хороший побочный эффект.

0
ответ дан John with waffle 29 November 2019 в 03:29
поделиться

Это комментарий к сообщению Чарли.

Проблема является NP-полной, если вы можете доказать это (1 ) это в нп, и (2) показать, что оно сводится по времени к проблеме, уже известной быть NP-завершенным.

Со вторым условием есть небольшая ошибка. На самом деле, вам нужно доказать, что известная NP-полная задача (скажем, Y ) сводится к этой задаче за полиномиальное время (назовем ее проблемой X ).

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

Еще один способ взглянуть на это доказательство состоит в том, чтобы рассматривать его как использование противопоказательного метода доказательства, который по существу утверждает, что если Y -> X , то ~ X -> ~ Y . Другими словами, неспособность решить Y за полиномиальное время невозможна, значит, также невозможно решить X за многократное время. С другой стороны, если вы можете решить X в поли-времени, то вы также можете решить Y в поли-времени. Кроме того, вы можете решить все проблемы, которые сводятся к Y в поли-времени также транзитивностью.

Я надеюсь, что мое объяснение выше достаточно ясно. Хорошим источником является глава 8 Алгоритм проектирования Клейнберга и Тардоса или глава 34 Кормена и др.

тогда вы также можете решить Y в поли-времени. Кроме того, вы можете решить все проблемы, которые сводятся к Y в поли-времени также транзитивностью.

Я надеюсь, что мое объяснение выше достаточно ясно. Хорошим источником является глава 8 Алгоритм проектирования Клейнберга и Тардоса или глава 34 Кормена и др.

тогда вы также можете решить Y в поли-времени. Кроме того, вы можете решить все проблемы, которые сводятся к Y в поли-времени также транзитивностью.

Я надеюсь, что мое объяснение выше достаточно ясно. Хорошим источником является глава 8 Алгоритм проектирования Клейнберга и Тардоса или глава 34 Кормена и др.

5
ответ дан 29 November 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: