NP-полнота задачи BH1N — различия между версиями
(→Доказательство) |
(→Доказательство) |
||
Строка 13: | Строка 13: | ||
Теперь докажем, что <tex>BH_{1N}</tex> принадлежит классу <tex>NPH</tex>. | Теперь докажем, что <tex>BH_{1N}</tex> принадлежит классу <tex>NPH</tex>. | ||
Рассмотрим произвольный язык <tex>L</tex> из класса <tex>NP</tex>. Для него существует машина Тьюринга <tex>m</tex>, такая что <tex>T(m, x)\le p(|x|), L(m) = L</tex>. | Рассмотрим произвольный язык <tex>L</tex> из класса <tex>NP</tex>. Для него существует машина Тьюринга <tex>m</tex>, такая что <tex>T(m, x)\le p(|x|), L(m) = L</tex>. | ||
− | Докажем, что <tex>L</tex> сводится по Карпу к <tex>ВH_{1N}</tex>. Рассмотрим функцию <tex>f(x) = \langle m, x, 1^{p|x|)}\rangle</tex> по входным данным | + | Докажем, что <tex>L</tex> сводится по Карпу к <tex>ВH_{1N}</tex>. Рассмотрим функцию <tex>f(x) = \langle m, x, 1^{p|x|)}\rangle</tex> по входным данным возвращающую тройку из машины Тьюринга, попадающую под описанные выше условия, входных данных и времени <tex>p(|x|)</tex> в унарной системе счисления. Эта функция существует, она своя для каждого языка. Проверим, что <tex>x \in L \Leftrightarrow f(x) \in BH_{1N}</tex>. |
Пусть <tex>x \in L</tex>. Тогда <tex>m(x) = 1</tex>. Время работы <tex>m</tex> не больше <tex>p(|x|)</tex>, а значит слово <tex>x</tex> будет допущено машиной <tex>m</tex> за время не больше, чем <tex>p(|x|)</tex>. А тогда тройка <tex>\langle m,x, 1^{p(|x|)}\rangle = f(x)</tex> будет входить в <tex>BH_{1N}</tex> согласно его определению. , так как <tex>T(m, x)\le p(|x|)</tex> значит для какого-то <tex>t: T(m, x)\le t</tex>. | Пусть <tex>x \in L</tex>. Тогда <tex>m(x) = 1</tex>. Время работы <tex>m</tex> не больше <tex>p(|x|)</tex>, а значит слово <tex>x</tex> будет допущено машиной <tex>m</tex> за время не больше, чем <tex>p(|x|)</tex>. А тогда тройка <tex>\langle m,x, 1^{p(|x|)}\rangle = f(x)</tex> будет входить в <tex>BH_{1N}</tex> согласно его определению. , так как <tex>T(m, x)\le p(|x|)</tex> значит для какого-то <tex>t: T(m, x)\le t</tex>. | ||
Пусть <tex>x \not\in L</tex>. Тогда <tex>m(x) = 0</tex>. Но тогда тройка <tex>\langle m, x, 1^{t}\rangle</tex> не принадлежит <tex>BH_{1N}</tex> при любом <tex>t</tex>, а значит и при <tex>t = p(|x|)</tex>. | Пусть <tex>x \not\in L</tex>. Тогда <tex>m(x) = 0</tex>. Но тогда тройка <tex>\langle m, x, 1^{t}\rangle</tex> не принадлежит <tex>BH_{1N}</tex> при любом <tex>t</tex>, а значит и при <tex>t = p(|x|)</tex>. | ||
Значит произвольный язык из класса <tex>NP</tex> сводится по Карпу к <tex>BH_{1N}</tex>, и <tex>BH_{1N}</tex> принадлежит <tex>NPC</tex>, что и требовалось доказать. | Значит произвольный язык из класса <tex>NP</tex> сводится по Карпу к <tex>BH_{1N}</tex>, и <tex>BH_{1N}</tex> принадлежит <tex>NPC</tex>, что и требовалось доказать. |
Версия 15:03, 17 марта 2010
Определение языка BH_{1N}
Языком
(от англ. bounded halting unary) называется множество троек, где - недетерминированная машина Тьюринга (НМТ), - входные данные и - время в унарной системе счисления, таких, что и время работы машины на входе . { - НМТ, }. Так же существуют языки , , , отличающиеся от только детерминированностью машин Тьюринга ( - детерминированная, - недетерминированная) или системой счисления, в которой представляется время (1 - унарная, 2 - бинарная).Теорема
Язык
принадлежит классу -полных задач: .Доказательство
Для начала докажем, что
принадлежит классу . За время машина Тьюринга может сделать не более недетерминированных выборов. Сертификатом будет множество этих выборов. Проверяющая сертификаты программа эмулирует работу недетерминированной машины Тьюринга на слове . Там, где у машины было несколько выборов, она совершает действие согласно сертификату. При этом проверяется корректность всех действий и замеряется время работы . Сертификатом выбираем недетерминированные выборы . Длина сертификата по длине меньше, чем . Проверяющая программа может проэмулировать , затратив полиномиальное количество времени. Если НМТ допускает слово за время , то существует последовательность действий, которые совершает машина , среди которых могут быть и недетерминированные. Следовательно, существует сертификат . Если же слово не допускается или допускается, но за время, большее , то любая последовательность действий не ведет к допуску слова, а значит нет и последовательности недетерминированных выборов, которые могла бы сделать машина . Все условия принадлежности классу выполнены. Что и требовалось доказать. Теперь докажем, что принадлежит классу . Рассмотрим произвольный язык из класса . Для него существует машина Тьюринга , такая что . Докажем, что сводится по Карпу к . Рассмотрим функцию по входным данным возвращающую тройку из машины Тьюринга, попадающую под описанные выше условия, входных данных и времени в унарной системе счисления. Эта функция существует, она своя для каждого языка. Проверим, что . Пусть . Тогда . Время работы не больше , а значит слово будет допущено машиной за время не больше, чем . А тогда тройка будет входить в согласно его определению. , так как значит для какого-то . Пусть . Тогда . Но тогда тройка не принадлежит при любом , а значит и при . Значит произвольный язык из класса сводится по Карпу к , и принадлежит , что и требовалось доказать.