NP-полнота задачи BH1N — различия между версиями
(→Доказательство принадлежности BH_{1N} классу NP) |
|||
(не показано 7 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
− | ==Определение языка < | + | ==Определение языка BH<sub>1N</sub>== |
− | Языком < | + | Языком '''BH<sub>1N</sub>''' (от англ. bounded halting unary) называется множество троек <tex>\langle m, x, 1^{t} \rangle</tex>, где <tex>m</tex> - недетерминированная машина Тьюринга (НМТ), <tex>x</tex> - входные данные и <tex>t</tex> - время в унарной системе счисления, таких, что <tex>m(x)=1</tex> и время работы машины <tex>m</tex> на входе <tex>x</tex> <tex>T(m, x)\le t</tex>: |
− | < | + | |
− | + | '''BH<sub>1N</sub>''' = <tex>\{ \langle m, x, 1^{t} \rangle | m </tex> — НМТ, <tex> m(x)=1, T(m, x)\le t \}</tex>. | |
+ | |||
+ | Также можно рассматривать языки '''BH<sub>1D</sub>''', '''BH<sub>2N</sub>''', '''BH<sub>2D</sub>''', отличающиеся от '''BH<sub>1N</sub>''' только детерминированностью машин Тьюринга (D - детерминированная, N - недетерминированная) или системой счисления, в которой представляется время (1 - унарная, 2 - бинарная). | ||
==Теорема== | ==Теорема== | ||
− | Язык < | + | Язык '''BH<sub>1N</sub>''' является '''NP'''-полным: '''BH<sub>1N</sub>''' ∈ '''NPC'''. |
+ | |||
==Доказательство== | ==Доказательство== | ||
− | Для того, чтобы доказать [[Понятие_NP-трудной_и_NP-полной_задачи|NP-полноту]] < | + | Для того, чтобы доказать [[Понятие_NP-трудной_и_NP-полной_задачи|'''NP'''-полноту]] '''BH<sub>1N</sub>''' необходимо установить следующие факты: |
− | # < | + | # '''BH<sub>1N</sub>''' ∈ '''NP'''; |
− | + | # '''BH<sub>1N</sub>''' ∈ '''NPH'''. | |
+ | |||
+ | ===Доказательство принадлежности BH<sub>1N</sub> классу NP=== | ||
+ | Будем использовать в качестве сертификата <tex>y</tex> последовательность недетерминированных выборов, которые должна сделать машина <tex>m</tex>, чтобы допустить слово <tex>x</tex>. Длина сертификата меньше, чем <tex>Ct</tex> для некоторого <tex>C</tex>. | ||
+ | |||
+ | Для проверки сертификата используется программа <tex>R(\langle m, x, 1^{t}\rangle, y)</tex>, эмулирующая работу недетерминированной машины Тьюринга <tex>m</tex> на слове <tex>x</tex>. Там, где у машины <tex>m</tex> было несколько выборов, <tex>R</tex> совершает действие согласно сертификату. При этом замеряется время работы машины <tex>t</tex>. Проверяющая программа может проэмулировать <tex>m</tex>, затратив полиномиальное количество времени. | ||
+ | |||
+ | Если НМТ <tex>m</tex> допускает слово <tex>x</tex> за время <tex>t</tex>, то существует последовательность действий, которые совершает машина <tex>m</tex>, среди которых могут быть и недетерминированные. Следовательно, существует сертификат <tex>y</tex>. Если же слово не допускается или допускается, но за время, большее <tex>t</tex>, то любая последовательность действий не ведет к допуску слова, а значит нет и последовательности недетерминированных выборов, которые могла бы сделать машина <tex>m</tex>. | ||
− | + | Все условия принадлежности классу '''NP''' выполнены. | |
− | |||
− | + | ===Доказательство принадлежности BH<sub>1N</sub> классу NPH=== | |
+ | Теперь докажем, что '''BH<sub>1N</sub>''' принадлежит классу '''NPH'''. | ||
+ | Рассмотрим произвольный язык <tex>L</tex> из класса '''NP'''. Для него существует машина Тьюринга <tex>m</tex>, такая что <tex>T(m, x)\le p(|x|), L(m) = L</tex>. | ||
+ | Докажем, что <tex>L</tex> сводится по Карпу к '''BH<sub>1N</sub>'''. Рассмотрим функцию <tex>f(x) = \langle m, x, 1^{p(|x|)}\rangle</tex> по входным данным возвращающую тройку из машины Тьюринга, попадающую под описанные выше условия, входных данных и времени <tex>p(|x|)</tex> в унарной системе счисления. Эта функция существует, она своя для каждого языка. Проверим, что <tex>x \in L \Leftrightarrow f(x)</tex> ∈ '''BH<sub>1N</sub>'''. | ||
− | + | Пусть <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> будет входить в '''BH<sub>1N</sub>''' согласно его определению. | |
+ | Пусть <tex>x \not\in L</tex>. Тогда <tex>m(x) = 0</tex>. Но тогда тройка <tex>\langle m, x, 1^{t}\rangle</tex> не принадлежит '''BH<sub>1N</sub>''' при любом <tex>t</tex>, а значит и при <tex>t = p(|x|)</tex>. | ||
− | + | Значит произвольный язык из класса '''NP''' сводится по Карпу к '''BH<sub>1N</sub>''', то есть '''BH<sub>1N</sub>''' ∈ '''NPC'''. Что и требовалось доказать. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | [[Категория:NP]] |
Текущая версия на 00:54, 11 октября 2019
Содержание
Определение языка BH1N[править]
Языком BH1N (от англ. bounded halting unary) называется множество троек
, где - недетерминированная машина Тьюринга (НМТ), - входные данные и - время в унарной системе счисления, таких, что и время работы машины на входе :BH1N =
— НМТ, .Также можно рассматривать языки BH1D, BH2N, BH2D, отличающиеся от BH1N только детерминированностью машин Тьюринга (D - детерминированная, N - недетерминированная) или системой счисления, в которой представляется время (1 - унарная, 2 - бинарная).
Теорема[править]
Язык BH1N является NP-полным: BH1N ∈ NPC.
Доказательство[править]
Для того, чтобы доказать NP-полноту BH1N необходимо установить следующие факты:
- BH1N ∈ NP;
- BH1N ∈ NPH.
Доказательство принадлежности BH1N классу NP[править]
Будем использовать в качестве сертификата
последовательность недетерминированных выборов, которые должна сделать машина , чтобы допустить слово . Длина сертификата меньше, чем для некоторого .Для проверки сертификата используется программа
, эмулирующая работу недетерминированной машины Тьюринга на слове . Там, где у машины было несколько выборов, совершает действие согласно сертификату. При этом замеряется время работы машины . Проверяющая программа может проэмулировать , затратив полиномиальное количество времени.Если НМТ
допускает слово за время , то существует последовательность действий, которые совершает машина , среди которых могут быть и недетерминированные. Следовательно, существует сертификат . Если же слово не допускается или допускается, но за время, большее , то любая последовательность действий не ведет к допуску слова, а значит нет и последовательности недетерминированных выборов, которые могла бы сделать машина .Все условия принадлежности классу NP выполнены.
Доказательство принадлежности BH1N классу NPH[править]
Теперь докажем, что BH1N принадлежит классу NPH. Рассмотрим произвольный язык
из класса NP. Для него существует машина Тьюринга , такая что . Докажем, что сводится по Карпу к BH1N. Рассмотрим функцию по входным данным возвращающую тройку из машины Тьюринга, попадающую под описанные выше условия, входных данных и времени в унарной системе счисления. Эта функция существует, она своя для каждого языка. Проверим, что ∈ BH1N.Пусть
. Тогда . Время работы не больше , а значит слово будет допущено машиной за время не больше, чем . А тогда тройка будет входить в BH1N согласно его определению. Пусть . Тогда . Но тогда тройка не принадлежит BH1N при любом , а значит и при .Значит произвольный язык из класса NP сводится по Карпу к BH1N, то есть BH1N ∈ NPC. Что и требовалось доказать.