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>p(|x|)</tex> в унарной системе счисления. Эта функция существует, она своя для каждого языка. Проверим, что <tex>x \in L \Leftrightarrow f(x) \in BH_{1N}</tex>.
+
Докажем, что <tex>L</tex> сводится по Карпу к <tex> BH_{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>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>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} \in NPC</tex>. Что и требовалось доказать.

Версия 15:05, 17 марта 2010

Определение языка BH_{1N}

Языком [math]BH_{1N}[/math](от англ. bounded halting unary) называется множество троек, где [math]m[/math] - недетерминированная машина Тьюринга (НМТ), [math]x[/math] - входные данные и [math]t[/math] - время в унарной системе счисления, таких, что [math]m(x)=1[/math] и время работы машины [math]m[/math] на входе [math]x[/math] [math]T(m, x)\le t[/math]. [math]BH_{1N} = [/math] { [math]\langle m, x, 1^{t} \rangle | m[/math] - НМТ, [math]m(x)=1, T(m, x)\le t[/math] }. Так же существуют языки [math]BH_{1D}[/math], [math]BH_{2N}[/math], [math]BH_{2D}[/math], отличающиеся от [math]BH_{1N}[/math] только детерминированностью машин Тьюринга ([math]D[/math] - детерминированная, [math]N[/math] - недетерминированная) или системой счисления, в которой представляется время (1 - унарная, 2 - бинарная).

Теорема

Язык [math]BH_{1N}[/math] принадлежит классу [math]NP[/math]-полных задач: [math]BH_{1N}\in NPC[/math].

Доказательство

Для начала докажем, что [math]BH_{1N}[/math] принадлежит классу [math]NP[/math]. За время [math]t[/math] машина Тьюринга может сделать не более [math]t[/math] недетерминированных выборов. Сертификатом будет множество этих выборов. Проверяющая сертификаты программа [math]R(\langle m, x, 1^{t}\rangle, y)[/math] эмулирует работу недетерминированной машины Тьюринга [math]m[/math] на слове [math]x[/math]. Там, где у машины [math]m[/math] было несколько выборов, она совершает действие согласно сертификату. При этом проверяется корректность всех действий и замеряется время работы [math]m[/math]. Сертификатом выбираем недетерминированные выборы [math]m[/math]. Длина сертификата по длине меньше, чем [math]c*t^{2}[/math]. Проверяющая программа может проэмулировать [math]m[/math], затратив полиномиальное количество времени. Если НМТ [math]m[/math] допускает слово [math]x[/math] за время [math]t[/math], то существует последовательность действий, которые совершает машина [math]m[/math], среди которых могут быть и недетерминированные. Следовательно, существует сертификат [math]y[/math]. Если же слово не допускается или допускается, но за время, большее [math]t[/math], то любая последовательность действий не ведет к допуску слова, а значит нет и последовательности недетерминированных выборов, которые могла бы сделать машина [math]m[/math]. Все условия принадлежности классу [math]NP[/math] выполнены. Что и требовалось доказать. Теперь докажем, что [math]BH_{1N}[/math] принадлежит классу [math]NPH[/math]. Рассмотрим произвольный язык [math]L[/math] из класса [math]NP[/math]. Для него существует машина Тьюринга [math]m[/math], такая что [math]T(m, x)\le p(|x|), L(m) = L[/math]. Докажем, что [math]L[/math] сводится по Карпу к [math] BH_{1N}[/math]. Рассмотрим функцию [math]f(x) = \langle m, x, 1^{p|x|)}\rangle[/math] по входным данным возвращающую тройку из машины Тьюринга, попадающую под описанные выше условия, входных данных и времени [math]p(|x|)[/math] в унарной системе счисления. Эта функция существует, она своя для каждого языка. Проверим, что [math]x \in L \Leftrightarrow f(x) \in BH_{1N}[/math]. Пусть [math]x \in L[/math]. Тогда [math]m(x) = 1[/math]. Время работы [math]m[/math] не больше [math]p(|x|)[/math], а значит слово [math]x[/math] будет допущено машиной [math]m[/math] за время не больше, чем [math]p(|x|)[/math]. А тогда тройка [math]\langle m,x, 1^{p(|x|)}\rangle = f(x)[/math] будет входить в [math]BH_{1N}[/math] согласно его определению. Пусть [math]x \not\in L[/math]. Тогда [math]m(x) = 0[/math]. Но тогда тройка [math]\langle m, x, 1^{t}\rangle[/math] не принадлежит [math]BH_{1N}[/math] при любом [math]t[/math], а значит и при [math]t = p(|x|)[/math]. Значит произвольный язык из класса [math]NP[/math] сводится по Карпу к [math]BH_{1N}[/math], и [math]BH_{1N} \in NPC[/math]. Что и требовалось доказать.