Теорема Кука
Версия от 00:41, 12 марта 2010; Npgs (обсуждение | вклад)
Определение
Проблема
— проблема выполнимости булевых формул.Докажем, что эта проблема
-полна.Формулировка
Теорема Кука гласит, что
Доказательство
, если
Прежде всего докажем, что
Так как
, то достаточно показать, чтоВ качестве сертификата берём набор нулей и единиц в количестве
штук, соответствующих значениям аргументов функции . Длина этого сертификата явно будет меньше или равна, чем полином от длины строки, кодирующей формулу .Верификатор просто подставит эти значения в формулу
и выдаст значение формулы на данном входе. Таким образом, если формула действительно удовлетворима, то для неё найдётся такой сертификат, на котором она, и, соответственно, верификатор, выдадут единицу.Если же у нас существует такой сертификат
, на котором верификатор выдаёт единицу, то, значит, и формула является удовлетворимой.Теперь докажем, что
Для этого сведём проблему , которая, как нам известно, -полна, к проблеме Тогда получится, что любая проблема из может быть сведена по Карпу к проблеме , и, соответственно, кПо условию проблемы
, у нас есть недетерминированная машина Тьюринга , причём можно считать, что её лента односторонняя и что машина не пишет на ленту пробелы, входное слово и время , заданное в унарной системе счисления. В любой момент времени мгновенное описание (МО) есть строка , где — строка, состоящая из такого количества пробелов, чтобы длина всего МО была