NP-полнота задачи BH1N — различия между версиями
Строка 1: | Строка 1: | ||
==Определение языка <tex>BH_{1N}</tex>== | ==Определение языка <tex>BH_{1N}</tex>== | ||
− | Языком <tex>BH_{1N}</tex>(от англ. bounded halting unary) называется множество троек, где <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>. | + | Языком <tex>BH_{1N}</tex>(от англ. 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>. |
<tex>BH_{1N} = </tex> { <tex>\langle m, x, 1^{t} \rangle | m</tex> - НМТ, <tex>m(x)=1, T(m, x)\le t</tex> }. | <tex>BH_{1N} = </tex> { <tex>\langle m, x, 1^{t} \rangle | m</tex> - НМТ, <tex>m(x)=1, T(m, x)\le t</tex> }. | ||
− | Так же | + | Так же можно рассматривать языки <tex>BH_{1D}</tex>, <tex>BH_{2N}</tex>, <tex>BH_{2D}</tex>, отличающиеся от <tex>BH_{1N}</tex> только детерминированностью машин Тьюринга (<tex>D</tex> - детерминированная, <tex>N</tex> - недетерминированная) или системой счисления, в которой представляется время (1 - унарная, 2 - бинарная). |
==Теорема== | ==Теорема== | ||
Язык <tex>BH_{1N}</tex> принадлежит классу <tex>NP</tex>-полных задач: <tex>BH_{1N}\in NPC</tex>. | Язык <tex>BH_{1N}</tex> принадлежит классу <tex>NP</tex>-полных задач: <tex>BH_{1N}\in NPC</tex>. | ||
==Доказательство== | ==Доказательство== | ||
− | Для | + | Для того, чтобы доказать [[Понятие_NP-трудной_и_NP-полной_задачи|NP-полноту]] <tex>BH_{1}</tex> необходимо установить следующие факты: |
− | + | # <tex> BH_{1} \in NP </tex>. | |
+ | # <tex> BH_{1} \in NPH </tex>; | ||
+ | |||
+ | ===Доказательство принадлежности <tex>BH_{1}</tex> классу NP=== | ||
+ | Верификатором для <tex>BH_{1}</tex> будет программа <tex>R(\langle m, x, 1^{t}\rangle, y)</tex> эмулирующая работу недетерминированной машины Тьюринга <tex>m</tex> на слове <tex>x</tex>. Там, где у машины <tex>m</tex> было несколько выборов, она совершает действие согласно сертификату. При этом проверяется корректность всех действий и замеряется время работы <tex>m</tex>. Сертификатом выбираем недетерминированные выборы <tex>m</tex>. Длина сертификата по длине меньше, чем <tex>c\point 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>. | Если НМТ <tex>m</tex> допускает слово <tex>x</tex> за время <tex>t</tex>, то существует последовательность действий, которые совершает машина <tex>m</tex>, среди которых могут быть и недетерминированные. Следовательно, существует сертификат <tex>y</tex>. Если же слово не допускается или допускается, но за время, большее <tex>t</tex>, то любая последовательность действий не ведет к допуску слова, а значит нет и последовательности недетерминированных выборов, которые могла бы сделать машина <tex>m</tex>. | ||
Все условия принадлежности классу <tex>NP</tex> выполнены. Что и требовалось доказать. | Все условия принадлежности классу <tex>NP</tex> выполнены. Что и требовалось доказать. | ||
+ | |||
+ | ===Доказательство принадлежности <tex>BH_{1}</tex> классу NPH=== | ||
Теперь докажем, что <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>. |
Версия 17:51, 18 марта 2010
Содержание
Определение языка
Языком
(от англ. bounded halting unary) называется множество троек , где - недетерминированная машина Тьюринга (НМТ), - входные данные и - время в унарной системе счисления, таких, что и время работы машины на входе . { - НМТ, }. Так же можно рассматривать языки , , , отличающиеся от только детерминированностью машин Тьюринга ( - детерминированная, - недетерминированная) или системой счисления, в которой представляется время (1 - унарная, 2 - бинарная).Теорема
Язык
принадлежит классу -полных задач: .Доказательство
Для того, чтобы доказать NP-полноту необходимо установить следующие факты:
- .
- ;
Доказательство принадлежности классу NP
Верификатором для
будет программа эмулирующая работу недетерминированной машины Тьюринга на слове . Там, где у машины было несколько выборов, она совершает действие согласно сертификату. При этом проверяется корректность всех действий и замеряется время работы . Сертификатом выбираем недетерминированные выборы . Длина сертификата по длине меньше, чем . Значит проверяющая программа может проэмулировать , затратив полиномиальное количество времени.Если НМТ
допускает слово за время , то существует последовательность действий, которые совершает машина , среди которых могут быть и недетерминированные. Следовательно, существует сертификат . Если же слово не допускается или допускается, но за время, большее , то любая последовательность действий не ведет к допуску слова, а значит нет и последовательности недетерминированных выборов, которые могла бы сделать машина . Все условия принадлежности классу выполнены. Что и требовалось доказать.Доказательство принадлежности классу NPH
Теперь докажем, что
принадлежит классу . Рассмотрим произвольный язык из класса . Для него существует машина Тьюринга , такая что . Докажем, что сводится по Карпу к . Рассмотрим функцию по входным данным возвращающую тройку из машины Тьюринга, попадающую под описанные выше условия, входных данных и времени в унарной системе счисления. Эта функция существует, она своя для каждого языка. Проверим, что . Пусть . Тогда . Время работы не больше , а значит слово будет допущено машиной за время не больше, чем . А тогда тройка будет входить в согласно его определению. Пусть . Тогда . Но тогда тройка не принадлежит при любом , а значит и при . Значит произвольный язык из класса сводится по Карпу к , и . Что и требовалось доказать.