Н. К. Косовский, Т. М. Косовская
О ЧИСЛЕ ШАГОВ ПОЛУЧЕНИЯ БУЛЕВОГО РЕШЕНИЯ У ПОЛИНОМИАЛЬНЫХ СРАВНЕНИЙ И У СИСТЕМ ИЗ НИХ
Введение
В настоящее время для решения на компьютере массовых задач с существенно различными исходными данными стоит проблема определения требуемого времени их решения. Отсутствие для алгоритма доказательства оценки времени его работы над данными (или памяти, необходимой для его работы) рассматривается как недостаточное исследование этого алгоритма. Огромное число исследований посвящено получению такого рода оценок для уже имеющихся широко распространенных алгоритмов. В частности, актуальным является разделение задач, решаемых посредством полиномиальных по времени алгоритмов, с NP-полными, ни для одной из которых в настоящее время, не известен полиномиальный алгоритм решения. Такое разделение установлено ниже для задач проверки существования булевого решения сравнений и несравнений.
В 1971 году С. Кук [1] впервые доказал NP-полноту массовой задачи ВЫПОЛНИМОСТЬ (ВЫП) и полиномиальность по времени ее подзадачи 2-ВЫПОЛНИМОСТЬ (2-ВЫП). Вслед за этим Р. Карп [2] предложил первую серию NP-полных массовых задач.
Первая монография, рассматривающая NP-полные задачи и содержащая список из нескольких сотен NP-полных задач, была опубликована М. Гэри и Д. Джонсоном в 1978 г. [3]. Список NP-полных задач постоянно пополняется, в частности Д. Джонсон публикует «Колонку NP-полноты», 23 издания которой вышли в J. Algorithms, а 24-е появилось в новом журнале [4].
В 2000 г. Д. Ду и К. Ко опубликовали обширную монографию [5], рассматривающую, в частности, теорию NP-полных задач. В ней изложены теоретические основы NP-полноты, которые могли бы приблизить исследователей к решению проблемы «P = NP?» о совпадении или несовпадении классов P и NP. (Доказательство существования полиномиального по времени алгоритма хотя бы для одной NP-полной задачи приведет к доказательству того, что P = NP.) Эта проблема объявлена в числе семи наиболее трудных и актуальных задач математики на XXI век. За доказательство (или опровержение) того, что P = NP в США объявлена премия в $ 1 000 000 .
В 2005 г. в работе [6] в очередной раз подчеркнута важность получения оценок числа шагов алгоритмов, решающих задачи, связанные со сравнениями.
Выделению класса массовых задач, более тесно связанных с их практическим программированием, посвящены, в частности, работы авторов [7-8].
В предлагаемой статье приводятся пары похожих по формулировке задач, одна из которых полиномиальна по времени, а другая обобщает ее в NP-полную, причем последняя сводится традиционными математическими символьными преобразованиями к первой (по существу, путем раскрытия скобок и приведения подобных членов).
Примерами таких похожих, но не сводимых друг к другу традиционными символьными преобразованиями, задач могут служить 2-ВЫП и 3-ВЫП [3], а также задачи проверки существования целочисленного решения у систем линейных неравенств
© Н.К.Косовский, Т.М.Косовская, 2007
Бх £ Zn(Ax > В > 0) и Бх £ Zn(Ax > В > —1) {А — матрица размерности то х п, В — вектор размерности то), необходимые свойства которых доказаны в [9].
Ниже предлагается несколько естественных способов записи сравнений и систем из них. Доказывается NP-полнота задач проверки существования их решения из множества {0,1}* если, во-первых, в арифметическом выражении не раскрыты скобки или, во-вторых, параметром задачи не является простое число, используемое для сравнения по нему, т. е. это число не является одним из исходных данных для алгоритма, решающего поставленную задачу.
Для полинома с P раскрытыми скобками и приведенными подобными членами, а также для каждого значения числа, по которому задаются несравнения, разработан алгоритм проверки существования и нахождения его решения из множества {0, 1}*. Доказана полиномиальность по времени этого алгоритма (теорема 1), решающего задачу 1:
Зже{0д}*(Р(х) ф 0(mod то)),
где P и m — исходные данные алгоритма.
При каждом m доказана NP-полнота задачи проверки существования булевого решения у системы несравнений по модулю m с нулем арифметических двучленов (теорема 2). (Серия задач 2:
Зже{од|* (Вi(x) ф 0(mod то)&
Вк(х) ф 0(mod то)).
где B1,... ,Bk —исходные данные алгоритма, m фиксировано, то есть является параметром серии.)
Как следствие NP-полноты, задача проверки существования булевого решения у системы несравнений по модулю p с нулем полиномов, а также задача проверки существования булевого решения у системы неравенств (=), в левой части которых находятся арифметические двучлены или полиномы.
При каждом m (m > 2) доказана NP-полнота задачи проверки существования булевого решения у несравнения по модулю m с нулем арифметического выражения (следствие теоремы 2), а у неравенств — нулю арифметического выражения. (Серия задач 3:
Зже{од}*(А(х) ф 0 (mod то)),
где A — исходные данные алгоритма, m фиксировано, то есть является параметром серии.)
Для полинома с раскрытыми скобками и приведенными подобными членами, а также для каждого значения параметра p, являющегося простым числом, по которому задаются сравнения, разработан алгоритм проверки существования и нахождения его решения из множества {0,1}*. Для каждого простого p доказана полиномиальность по времени этого алгоритма (следствие теоремы 1). (Серия задач 4:
Зже{0д}* (Р(х) = 0 (mod р))
где P — исходные данные алгоритма, p фиксировано, то есть является параметром серии.)
Доказана NP-полнота предыдущей задачи, если простое число входит в исходные данные. (Задача 5:
ЗжЄ{0д}* (Р(х) = 0 (mod р))
где P и p — исходные данные алгоритма.)
Эта статья не только демонстрирует важность и необходимость аккуратной формулировки задачи, отделяющей NP-полные задачи от полиномиальных (в том числе отделяющей параметры серии задач от аргументов задачи (предиката), — исходных данных для алгоритма, решающего эту задачу), но и позволяет решать частные случаи NP-полных задач, связанных с проверкой существования булевого решения у арифметических сравнений и несравнений (индивидуальные задачи), в краткой формулировке малого размера. Последние, так же как и полиномиальные алгоритмы, предложенные в статье, весьма полезны при практическом программировании.
1. Полиномиальность проверки существования булевых решений
у полиномиальных несравнений с нулем по простому модулю
Задача 1: Несравнимость с нулем полинома
Пусть P — полином с целыми коэффициентами и, возможно, несколькими переменными, задаваемый суммой одночленов с ненулевыми коэффициентами, записанными в позиционной системе счисления. При этом в каждом одночлене присутствуют только те переменные, которые имеют ненулевые показатели степени, записанные в позиционной системе счисления. Пусть также m — целое число, записанное в позиционной системе счисления (m > 2).
Верно ли, что
ЗжЄ{од}*(Р(х) ф 0(mod то)).
При m = 2 последняя формула равносильна несравнимости с нулем полинома Жегал-кина на некотором наборе значений аргументов, что невозможно, если он не состоит из одного свободного члена, отличного от нуля.
Теорема 1. Алгоритм решения задачи 1 может быть реализован на детерминированной машине Тьюринга за число шагов, не превосходящее полинома от длины записи P и m.
Доказательство. Приведем полиномиальный по времени алгоритм решения этой задачи.
Упорядочим одночлены полинома по следующему правилу. За один просмотр каждому одночлену поставим в соответствие слово (имя группы одночленов), состоящее из имен переменных, входящих в него. Затем за полином шагов разбиваем полином на группы одночленов с одинаковыми (одними и теми же) переменными и упорядочиваем группы по количеству переменных в них.
Если свободный член полинома не сравним с нулем по модулю m, решение задачи очевидно, так как (-Р(О) ф 0(mod то)). Здесь 0 означает набор значений, состоящий из одних нулей.
В противном случае, последовательно для каждого i, не превосходящего количества переменных полинома, рассматриваем группу одночленов, содержащих только i фиксированных различных переменных (в начальный момент это свободный член). Если сумма коэффициентов при одночленах из такого множества не сравнима с нулем по модулю m, то в качестве значений аргументов берем 1 для переменных, вошедших в эти одночлены, и 0 — для остальных переменных. Этот набор значений будет тем набором, существование которого проверяется в задаче 1.
При этом следует отметить, что сумма всех уже рассмотренных одночленов сравнима с нулем по модулю m на всех наборах значений аргументов из {О, І}*.
Либо в какой-то момент набор значений аргументов, при которых полином не сравним с нулем по модулю m, будет найден, либо сумма коэффициентов при одночленах каждой описанной группы сравнима с нулем по модулю m. Последнее означает, что многочлен сравним с нулем по модулю m при всех наборах значений аргументов из {О, І}*. Следовательно, задача 1 не имеет решения.
Количество групп одночленов с указанным свойством не превосходит длины записи полинома. Количество одночленов в каждой группе также не превосходит длины записи полинома. Лемма доказана.
Замечание. Аналогичный полиномиальный по времени алгоритм позволяет решать задачу о неравенстве нулю полинома ЗжЄ{0д}*(Р(х) 0).
2. NP-полнота проверки существования булевых решений
у системы несравнений арифметических двучленов с нулем
Серия задач 2: Несравнимость с нулем системы двучленов по фиксированному модулю
Параметром этой серии задач является число m (m > 2).
Пусть Bi,...,Bfc — система двучленов, возможно, с несколькими переменными, состоящих из суммы или разности двух одночленов с целыми положительными коэффициентами. При этом в каждом двучлене присутствуют только те переменные, которые имеют ненулевые показатели степени, записанные в позиционной системе счисления.
Верно ли, что
ЗжЄ{од|* (Ві(х) ф 0(mod m)&
Bk(x) ф 0(mod то)).
При m = 2 эта задача пересекается с некоторой модификацией задачи АЛГЕБРАИЧЕСКИЕ УРАВНЕНИЯ НАД GF[2], NP-полнота которой анонсирована в [З] в разделе «Алгебра и теория чисел», подраздел «Разрешимость уравнений».
При каждом фиксированном k (k > І) эта задача, как следует из доказательства теоремы 1, имеет полиномиальный алгоритм решения, если m — простое число.
Теорема 2. При любом m (m > 2) каждая задача из серии, задач 2 NP-полна.
Доказательство. Каждая задача из серии задач 2 принадлежит классу NP, так как если предъявлен набор значений аргументов из {О, І}*, то вычисление на нем значений двучленов и сравнение полученных чисел с нулем по модулю p можно осуществить за полиномиальное время.
Покажем, что задача З-ВЫПОЛНИМОСТЬ (З-ВЫП) из [З] полиномиально сводится к любой из серии задач 2.
Пусть задан набор данных для задачи З-ВЫП: множество пропозициональных переменных {ui,..., un} и множество простых дизъюнкций {ci,..., cm}, каждая из которых содержит ровно три переменные.
Отрицанию переменной —ui поставим в соответствие новую переменную ui.
Пусть xa обозначает x, если а = true или —x, если а = false. Логическим константам true и false поставим в соответствие числа 1 и 0 соответственно. Простой дизъюнкции с тремя переменными вида xa V ye V zY поставим в соответствие
сравнение 1 — xa • ye • zY ф 0 (mod m), где xa обозначает переменную x, если a = false, или x, если a = true. Кроме того, дополнительно записывается сравнение вида x — x ф 0 (mod m) для каждой переменной, входящей в простую дизъюнкцию без отрицания. Таким образом, каждой простой дизъюнкции поставлена в соответствие система из одного, двух, трех или четырех сравнений по модулю m двучленов, а множеству всех простых дизъюнкций с тремя переменными не более чем за полином шагов будет поставлено в соответствие множество сравнений по модулю m, состоящих из суммы или разности двух одночленов. При этом выполнимость множества всех предложений равносильна несравнимости по модулю p системы сравнений всех полученных двучленов с нулем. Теорема доказана.
Замечание. NP-полной является также задача
Зже{0д}* (В i(x)^0&
Вк(х) ф 0),
где B1,... ,Bk —система двучленов, состоящих из суммы или разности двух одночленов, и число к входит в исходные данные для задачи.
Однако при каждом фиксированном к эта задача может быть решена с помощью полиномиального по времени алгоритма. Для этого достаточно перемножить полиномы Pi,... ,Pk с последующим приведением подобных членов (что можно сделать за полином шагов, степень которого растет с ростом к) и воспользоваться замечанием к теореме 1.
3. NP-полнота проверки существования булевых решений
у несравнений с нулем арифметических выражений
Серия задач 3: Несравнимость с нулем арифметического выражения по фиксированному простому модулю
Параметром этой серии задач является число m (m > 2).
Пусть A —арифметическое выражение (терм), возможно, с несколькими переменными, содержащее функции +, —, • и числа, записанные в позиционной системе счисления.
Верно ли,что
Зже{од}*(А(х) ф 0 (mod то)).
Следствие теоремы 2. При любом простом m (m > 2) каждая задача из серии 3 NP-полна.
Доказательство следует из того, что, во-первых, каждая задача серии 3 принадлежит классу NP и, во-вторых, если А(х) имеет вид В\(х) ■ ■ Bi~(x) ■ р2 ■ ■ ■ ■ ■ pq, где
pi • ... • pq = m, и pi,... ,pq — простые, быть может равные, числа, то несравнение
Bi(x) • . .. • Bk(x) ■ р2 ■ . .. ■ pq ф 0 (mod m) равносильно сравнению по простому модулю
В \{х)
Bk(x) ф 0 (mod pi),
что равносильно
Зже{0д}* (Bi(x) ф O(mod pi)&z Bk{x) ф O(mod pi)).
То есть, при сделанном сужении каждая задача серии 3 превращается в одну из задач серии 2.
Замечание. Аналогично может быть доказано, что задача Зже{од|* (А(х) ф 0) NP-полна.
4. Полиномиальность проверки существования булевых решений
у полиномиальных сравнений по фиксированному простому модулю
Серия задач 4: Сравнимость с нулем полинома по фиксированному простому модулю.
Каждая задача серии определяется параметром серии, который является простым числом p.
Пусть P — полином с целыми коэффициентами и, возможно, несколькими переменными, задаваемый суммой одночленов с ненулевыми коэффициентами, записанными в позиционной системе счисления. При этом в каждом одночлене присутствуют только те переменные, которые имеют ненулевые показатели степени, записанные в позиционной системе счисления.
Верно ли, что
Зже{од>*(Р(ж) = 0 (mod р)).
Иначе говоря, по полиному P с несколькими переменными и с приведенными подобными членами определить, сравнимо ли по модулю p с нулем значение полинома на некотором наборе значений аргументов из {0,1}*.
Следствие теоремы 1. Для решения каждой задачи из серим 4 имеется полиномиальный по времени алгоритм.
Действительно, воспользуемся равносильностью
Зже{0д}*(Р(ж) = 0 (mod р)) Зже{0д}* ((Р(х) + 1)-
(Р(х) + (р — 1)) ф 0 (mod р)).
Пусть число n равно сумме длин записей полинома P и простого числа p. Тогда умножение с приведением подобных членов p — 1 полиномов, длины записи которых не превосходят n, может быть осуществлено за полином степени p от числа n шагов. Длина записи полинома в правой части последней равносильности после раскрытия скобок и приведения подобных членов не превосходит np-i. То есть, если время решения задачи 1 ограничено сверху полиномом Q(n), то время решения задачи 5 ограничено сверху полиномом C • Q(np-i) при некоторой константе C.
Отметим, что при большом значении простого числа p число шагов полиномиального алгоритма ограничено сверху полиномом большой степени.
Замечание. Задача Зже{0д}* (Р(х) = 0) является NP-полной.
Для доказательства можно использовать полиномиальное сведение к ней задачи СУММА РАЗМЕРОВ из [3].
5. NP-полнота проверки существования булевых решений
у полиномиальных сравнений по простому модулю
Задача 5: Сравнимость с нулем полинома
Задача 5 отличается от задач из серии 4 внесением параметра p в исходные данные для задачи 5.
Утверждение. Задача 5 NP-полна.
Доказательство. Задача 5 принадлежит классу NP, так как если предъявлен набор значений аргументов из {0,1}*, то вычисление значений на нем двучленов и сравнение полученных чисел с нулем по модулю p можно осуществить за полиномиальное время.
Покажем, что задача СУММА РАЗМЕРОВ из [3] полиномиально сводится к задаче 5.
Действительно, для любых положительных целых чисел ai, ... ,ак,Ь aixi + ... akxk = Ь aixi + ... akxk ф Ь (mod p),
если p > ai + ... + ak и p > Ь. Утверждение доказано.
Summary
N. K. Kossovsky, T. M. Kossovskaya. On the number of steps for constructing a Boolean solution of polynomial comparisons and systems of them.
By means of fixing a parameter some NP-complete problems, connected with the solving of comparisons (and non-comparisons) of arithmetical terms by prime modulo, are decomposed as a union of an infinite set of problems for which polynomial-time algorithms are constructed.
Литература
1. Кук С. А. Сложность процедур вывода теорем // Киб. сб., нов. сер. Вып. 12. М., 1975. С. 5-15.
2. Карп Р. М. Сводимость комбинаторных задач // Киб. сб. М., 1975. С. 16-38.
3. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982. 416 с.
4. Johnson D. The NP-completeness column // ACM Trans. Algorithms Vol. 1. 2005. N 1. P. 160176.
5. Du D.-Z., Ko K.-I. Theory of Computational Complexity. John Wiley & Sons, Inc. 2000. 491 p.
6. Arvind V., Vijayarughavan T. C. The complexity of solving linear equations over a finite ring // STACS 2005 (LNCS 3404). Berlin: Springer, 2005.
7. Kossovskaya T. M., Kossovsky N. K. Complexity of consistency checking of a system of linear integer comparisons // Избранные вопросы современной математики: Тез. Междунар. научн. конф., приуроченной к 200-летию со дня рождения великого немецкого математика Карла Густава Якоби и 750-летию со дня основания г. Калининграда (Кёнигсберга). Калининград: Изд-во КГУ, 2005. С. 157-158.
8. Косовский Н. К. Полиномиальные и псевдополиномиальные алгоритмы в дискретной математике // Материалы VIII Международного семинара «Дискретная математика и ее приложения». М., 2004. С. 14-18.
9. Косовский Н. К., Тишков А. В. Полиномиальные алгоритмы установления совместности в рациональных числах систем строгих и нестрогих неравенств // Актуальные проблемы современной математики. Т. 3. Новосибирск, 1987. С. 95-100.
Статья поступила в редакцию 15 марта 2007 г.