2009 Теоретические основы прикладной дискретной математики №4(6)
УДК 519.7
О ПРЕОБРАЗОВАНИЯХ ЦЕЙТИНА В ЛОГИЧЕСКИХ УРАВНЕНИЯХ1
А. А. Семёнов
Институт динамики систем и теории управления СО РАН, г. Иркутск, Россия
E-mail: biclop@rambler.ru
В статье сообщается о применении преобразований Цейтина в различных областях пропозициональной логики, связанных с решением систем логических уравнений. Показывается, что преобразования Цейтина не изменяют числа решений системы логических уравнений, и строится биекция между множествами решений системы и результата её преобразований по Цейтину. Приводятся некоторые результаты по применению преобразований Цейтина к построению оценок сложности систем пропозиционального вывода. С использованием преобразований Цейтина строятся простейшие доказательства NP-полноты проблемы совместности системы логических уравнений степени 2 и #Р-полноты проблемы подсчёта числа выполняющих наборов для хорновской КНФ. С использованием преобразований Цейтина показывается также, что ROBDD-граф для булевой функции в хорновской КНФ или в КНФ с двухбуквенными дизъюнктами нельзя построить за полиномиальное время, если Р = NP.
Ключевые слова: логические уравнения, преобразования Цейтина, системы пропозиционального вывода, NP-полнота.
Введение
В 1968 г. в журнале «Записки научных семинаров ЛОМИ» вышла статья Григория Самуиловича Цейтина «О сложности вывода в исчислении высказываний» [1]. Сегодня можно с уверенностью сказать, что эта выдающаяся и совершенно новаторская на тот момент работа намного опередила время и предвосхитила целый спектр направлений в логике и теории алгоритмов.
Основным инструментом в [1] являются очень простые по своей природе преобразования выражений исчисления высказываний. Далее приведены две цитаты из [1], в которых описаны данные преобразования.
«Исчисления, которыми мы будем пользоваться, направлены на установление противоречивости систем дизъюнкций. Понятие противоречивой системы дизъюнкций служит здесь аналогом понятия тождественно истинной формулы в обычном исчислении высказываний. От вопроса о тождественной истинности заданной формулы исчисления высказываний можно перейти к вопросу о противоречивости некоторой системы дизъюнкций, приведя отрицание данной формулы к конъюнктивной нормальной форме. Однако при таком преобразовании может резко возрасти длина формулы, поэтому мы будем рассматривать другой способ перехода от формулы исчисления высказываний к системе дизъюнкций. Каждой подформуле данной формулы поставим в соответствие свою переменную; двум подформулам будут соответствовать сопряженные переменные (переменная и ее отрицание) в том и только том
хРабота выполнена при поддержке гранта РФФИ № 07-01-00400-а и при поддержке гранта Президента РФ НШ-1676.2008.1. Результаты работы докладывались на Международной конференции с элементами научной школы для молодёжи, г. Омск, 7-12 сентября 2009 г.
случае, если одна из этих формул является отрицанием второй. Если некоторая подформула А представляет собой конъюнкцию подформул В и Г и этим подформулам приписаны соответственно переменные а, в и 7, то припишем подформуле А следующую систему дизъюнкций: а в, а 7, а в Y (т. е. КНФ (а V в) • (а V 7) • (а V в V 7)). Аналогично припишем системы дизъюнкций подформулам, которые представляют собой дизъюнкции и импликации (а в, а7, а в! для дизъюнкции и а в, а 7, а в! для импликации). Объединим все полученные таким способом системы дизъюнкций и добавим туда еще дизъюнкцию £, где £ — переменная, соответствующая всей данной формуле. Легко видеть, что полученная система дизъюнкций противоречива в том и только том случае, если данная формула тождественно истинна».
«Если а, в, Y — какие-нибудь переменные, причем ни а, ни а не входят ни в одну из дизъюнкций системы, то систему можно дополнить следующим списком дизъюнкций: а в, а 7, а в Y». Подразумевается, что дополненная система будет противоречива тогда и только тогда, когда противоречива исходная.
Первоначальные идеи преобразований, описанных в первой цитате, принадлежат, по-видимому, к категории «фольклорных»—в качестве одного из наиболее ранних примеров Е. Я. Данциным (см. [2]) указывается работа [3]. Вторая цитата дает простейший пример преобразования из класса так называемых правил расширения. Отметим, что именно в [1] описанные выше преобразования (и первого, и второго типов) составили основу бесспорно нетривиальных результатов, по сути открывших новое направление в математической логике — теорию сложности формальных доказательств.
Перепечатку работы [1] в сборнике «Automation of reasoning» [4], выполненную через 15 лет после ее первого опубликования, можно считать заслуженной оценкой фундаментальности. Правда, здесь не обошлось без некоторых курьезных моментов. Так, авторы работы [5] рассматривают квантифицированный вариант приведенных выше преобразований, указывая в качестве первоисточника свою работу, датированную 1982 г., и буквально говоря, что «.. .пропозициональный вариант данных преобразований был предложен Цейтиным в 1983 г. (ссылка на [4])».
Сложно отследить момент, когда впервые в публикациях стал использоваться термин «преобразования Цейтина» (Tseitin transformation). Однако на сегодняшний день данный термин прочно укоренился в научной литературе (причем, главным образом, в отношении преобразований, описанных в первой цитате) и фигурирует в работах по сложности формальных доказательств, по верификации дискретных автоматов, по обращению дискретных функций (см., например, статьи [6-8] и многие другие). Далее термином «преобразования Цейтина» в соответствии со сложившимися традициями обозначаются преобразования первого типа, а для преобразований второго типа используется термин «правила расширения».
В настоящей работе делается попытка объединить несколько различных областей пропозициональной логики фактами использования в этих областях преобразований Цейтина. Далее приведен краткий план статьи.
В п. 1 преобразования Цейтина описываются в контексте общей проблемы приведения систем логических уравнений к нормальным формам. Рассматриваются логические уравнения вида U = 1, в левой части которых находится произвольная формула исчисления высказываний над множеством булевых переменных X. Результатом применения последовательности преобразований Цейтина к формуле U является формула U над множеством X , X С X . Переход от произвольной U к ив некоторой нормальной форме (КНФ, ДНФ, АНФ) осуществляется эффективно. Рассматривается логическое уравнение U =1. Естественным образом задается отображение ш множе-
ства решений уравнения и = 1 на множество решений уравнения и = 1. Показано, что ш является биекцией. Здесь же рассматривается одно обобщение преобразований Цейтина для логических уравнений. Соответствующее обобщенным преобразованиям Цейтина отображение ш множества решений преобразованного уравнения на множество решений исходного уравнения в общем случае сюръективно.
П. 2 посвящён применению преобразований Цейтина и правил расширения в системах пропозиционального вывода. Приведен результат Г. С. Цейтина 1968 г., давший первый пример строгой аргументации большей мощности одной системы пропозиционального вывода в сравнении с другой (для этой цели использовались правила расширения). Здесь же приведены результаты, полученные А. Хакеном в 1985 г., в которых демонстрируется большая мощность «расширенной резолюции» (в терминологии А. Хакена) в сравнении с общей резолюцией на формулах Дирихле (в расширенной резолюции допускается использование правил расширения и преобразований Цейти-на). Также рассматривается известная попытка сравнения мощности общей резолюции и системы пропозиционального вывода, базирующейся на двоичных диаграммах решений.
В п. 3 в очень сжатой форме рассмотрены вопросы эффективной сводимости различных по своей природе задач к задачам поиска решений логических уравнений в нормальных формах. Такого рода вопросы возникают в верификационных задачах микроэлектроники, задачах обращения дискретных функций, а также при осуществлении различных декомпозиционных представлений логических уравнений. Преобразования Цейтина при этом являются основным элементом соответствующих решений.
В п. 4 исследуется сложность проблемы подсчета числа наборов значений переменных, выполняющих произвольную хорновскую КНФ. Известно, что данная проблема #Р-полна. Соответствующие доказательства, имеющиеся в работах Л. Дж. Валианта и С. П. Горшкова, весьма трудны технически. Предлагается новое доказательство данного факта, базирующееся на преобразованиях Цейтина. Полученное доказательство существенно проще известных.
Тезисное изложение результатов этой работы приведено в [9].
1. Преобразования Цейтина и отображения на множествах решений логических уравнений
Обозначим через {0,1}п множество всех двоичных последовательностей (слов) длины п. Также в дальнейшем используем обозначение {0,1}* = ипеМ {0,1}п. Пусть X = {х1,..., хп} — множество булевых переменных, а и (хі,..., хп) — формула исчисления высказываний (ИВ), реализующая булеву функцию от этих переменных, определенную всюду на {0,1}п [10].
Выражения вида и (х1,... , хп) = 0 или и (х1,... , хп) = 1 называются логическими (иногда булевыми) уравнениями. Решением логического уравнения и (х1,...,хп) = = в, в ^ {0,1}, называется такой набор (а1,... , ап) значений булевых переменных х1,... , хп, что и (а1,..., ап) = в. Если такого набора не существует, то говорят, что уравнение не имеет решений. Решением системы, состоящей из т логических уравнений, называется набор значений всех булевых переменных системы, который является решением каждого уравнения. Если такого набора не существует, то система называется несовместной. Говорят, что система уравнений иі(х1,... ,хп) = вг, і = 1,... ,т, представлена в нормальной форме, если для всех і Є {1,... ,т} значение вг одно и то же и формула иі(х1,... ,хп) одной и той же нормальной формы — КНФ, ДНФ или АНФ.
Литералом над X называется произвольная булева переменная из X либо ее отрицание. Литералы х и х называются контрарными. Дизъюнктом над X называется произвольная дизъюнкция литералов, среди которых нет одинаковых и контрарных. Конъюнктивная нормальная форма над X — это конъюнкция различных дизъюнктов.
Пусть С (х1,... , хп) — КНФ над X = (х1,... , хп}. Данная КНФ называется выполнимой, если логическое уравнение
имеет решения. Решения уравнения (1) также называются наборами, выполняющими КНФ С (х1,... ,хп). Задача распознавания выполнимости (существования выполняющего набора) произвольной КНФ является исторически первой МР-полной задачей [11]. Задачи поиска решений логических уравнений вида (1) далее называются БАТ-задачами.
Логические уравнения можно рассматривать как слова над конечными алфавитами. Эти слова при помощи взаимнооднозначных кодирований могут преобразовываться в двоичные слова [12]. При этом длина (число бит) получаемого слова считается объемом двоичного кода уравнения при фиксированной схеме кодирования. Далее предполагается, что все рассматриваемые схемы кодирования являются «разумными» (в соответсвии с терминологией, используемой в [12]).
В работе [1] рассматривалось действие преобразований Цейтина на множестве формул ИВ. Для ряда приложений интерес представляет естественный перенос преобразований Цейтина на логические уравнения. Будем говорить, что преобразование Цейтина применяется к логическому уравнению и1, если оно применяется к формуле ИВ, стоящей в левой части и1; в результате имеем новое логическое уравнение и2. Значительная часть дальнейшего материала посвящена исследованию взаимосвязей между множествами решений и1 и и2 с приложениями к различным теоретическим и прикладным областям математической логики.
Рассмотрим логическое уравнение следующего вида:
ременных в X. Решениями уравнения (2), если они существуют, являются векторы из {0,1}п. Множество решений (2) обозначим через П1.
Пусть ^ (у1,...,ут) —произвольная булева функция от булевых переменных из множества У = {у1,... , ут}, У П X = 0, которая принимает на {0,1}т одинаковое число раз значения 0 и 1, и пусть Е (^) —произвольная формула ИВ, задающая данную функцию. Введем в рассмотрение булеву функцию
значение которой на произвольном наборе (а1... аГ1 А1... Ат) значений переменных
С (х1,... ,хп) = 1
(1)
(2)
Здесь ^ (^1 (х1,... , х^) , . . . , (х^,... , х^)) —это произвольная формула ИВ, задаю-
щая некоторую булеву функцию от множества переменных
х1,... , х^, у1,..., ут определяется следующим образом:
Рассмотрим следующее логическое уравнение над множеством булевых переменных X и У:
Е (<£ (х1, . . . ,х^ ,У1, . . . ,ут)) ^1^ВД (хЬ . . . ,хга,У1, . . . ,Ут) = 1, (3)
где через Е (<£ (х1,... , х1, у1,... , ут)) обозначена произвольная формула ИВ, задаю-
щая функцию <^, а через ^11^^(^) (х1,... , хп, у1,... , ут) обозначена формула ИВ, полученная из ^ (Л (х^ ... , х^) ,..., Л (х^,... , х^в)) заменой одного или нескольких (быть может, всех) вхождений формулы Л (х1,... , х^) формулой Е (и). Особо отметим, что решениями уравнения (3) (если они существуют) являются векторы из {0, 1}п+т. Множество решений уравнения (3) обозначим через П2. Установим справедливость следующей теоремы.
Теорема 1.
1) П1 = 0 тогда и только тогда, когда П2 = 0.
2) В случае П1 = 0, П2 = 0 существует сюръективное отображение ш : П2 ^ П1,
сопоставляющее каждому элементу П2 некоторый элемент из П1, причем любой элемент из П1 имеет 2т-1 прообразов в П2 при отображении ш.
3) От любого решения уравнения (3) можно перейти к соответствующему (в смысле отображения ш) решению уравнения (2) в общем случае за линейное время.
Доказательство. Докажем второе утверждение. Предположим, что П2 = 0, и покажем, что в этом случае любому решению уравнения (3) можно поставить в соответствие некоторое решение уравнения (2). Пусть (х0,..., х^, у0,... , у0^) —решение
уравнения (3). Тогда ^1 о^.. .^ = ^ (у0,. ..,ут), ^)и^е(^) (х0,..., хп, у0,..., ут) =1
и, следовательно,
^ (Л (х0,... ,хП) ,... , Л (х0,... ,хП)) = 1. (4)
Таким образом, решению (х1,... , хП, у0,... , у^) уравнения (3) соответствует решение уравнения (2), имеющее вид (х1,... , х^). Тем самым определено отображение ш множества решений уравнения (3) на множество решений уравнения (2). Здесь под (х0,. .. , хП), 2 £ {1,...,з}, подразумевается результат подстановки соответствующих компонент вектора (х0,... , хП) в формулу (хгь... , х*.).
Пусть теперь вектор (х1,...,хП) является решением уравнения (2), то есть имеет место (4). Поскольку функция ^ (у1,... , ут) принимает одинаковое число раз значения 0 и 1 на {0,1}т, то на 2т-1 векторах из {0,1}т ее значение совпадает с а = Л (х0,... , хП). Обозначим через У0 такое подмножество в {0,1}т, что
V (у0,... ,ут) £ у0 (^ (у0,.. .,ут) = Л1 (x0,... ,хП)) .
Несложно понять, что произвольный вектор вида
(х1,...,хП,у0,...,ут), (у0,...,ут)еy0,
является решением уравнения (3). В силу сказанного выше |У0| = 2т-1. Векторы вида (х0,... , хП, у0,..., ут) , (у0,... , ут) £ {0,1}т \У0, решениями (3) быть не могут, поскольку на таких векторах функция ^ принимает значение 0. Следовательно, каждое решение (2) имеет в точности 2т-1 прообразов при отображении ш (тем самым ш — сюръекция).
Справедливость первого утверждения теоремы 1 автоматически следует из сказанного. Справедливость третьего утверждения также очевидна, поскольку из любого
решения уравнения (3) можно эффективно выделить значения переменных из X, получив тем самым решение уравнения (2). ■
Переход от уравнения (2) к уравнению (3) представляет собой одну итерацию обобщенных преобразований Цейтина. Очевидным образом из теоремы 1 вытекает справедливость следующего факта.
Следствие 1. Для одноместных булевых функций ^ (у), заданных формулами у или у, отображение ш является биекцией между множествами П1 и П2.
Дополнительно отметим, что функцию ^ можно задать следующей формулой ИВ (здесь символ «=» обозначает логическую эквивалентность):
Е(^ (у1,...,ут)) = Л1 (х1,...,х11) .
В итоговом уравнении или системе функция ^ может быть представлена в любой нормальной форме.
Несложно понять, что от любого уравнения вида (2) за полиномиальное от длины его двоичного кода время при помощи описанных выше преобразований можно перейти к системе уравнений в любой нормальной форме над множеством булевых переменных Z = {24,... , £9(п)}, X С Z, д(п) —некоторый полином. В получаемой при этом системе логические уравнения имеют вид и(21, ... , 2д(га)) = 1, где и(21, ... , 2д(га)) — формула ИВ в заранее оговоренной нормальной форме.
2. Преобразования Цейтина и сложность формальных доказательств
Приведен краткий обзор известных автору примеров использования преобразований Цейтина в теории сложности формального вывода. Изложим здесь некоторые ключевые понятия этой теории (см., например, [13]).
2.1. Системы пропозиционального вывода
Прежде всего отметим, что с точки зрения корректного определения понятия вычислительной сложности процедур логического вывода имеет смысл рассматривать лишь исчисление нулевого порядка, то есть исчисление высказываний, поскольку уже в исчислении предикатов первого порядка множество теорем не является рекурсивным.
В основе современной теории сложности пропозициональных доказательств лежит следующий формализм, восходящий к С. Куку и Р. Рекхау [14].
Пусть в исчислении высказываний дано некоторое натуральное семейство логических противоречий 5, дополненное выделенным символом 0. Рассмотрим алгоритмически вычислимую (вообще говоря, сюръективную) функцию
п : {0, 1}* ^ 5 и{0} , (5)
которая произвольному двоичному слову а £ {0,1}* ставит в соответствие логическое противоречие из семейства 5 либо символ 0. Если п (а) = в, в £ 5, говорим, что а — это п-доказательство противоречивости в (ситуацию п (а) = 0 можно интерпретировать как абсурдность строки а). Рассматриваются только такие функции вида (5), которые вычислимы за полиномиальное время (везде далее, кроме специально оговариваемых случаев, сложность того или иного алгоритма понимается как функция от объема двоичного кода входных данных). Особо отметим, что в определение функции п закладывается способ доказательства противоречивости формул из 5 — можно рассматривать функции, которые распознают именно резолютивные доказательства,
именно ВРЬЬ-доказательства и т.д., задавая тем самым вполне конкретные системы пропозиционального вывода (СПВ).
Произвольному противоречию в £ 5 и фиксированной функции п вида (5) поставим в соответствие кратчайшее слово а* £ {0,1}*, такое, что п (а*) = в. Рассмотрим функцию, сопоставляющую каждому противоречию в £ 5 длину соответствующего слова а*. Полученную функцию назовем сложностью СПВ п на семействе противоречий 5. Если сложность п растёт как полином от длины двоичной записи противоречий из 5 (при некоторой разумной схеме кодирования), то п называем полиномиально ограниченной СПВ для семейства 5.
Несложно убедиться в том, что СПВ для класса всех противоречий исчисления высказываний, определенные как функции вида (5), существуют. Для этого достаточно установить два факта. Во-первых, показать наличие полиномиальной по сложности процедуры, преобразующей произвольное противоречие исчисления высказываний в противоречие (возможно, над более широким множеством булевых переменных), представленное в КНФ. В контексте сказанного выше очевидно, что такого рода процедуру дают преобразования Цейтина. Во-вторых, предъявить любой из обширного семейства полных (то есть завершающих работу за конечное время) алгоритмов доказательства противоречивости КНФ.
Факт существования полиномиально ограниченных СПВ для класса всех противоречий исчисления высказываний совершенно неправдоподобен, поскольку несложно видеть, что наличие хотя бы одной такой СПВ влечет равенство УР = со — УР [14].
Тем не менее можно пытаться строить оценки сложности конкретных СПВ на конкретных натуральных семействах логических противоречий. На первый взгляд такого рода задачи представляются малоинтересными. Однако при более детальном рассмотрении в этом направлении открывается целая область, насыщенная нетривиальными и практически значимыми результатами. Важнейшими в этом направлении являются результаты по аргументации большей мощности одних СПВ в сравнении с другими.
Допустим, что относительно двух полных СПВ п1 и п2 установлено, что любое п2-доказательство а2 противоречивости произвольной КНФ С можно за полиномиальное от |а2| время преобразовать в ^-доказательство а1 противоречивости С. В этом случае говорим, что СПВ п1 полиномиально моделирует СПВ п2. Если п1 полиномиально моделирует п2, а п2 полиномиально моделирует п1, то эти СПВ называются полиномиально эквивалентными.
Предположим, что существует такое натуральное семейство логических противоречий 5, что сложность п1 на 5 ограничивается полиномом, а сложность п2 на 5, напротив, полиномом ограничить нельзя. Очевидно, что в данном случае СПВ п2 не может полиномиально моделировать СПВ п1. Если при этом п1 полиномиально моделирует п2, то относительно п1 логично сделать вывод о его большей мощности по сравнению с п2.
Работа [1] содержит исторически первый пример подобного сравнения мощности двух СПВ. Остановимся на данном моменте более подробно. Основным объектом изучения [1] являются СПВ, базирующиеся на методе резолюций. Данный метод впервые был предложен в работе [15] и долгое время считался одним из самых перспективных подходов к автоматическому доказательству теорем в исчислении предикатов первого порядка. Далее мы описываем и используем пропозициональный вариант метода резолюций.
Рассматривается произвольная КНФ С = Д1 • ... • Дт, где Д,-,^' £ {1,... , т},— дизъюнкты над множеством булевых переменных X = {х1,... ,хп}. Ставится вопрос
о выполнимости C. Если дизъюнкты Dk1 и Dk2, fci, {1,..., m}, содержат контрар-
ные литералы х и х (например, первый дизъюнкт содержит х, а второй — х), то говорят, что Dk1 и Dk2 контрарны по переменной х. Если D — произвольный дизъюнкт, а а — литерал, входящий в D, то через D\{a} обозначается дизъюнкт, полученный из D вычеркиванием а. Пусть Dk1 и Dk2, к1;к2 £ {1,...,m}, контрарны по переменной х. Для определенности полагаем, что Dk1 содержит х, а Dk2 — х. Дизъюнкт D; = (Dk1 \ {х} V Dk2\{х}) называется резольвентой дизъюнктов D^1 и D^2 по переменной х. Несложно видеть, что КНФ C = C • D', где D' — резольвента некоторой пары дизъюнктов из C, выполнима на тех и только тех наборах значений истинности переменных из X, на которых выполнима C. Далее ставится вопрос о выполнимости C'. Описанная процедура представляет собой одну итерацию метода резолюций. Дж. А. Робинсоном в [15] было показано, что C невыполнима тогда и только тогда, когда существует такая конечная последовательность итераций метода резолюций, итогом которой является дизъюнкт, не содержащий литералов и называемый пустым (пустой дизъюнкт есть резольвента единичных контрарных дизъюнктов вида а и а). Данный факт известен также как теорема о полноте метода резолюций (пропозициональный вариант).
Рассмотрим функцию п вида (5), которая распознает двоичные описания резолютивных доказательств логических противоречий, заданных в КНФ. Полученную СПВ будем называть далее общей резолюцией (general resolution). Говоря о сложности резолютивного доказательства противоречивости некоторой КНФ, мы будем подразумевать число порожденных в ходе этого доказательства резольвент, поскольку именно этот параметр вносит основной вклад в длину двоичного описания доказательства (каждая резольвента — это дизъюнкт, включающий не более n литералов).
Сказанное выше демонстрирует недетерминированный характер метода резолюций: в общем случае после порождения каждой конкретной резольвенты существует много различных альтернатив порождения последующей, причем все эти альтернативы являются допустимыми в смысле общей резолюции. Снижения недетерминизма метода резолюций можно добиться за счет дополнения его специальными стратегиями, разрешающими строить резольвенты только в соответствии с определенными правилами, ограничивающими общую резолюцию. При этом основной является проблема сохранения полноты — ограниченная (в смысле конкретной стратегии) резолюция должна так же, как и общая, гарантировать доказуемость противоречивости КНФ за конечное число шагов. Большое число различных резолютивных стратегий проанализировано в [16].
В некотором смысле двойственным введению ограничивающих стратегий является увеличение выразительной силы СПВ за счет дополнительных правил вывода (расширение исходной СПВ). Здесь не возникает проблем с полнотой, поскольку полнота базовой системы гарантирует полноту расширенной. С другой стороны, получаемая система начинает выглядеть сложнее с точки зрения анализа ее предельных возможностей (по крайней мере, в отношении нижних границ сложности).
2.2. Сравнение мощностей различных СПВ, базирующихся
н а м е т о д е р е з о л ю ц и й
Как уже отмечалось, исторически первый пример такого сравнения содержится в [1]. В данной работе рассматривались две СПВ. Первая — это ограниченный вариант общей резолюции, известный как регулярная резолюция (regular resolution), вторая
СПВ представляет собой регулярную резолюцию, дополненную возможностью применять к рассматриваемому противоречию простейшее правило расширения.
Далее поясняются некоторые ключевые моменты. Рассматривается логическое противоречие С, представленное в КНФ над множеством булевых переменных X. Процедуру опровержения С посредством общей резолюции удобно представлять в виде дерева (дерева вывода), корнем которого является пустой дизъюнкт, ветви помечаются литералами, а узлы (вершины) — дизъюнктами, по которым порождаются резольвенты (в том числе и собственно резольвентами). Очевидно, что при этом некоторые вершины дерева вывода могут быть помечены одинаковыми дизъюнктами, а ветви — одинаковыми переменными. Две ветви, выходящие из произвольного узла, соответствующего некоторой резольвенте, помечаются парой контрарных литералов, удаление которых привело к порождению данной резольвенты. В регулярной резолюции требуется, чтобы для любой переменной х £ X каждый путь в дереве вывода из корня в лист содержал не более одного ребра, помеченного литералом из {х,х}. Регулярная резолюция дает полную СПВ, поскольку произвольный вывод в смысле общей резолюции можно за конечное число шагов преобразовать в регулярный. Очевидным образом общая резолюция полиномиально моделирует регулярную, как свой частный случай.
В работе [1], помимо общей и регулярной резолюции, рассматриваются эти же СПВ, дополненные возможностью использовать в отношении исходной КНФ правило расширения, описанное во введении (вторая цитата из [1]). Данное правило предлагается применять в качестве схемы порождения аксиом, а правило резолюций — в качестве правила вывода. Несложно видеть, что одна итерация этого правила расширения соответствует вводу новой переменной а, а приписываемые дизъюнкты кодируют эквивалентность а = (в V 7). Ввод а можно рассматривать как обогащение исходной аксиоматики новой аксиомой, не влияющей на противоречивость опровергаемого утверждения.
Данного простейшего правила расширения Г. С. Цейтину оказалось вполне достаточно для демонстрации большей мощности расширенной СПВ по сравнению с исходной, в качестве которой выступала регулярная резолюция. Для этой цели в [1] вводится натуральное семейство логических противоречий $г, в основе которого лежат системы линейных уравнений над 0Е(2). Каждой КНФ С из $г ставится в соответствие противоречивая КНФ С~, полученная в результате (вообще говоря, многократного) применения к С правила расширения Цейтина.
Пусть С — невыполнимая КНФ. Через N * (С) обозначим наименьшее число резольвент, порождаемых регулярной резолюцией при доказательстве противоречивости С. Ставится вопрос о поведении N * (С) и N * (С ~), если С пробегает $г. Далее приведен основной результат работы [1].
Теорема 2 [1]. Для величин N * (С), N * (С~) и некоторой константы с справедливы следующие соотношения:
1) N * (С) ^ 2*^™^, где т (С) —число дизъюнктов в С £ $г;
2) N * (С) ^ 2е Vм *(с~).
В первом пункте утверждается, что сложность регулярной резолюции не ограничивается сверху никаким полиномом. Второй пункт означает, что регулярная резолюция не моделирует полиномиально свой расширенный вариант.
В дополнение отметим, что задача доказательства противоречивости формул из $г может быть решена за полиномиальное время, поскольку возможно ее сведение к задаче доказательства несовместности систем линейных уравнений над 0Е(2) [2].
В зарубежных исследованиях некоторый интерес к проблемам сложности пропозиционального вывода начинает проявляться лишь с середины 70-х годов XX века. Настоящий бум результатов в этой области породила статья Армина Хакена 1985 г. «Труднорешаемость резолюций» [17]. В данной работе была установлена неполи-номиальность общей резолюции на классе противоречий, известных как «формулы Дирихле».
Формулы Дирихле были введены С. Куком и Р. Рекхау в уже упоминавшейся работе [14]. Данные формулы представляют собой пропозициональные кодировки отрицания известного принципа Дирихле, в соответствии с которым при любом размещении т голубей по п, п < т, клеткам найдется клетка, в которой окажется более одного голубя. Таким образом, фраза: «существует такое размещение т голубей по п, п < т, клеткам, при котором в каждой клетке сидит не более одного голубя» является логическим противоречием для любых натуральных т и п. Принцип Дирихле и его отрицание допускают простые интерпретации в рамках исчисления высказываний. Введем для этой цели булевы переменные х^:
Xi
1, если i-й голубь сидит в j-й клетке;
j Ï 0, если i-й голубь не сидит в j-й клетке.
Формула PHPmm [18] определяется следующим образом:
(&”=! vn=i Xj) & (Xij V Xi2j)) .
Часть &m=i Vn=i Xj означает, что каждый голубь сидит в некоторой клетке, а часть &”=1&1^i1<i2^m (xi1j V Xi2j ) означает, что ни в одной клетке не сидит более одного голубя. Некоторое пояснение: тот факт, что никакие два голубя не сидят вместе в клетке с номером j , очевидно, можно записать так:
(xj&X2j) & (xy&X3j) & ... & (xy&Xmj) & (x2j&X3j) & ... & (xm-1j&Xmj) .
В силу сказанного выше при m > n формула PHPm представляет собой логическое противоречие.
Первоначальный результат А. Хакена состоял в том, что всякое доказательство противоречивости формулы PHPП+1 посредством общей резолюции потребует порождения экспоненциального от n числа резольвент. Три года спустя результат А. Хакена был усилен С. Бассом и Д. Тураном, которые в работе [18] показали, что всякое резо-
П2
лютивное опровержение формулы PHP m, m > n, порождает не менее чем 1/2 • (3/2) 50m резольвент. Обзор дальнейших результатов в данном направлении см. в работе [13].
Для наших целей, однако, важность представляют результаты А. Хакена, конспективно изложенные в заключительной части работы [17]. Речь идет об использовании в терминологии А. Хакена «расширенной резолюции». Основная идея А. Хакена восходит к [14] и состоит в возможности полиномиального сведения проблемы опровержения PHPП+1 к проблеме опровержения PHP1. Многократное применение данного сведения тем не менее приводит к экспоненциальному разрастанию формулы и не может быть задействовано напрямую. Выходом из этой ситуации является использование преобразований Цейтина. А. Хакен описывает (правда, очень схематично) полиномиальную по сложности процедуру сведения проблемы опровержения PHPП+1 к проблеме опровержения PHP2. Данная процедура представляет собой итеративную последовательность преобразований Цейтина, в ходе которой задействуются O (n4) дополнительных переменных. Данный факт означает, что СПВ, в которой общая резолюция
дополнена возможностью применения преобразований Цейтина, является полиномиально ограниченной на семействе формул {РНРП+1 : n Є N}. Сказанное позволяет заключить, что формулы PHPm являются легкими для такой СПВ и при любых m > n («лишних голубей» можно не принимать во внимание).
Резюмируя сказанное, следует отметить, что и собственно преобразования Цейти-на, и правила расширения, используемые как инструмент дополнения опровергаемого утверждения C новыми фактами, не влияющими на противоречивость C, могут приводить к значительному сокращению длины опровержения. Относительно предельной мощности таких расширенных СПВ в этом смысле мало что известно. Далее следует цитата из [17] по данному поводу.
«Одной из целей является доказательство того, что 'расширенные резолюции также неполиномиальны. Эта задача кажется очень трудной, поскольку, используя правила расширения, мы можем моделировать мета-рассуждения о том, что данная формула является противоречием. Возможно, вопрос о сложности расширенной резолюции будет решен только после решения проблемы равенства классов NP и co-NP».
2.3. Двоичные диаграммы решений и СПВ на их основе
Двоичные диаграммы решений (Binary Decision Diagrams, BDD) —класс ориентированных помеченных графов, используемых для работы с булевыми функциями. Первое описание BDD было приведено в работе [19], однако важные свойства BDD как структуры данных, используемой для манипулирования булевыми функциями, были описаны намного позже — в [20].
Стандартно BDD определяется как направленный ациклический граф, в котором выделена одна вершина с входной степенью 0, называемая корнем, и две вершины с выходной степенью 0, называемые терминальными. Терминальные вершины помечены константами 0 и 1. Все остальные вершины помечаются переменными из множества X = {х1,. .. , хп}. Из любой вершины, за исключением терминальных, выходят в точности 2 дуги. Одну дугу обычно рисуют пунктирной, а другую — сплошной линией. Дуга, обозначенная пунктиром, называется low-ребром, дуга, обозначенная сплошной линией, называется high-ребром. Наиболее нагляден процесс построения BDD из двоичных деревьев решений, представляющих булевы функции [21]. Здесь и далее подразумеваются всюду определенные булевы функции.
Если склеить в одну вершину все листья дерева решений некоторой булевой функции, помеченные 0, и то же самое проделать с листьями, помеченными 1, получится BDD.
Если произвольный путь п в BDD из корня в терминальную вершину не содержит вершин, помеченных одинаковыми переменными, и его прохождение подчинено общему для всех путей порядку (например, х1 -< х2 -< ... -< хп-і -< хп), то такая BDD называется упорядоченной (Ordered Binary Decision Diagram, OBDD). В записи х1 -< ... -< хп здесь и далее подразумевается, что корень рассматриваемой OBDD помечен переменной х1. Зафиксированный указанным образом порядок на OBDD будем называть порядком означивания переменных.
При использовании BDD как структур данных, представляющих булевы функции, следует различать разные вершины BDD, помеченные одной и той же переменной. Далее для этой цели используем обозначения v1 (х) , v2 (х) ,... Вершины, соединенные с нетерминальной вершиной v исходящими из нее low- и high-ребрами, обозначаются
low(v) и high(v) соответственно. Также используем обозначение var (v (x)) = x или более краткое var (v) = x.
В произвольной OBDD можно выделять фрагменты (подграфы), которые сами являются OBDD. Для этой цели достаточно объявить соответствующую нетерминальную вершину корнем BDD. Идея сокращенной OBDD (Reduced Ordered Binary Decision Diagram, ROBDD) заключается в склейке повторяющихся фрагментов: ROBDD-граф не должен содержать одинаковых OBDD-подграфов меньших размерностей. Таким образом, ROBDD можно рассматривать как наиболее сжатое графическое представление некоторой булевой функции. Сказанное означает, что ROBDD — это OBDD, в которой:
1) равенства var (v) = var (u) , high (v) = high (u) , low (v) = low (u) означают, что v = u;
2) для любой нетерминальной вершины v имеет место high (v) = low (v).
Р. Брайантом в 1986 г. [20] было показано, что любая всюду определенная булева функция при фиксированном порядке означивания переменных имеет единственное (с точностью до изоморфизма соответствующих графов) ROBDD-представление.
Двоичные диаграммы решений, а точнее ROBDD, можно использовать для решения систем логических уравнений. Подробным обзором на эту тему является работа [22].
Основным алгоритмом работы с ROBDD является описанный в [20] алгоритм APPLY. Данный алгоритм по паре ROBDD В (Д) и В (/2) булевых функций / и /2 над множеством булевых переменных X = (xi,... ,xn} строит ROBDD булевой функции /3 = /1 * /2, где * —произвольная бинарная логическая связка. При этом означивание переменных в B (/1) и B (/2) должно быть подчинено одному порядку. Факт построения посредством APPLY ROBDD B (/3) по известным B (/1) и B (/2) обозначается следующим образом:
B (/з) = apply (b (/i) * B (/2)).
Сложность алгоритма APPLY построения B (/3) есть O (|B (/1) | • |В (/2) |), где через |В| обозначено число вершин в ROBDD В.
Основа алгоритма APPLY чрезвычайно проста и заключается в одновременном прохождении обеих ROBDD в соответствии с выбранным порядком означивания переменных. Такому обходу В (/1) и В (/2) ставится в соответствие дерево T (/3), представляющее функцию /3. Каждая вершина в T (/3) определяется парой координат — соответствующими текущими вершинами в В (/1) и В (/2). Так как порядок означивания переменных в В (/1) и В (/2) совпадает, то при построении T (/3) не происходит возвратов, поэтому число вершин в нем не превосходит величины |В (/1) | • |В (/2) |. После построения дерева T (/3) оно усекается до ROBDD. Процедура усечения линейна от размерности T (/3). В целом, однако, возможна более эффективная схема, использующая в своей основе принцип динамического программирования. В соответствии с ней построение ROBDD В (/3) происходит, минуя этап построения T (/3). При этом В (/3) строится как динамически заполняемая таблица — новая вершина заносится в таблицу лишь тогда, когда таблица не содержит дубликата этой вершины.
Так как ROBDD является структурой, в рамках которой решаются вопросы совместности произвольных систем логических уравнений, то общую схему построения ROBDD-представлений булевых функций, заданных пропозициональными формулами, можно рассматривать как некоторую СПВ. Единственной известной нам работой, в которой подробно изучается такая система, является [6].
Основа подхода, предлагаемого в [6], состоит в том, что для опровержения или доказательства выполнимости произвольной пропозициональной формулы ^ над множеством булевых переменных X = (жі,... , жп} достаточно построить ROBDD булевой функции / : (0,1}n ^ (0,1}, которую данная формула задает. Формула ^ невыполнима тогда и только тогда, когда / есть тождественный ноль, то есть когда ROBDD B (/^) состоит из одной терминальной вершины 0. ROBDD-вывод для произвольной пропозициональной формулы ^ над X в [6] определяется как рекурсивное применение алгоритма APPLY. Начальным (базовым) множеством является множество ROBDD, представляющих булевы функции вида Xi, і Є (1,... ,n}. Если в формуле ^ присутствует m логических связок, то APPLY вызывается m раз.
Таким образом, имеем СПВ, в которой APPLY-процедура используется в качестве итеративно применяемого правила вывода наподобие правила резолюции или правила единичного дизъюнкта в СПВ на базе алгоритма DPLL (см., например [23]). Итогом каждой итерации в рассматриваемой системе доказательств является некоторая ROBDD. Критическим параметром сложности вывода в данном случае является максимальный размер (число вершин) ROBDD, возникающей в процессе доказательства. Полнота описанной СПВ очевидна — в результате конечной последовательности итераций будет доказана выполнимость формулы ^ или же данная формула будет опровергнута. Доказательства данного типа далее называем ROBDD-доказательствами (ROBDD-выводами, ROBDD-опровержениями).
Далее кратко остановимся на некоторых результатах работы [6]. Особо оговоримся, что направление, выбранное в [6], по-видимому, правильно и перспективно, но ключевые результаты выглядят не вполне убедительно и требуют дальнейшего совершенствования.
Основным результатом работы [6] является вывод о том, что ROBDD-доказательства не моделируют полиномиально резолютивные, а резолютивные доказательства не моделируют полиномиально ROBDD-доказательства.
Первый факт устанавливается при помощи формул Дирихле, а именно рассматриваются натуральные семейства формул следующего вида:
&г=1 Vj=1 Xjj, Qm,n &j=1&1^ii<i2^m (xiij V ) ;
рнрт = ■ Qm,ra.
Далее показывается, что при любом порядке означивания соответствующих булевых переменных в ходе ROBDD-доказательства применительно к формулам PHPm (m > n) обязательно возникают ROBDD, функция числа вершин которых растет как O (1,63n). Данный факт в контексте результатов предыдущего пункта позволяет сказать о большей мощности расширенной резолюции в сравнении с СПВ на основе ROBDD.
Далее в [6] демонстрируется экспоненциальная сложность ROBDD-вывода на формулах ■ Rn,n, где Rm,n = Qm,n (порядок сложности аналогичен приведен-
ному выше: O (1,63n)). Затем рассматривается семейство логических противоречий вида y ■ (y ■ CRn,n) и отмечается, что, в силу сказанного, всякое ROBDD-опровержение формул данного вида содержит ROBDD-доказательство для формул CRn,n и поэтому экспоненциально. Перед построением резолютивного доказательства к формулам y ■ (y ■ CRn,n) предлагается применить преобразования Цейтина с целью приведения их к КНФ. После этого делается вывод о существовании линейного по сложности доказательства противоречивости полученных формул посредством использования только правила единичного дизъюнкта (являющегося частным случаем правила резолюции). Отметим, что данный результат выглядят весьма искусственным.
В работе [6] также устанавливается полиномиальная оценка сложности для ROBDD-доказательств так называемых бикондициальных формул (Biconditional Formula). Данный класс образован пропозициональными формулами, содержащими литералы над множеством булевых переменных, скобки, а также логическую эквивалентность. Бикондициальные формулы очень просто генерировать по словам над произвольными конечными алфавитами. Например, слову abcda можно поставить в соответствие бикондициальные формулы типа
a = (b = (c = (d = a))), a = (—b = (c = (—d = a))),...,
являющиеся пропозициональными формулами над множеством булевых переменных (a, b, c, d}. В [6] показывается, что для всякой бикондициальной формулы ^ существует ROBDD-вывод (в контексте данного выше определения), функция сложности которого ведет себя как O (|^|3), где через |<^| обозначено число встречающихся в ^ символов.
Далее в [6] строится одно натуральное семейство бикондициальных формул. Сначала каждому n Е N ставится в соответствие специальным образом построенное слово в некотором алфавите подходящей мощности
P1Р2 . ..Pn-2" , (6)
в котором каждая буква алфавита встречается дважды. Этому слову сопоставляется бикондициальная формула
= p1 = (p2 = ... = (pra-2n-1 = pra-2n) . . .) .
Тем самым получается семейство формул (Sn : n Е N}. Конструкция слова (6) такова, что —является логическим противоречием. Затем каждая формула —переводится в КНФ при помощи преобразований Цейтина. Полученное так натуральное семейство КНФ обозначается через (C (—Sn) : n Е N}. Особо отметим тот факт, что порядок роста размера формул C (—Sn) есть O (n • 2n).
Второй основной результат работы [6] состоит в том, что во всяком доказательстве формул C (—Sn) посредством общей резолюции функция числа порождаемых резольвент мажорирует величину 2O(2n/ra). Данный факт устанавливается при помощи одного результата работы [24], выявляющего связь между сложностью резолютивного опровержения и длиной (то есть числом вхождений литералов) возникающих в ходе этого опровержения резольвент.
С другой стороны, сложность ROBDD-опровержений бикондициальных формул (—: n Е N}, в силу сказанного выше, растет как полином от n • 2n.
Отметим, что «естественному» восприятию данного результата мешает тот факт, что (C(—Sn) : n Е N} —это семейство формул, которое не порождается эффективно по своим натуральным индексам (в отличие, например, от семейства |РНРП+1 : n Е N}). Еще одним негативным моментом является то, что резолюция применяется к формулам C (—Sn), а ROBDD-доказательства — к формулам —Sn. Сами авторы [6] отмечают, что ROBDD-доказательства в применении к формулам C (—Sn) имеют экспоненциальную сложность.
3. Приведение систем логических уравнений к нормальным формам;
смежные вопросы
3.1. Преобразования логических уравнений и систем
Одной из важнейших функций преобразований Цейтина, как следует из вышесказанного, является приведение систем логических уравнений к некоторым форма-
там, удобным с точки зрения дальнейших исследований. Простейшим примером могут служить преобразования, при помощи которых доказывается МР-полнота задачи 3-БАТ. Ключевой момент здесь состоит в переходе от произвольного дизъюнкта вида (¿і V ... V 2*), где к > 3 и 2, і Є {1,...,к},— литералы над множеством X = {хг,... , хп}, к КНФ
(¿1 V ... V 2^-2 V и) ■ (и V 2к_Г) ■ (и V 2*) ■ (и V 2*_і V ¿к)
применением преобразования Цейтина, в котором используется эквивалентность и = (2*_1 V 2*).
Далее при помощи преобразований Цейтина дадим очень простое доказательство известного результата об МР-полноте задачи определения совместности билинейных (т. е. степени 2) систем над полем ОЕ(2).
Теорема 3. Задача определения совместности билинейных систем над полем 0Е(2) является МР-полной.
Доказательство. Сведем к задаче определения совместности билинейной системы над 0Е(2) задачу проверки выполнимости произвольной 3-КНФ С, то есть КНФ, составленной из трехлитеральных дизъюнктов. Данная задача МР-полна. Пусть С задана над множеством булевых переменных X = {хг,... , хп}. Для каждой переменной хі, входящей в КНФ С без инверсии, введем новую переменную и, заменим каждое вхождение хі на и и конъюнктивно припишем к С выражение (хі V и) ■ (Хї V иї), кодирующее эквивалентность иї = хі. Проделаем аналогичные преобразования относительно всех переменных из X, входящих в С без инверсии. Итоговую КНФ обозначим через С~. По теореме 1 существует биекция между множествами решений уравнений С =1 и С~ = 1. В С~ присутствуют группы дизъюнктов двух видов: это трехлитеральные дизъюнкты, составленные только из переменных с инверсиями, и группы дизъюнктов вида (хі V иі) ■ (Хї V и). Заметим, что уравнение (хі V иі) ■ (Хї V иї) = 1 эквивалентно линейному уравнению хі ® иі ® 1 = 0 над полем ОЕ(2). Рассмотрим произвольный дизъюнкт, состоящий из трех переменных с инверсией: (х V у V 2). Введем
новую переменную V, заменим формулу (х V у) формулой V. По теореме 1 существует биекция между множествами решений уравнения (х V у V 2) = 1 и системы
Г (V V 2) = 1,
\ ^ = (Х V у)) = 1.
Данная система эквивалентна системе
Г V ■ 2 = 0,
\ (v = Х ■ у) = 1
которая, в свою очередь, эквивалентна системе
Iv ■2 =0,
\ х ■ у ф V = 0.
Система (7) состоит из двух билинейных уравнений над полем ОЕ(2). Таким образом, за линейное от объема двоичного кода КНФ С время можно при помощи преобразований Цейтина перейти от задачи выполнимости 3-КНФ С к задаче определения совместности системы уравнений над полем ОЕ(2), в которой фигурируют линейные уравнения вида хі ф иі ф 1 = 0, а также билинейные уравнения, образующие подсистемы вида (7). В соответствии с теоремой 1 полученная система совместна тогда и
только тогда, когда выполнима исходная КНФ. Тем самым установлена NP-полнота задачи определения совместности произвольной системы билинейных уравнений над полем GF(2). ■
В работе [25] при помощи техники, похожей на технику доказательства теоремы 3, была исследована проблема декомпозиции системы логических уравнений вида КНФ = 1 на полиномиально разрешимые подсистемы с сохранением свойства консервативности.
Определение 1. Пусть существует алгоритмически вычислимая за полиномиальное время функция т, преобразующая систему логических уравнений U в систему логических уравнений т (U), причем
1) существует биекция и между множествами решений систем U и т (U);
2) от произвольного решения системы т (U) за полиномиальное в общем случае время осуществим переход к соответствующему в смысле и решению U.
В этом случае системы U и т (U) называем полиномиально консервативно изоморфными (кратко консервативно изоморфными), а функцию т — консервативным изоморфизмом.
Простейшие консервативные изоморфизмы, как показывает теорема 1, можно получить, используя преобразования Цейтина.
Далее рассматриваются несколько классов логических уравнений. Во-первых, это линейные системы над GF(2) вида
Xii ф x 12 = 1,
Xsl ф Xs2 = 1.
Для систем данного типа будем также использовать обозначение U (x11,... ,xs2 ) = 1. Второй тип уравнений — это уравнения вида C2 (x1,... ,xn) = 1, где C2 (x1,... ,xn) — КНФ, каждый дизъюнкт которой содержит два литерала. Третий тип уравнений — это уравнения вида H_ (x1,... , xn) = 1 или H+ (x1,...,xn) = 1. Здесь H_ (x1,... , xn) — это хорновская (используем также термин «негативно хорновская») КНФ, то есть КНФ, каждый дизъюнкт которой содержит не более одной переменной без инверсии (см., например, [26]), а H+ (x1,... ,xn) —позитивно хорновская КНФ, то есть КНФ, каждый дизъюнкт которой содержит не более одной переменной с инверсией. В некоторых источниках негативно и позитивно хорновские КНФ именуются соответственно слабо положительными и слабо отрицательными КНФ (см., например, [27]). Хорошо известно, что для задач поиска решений логических уравнений перечисленных классов существуют полиномиальные алгоритмы. В [25] установлена справедливость следующего утверждения.
Теорема 4 [25]. Для логического уравнения вида C (x1,...,xn ) = 1, где
C (x1,...,xn) —произвольная КНФ над множеством булевых переменных X = = {x1,... ,xn}, существует консервативно изоморфная ему система логических уравнений любого из перечисленных ниже типов:
Г U (xn, . . . ,xs(n}2) = 1, Г U (xn, . . . ,xs(n}2) = 1, I H_ ( y1, . . . , yp(n)
1 H+ (уъ ..., yp(n)) = 1; 1 H_ (уъ ..., yp(n)) = 1; | H+ iy2,..., y2(n)
( С (/1,..., Ур(п)) = 1 ( С (у!,..., Укп)) = 1
\ н+ (у2,..., У?(п)) = 1 \ Н- (у2, ..., У?(п)) = 1
Здесь р (п) ^ 2п; д (п) ^ 2п; 5 (п) ^ п.
3.2. Исследование свойств дискретных автоматов Наблюдающееся в последние годы бурное развитие алгоритмической базы решения БАТ-задач сделало возможным использование БАТ-подхода в исследовании многих практически важных классов дискретных управляющих систем (в терминологии [28] — дискретных автоматов). Преобразования Цейтина при этом являются основным инструментом, реализующим переход от исходной задачи к БАТ-задаче.
Следующая конструкция (относящаяся, по-видимому, к категории фольклорных) используется в задачах верификации логических микросхем (см., например, [29]). Предположим, что даны две схемы Б (/) и Б (д), реализующие булевы функции / : {0,1}п ^ {0,1} и д : {0,1}п ^ {0,1} в произвольном полном базисе В из функциональных элементов. Задача состоит в распознавании по схемам Б (/) и Б (д) эквивалентности функций / и д. Рассмотрим следующую схему Б (Л) (рис. 1).
Данная схема представляет булеву функцию Л = / ф д. Очевидно, что функции / и д эквивалентны тогда и только тогда, когда функция Л есть тождественный ноль на {0,1}п. Используя преобразования Цейтина, можно поставить в соответствие схеме Б (Л) систему логических уравнений
(и1 (у1, . . . , ур(га)) = 1,
■ ■ ■ (8)
ид(га) (у1, . . . , ур(га)) 1
над множеством булевых переменных У = |у1, ...,ур(га)} , X С У, р (п) , д (п) — некоторые полиномы. При этом строго показывается, что данная система несовместна тогда и только тогда, когда функция Л есть тождественный ноль на {0,1}п. После этого, опять-таки при помощи преобразований Цейтина, можно перейти от задачи доказательства несовместности (8) к задаче доказательства невыполнимости некоторой КНФ.
В работе [11] С. А. Куком была доказана фундаментальная теорема о пропозициональном кодировании формальных вычислительных моделей, положившая начало
теории NP-полноты. Доказательство Кука было проведено в контексте машин Тьюринга и использовало преобразования, идейно схожие с преобразованиями Цейтина, но отличающиеся от них, вообще говоря, отсутствием консервативности. В [30] приведено использующее преобразования Цейтина доказательство варианта теоремы Кука в отношении задач обращения дискретных функций, вычислимых на двоичных аналогах машин с неограниченными регистрами в формализме Н. Катленда [31]. Эта формальная модель более близка современным компьютерам, чем машина Тьюринга, а развитая в [30] техника допускает перенос на пропозициональное кодирование алгоритмов вычисления дискретных функций, записанных на высокоуровневых языках программирования. Данный факт дает основу для разработки и программной реализации технологии обращения дискретных функций из класса, значимого различными практическими приложениями. Здесь кратко остановимся на основных результатах, полученных в данном направлении.
Обозначим через f = {fn : n Є N} натуральное семейство дискретных функций вида
f : {0,1}n — {0,1}* ,
определенных всюду на {0,1}n (dom fn = {0,1}n) и алгоритмически вычислимых за полиномиальное от n время. Проблемой обращения произвольной функции fn из такого семейства называется следующая задача: по произвольному у Є range fn С {0,1}* и известному алгоритму вычисления f (программе для выбранной вычислительной модели) требуется найти такой x Є {0,1}n, что fn (x) = у. Данную проблему будем называть проблемой обращения функции fn в точке у Є range fn.
Теорема 5 [30]. Для любого семейства f дискретных функций из определенного выше класса существует алгоритм с полиномиально от n ограниченной сложностью, который, получая на входе n и у Є range fn, преобразует проблему обращения fn в точке у в проблему поиска решений логического уравнения вида C (xi,..., xq(n)) = 1, где q (n) — некоторый полином, а C (xi,..., xq(n)) — выполнимая КНФ над множеством булевых переменных |xi, . . . , xq(ra) }.
Это утверждение вместе с теоремой 1 составляет основу пропозиционального подхода к обращению дискретных функций из рассматриваемого класса. В соответствии с данным подходом алгоритм вычисления fn представляется в виде системы логических уравнений, от которой затем при помощи преобразований Цейтина осуществляется переход к одному уравнению вида КНФ = 1. Получаемая SAT-задача всегда имеет решение, от которого (в силу теоремы 1) можно эффективно перейти к искомому прообразу точки у Є range fn, то есть к такому вектору x Є {0,1}n, что fn (x) = у. Для решения SAT-задач можно использовать богатый арсенал наработанных методов и алгоритмов [32].
Данный подход оправдал себя по отношению к таким аргументированно трудным задачам обращения дискретных функций, как задачи криптоанализа некоторых поточных систем шифрования [8, 33-35].
4. Преобразования Цейтина в задачах подсчёта
Здесь преобразования Цейтина используются в исследовании сложности некоторых задач на подсчёт. Определяемый ниже класс #Р-полных задач впервые был введен Л. Дж. Валиантом в работе [36].
Определение 2 (см., например, [37]). Класс #Р образован такими функциями вида f : {0, 1}* —> N U {0}, что для всякого x Є {0,1}* и некоторой полиномиаль-
ной детерминированной машины Тьюринга М существует в точности / (ж) таких слов у Е {0,1}*, длина которых в общем случае ограничивается полиномом от |ж|, что М, получив на входе слово ж|у, останавливается в положении «да». Функция /, равно как и проблема вычисления её значения, называется #Р-полной , если / Е и любая функция д Е вычисляется на полиномиальной машине Тьюринга с оракулом, выдающим значение функции /.
Примером #Р-полной является функция, которая, получив на вход произвольную КНФ С, выдает число наборов, выполняющих С [36]. Несложно понять, что любая #Р-полная проблема является также и МР-трудной.
4.1. Сложность проблемы подсчета числа в ы п о л н я ю щ и х н а б о р о в х о р н о в с к и х К Н Ф
В работе [38] было показано, что проблемы подсчета числа решений некоторых систем логических уравнений являются #Р-полными, и это при том, что проблемы совместности этих систем решаются за полиномиальное время. Наиболее ярким в этом направлении является результат о #Р-полноте проблемы подсчета числа выполняющих наборов монотонной 2-КНФ, т. е. КНФ из двухлитеральных дизъюнктов, в которую все переменные входят с инверсиями или все — без инверсий. Прямым следствием данного факта является #Р-полнота проблемы подсчета числа выполняющих наборов произвольной хорновской КНФ. К сожалению, детальное доказательство этого результата, являющееся итогом шести редукций, требуется извлекать из двух работ [36, 38]. Проблемы подсчета решений различных классов логических уравнений подробно исследовались также в [27, 39]. В работе [27] было дано еще одно доказательство #Р-полноты проблемы подсчета числа наборов, выполняющих хорновские КНФ. Это доказательство также весьма сложно в техническом плане.
Далее приводится новое доказательство #Р-полноты проблемы подсчета наборов, выполняющих произвольную хорновскую КНФ, использующее в своей основе преобразования Цейтина. Данное доказательство существенно проще доказательств, имеющихся в упомянутых выше работах.
Рассмотрим произвольное логическое уравнение вида
Ф (ж1,... ,ж„) = 1 (9)
над множеством булевых переменных X = {ж1,...,жп}. Через Ф (X) обозначим число наборов значений переменных из X, являющихся решениями (9). Очевидным образом справедлив следующий факт.
Лемма 1. Рассматривается уравнение (9). Пусть Ь (ж^ ,...,жг) —произвольная формула ИВ от булевых переменных ж^,... , жг, {ж^,... , ж^} С X. Тогда имеет место соотношение
#хФ (X) = #х (Ф (X) ■ Ь (жг1 ,...,ж*г)) + #х (Ф (X) ■ -Ь (жг1 ,...,ж*г)).
Установим справедливость следующей теоремы.
Теорема 6. Проблема подсчета числа наборов, выполняющих произвольную хорновскую КНФ, является #Р-полной.
Доказательство. Рассмотрим произвольное уравнение вида (1), т. е. уравнение С(ж1,...,жп) = 1, где С — КНФ. Проблема подсчета числа решений (1) в общем случае #Р-полна. Используем конструкцию, примененную при доказательстве теоремы 3.
Произвольному литералу хі, І Є {1,... , п}, входящему в С (хі, ... , хп), сопоставим новую булеву переменную уі, заменим все вхождения литерала £ в С на вхождения литерала у и припишем к С (через знак конъюнкции) выражение (х V уі) • (хі V у), кодирующее эквивалентность у = х^ Повторив данную операцию не более п раз, перейдем от уравнения (1) к уравнению следующего вида:
(хі V уі) • ... • (х* V у*) Я- (Хі) = 1. (10)
Здесь Я! (Х1) —хорновская КНФ над множеством булевых переменных Х1 =
= {х1,...,хп} и {у1,...,у*}, і ^ п, а точнее, монотонная КНФ, в которую все переменные входят с инверсиями. В силу теоремы 1 уравнения (1) и (10) консервативно изоморфны. Если і = 1, то по лемме 1
#х ((х1 V у1) Я- (Х1)) = #ХіЯ- (Х1) - #х (хг • ут Я- (Х1)) . Предположим, что і ^ 2. Обозначим левую часть (10) через Ф (Х1). В силу леммы 1 имеем ( )
#хі Ф (Х1) = #хіЯ- (Х1) - #хі ((х1 • у1 V ... V х* • у*) Я- (Х1)) . (11)
В отношении формулы (х1 • у1 V ... V х* • у*) • Я1 (Х1) осуществим преобразования Цей-тина, используя следующие эквивалентности:
М = хі • уі, і Є {2,...,і} .
В результирующей формуле термы хі • уі заменятся термами щ, і Є {2,... , і}; кроме этого, появятся новые конъюнкции вида
(хі V Мі) • (уі V Мі) • (хі V уі V мі) , і Є {2,... , і} .
К дизъюнктам вида (хі V уі V мі) снова применяем преобразования Цейтина, вводя эквивалентности V = уі и учитывая при этом появление в итоговой формуле конъюнкций вида (уі V мі) • (уі V мї), і Є {2,... , і}. Результатом перечисленных действий является формула
(у2 V М2) • ... • (у* V V*) • (х1 • у1 V М2 V ... V м*) • Я~ (Х2) , (12)
где Я~ (Х2) —хорновская КНФ над множеством булевых переменных
Х2 = Х1 и {М2, . . . ,М*} и {^2, . . . , V*} .
С учетом того факта, что
(х1 • уї V М2 V ... V М*) = (х1 V М2 V ... V М*) • (у1 V М2 V ... V М*) ,
формула (12) преобразуется к виду
(у2 V М2) • ... • (у* V V*) • Я- (Х2) ,
где Я2 (Х2) —хорновская КНФ над Х2. В силу теоремы 1 имеем
#Хі ((х1 • у1 V ... V х* • у*) • Я- (Х1)) = #Х2 ((у2 V м2) • ... • (у* V м*) • Я- (Х2)) . Переходим к задаче вычисления величины
#Х2 ((у2 V м2) • ... • (у* V м*) • Я- (Х2)) .
В общей сложности повторяем описанную процедуру t — 1 раз (t ^ 2).
В итоге имеем следующее соотношение, объединяющее все возможные случаи:
#х,ф №) = Е‘=1 (—1)'-1#X. (Hi №)) + (—1)‘ #X, (rt ■ Щ ■ Hi (X,)) . (13)
Последнее слагаемое в (13) учитывает тот факт, что
#Xt ((rt V S) ■ Hi (Xt)) = #XtHi (Xt) — #Xt (n ■ s ■ Hi (Xt)) .
Заметим, что переход от (11) к (13) требует времени, в общем случае ограниченного полиномом от объема двоичного кода КНФ C (x1,... , xn), фигурирующей в исходном уравнении вида (1).
Все сказанное означает, что задачу подсчета числа решений произвольного уравнения вида (1) можно решить за полиномиальное время на оракульной машине Тьюринга, оракул которой, получая на входе произвольную хорновскую КНФ, выдает число выполняющих ее наборов. Тем самым задача подсчета числа наборов, выполняющих произвольную хорновскую КНФ, является #Р-полной. Теорема 6 доказана. ■
4.2. К проблеме аргументации сложности задач построения ROBDD-представлений некоторых булевых функций
Здесь мы возвращаемся к проблеме сравнения эффективности SAT- и ROBDD-подходов к поиску решений логических уравнений. В п. 2.3 были приведены далеко не бесспорные результаты работы [6] по построению абсолютных сравнительных оценок эффективности данных подходов. Следующее утверждение дает условные оценки такого рода, базируясь на известных результатах о структурной сложности некоторых задач подсчёта.
Теорема 7. Проблемы построения ROBDD-представлений булевых функций, заданных хорновскими КНФ, а также КНФ, составленными из двухлитеральных дизъюнктов, не могут быть в общем случае решены за полиномиальное время, если P = NP.
Доказательство. В работе [20] описан алгоритм SAT-count, который по произвольной ROBDD B (f), представляющей булеву функцию f, за линейное от числа вершин в B (f) время выдает число наборов значений переменных, на которых функция f принимает значение 1. Далее можно использовать результаты Л. Валианта, а также результат теоремы 6 настоящей работы. Если бы существовала полиномиальная по сложности процедура построения ROBDD-представления произвольной булевой функции, заданной, например, в виде хорновской КНФ, то функция числа вершин в получаемом натуральном семействе ROBDD была бы ограничена сверху некоторым полиномом от объема двоичного кода исходных формул. Но тогда по полученной ROBDD можно было бы при помощи алгоритма SAT-count подсчитать число наборов, выполняющих исходную КНФ, за полиномиальное в общем время. Однако данный факт в силу теоремы 6 означал бы, что P = NP. Теорема 7 доказана. ■
Заключение
Рассмотрен ряд задач по проблемам вычислительной сложности вывода в исчислении высказываний, сравнительной эффективности различных систем пропозиционального вывода, приведения систем логических уравнений к нормальным формам с сохранением важных свойств, а также по вопросу аргументации вычислительной
сложности некоторых задач на подсчёт. Конструктивную основу большинства приведенных результатов составляют преобразования Цейтина [1].
Автор благодарит сотрудников лаборатории дискретного анализа и прикладной логики ИДСТУ СО РАН за активное обсуждение материала статьи.
ЛИТЕРАТУРА
1. Цейтин Г. С. О сложности вывода в исчислении высказываний // Записки научных семинаров ЛОМИ АН СССР. 1968. Т. 8. C. 234-259.
2. Данцин Е. Я. Алгоритмика задачи выполнимости // Вопросы кибернетики. Проблемы сокращения перебора. М.: АН СССР, 1987. С. 7-29.
3. Waisberg M. Untersuchungen uber den Aussagen kalkul von Heyting // Wiadom. Matemat. 1938. No. 46. P. 45-101.
4. Tseitin G. On the complexity of derivation in propositional calculus // Automat. Reasoning. 1983. V.2. P. 466-483.
5. Plaisted D., Greenbaum S. A Structure-preserving Clause Form Translation // J. Symb. Comput. 1986. V.2. P. 293-304.
6. Groote J. F., Zantema H. Resolution and binary decision diagrams cannot simulate each other polynomially // J. Discr. Appl. Math. 2003. No. 130:2. P. 157-171.
7. Een N., Sorensson N. Translating Pseudo-Boolean Constraints into SAT // J. Satisf., Boolean Mod. Comp. 2006. No. 2. P. 1-25.
8. Семенов А. А., Заикин О. С., Беспалов Д. В., Ушаков А. А. SAT-подход в криптоанализе некоторых систем поточного шифрования // Вычислительные технологии. 2008. Т. 13. №6. С. 134-150.
9. Семенов А. А. О преобразованиях Цейтина в логических уравнениях // Прикладная дискретная математика. Приложение. 2009. №1. С. 12-13.
10. Яблонский С. В. Введение в дискретную математику. М.: Наука, 1986. 384 с.
11. Cook S. A. The complexity of theorem-proving procedures // Proc. 3rd Ann. ACM Symp. on Theory of Computing. ACM, 1971. P. 151-159. [Пер.: Кук С. А. Сложность процедур вывода теорем // Кибернетический сборник. Новая серия. 1975. Вып. 12. С. 5-15.]
12. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. M.: Мир, 1982.
13. Razborov A. A. Proof Complexity of Pigeonhole Principles // LNCS. 2002.V. 2295. P. 100-116.
14. Cook S. A., Reckhow R. The relative efficiency of propositional proof systems // J. Symb. Logic. 1979. V. 44. P. 239-251.
15. Robinson J. A. A machine-oriented logic based on the resolution principle // J. ACM. 1965. V. 12. No. 1. P. 23-41. [Пер.: Робинсон Дж. А. Машинно-ориентированная логика, основанная на принципе резолюций // Кибернетический сборник. Новая серия. 1970. Вып. 7. С. 194-218.]
16. Чень Ч., Ли Р. Математическая логика и автоматическое доказательство теорем. М.: Наука, 1983. 360 с.
17. Haken A. The intractability of resolution // Theor. Comp. Sci. 1985. No. 39. P. 297-308. [Пер.: Хакен А. Труднорешаемость резолюций // Кибернетический сборник. Новая серия. 1991. Вып. 28. С. 179-194.]
18. Buss S. R., Turan G. Resolution proofs of generalized pigeonhole principles // Theoret. Comp. Sci. 1988. No. 62. P. 311-317. [Пер.: Басс С. Р., Туран Д. Доказательство обобщенного принципа Дирихле методом резолюций // Кибернетический сборник. Новая серия. 1991. Вып. 28. С. 195-203.]
19. Lee C. Y. Representation of Switching Circuits by Binary-Decision Programs // Bell Syst. Techn. J. 1959. No. 38. P. 985-999.
20. Bryant R. E. Graph-Based Algorithms for Boolean Function Manipulation // IEEE Trans. Comp. 1986. No. 35(8). P. 677-691.
21. Meinel Ch., Theobald T. Algorithms and Data Structures in VLSI-Design: OBDD-Foundations and Applications. Berlin; Heidelberg; New York: Springer Verlag, 1998.
22. Семенов А. А., Игнатьев А. С. Логические уравнения и двоичные диаграммы решений // Прикладные алгоритмы в дискретном анализе. Сер. Дискретный анализ и информатика. Вып. 2. Иркутск: Изд-во Ирк. ун-та, 2008. С. 99-126.
23. Marqeus-Silva J. P., SakallahKA. GRASP: A search algorithm for propositional
satisfiability // IEEE Trans. Comp. 1999. V. 48. No. 5. P. 506-521.
24. Ben-Sasson E., Wigderson A. Short proofs are narrow — resolution made simple // Proc. of 31st Ann. ACM Symposium on Theory of Computing. 1999. P. 517-526.
25. Семенов А. А. Консервативные преобразования систем логических уравнений // Вестник Томского госуниверситета. Приложение. 2007. № 23. С. 52-59.
26. Тей А., Грибомон П., Луи Ж. и др. Логический подход к искусственному интеллекту. М.: Мир, 1991. 429 с.
27. Горшков С. П. Применение теории NP-полных задач для оценки сложности решения систем булевых уравнений // Обозрение прикладной и промышленной математики. 1995. Т. 2. Вып. 3. С. 325-398.
28. Агибалов Г. П. Дискретные автоматы на полурешетках. Томск: Изд-во Том. ун-та, 1993.
29. Черемисинова Л. Д., Новиков Д. Я. Проверка схемной реализации частичных булевых функций // Вестник Томского госуниверситета. Управление, вычислительная техника, информатика. 2008. №.4 (5). С. 102-111.
30. Семенов А. А. Трансляция алгоритмов вычисления дискретных функций в выражения пропозициональной логики // Прикладные алгоритмы в дискретном анализе. Сер. Дискретный анализ и информатика. Вып. 2. Иркутск: Изд-во Ирк. ун-та, 2008. С. 70-98.
31. Катленд Н. Вычислимость. Введение в теорию рекурсивных функций. М.: Мир, 1983.
32. http://www.satlive.org
33. Заикин О. С., Семенов А. А. Технология крупноблочного параллелизма в SAT-задачах // Проблемы управления. 2008. № 1. С. 43-50.
34. Семенов А. А., Заикин О. С. Неполные алгоритмы в крупноблочном параллелизме комбинаторных задач // Вычислительные методы и программирование. 2008. Т. 9. С. 108-118.
35. Семенов А. А., Заикин О. С., Беспалов Д. В. и др. Решение задач обращения дискретных функций на многопроцессорных вычислительных системах // Труды Четвертой Между-нар. конф. PAC0’2008 (Москва, 26-29 октября 2008). М., 2008. С. 152-176.
36. Valiant L. G. The complexity of computing the permanent // Theor. Comp. Sci. 1979. V. 8. P. 189-202.
37. Stockmeyer L. Classifying of computational complexity of problems // J. Symb. Logic. 1987. V. 52. No. 1. P. 1-43. [Пер.: Стокмейер Л. Классификация вычислительной сложности проблем // Кибернетический сборник. Новая серия. 1989. Вып. 26. C. 20-83.]
38. Valiant L. G. The complexity of enumeration and reliability problems // SIAM J. Comp. 1979. V.8. P. 410-421.
39. Горшков С. П. О сложности задачи нахождения числа решений систем булевых уравнений // Дискретная математика. 1996. №8:1. С. 72-85.