
- •23. Оценки сложности алгоритма применительно к машинам Тьюринга
- •24. Определение класса задач, разрешимых за полиномиальное время (класс сложности p) в терминологии машины Тьюринга. Класс задач np.
- •25. Недерминированная машина Тьюринга (нт). Взаимосвязь классов р и np.
- •26. Ещё один подход к определению класса np. Примеры недетерминированных алгоритмов. О проблеме p¹np.
- •27. Примеры задач класса np.
- •2. Проблема существования гамильтонова цикла.
- •29. Примеры np-полных задач: задача определения того, содержит ли неориентированный граф полный подграф
- •30. Необычное свойство недетерминированных алгоритмов — различная сложность задачи разрешения и её дополнения. Практическое значение определения принадлежности задачи классу сложности
25. Недерминированная машина Тьюринга (нт). Взаимосвязь классов р и np.
Определим класс NP в терминах недетерминированной машины Тьюринга.
Определение 1. Недетерминированная машина Тьюринга НТ – это машина Тьюринга с дополнительным угадывающим модулем (УМ) или оракулом, который способен записывать на ленту слова из внешнего алфавита А и разделяющий символ *. При этом алфавит внутренних состояний НТ содержит буквы qy, qn – соответствие ответам «да» и «нет».
НТ осуществляет работу в 2 этапа:
Стадия 1 — угадывание. На ленте машины записано слово a(I) в алфавите А, т.е. код задачи I, начиная с некоторой ячейки с номером 1 слева направо. Левее – в ячейке с номером 0 — записана разделяющая *.
a(I)
-2 -1 0 1
-
,
*
*
c(I)
Угадывающий модуль, просматривая ячейку за ячейкой слово a(I), идет влево от разделительной ячейки и по одному символу за такт записывает слово c(I). Если угадывающий модуль останавливается, то происходит переход ко второй стадии работы НТ. При этом имеем конфигурацию: c(I)*q1a(I). (1)
Стадия 2 — решение. На этой стадии НТ работает, как обычная машина Тьюринга с начальной конфигурацией (1). Если машина через конечное число шагов придет в состояние qy, то говорят, что она принимает конфигурацию (1).
Определение 2. Говорят, что недетерминированная машина Тьюринга НТ принимает слово a(I), если существует слово c(I) такое, что конфигурация c(I)*q1a(I) принимается НТ.
Определим время работы НТ:
,
если a(I)
принимается, где t1(I)
— время работы на стадии 1, т.е. t1(I)=|c(I)|,
t2(I)
— время работы на стадии 2, т.е.
t2(I)=tT(c(I)*
a(I)),
где T — соответствующая
(обычная) машина Тьюринга.
Определим время работы НТ как функцию натурального аргумента
Определение 3. Говорят, что недетерминированная машина Тьюринга НТ решает массовую задачу П за полиномиальное время, если tHT(n)=O(p(n)) для некоторого полинома р. Другими словами, недетерминированная машина Тьюринга НТ решает массовую задачу П за полиномиальное время, если время её работы ограничено сверху полиномом от длины входа.
Определение 4. Класс задач NP – это множество задач, для которых существует недетерминированная машина Тьюринга НТ, принимающая за полиномиальное время те и только те слова, которые соответствуют индивидуальным задачам с ответом «да».
Очевидно, что PÍNP.
Теорема. Если задача П NP, то существует полином р(n) такой, что П может быть решена с помощью детерминированного алгоритма со сложностью О(2р(n)), где n – размер задачи П.
26. Ещё один подход к определению класса np. Примеры недетерминированных алгоритмов. О проблеме p¹np.
Определим NP как класс всех задач, которые можно решить недетерминированными алгоритмами, работающими в течение полиномиального времени, т.е. недетерминированными алгоритмами, в которых всегда есть путь успешного вычисления за время, полиномиальное относительно длины входной строки; очевидно P Í NP. Поскольку путей вычисления может быть экспоненциально много, вероятно, что алгоритмы, допустимые в этом случае, намного сильнее, чем детерминированные алгоритмы, допустимые для задач из P. Например, задача входит в NP, если она может быть решена недетерминированным алгоритмом поиска с возвращением (алгоритм 26.1), в котором
1) для всех k операций «вычислить Sk» и проверки «Верно ли, что Sk ¹ Æ?» и «Является ли (a1, a2, … , ak) решением?» можно сделать за полиномиальное время относительно длины входной строки,
2) длина каждого пути вычисления ограничена полиномом относительно длины входной строки.
k¬ 0
вычислить Si
while Sk
¹
Æ
do
[
не приводит к решению]
неудача
Алгоритм 26.1.Недетерминированный общий алгоритм поиска с возвращением для определения, имеет ли задача решение.
S ¬ {1, 2, … , n} a1 ¬ выбор (S) S ¬ S-{a1} k¬1 cost ¬ 0
while S
¹
Æ
do
cost¬cost
+
if cost £ then успех
else неудача
Алгоритм 26.2. Полиномиально ограниченный недетерминированный алгоритм для определения, имеет ли задача коммивояжера с n городами ( представленная матрицей расстояний между городами n-го порядка)решение стоимости не больше b.
Очевидно, что имеет место включение P Í NP. Вопрос о строгости этого включения, то есть «верно ли, что P¹NP?» остаётся центральной нерешённой проблемой в теории сложности вычислений уже более 30 лет. Хотя общественное мнение склоняется к тому, что классы различны и полезность многих алгоритмов основывается на этой гипотезе, строгость включения до сих пор не доказана. Имеется некоторая (частичная) аналогия между качественной теорией алгоритмов и теорией сложности. Классы P и NP соответствуют классам разрешимых и перечислимых множеств и гипотеза о несовпадении классов P и NP есть аналог известной теоремы о существовании перечислимого неразрешимого множества.
Для того чтобы продемонстрировать силу полиномиально ограниченных недетерминированных алгоритмов и, следовательно, широту класса NP, мы покажем, что некоторый вариант задачи коммивояжера входит в NP. Если задана n´n матрица С расстояний между городами в задаче коммивояжера с n городами, то легко видеть, что алгоритм 22.1 можно модифицировать и получить полиномиально ограниченный недетерминированный алгоритм для определения, существует ли для любой границы b какой – либо маршрут стоимости не больше b; таким алгоритмом является алгоритм 26.2.