Сложность вычислений
Машина Тьюринга как вычислительная модель. Примеры вычислений на детерминированной одноленточной машине Тьюринга. Проблемы, решаемые за полиномиальное время, сложность арифметических проблем. Применение теории сложности в программировании и криптографии.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 25.01.2015 |
Размер файла | 375,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Имитируется работа универсальной машины U на входе (M,).
Если (M,) L u, т.е. M не допускает вход , то M' прекращает работу, не допуская свой вход x.
Если (M,) L u, т.е. M допускает , то далее M' имитирует работу машины ML на входе x и допускает, так как xL и ML допускает язык L.
Таким образом, для рассматриваемого свойства , где , Lu < L , следовательно, язык L неразрешим.
b) Допустим, что . Рассмотрим , дополнение свойства , т.е. множество РП-языков, не обладающих свойством . Свойство содержит , так что как в части a) можно доказать неразрешимость языка L . Поскольку язык L есть множество кодом машин, не допускающих свойство , то L = L . Если предположить, что язык L разрешимый, то по теореме Поста, его дополнение - рекурсивный язык, что не верно.
Неразрешимые проблемы, связанные с языками машин Тьюринга:
Пуст ли язык, допускаемый машиной Тьюринга?
Конечен ли язык, допускаемый машиной Тьюринга?
Регулярен ли язык, допускаемый машиной Тьюринга?
Контекстно-свободен язык, допускаемый машиной Тьюринга?
Разрешимые (тривиальные) проблемы, связанные с языками машины Тьюринга:
Содержит ли машина Тьюринга данное число состояний?
Существует ли вход, допускаемый машиной Тьюринга за данное число переходов?
Тема 3. Труднорешаемые проблемы
§1. Классы P и NP
§2. Проблемы, решаемые за полиномиальное время
2.1 Алгоритм Крускала
2.2 Сортировки
§3. Полиномиальное сведение
§4. NP - полные проблемы
4.1 Проблема выполнимости булевой функции (ВЫП)
4.2 NP - полнота проблемы выполнимости КНФ (КНФ)
4.3 NP - полнота проблемы выполнимости 3-КНФ (3-КНФ)
4.4 Проблемы, к которым сводится проблема 3-КНФ:
Проблема независимого множества (НМ)
Проблема узельного покрытия (УП)
Проблема ориентированного гамильтонова цикла (ОГЦ)
Проблемы, к которым сводится проблема ОГЦ:
Проблема неориентированного гамильтонова цикла (НГЦ)
Проблема коммивояжера (ПК).
Самостоятельные занятия
[5], раздел 2.
[1], глава 10.
Машина Тьюринга M имеет временную сложность T(n), если на входе длины n машина M делает не более T(n) переходов и останавливается независимо от того, допущен вход или нет. Язык L принадлежит классу P, когда для некоторой машины M с временной сложностью T(n) = p (n), где p (n) - полином, L = L(M). Напомним, что в данной ситуации нет разницы между языками, допускаемыми и распознаваемыми за полиномиальное время.
Пример P - проблемы: алгоритм Крускала.
Проблема построения остовного дерева минимального веса связного неориентированного графа решается при помощи алгоритмов Крускала и Прима. Каждый из них реализуется за полиномиальное время. Оба алгоритма используют принцип “жадной” стратегии, выбирая на каждом шаге “локально наилучший” вариант. На вход вычисляющей машины подается граф, представляемый своими вершинами и ребрами. Каждому ребру приписан целочисленный вес. Остовное дерево - это связный подграф, не имеющий циклов, содержащий все вершины графа. Остовное дерево минимального веса (ОДМВ) - это дерево наименьшего веса среди остовных деревьев графа.
Построение алгоритма Крускала:
Базис. Вначале каждая вершина есть компонента связности.
Индукционный шаг. Среди еще не выбранных ребер рассматриваем ребро минимального веса. Если связываемые этим ребром вершины принадлежат разным компонентам связности, то
ребро добавляется в остовное дерево;
связанные этим ребром компоненты связности объединяются.
В противном случае ребро отбрасывается. Выбор заканчивается, если выбраны все ребра, или когда число ребер остовного дерева не станет равным V - 1.
Лемма 1. Пусть G = (V, E) - связный неориентированный граф; S = (V,T) - его остовное дерево. Тогда a) v1, v2 V ! v1 v2 (путь в S).
Если к дереву S добавить ребро (v1,v2) E \ T, то возникнет точно один цикл.
Доказательство. a) В противном случае S содержит цикл, что невозможно. b) В противном случае в S уже был цикл, что невозможно.
Лемма 2. Пусть G = (V,E) - связный неориентированный граф, ребрам которого приписаны целочисленный вес f : E N.
Если {(V1, T1), … , (Vk , Tk)}- лес, где V = Vi , T = Ti (k > 1);
i=1..k i=1..k
e = (v, w) E \ T - ребро наименьшего веса в E \ T, где v V1, w V1.
Тогда найдется остовное дерево, содержащее T{e}, веса, меньшего веса любого остовного дерева, содержащего T.
Доказательство. Допустим, что S' = (V, T' ) - остовное дерево графа G, содержащее T и не содержащее e, наименьшего веса среди остовных деревьев, содержащих T{e}. По лемме 1 добавление к S' ребра e образует цикл. Этот цикл будет содержать ребро e' = (v', w' ) e, где
v' V1, w' V1. По условие f (e) f (e' ).
Рассмотрим подграф S, образованный удалением e' из S' и добавлением в S' ребра e. В S нет циклов, поскольку единственный цикл S' был разорван удалением ребра e'. Граф S связный, так как вершины v' и w ' остались соединенными другим путем цикла в S' . Таким образом, S - остовное дерево, содержащее T и e, и f(S) f(S' ), что противоречит допущению минимальности дерева S'.
Теорема. Алгоритм Крускала строит ОДНB для связного графа G=(V,E).
Время работы алгоритма не более O(e (e+m)).
Доказательство. Корректность алгоритма следует из леммы 2.
Номер компонента каждого узла (вершины) хранится в некоторой таблице. Выбор ребра наименьшего веса среди оставшихся занимает время O(e), а поиск компонент, в которых находятся вершины этого ребра - O(m). Если вершины принадлежат разным компонентам, на просмотр таблицы для объединения всех узлов с соответствующими номерами нужно время - O(m). Таким образом, общее время работы алгоритма - O(e(e+m)). Это время полиномиально зависит от “размера” входных данных, т.е. m +e.
Для реализации решения проблемы ОДМB на машине Тьюринга потребуются уточнения как постановки задачи, так и времени решения.
- Проблема поиска ОДМВ для реализации на машине Тьюринга может быть сформулирована так: “Для связного графа G и предельного числа W выяснить, имеет ли G остовное дерево с весом не более W ?”
- Поскольку входом машины Тьюринга является слово в некотором конечном алфавите, поэтому объекты входа алгоритма Крускала должны быть закодированы. Так что полученная цепочка превысит предполагаемый “размер” входа на логарифмический сомножитель от размера входных данных. Таким образом, все, что делается за полиномиальное время с использованием одной меры, можно сделать за полиномиальное время, используя другую меру.
Пример. Рассмотрим кодирование входа проблемы ОДМВ в алфавите, содержащем символы: 1,0, (,) , “,” .
Вершины графа обозначим числами 1,…,m.
В начало кода поместим значения m и предельного веса W в двоичной системе счисления, разделенные запятой.
Для ребра (i,j) веса w код записывается в виде ( i, j, w), где числа заданы в двоичной системе.
Для графа, изображенного на рис. 10.1 с W=40, код имеет вид:
100,101000(1,10,1111)(1,11,1010)(10,11,1100)(10,100,10100)(11,100,10010).
Далее описанная версия алгоритма будет реализована на многоленточной машине Тьюринга за O(n2) шагов, где n = m+e:
На первой ленте которой будем хранить информацию об узлах и текущих номерах компонентов, их содержащих.
Вторая лента используется для хранения информации о ребре наименьшего в данный момент веса среди ребер, не помеченных как “использованные”. Поиск непомеченного ребра наименьшего веса требует времени O(n), поскольку каждое ребро просматривается только один раз, и сравнить вес можно, просматривая код входной цепочки.
3. Если ребро на некотором этапе выбрано, то соответствующие вершины помещаются на третью ленту. Чтобы установить компоненты этих двух узлов, надо просмотреть таблицу узлов и компонентов. Это потребует O(n) времени.
4. Четвертая лента может хранить информацию об объединяемых компонентах i и j. В этом случае просматривается таблица узлов и компонентов, и для каждого узла из компонента i номер компонента меняется на j. Эта процедура требует O(n) времени.
Таким образом, каждый этап работы алгоритма на многоленточной машине Тьюринга выполняется за время O(n). Число этапов e не превышает n, то время полной работы алгоритма равно O(n2). Для одноленточной машины Тьюринга на это потребуется O(n4) шагов.
Реализация проблемы ОДМВ (“имеет ли граф G ОДМВ с весом, не более W ?”) принадлежит классу P.
Полиномиальная сводимость в классе P
Дадим определение полиномиальной сводимости в терминах языков. Язык L1 сводится за полиномиальное время к языку L2 : L1 P L 2 , если существует функция f: {0,1}* {0,1}* , вычислимая за полиномиальное время, такая, что для любого
x {0,1}*, x L1 f(x) L2.
Лемма. Если язык L1 {0,1}* сводится за полиномиальное время к языку
L2 {0,1}* и L2 P, то L1 P.
Доказательство. Пусть M2 - машина, распознающая язык L2 за полиномиальное время, F - сводящая машина, вычисляющая на входе x за полиномиальное время значение функции f(x). Построим машину M1 , разрешающую за полиномиальное время язык L1. Ответить на вопрос о принадлежности x языку L1 можно, ответив на вопрос о принадлежности f(x) языку L2 . Т.е. машина M1 получается композицией машин F и M2.
Очевидно, что время работы машины M1 есть O(nk + (cn k) j ) , где n - длина входа x.
NP - полнота и сводимость
Наиболее убедительным аргументом в пользу того, что классы P и NP различны, является существование NP - полных задач. Это самые труднорешаемые задачи в классе NP. Для их решения используются недетерминированные машины Тьюринга с полиномиальным временем работы на ветвях, где они допускают данный вход. Недетерминирован- ная машина имеет возможность угадывать экспоненциальное число решений проблемы и параллельно проверять каждое из них (за полиномиальное время).
Понятие полиномиальной сводимости позволяет придать точный смысл тому, что одна проблема не менее сложна, чем другая.
Язык L {0,1}* называется NP - полным, если
1) L NP и
для любого L' NP : L' P L .
Теорема. Если некоторая NP - полная задача разрешима за полиномиальное время, то P = NP. Если в классе NP существует задача, не разрешимая за полиномиальное время, то все NP - полные задачи не разрешимы за полиномиальное время.
Доказательство. Пусть L - NP - полный язык разрешимый за полиномиальное время. По свойству 2, для любого языка L' NP : L' P L .
Тогда по лемме, L' P, так что P = NP.
Если некоторый язык L' NP не разрешим за полиномиальное время, и так как любой язык из класса NP полиномиально сводим к NP - полному языку L, то L не разрешим за полиномиальное время. Иначе по первой части теоремы, L' разрешим за полиномиальное время, что противоречит условию.
Таким образом, гипотеза P NP означает, что NP - полные задачи не могут быть решены за полиномиальное время на детерминированной машине Тьюринга.
Проблема выполнимости
Первой NP - полной проблемой будет проблема выполнимости булевых формул (ВЫП). Это составит содержание теоремы Кука.
Алфавит булевых формул содержит пропозициональные переменные, символы операций: &, , , символы 1, 0, вспомогательные символы: ( , ). Определение булевой формулы известно из математической логики. Формула выполнима, если найдется набор 0-1-значений переменных, на котором формула принимает значение 1.
Представим пропозициональные буквы в виде натуральных чисел, символ & как , символ как +, символы: , 1, 0, скобки - сохраним без изменения. Так что булева формула примет вид цепочки, составленной из символов натуральных чисел (которые мы представим в двоичной системе) и символов: , + , 0, 1, (, ).
Предложение. Язык ВЫП, состоящиий из цепочек, представляющих выполнимые булевы функции, принадлежит классу NP.
Доказательство. Недетерминированная машина Тьюринга, распознающая язык ВЫП, “угадывает” выполняющий набор T 0-1-значений пропозициональных переменных во входной цепочке 0, представляю щей булеву формулу, если такой набор существует. Угадывание есть параллельная работа на всех ветвях дерева вычислений недетерминированной машины. После подстановки значений 0-1 вместо пропозициональных переменных необходимо осуществить сдвиги, чтобы убрать
освободившиеся ячейки, занятые перед этим двоичными представлениями натуральных чисел, представляющих пропозициональные переменные. Если 0 (T) = 1, то машина допускает вход 0, даже если другие ветви не приводят в допускающее состояние, как следует из определения недетерминированной машины Тьюринга.
Значение формулы с помощью многоленточной недетерминированной машины Тьюринга можно осуществит за 0(n2) переходов. Таким образом, процесс распознавания ВЫП многоленточной машиной Тьюринга занимает время O(n2), поэтому язык ВЫПNP.
Теорема Кука. Проблема ВЫП NP - полна.
Доказательство. Первая часть теоремы была доказана в предложении.
Покажем, что произвольный язык L из NP полиномиально сводится к языку ВЫП. Для языка L NP найдется недетерминированная одноленточная машина Тьюринга, обрабатывающая вход длины n не более, чем за p(n) шагов вдоль любой ветви. По M, будем строить булеву формулу 0, выполнимую тогда и только тогда, когда M допускает . Сводящий алгоритм должен иметь полиномиальную сложность. Пусть M имеет состояния q1, q2 ,…,q s и ленточные символы X1, X 2,…,X m. Если M допускает вход длины n, то делает это не более, чем за p(n) шагов. В этом случае найдется последовательность МО Q0, Q1,…,Q q, где Q0 - начальное, а Qq - заключительное (допускающее) МО, Qi -1 + Q i для 1 i q , q p(n), и ни одно МО не занимает на ленте более p(n) клеток.
Булева функция 0, которую мы собираемся построить, должна моделировать последовательность МО, проходимых машиной, и принимает значение 1, когда моделируемая последовательность МО приводит к допусканию входа. Другими словами, булева функция выполнима, когда M допускает вход . В качестве пропозициональных переменных берем следующие предикаты:
1. С< i, j, t > = 1 тогда и только тогда, когда i-я клетка ленты машины M содержит символ X j в момент времени t, где 1 i p(n), 1 j m ,
0 t p (n).
2. S< k, t > = 1 тогда и только тогда, когда M в момент времени t находится в состоянии q k, где
1 k s , 0 t p(n) .
3. H< i, t > = 1 тогда и только тогда, когда головка в момент времени t обозревает i-ю клетку, где
1 i p(n) , 0 t p(n).
Пропозициональных переменных всего O(p(n)2), их представление двоичными числами займет не более c log n разрядов, где c - константа, зависящая от p. Из этих пропозициональных переменных построим функцию 0, следуя структуре последовательности МО Q0, Q1,…,Q q.
Введем предикат U(x1,…,x r ), принимающий значение 1, когда в точности один из аргументов x1,…,xr принимает значение 1. Очевидно, что
U (x 1,…,x r) = (x 1 +…+ x r ) ( П (x i + x j )),
i j
где первый множитель означает, что по крайней мере одна из переменных xi истинна, остальные r (r-1)/2 сомножителя утверждают, что никакие две переменные не являются одновременно истинными. Длина цепочки, представляющей предикат U (x1,…,x r ), порядка O(r2).
Если машина M допускает вход , то найдется последовательность МО Q0, Q1,…,Qq, проходимых машиной в ходе обработки цепочки .
Поскольку сложность вычислений машины M на входе длины n не превосходит p(n), для удобства будем считать, что машина делает точно p(n) шагов, допуская вход , а все МО содержат p(n) клеток, в противном случае этого легко добиться, добавляя не меняющие последнее МО переходы, а также дополняя МО пустыми символами.
Построим семь формул, которые будут утверждать, что Q0, Q1,…,Q p (n) - допускающая последовательность, что фактически означает следующее:
в каждом МО головка обозревает одну клетку;
в каждом МО в каждой клетке записан один символ;
каждое МО содержит одно состояние;
при переходе Q i-1 + Q i (1 i p(n)) изменяется разве что содержимое обозреваемой ячейки;
переход Q i-1 + Q i (1 i p(n)) осуществляется в соответствии с функцией переходов машины M;
Q0 - начальное МО;
Q p( n) - заключительное МО.
Построим булевы формулы, интерпретируемые как утверждения 1-7:
1. A = A 0 A1…A p (n) утверждает, что в каждый момент времени машина M обозревает в точности одну клетку, соответственно At утверждает, что в момент времени t обозревается точно одна клетка, где
At = U (H< 1, t >, …,H< p(n), t >). Формула A имеет длину O(p3(n)).
B = П B i t утверждает, что каждая клетка в каждый момент времени i, t содержит точно один символ, соответственно B i t утверждает, что i-я клетка в момент времени t содержит точно один символ, где
B i t = U ( C < i, 1, t>, …, C < i, m, t >). Формула B имеет длину O(p2(n)).
3. С = П U (S < 1, t >,…, S <s, t >) утверждает, что в каждый момент
0 t p( n)
времени машина M находится точно в одном состоянии. Формула С имеем длину O( p(n)).
4. D = П ( (С < i, j, t > С < i, j, t + 1 >) + H < i, t > ) утверждает, что
i,j,t
в любой момент времени t можно изменить содержимое не более, чем одной ячейки, а формула
(С < i, j, t > С < i, j, t + 1 >) + H < i, t >
утверждает, что либо a) в момент времени t головка обозревает ячейку i, либо b) в момент времени t+1 в клетке i записан символ j тогда и только тогда, когда он был записан там в момент времени t.
Длина формулы D равна O(p2(n)).
5. E = П Ei j k t утверждает, что очередное МО получается из предыдущего i , j, k, t одним переходом, согласно функции переходов машины M, где Ei j k t означает одно из следующих утверждений:
в момент времени t клетка i не содержит символа j;
в момент времени t головка не обозревает клетку i;
в момент времени t машина M не нааходится в состоянии k;
очередное МО машины M получается из предыдущего переходом, задаваемым функцией .
E i j k t = C < i, j, k > + H< i, t > + S< k, t > + ( C<i, jl , t+1 >
S< kl , t+1> H< il , t+1>), i
где l пробегает по всем шагам машины M, когда M обозревает символ Xj в состоянии qk. Т.е. для каждой тройки < q, X, d > из (q k, Xj) существует одно значение l, для которого Xjl = X, q kl = q и число il равно i -1, i или i+1 в зависимости от значения d, равного соответственно L, S, R. Поскольку машина M недетерминированная, таких троек < q, X, d > может быть несколько, но их конечное число, таким образом Ei j k t имеет ограниченную длину, не зависящую от n. Формула E имеет длину O(p2(n)).
6. F = S< 1, 0 > H< 1,0 > П C< i, j i , 0 > П C< i, 1, 0 >, где S< 1, 0 > утверждает, 1 i n n i p(n) что в момент t =0 машина M находится в начальном состоянии q1; H< 1, 0 > утверждает, что M в момент t=0 обозревает самую левую ячейку ленты; П C< i, j i , 0 > утверждает, что первые n клеток вначале содержат входную цепочку ;1 i n П C< i, 1, 0 > утверждает, что остальные клетки вначале пусты.
n i p( n)
( соответствует в алфавите X1). Формула F имеет длину O(p(n)).
7. G = S < s, p(n) > утверждает, что M в конце концов приходит в заключительное состояние qs.
Булева формула 0 есть произведение ABCDEFG. Каждый сомножитель содержит не более, чем O(p3(n)) символов, так что сама формула 0 состоит не более, чем из O(p3(n)) символов. Представляя пропозициональные переменные цепочками длины O(log n), получим в качестве верхней границы длины 0 величину порядка O(p3(n) log n), что не превосходит cnp3(n), где c - некоторая константа. Таким образом, формулу 0 можно построить за время, пропорциональное ее длине.
По данной допускающей последовательности МО Q 0, Q 1,…,Q q можно, очевидно найти 0-1-набор для пропозициональных переменных C< i, j, t>, S< k, t >, H< i, t >, на котором 0 истинно. Обратно, по 0-1-набору, обращающем 0 можно найти допускающую последовательность МО. Таким образом, формула 0 выполнима тогда и только тогда, когда M допускает цепочку . Тем самым построен алгоритм полиномиальной сложности, сводящий язык L NP к языку ВЫП. Тем самым задача ВЫП NP-полна.
Следствие. Задача выполнимости булевых формул, находящихся в конъюнктивной нормальной форме (ВКНФ), NP - полна.
Говорят, что формула находится в k-конъюнктивной нормальной форме (k-КНФ), если она есть произведение сумм, состоящих не более чем из k литералов. Для k=1, 2 известны детерминированные полиномиальной сложности алгоритмы, распознающие языки 1-КНФ и 2-КНФ.
Рассматриваемая ниже задача 3-выполнимости, как и задачи ВЫП и ВКНФ, представляют интерес не только сами по себе, но и в связи с тем, что они полиномиально сводятся еще к ряду задач, откуда следует NP- полнота последних.
Теорема. Задача 3-выполнимости NP-полна.
Доказательство. Покажем, что выполнимость формул в КНФ полиномиально сводится к 3-выполнимости. Заменим каждый член (x1 + x2+…+x k), на (x 1 + x 2 + y 1)(x 3 + y 1 + y 2)( x 4 + y 2 + y 3)…(x k -1 + x k+ yk -3) (k 4), где y 1, y 2,…,y k-3 - новые переменные.
Присвоить значения новым переменным так, чтобы вновь полученная формула приняла значение 1, можно тогда и только тогда, когда исходная формула принимает значение 1.
Длина формулы, получаемой в результате описанной замены, превосходит длину исходной формулы не более, чем в постоянное число раз. Таким образом, по данной формуле E в КНФ можно найти формулу E' в 3-КНФ, выполнимую тогда и только тогда, когда выполнима исходная формула. Причем, E' находится за время, пропорциональное длине формулы E.
Тема 4. Другие сложностные классы
§1. Дополнение языков из NP
1.1 Класс языков co-NP
1.2 Классы PS и NPS
1.3 PS - полнота. Булевы фукнкции с кванторами (КБФ)
§2. Классы языков, основанных на рандомизации
2.1 Быстрая сортировка как пример рандомизированного алгоритма
2.2 Язык рандомизированной машины Тьюринга
2.3 Класс RP
2.4 Класс ZPP
Самостоятельные занятия
[1], глава 11
[4], глава 10.6
Класс co-NP - дополнений языков из NP. Если P = NP, то класс co-NP равен обоим, так как класс P замкнут относительно дополнения. Однако более вероятно, что ни одна NP-полная проблема не принадлежит co-NP.
Класс PS содержит проблемы, которые решаются на машинах Тьюринга с полиномиальной емкостной сложностью относительно длины входа. Здесь будет доказано, что при таком ограничении недетерминизм не увеличивает мощности машины Тьюринга. Однако, несмотря на то, что NP PS, нет оснований считать эти классы равными. Существует PS-полная проблема, которая предположительно не принадлежит NP.
Рандомизированные алгоритмы, реализуемые машинами Тьюринга, использующими при вычислениях последовательность случайных чисел, и определяемые ими два класса языков - RP и ZPP. Языки класса RP (случайные полиномиальные языки) имеют алгоритм, работающий полиномиальное время, используя генератор случайных чисел. Алгоритм или подтверждает принадлежность входа языку, или отвечает “не знаю”. Кроме того, если вход на самом деле принадлежит языку, повторное применение к нему алгоритма подтвердит принадлежность с вероятностью, близкой к 1. Языки класса ZPP (безошибочные, вероятностные полиномиальные) также используют случайные числа, но алгоритм дает ответ: “да”, если вход принадлежит языку, и “нет” - в противном случае . Ожидаемое время работы алгоритма полиномиально, однако возможно, что выполнение алгоритма потребует больше времени, чем полиномиальное.
Класс co-NP
Класс языков P замкнут относительно дополнения. Пусть L P и L=L(M). Для допускания L' изменим M следующим образом: введем новое заключительное состояние q и новые переходы в q из тех состояний, в которых M останавливалась, не допуская, заключительные состояния M сделает недопускающими. Измененная машина Тьюринга допускает язык L' и время ее работы совпадает с T(M)+1. Т.е. L' P, если L P.
Hаиболее вероятно, что дополнения NP-полных проблем не принадлежат NP, поэтому в co-NP нет ни одной NP-полной проблемы.
С другой стороны, дополнения NP-полных проблем принадлежат co-NP, так что не находятся в NP.
Пример. Язык ВЫП принадлежит классу NP, его дополнение НВЫП, содержащее все невыполнимые булевы формулы и слова, не являющиеся кодами допустимых булевых формул, принадлежит co-NP. Вероятно, что НВЫП NP, но доказательство последнего утверждения равносильно проблеме P NP.
NP-полные проблемы и co-NP.
Предположим, что P NP. Допустим, что NP = co-NP. Тогда проблемы типа НВЫП можно решить за полиномиальное время на недетерминированной машине Тьюринга, но нельзя решить за полиномиальное время на детерминированной машине. Последнее противоречит допущению.
Теорема. NP = co-NP тогда и только тогда, когда существует NP-полная проблема, дополнение которой принадлежит NP.
Доказательство. Необходимость. Если NP = co-NP, то каждая NP-полная проблема L принадлежала бы как NP, так и co-NP. Но дополнение проблемы из co-NP находится в NP, поэтому дополнение L принадлежит NP.
Достаточность. Пусть R - NP-полная проблема, дополнение которой принадлежит NP. Тогда для любого языка LNP : L< P R , L' < P R'.
Докажем равенство классов NP и co- NP, показав их взаимное включение.
NP co-NP : Пусть LNP. Тогда L' co-NP. Применим к x L` сводящий алгоритм L' < p R' , а результат на выходе подадим недетерминированной машине Тьюринга, вычисляющей проблему R', построенную композицию объявим машиной, вычисляющей язык L', откуда L' NP, cледовательно, L NP.
Co-NP NP. Пусть L co-NP. Тогда существует полиномиальное сведение L' к P, поскольку P является NP-полным, а L' принадлежит NP.
Это сведение является также сведением L к P'. Цепочку x L подадим на вход сводящего алгоритма, выход которого подадим недетерминированной машине, вычисляющей P', полученную композицию объявим недетерминированной машиной, вычисляющей язык L, так что L NP.
Проблемы, разрешимые в полиномиальном пространстве
Рассмотрим класс проблем, включающий классы P и NP. Этот класс определяется машинами Тьюринга с полиномиальной емкостной сложностью (время работы значения не имеет). Дальше будет показано, что классы языков PS и NPS, допускаемые соответственно детерминированными и недетерминированными машинами Тьюринга с полиномиально ограниченным объемом памяти (используемой рабочей лентой), совпадают.
В полиномиальном пространстве существуют полные проблемы P в том смысле, что все проблемы данного класса полиномиально сводимы к P. Таким образом, если P P или P NP, то все языки машин Тьюринга с полиномиально ограниченной емкостью принадлежат P или NP, соответственно. Примером такой проблемы будет язык “булевых формул с кванторами” (КБФ).
Классы PS и NPS.
Включения P PS и NP NPS очевидны. Доказав, что PS = NPS,, получим : P NP PS..
Другой интересный факт, касающийся новых классов, тот, что PS содержит только рекурсивные языки.
Теорема. Если M - машина Тьюринга с полиномиально ограниченным пространством, где p(n)- ограничивающий полином, то существует константа c, что M допускает вход длины n за O(с1+ p(n) ) переходов.
Доказательство. В обосновании существования “c” используется то, что у машины Тьюринга с ограниченным пространством имеется лишь ограниченное число МО. Если t - число ленточных символов, а s - число состояний машины M, то число различных МО машины, использующей p(n) клеток, не более s p(n) t p(n) , т.е. можно выбрать одно из s состо- яний, поместить считывающую головку в одну из p(n) позиций и заполнить p(n) клеток любой из t p(n) последовательностей ленточных символов.
Положим c = s + t и вычислим бином (t + s)1 + p(n) =
1 + t 1 + p(n) + (1 + p(n))s t p(n) + …, где второе слагаемое не меньше
p(n)s t p(n), что доказывает, что c 1 + p(n) не меньше числа возможных конфигураций M. Если машина M допускает вход длины n, то она совершает последовательность конфигураций без повторений. Следовательно, M допускает, совершив не более c 1 + p(n) переходов (количество различных МО).
Теорема. Если L - язык из PS (NPS), то L допускается детерминирован- ной (недетерминированной) машиной Тьюринга с полиномиально ограниченным пространством, которая для некоторого полинома q(n) и константы “c” останавливается, сделав не более с q (n) переходов.
Доказательство. Пусть язык L допускается детерминированной машиной Тьюринга M1 (для НМТ доказательство аналогично), имеющей полиномиальное ограничение пространства p(n). По теореме 11.3, если M1 допускает вход w, то делает около c 1 + p(w ) шагов.
Построим машину M2, имеющую две ленты. На первой ленте M2 имитирует M1, а на второй ведет счет шагов до c 1 + p(w ) и останавливается, не допуская, если это число достигнуто. Поскольку машиной M1 используется не более p (w ) клеток, M2 использует также не более p (w ) клеток первой ленты.
Преобразуя M2 в одноленточную машину M3, можно гарантировать, что M3 использует не более 1 +p (w ) клеток и время работы O(c2 p(w )).
Машина M3 совершает не более dc 2 p(w ) переходов для некоторой константы d, поэтому можно выбрать q(n) = 2 p(n) + log c d, где n - длина входа. Тогда M3 совершает не более cq(n) шагов. M2 всегда останавливается, поэтому то же делает и M3. M1 допускает L, поэтому M2 и M3 допускают L. Таким образом, M3 удовлетворяет теореме.
Теорема (Теорема Сэвича). PS = NPS.
Доказательство. Очевидно, что PS NPS , поскольку каждая ДМТ является также и НМТ. Доказываем обратное включение: NPS PS, т.е. если L допускается НМТ N с ограничением пространства p(n), где p(n)- полином, то L также допускается ДМТ D с ограничением пространства полиномом q(n). Доказательство основано на имитации НМТ N с помощью ДМТ D.
Машина D с помощью рекурсивной процедуры проверяет, что пере- ход от одной МО I к другой - J осуществляется не более, чем за m переходов. По теореме 11.3, если N допускает, то делает это в пределах c1+p(n) шагов, где c - некоторая константа, также и m не превышает cp(n). Получив вход w, машина D исследует тройки вида [I0, J, m ], где I0 - исходное МО, J - заключительное МО машины N, в котором используется не более p(n) клеток. m в каждом вызове рекурсивной процедуры уменьшается в два раза, пока не станет равным 1. Рекурсивных вызовов не более log 2 m, так что элементов [I, J, m/2i] - log 2 m, т.е. log 2 c1+p(n), или O(p(n)).
Каждый элемент вызова занимает пространство O(p(n)), для записи каждого МО требуется 1+p(n) клеток, а для записи в двоичном виде - log2 c1+p(n), т.е. O(p(n)) клеток.
Таким образом, D использует пространство O(p2(n)), т.е. L допускается ДМТ с полиномиально ограниченным пространством.
Проблема, полная для класса PS.
Проблема P определяется как полная для PS (PS-полная), если :
P PS.
Все языки L из PS полиномиально сводимы к P.
Теорема. Пусть P - PS-полная проблема. Тогда :
a) если P P, то P = PS;
b) если P NP, то NP = PS..
Доказательство. Докажем (a). Дано, что P - PS-полная проблема, тогда любой язык L из PS полиномиально, за время q (n), сводим к P. Пусть P P и время работы допускающей ДМТ задается полиномом p(n) .
Цепочка w принадлежит языку L тогда и только тогда, когда, используя сведение, можно получить цепочку x, принадлежащую P. Поскольку сведение занимает время q (w), цепочка x не может быть длинее, чем q (w). Принадлежность x к языку P можно проверить за время p(x), т.е. p(q (w)), полиномиальное относительно w. Следовательно, для L сушествует полиномиальный по времени алгоритм и L P. Таким образом, PS P. Обратное включение очевидно.
Доказательство (b) аналогично с заменой ДМТ на НМТ.
Примером PS-полной проблемы будет класс “булевых формул с кванторами ” (КБФ). Проблема формулируется так: имеет ли булева формула с кванторами без свободных переменных значение 1 ?
Доказательство основано на идеи теоремы Кука - представления вычисления машины Тьюринга логическими переменными, каждая из которых говорит, имеет ли определенная клетка определенное значение в определенный момент времени. Однако, если в теореме Кука речь шла о полиномиальном времени, поэтому там присутствовало полиномиальное количество переменных, здесь время может быть экспоненциальным, т.е. число МО, а полиномиально пространство вычислений.
Вторая идея - рекурсивной проверки, что одно МО превращается за некоторое, теперь уже экспоненциальное, время m, реализуется благодаря способности самого языка булевых формул с кванторами выражать такого рода факты в пределах полиномиальной длины, даже если m экспоненциально относительно длины входа.
Утверждение разбито на две части : КБФ PS и каждый язык из PS полиномиально (по времени) сводим к КБФ.
Теорема. КБФ принадлежит PS.
Доказательство. Рекурсивный процесс вычисления КБФ F может быть организован с использованием магазина, хранимого на ленте машины Тьюринга, как в доказательстве теоремы Сэвича. Пусть n - длина F. Тогда для F создается запись длиной O(n), включающая саму F и пространство для записи обрабатываемых подформул F. Вычисления проводим индукцией по построению формулы F:
Пусть F = F1 + F2 , тогда выполняем следующее :
помещаем F1 в ее собственную запись справа от записи F;
рекурсивно вычисляем F1;
если значением F1 является 1, то возвращаем 1 как значение F;
если значение F1 есть 0, то ее запись заменяем записью F2 и рекурсивно вычисляем F2;
в качестве значения F возвращаем F2.
Пусть F = x E. Тогда выполняем следующее :
подставляем вместо x значение 0 и полученную запись E0 помещаем справа от записи F;
рекурсивно вычисляем E0;
если значение E0 равно 1, то возвращаем 1 как значение F;
если значение E0 равно 0, на место E0 помещаем запись E1, подставляя 1 вместо x, и рекурсивно вычисляем E1;
в качестве значения F возвращаем значение E1.
Для остальных форм F (F1F2, E, x E) доказательства аналогичны. Для базисного случая, когда F- константа, она возвращается без записей на ленте
Посчитаем объем памяти (ленты). Если F - длины n, на ленте n записей, каждая длиной O(n). Поэтому объем памяти не не превышает O(n2). Таким образом, машина Тьюринга, допускающая КБФ с полиномиально ограниченным пространством. Время работы алгоритма экспоненциально относительно n.
Для сведения языка L из PS к проблеме КБФ воспользуемся идеей доказательства теоремы Кука, где использовались пропозициональные переменные yijA для утверждения, что в j-й позиции i-го МО находится символ A. Однако, поскольку МО экспоненциальное число, воспользуемся квантификацией, чтобы с помощью одного и того же множества переменных представлять много различных МО.
Теорема. Проблема КБФ PS-полна.
Доказательство. Пусть L - язык из PS , допускаемый недетерминированной машиной M, которая на входе длины n использует не более p(n) клеток. По теореме Сэвича существует константа “c”, для которой M допускает вход за c 1+ p(n) переходов (если допускает). Опишем, как за полиномиальное время по входу w длины n построить КБФ E без свободных переменных, имеющее значение 1 тогда и только тогда, когда
w L(M).
Для записи E потребуется ввести полиномиальное число переменных yj A, утверждающих, что j-я позиция представляемого МО содержит символ A - ленточный или состояние M (j может изменяться от 0 до p(n)).
Предположим, что пропозициональные переменные разных МО различны. Но поскольку разных МО полиномиальное число, общее количество пропозициональных переменных полиномиально.
Обозначим кванторную приставку (x1x2…xm), где x1, x2,…,xm - все пропозициональные переменны МО I как (I); аналогично для квантора всеобщности - (). КБФ примет вид :
(I0) (If) (S & N & F), где
I0 и If - переменные МО, представляющие начальное и допускающее М, соответственно.
S - выражение, говорящее, что I0 является начальным МО машины M на входе w.
N - выражение, говорящее о переходах M при преобразовании I0 к If.
F - выражение, говорящее, что If является допускающим МО.
О каждой формуле в деталях:
S - конъюнкция литералов; каждый литерал - одна из переменных МО. Литерал yj A входит в I0 , если в j-й позиции начального МО с входом w находится символ A, в противном случае в I0 входит yj A.
Таким образом, если w = a 1a 2…a n , то без отрицания в МО I0 входят
y0q 0 , y1a1 , y2a2 ,…, ynan и все yj B для j = n+1, n+2,…, p(n),
где q0 - начальное состояние и B = , а все остальные переменные МО I0 - с отрицаниями.
If - допускающее МО, если содержит заключительное (допускающее) состояние. F - дизъюнкция переменных yj A, выбранных из пропозициональных переменных МО If , для которых A является допускающим состоянием. Позиция j произвольна.
N - строится с помощью метода, позволяющего удвоить число рассматриваемых переходов, добавив лишь O(p(n)) символов и затратив O(p(n)) времени. Равенством I = J обозначим конъюнкцию выражений
( yj A z j A + yj A z j A),
где j изменяется от 0 до p(n), а A - любой ленточный символ или состояние M, МО I состоит из переменных yj A и J - из переменных z j A.
Ni (I, J) - означает, что переход от МО I к МО J занимает не более i переходов, обозначается I + i J, i = 1,2,4,… . В этих выражениях свободны только переменные I и J, остальные переменные связаны.
Базис. Для i = 1 выражение Ni (I, J) устанавливает, что I = J или I + 1 J, т.е. N1(I, J) есть дизъюнкция этих утверждений. N1 (I, J) записывается за время O(p(n)).
Индукционный шаг. По Ni строим N2i . Корректный способ записи N2i состоит в том, чтобы в выражении записывать одну копию Ni , подставляя как (I, K), так и (K, J) в одно и то же выражение. Таким образом, в N2i (I, J) используется одно подвыражение Ni (P, Q). N2i (I, J) утверждает, что существует МО K, при котором для всех МО P и Q выполняется хотя бы одно из следующих условий :
1) (P, Q) (I, K) и (P, Q) (K, J); 2) Ni (P, Q) - истинно.
Иными словами, Ni (I, K) и Ni (K, J) истинны, а для других пар МО
(P, Q) истинность Ni (P, Q) не имеет значения. Итак, КБФ имеет вид :
N2i (I, J) = (K)(P)(Q)(N i (P, Q) ( (I = P & K = Q) & (K = P & J = Q))).
На запись N2i (I, J) уходит время, необходимое для записи N i , а также O(p(n)) для дополнительной работы.
Чтобы завершить построение N, нужно записать Nm для наименьшего m, которое является степенью 2 и не меньше c1+ p(n) - максимально возможного числа переходов, совершаемых M до заключительного (допуска- ющего) состояния. Количество применений шага индукции, описанного выше, равно log2 (c1+ p (n) ), или O(p(n)). Поскольку каждое исполнение шага индукции требует O(p(n)) времени, то N строится за время O(p2(n)).
Завершение доказательства теоремы. Выше было показано, как преобразовать вход w в КБФ - (I0) (If) (S & N & F) за время, полиномиальное относительно w. Было доказано, что выражения S, N, F - истинны тогда и только тогда, когда их свободные переменные представляют МО I0 и If , являющиеся соответственно начальным и заключительным МО в вычислениях машины M на входе w. Таким образом, данная КБФ имеет значение 1 тогда и только тогда, когда M допускает w.
Классы языков, основанные на рандомизации
Вероятностная машина отличается от детерминированной тем, что в левой части инструкции появляется еще один символ - выходное значение датчика случайных чисел с конечным алфавитом, который на каждом шаге работы выдает свои значения равновероятно и независимо от значений, выданных на других шагах. Вероятность “p” вычисления на вероятностной машине на входе “x” результата “y” равна сумме вероятностей всех реализаций “y” на входе “x”. Говорят, что машина выдает результат “y” для входа “x” со сложностью m (временной, ленточной) и вероятностью “p”, если на входе “x” с вероятностью не меньшей p, израсходовав не более m единиц (шагов, ячеек памяти), машина останавливается с результатом “y”. Таким образом, для вероятностной машины возможно, хотя и с малой долей вероятности, получить неверный результат.
...Подобные документы
Простое вычислительное устройство машина Тьюринга и ее алгоритмические свойства. Тезис Черча–Тьюринга и моделирование машины Тьюринга (операции перезаписи ячеек, сравнения и перехода к другой соседней ячейке с учетом изменения состояния машины).
контрольная работа [23,3 K], добавлен 24.04.2009Временная и ёмкостная сложность программы. Размер входных данных. Связь сложности в худшем случае и в среднем. Понятие оптимальной программы. Классы вычислительной сложности программ. Эквивалентность по сложности. Примеры классов вычислительной сложности.
презентация [77,3 K], добавлен 19.10.2014Примеры запросов к одной из поисковых систем Интернет (подбор ключевых слов) и расчетов в табличном процессоре MS Excel (инструменты). Описание машины Тьюринга: составляющие и их функционирование. Основные форматы представления графических данных.
контрольная работа [24,5 K], добавлен 09.06.2009А.М. Тьюринг как английский математик, логик, криптограф, оказавший существенное влияние на развитие информатики. Понятие и назначение машины Тьюринга, принцип ее работы и сферы практического применения. Этапы реализации парадигмы программирования.
реферат [8,1 K], добавлен 04.10.2011Изучение методик языка Javascript по формализации и решению поставленной задачи, технологических приемов разработки программ на языке Javascript, HTML, CSS. Формально определение машины Тьюринга, распознающую язык. Ее программная модель, протоколы работы.
курсовая работа [220,7 K], добавлен 03.03.2015Принципы работы и основы программирования машины Тьюринга, а также перечень правил написания алгоритмов на ее эмуляторе. Особенности решения задачи по сложению нескольких чисел в двоичной системе путем реализации ее алгоритма на эмуляторе машины Тьюринга.
контрольная работа [82,4 K], добавлен 05.12.2010Нормальный алгоритм Маркова. Тезис Маркова и машина Тьюринга. Гипотеза теории алгоритмов. Алгоритмически неразрешимые проблемы. Задача эквивалентности двух слов в ассоциативном исчислении. Задача распознавания выводимости. Линейная оценка сложности.
методичка [57,0 K], добавлен 06.07.2009Общее понятие алгоритма и меры его сложности. Временная и емкостная сложность алгоритмов. Основные методы и приемы анализа сложности. Оптимизация, связанная с выбором метода построения алгоритма и с выбором методов представления данных в программе.
реферат [90,6 K], добавлен 27.11.2012Разложение функций по переменным. Совершенная дизъюнктивная нормальная форма. Разрешимoсть задач в классической теории алгоритмов и их трудоемкость. Память и время как количественная характеристика алгоритма (применительно к машине Тьюринга и ЭВМ).
дипломная работа [59,9 K], добавлен 17.04.2009Методика разработки программы, предназначенной для разбора предложения с помощью многоленточной машины Тьюринга. Цели и назначение данной системы, основные требования, предъявляемые к ней. Организационно-исполнительные работы по содержанию системы.
курсовая работа [386,8 K], добавлен 16.12.2010История и факторы развития облачных вычислений. Роль виртуализации в развитии облачных технологий. Модели обслуживания и принципы работы облачных сервисов. Преимущества облака для Интернет-стартапов. Применение технологии облачных вычислений в бизнесе.
реферат [56,6 K], добавлен 18.03.2015Положения машины Тьюринга. Алгоритмически неразрешимые проблемы: "остановка", эквивалентность алгоритмов, тотальность. Свойства алгоритма: дискретность, детерминированность, результативность, массовость. Выбор структуры данных. Решение на языке Haskell.
курсовая работа [957,6 K], добавлен 16.11.2013Параллельная машина как процессоров, памяти и некоторые методы коммуникации между ними, сферы применения. Рассмотрение особенностей организации параллельности вычислений. Анализ типовых схем коммуникации в многопроцессорных вычислительных системах.
курсовая работа [669,3 K], добавлен 07.09.2015Временная, пространственная и асимптотическая сложности. Основные классы сложности в теории алгоритмов. Сведение как преобразование одной задачи к другой. Проблема равенства классов P и NP. Характеристика основных иерархических отношений между классами.
реферат [16,9 K], добавлен 09.04.2012Сравнение центрального и графического процессора компьютера в параллельных расчётах. Пример применения технологии CUDA для неграфических вычислений. Вычисление интеграла и сложение векторов. Технические характеристики ПК, применяемого для вычислений.
курсовая работа [735,9 K], добавлен 12.07.2015Происхождение и сущность понятия "алгоритм". Основные требования к алгоритмам. Роль абстрактных алгоритмических систем. Алгоритм как абстрактная машина. Алгоритмическая машина Поста. Схема логического устройства и функционирования машины Тьюринга.
реферат [62,2 K], добавлен 16.03.2011Любая вычислительная машина как сложная система, состоящая из множества компонентов на каждом уровне иерархии. Основные особенности внедрения модели виртуального стенда. MATLAB как высокоэффективный язык инженерных и научных вычислений, анализ функций.
дипломная работа [1,6 M], добавлен 24.06.2013Темы исследований в информатике. Основные идеи, которые лежат в основе работы компьютеров. Первая отечественная ЭВМ. Вычислительная сложность алгоритма. Протокол передачи данных. Понятие компьютерной программы. Вычислительная мощность компьютера.
презентация [271,0 K], добавлен 01.11.2014Механические средства вычислений. Электромеханические вычислительные машины, электронные лампы. Четыре поколения развития ЭВМ, характеристика их особенностей. Сверхбольшие интегральные схемы (СБИС). ЭВМ четвертого поколения. Проект ЭВМ пятого поколения.
реферат [56,6 K], добавлен 13.03.2011Сущность и задачи системы грид их практическое применение. Основные идеи, заложенные в концепции грид-вычислений. Уровни архитектуры грид, их характеристика. Технология облачных вычислений. Промежуточное программное обеспечение в распределенных системах.
контрольная работа [736,9 K], добавлен 06.01.2013