NP-полнота задачи BH1N
Определение языка
Языком (от англ. bounded halting unary) называется множество троек , где - недетерминированная машина Тьюринга (НМТ), - входные данные и - время в унарной системе счисления, таких, что и время работы машины на входе . — НМТ, . Так же можно рассматривать языки , , , отличающиеся от только детерминированностью машин Тьюринга ( - детерминированная, - недетерминированная) или системой счисления, в которой представляется время (1 - унарная, 2 - бинарная).
Теорема
Язык является -полным: .
Доказательство
Для того, чтобы доказать NP-полноту необходимо установить следующие факты:
- .
- ;
Доказательство принадлежности классу NP
Будем использовать в качестве сертификата последовательность недетерминированных выборов, которые должна сделать машина , чтобы допустить слово . Длина сертификата меньше, чем .
Для проверки сертификата используется программа , эмулирующая работу недетерминированной машины Тьюринга на слове . Там, где у машины было несколько выборов, совершает действие согласно сертификату. При этом замеряется время работы машины . Проверяющая программа может проэмулировать , затратив полиномиальное количество времени.
Если НМТ допускает слово за время , то существует последовательность действий, которые совершает машина , среди которых могут быть и недетерминированные. Следовательно, существует сертификат . Если же слово не допускается или допускается, но за время, большее , то любая последовательность действий не ведет к допуску слова, а значит нет и последовательности недетерминированных выборов, которые могла бы сделать машина .
Все условия принадлежности классу выполнены.
Доказательство принадлежности классу NPH
Теперь докажем, что принадлежит классу . Рассмотрим произвольный язык из класса . Для него существует машина Тьюринга , такая что . Докажем, что сводится по Карпу к . Рассмотрим функцию по входным данным возвращающую тройку из машины Тьюринга, попадающую под описанные выше условия, входных данных и времени в унарной системе счисления. Эта функция существует, она своя для каждого языка. Проверим, что .
Пусть . Тогда . Время работы не больше , а значит слово будет допущено машиной за время не больше, чем . А тогда тройка будет входить в согласно его определению. Пусть . Тогда . Но тогда тройка не принадлежит при любом , а значит и при .
Значит произвольный язык из класса сводится по Карпу к , и . Что и требовалось доказать.