Основы доказательств полиномиальной быстроты простейших математических алгоритмов

Косовская Татьяна Матвеевна, Косовский Николай Кириллович

ОСНОВЫ ДОКАЗАТЕЛЬСТВ ПОЛИНОМИАЛЬНОЙ БЫСТРОТЫ ПРОСТЕЙШИХ МАТЕМАТИЧЕСКИХ АЛГОРИТМОВ

Аннотация

Статья посвящена проблемам доказательства полиномиальной вычислимости функций, другими словами, доказательства принадлежности функций классу ЕР. Доказательства могут производиться с помощью паскалевидных функций, которые более удобны программистам, чем модели вычислений, основанные на машине Тьюринга. Будет приведена идея доказательства теоремы, что если не только число шагов вычисления пас-калевидной функции, но и размер записи всех промежуточных вычислений не превосходят полинома от длины записи исходных данных, то эта функция принадлежит классу ЕР и обратно.

Ключевые слова: Р, ЕР, NP, машина тьюринга, паслкалевидные функции, №-пол-нота, ^-трудность, примеры №-полных задач.

ВВЕДЕНИЕ ИЛИ ИСТОРИЯ ВОЗНИКНОВЕНИЯ РАССМАТРИВАЕМОЙ ТЕМАТИКИ

Приводятся удобные для программистов доказательства и математически обоснованные сомнения полиномиальной быстроты простейших математических алгоритмов.

Развитие теории алгоритмов началось в связи с необходимостью доказывать невозможность построения алгоритма, решающего ту или иную массовую задачу. С этой целью были введены в рассмотрение первые математические понятия алгоритма: рекурсивные функции и машины Тьюринга (см, например, [1-3]). Был сформулирован тезис Черча (а впоследствии и тезис Тьюринга-Черча), утверж-

© Т.М. Косовская, Н.К. Косовский, 2010

давший, что «всякая интуитивно вычислимая функция является рекурсивной» (соответственно, «всякая интуитивно вычислимая функция может быть вычислена на машине Тьюринга»). Этот тезис нельзя ни доказать, ни опровергнуть, так как понятие «интуитивно вычислимая функция» каждый, вообще говоря, может понимать по-своему.

В наше время существует большое количество математических понятий алгоритмов, для большинства из которых доказано следующее подтверждение тезиса Черча (тезиса Тьюринга-Черча): «Всякая функция, вычислимая с помощью одного математического понятия алгоритма, вычислима и с помощью другого».

С развитием вычислительной техники стало ясно, что существование алгоритма, решающего задачу, недостаточно для

его использования с целью многократного применения к различным исходным данным. На первый план вышли время работы алгоритма и объем используемой памяти (см., например, [1-6, 8]), называемые соответственно временной и емкостной сложностью алгоритма.

Наиболее распространенной в настоящее время классификацией сложности алгоритмов является классификация, основанная на ограничении числа шагов или памяти функциями определенного вида (см., например, [1-5]). Приведем пример определения трех наиболее распространенных таких классов - классов Р, ЕР, №.

Определение. Предикат принадлежит классу Р, если существует машина Тьюринга, решающая эту задачу, число шагов которой не превосходит полинома от длины записи ее исходныьх данныа.

Если в этом определении слово «предикат» заменить на слово «функция», то получим определение класса ЕР. Если же в нем заменить слова «машина Тьюринга» на «недетерминированная машина Тьюринга», то получим определение класса NP.

К началу XXI века большинство математиков, занимающихся оценками сложности вычислений у алгоритмов, предназначенных для использования на компьютерах, стали понимать важность изучения их принадлежности классу ЕР.

Более того, считается, что класс ЕР совпадает с классом эффективных вычислений. Такое интуитивное понятие как «эффективное вычисление» было формализовано с помощью расширенного тезиса Чер-ча (см., например, [8]): «Функция, вычислимая за полиномиальное время на разумной вычислительной модели, использующей разумное измерение временной сложности, вычислима на детерминированной машине Тьюринга за полиномиальное время».

Представление класса ЕР невозможно с помощью ограниченного произведения, обозначаемого посредством (П), которое может вывести за пределы этого класса. За его пределы не выводят суперпозиция и ограниченная возвратная словарная рекурсия совместно определяемых функ-

ций (совместная ограниченная возвратная словарная рекурсия).

Существенная трудность доказательства принадлежности алгоритма классу FP связана с тем, что многие численные алгоритмы используют косвенную адресацию при обработке массивов, для которой были созданы модели вычисления РАМ и РАСП - равнодоступная адресная машина (машина с произвольным доступом к памяти) и она же с хранимой программой (машина с произвольным доступом к памяти и хранимой программой) [1].

Ниже оценку числа шагов предлагается использовать в традиционном смысле, в частности, предложенном в [1]. Кроме того, можно использовать и БульРАСП (адресную машину с хранимой памятью, предложенную переводчиком книги [1] в конце раздела 1.4). То есть один шаг учитывается вне зависимости от длины записи операндов команды.

К сожалению, в этом случае при наличии операции умножения за полиномиальное число шагов на этих моделях можно вычислить функцию экспоненциального вида, например xy (при быстром вычислении), что невозможно сделать за полиномиальное число шагов на машине Тьюринга (длина записи результата задается экспонентой от длины записи y).

Ниже будет предложено математическое понятие целочисленного алгоритма, основанное на использовании широко распространенного языка программирования Паскаль. Это понятие является обобщением РМА - математической модели вычисления компьютерными алгоритмами. Будет доказано, что если не только число шагов вычисления функции, но и размер записи всех промежуточных вычислений не превосходят полинома от длины записи исходных данных, то эта функция принадлежит классу FP, и обратно.

1. МАССОВЫЕ ЗАДАЧИ

Среди задач дискретного математического характера выделяются индивидуальные задачи, не содержащие аргументов и

параметров. Для таких задач достаточно один раз ее решить и знать ответ. В большинстве случаев формулировка задачи содержит аргументы, которые принято называть исходными данными решающего ее алгоритма.

Определение. Массовой задачей называется задача, в которой имеются переменные-аргументы, которые могут принимать значения из бесконечного множества дискретных математических конструктивных объектов, например множества целых чисел, множества рациональных чисел, множества слов в заранее заданном конечном алфавите.

В общем виде массовую задачу можно записать в виде (? х ) ф(х) , где ф(х) - формула какого-либо формализованного языка со списком переменных (аргументов задачи) х . Это выражение читается так: «При каких значениях параметров списка х верна формула ф(х) ?». Простейшими примерами массовых задач могут служить, например, следующие.

1. (? аЬс)$х (х е Ъ & ах2 + Ьх + с = 0 -при каких целых значениях параметров а, Ь, с уравнение ах2 + Ьх + с = 0 имеет целое решение?

2. (? аЬс)"х (х е [0, 1]г>0 ^

ах2 + Ьх + с >0) - при каких рациональных значениях параметров а, Ь, с квадратный трехчлен ах2 + Ьх + с положителен на отрезке [0, 1]?

3. (?Р)Р - какие пропозициональные формулы тождественно истинны?

4. (?2)" 2 - какие предикатные формулы общезначимы?

В последней задаче знак " означает кванторы всеобщности по всем предметным переменным, свободно входящим в < .

Под серией массовых задач будем понимать массовую задачу, которая содержит один или несколько дополнительных параметров, которые также могут принимать значения из бесконечного множества конструктивных объектов. Такие дополнительные параметры будем называть параметрами серии.

Алгоритмы, решающие массовые задачи, в зависимости от длины записи исходных данных, могут совершать различное число шагов (или макро-шагов - этапов, объединяющих, как правило, полиномиальное число стандартных шагов) в используемой математической модели вычисления.

Для каждой математической модели алгоритмов М класс алгоритмов, число шагов которых не превосходит полинома от длины записи исходных данных, будем обозначать посредством ЕРМ. Если при этом дополнительно результат работы алгоритма принимает значение только из двухэлементного множества, то такой алгоритм называют предикатом, а множество всех таких предикатов принято обозначать посредством РМ. Таким образом, РМ ^ ЕРМ.

Следует отметить, что так определенные классы РМ и ЕРМ для разных математических моделей алгоритма окажутся различными. Так, например, если в качестве

такой модели взяты только аддитивные

2»

операции, то функцию 2 невозможно вычислить за полином от длины записи п. В то же время если в математической модели вычисления разрешено использование операции умножения двух чисел (или вычисления квадрата числа), то 22 вычислима за полином от длины записи п шагов. При дополнительной возможности использования операции возведения в степень она вычисляется за два шага.

Важной задачей математической теории информатики является поиск массовых задач, решаемых алгоритмами из класса ЕР. При этом возможна ситуация, когда каждая массовая задача некоторой серии может быть решена алгоритмом из ЕР. И в то же время превращение этой серии в новую массовую задачу (путем превращения всех параметров серии в аргументы новой массовой задачи, которые, как правило, называют исходными данными задачи) приводит к тому, что до сих пор не известен (и, по мнению большинства математиков, вряд ли будет известен) алгоритм из ЕР, решающий новую массовую задачу.

Важным классом задач являются NP-полные задачи [1-6] - самые долгоре-шаемые задачи из класса NP. В настоящее время накоплено более тысячи массовых задач, относительно которых доказано, что они являются NP-полными (ранее, более 20 лет назад, для NP-полных задач в русском языке использовался термин «переборная задача»). Все эти задачи являются кандидатами на невозможность решения их ни одним алгоритмом из класса FP. Более того, доказательство принадлежности алгоритма, решающего такую задачу, классу FP или доказательство не принадлежности ему в 2000 году было оценено американским математическим сообществом в один миллион долларов.

Массовые задачи предназначены для непосредственного решения их на компьютерах. В дальнейшем слово «массовая» будет, как правило, опускаться для краткости.

2. ПАСКАЛЕВИДНЫЕ ФУНКЦИИ КАК МАТЕМАТИЧЕСКОЕ ПОНЯТИЕ АЛГОРИТМА

Как мы уже говорили, полиномиальное число шагов для разных математических понятий алгоритмов не обязательно обеспечивает его принадлежность классу FP. В то же время, программирование на машине Тьюринга не вполне адекватно современной практике программирования. В связи с этим введем математическое понятие целочисленного алгоритма на основе широко распространенного языка Паскаль. Более точно, в основе рассматриваемого понятия лежит предложенный Н. Виртом язык Паскаль [7] с включением динамических массивов (то есть массивов с динамически определяемыми верхними границами), а не другие его различные реализованные версии.

Пусть в языке Паскаль переменные типа integer могут принимать в качестве значения любое целое число (то есть целое число с любой сколь угодно большой длиной записи), а другие основные типы переменных не используются. Как иногда

говорят, возможно использование только констант и целых чисел произвольной разрядности.

Определение. Целочисленным алгоритмом (паскалевидной функцией) назовем функцию предложенного Н. Виртом языка Паскаль, обрабатыьвающую ее фактические параметры1 — целыье числа, поступающие на ее вход, и не использующую файлыь, записи, множества и указатели, а также процедуры1 и функции, имеющие в качестве параметров свои процедуры1 и функции.

Основой при получении оценок сложности вычислений является определение того, что же считать шагом вычисления и что считать длиной используемой памяти. С определением шага вычисления, как правило, трудностей не возникает. Но мы

уже видели, что на разных моделях вы-

2"

числения функция 2 вычисляется за очень разное число шагов.

Определение. Выьчисление каждого оператора языка Паскаль из определения функции

На каждом шаге вычисления функции будем дополнительно вычислять длину записи вычисления на этом шаге.

Пусть г - арифметическое или булево выражение. Процесс его вычисления может быть представлен в виде корневого дерева. Глубиной записи г назовем глубину этого дерева.

Определение. Длиной записи выьчисле-ния выьражения г на глубине г назовем сумму длин абсолютны х величин всех подвы -ражений глубиныь г выьражения г.

Длиной записи выьчисления выьражения г назовем максимум по всем г (от 1 до глу-

бины I) длин записи вычисления £ на глубине 1

Определение. На начальном шаге длина записи вычисления совпадает с длиной записи исходных данных (значений для аргументов функции). На заключительном шаге вычисления функции длина записи вычисления совпадает с длиной записи абсолютной величины результата вычисления вызываемой функции.

Под длиной записи промежуточных вычислений (то есть используемой памяти) понимаем максимум длины записей вычисления по всем шагам этого вычисления, включая начальный и заключительный.

Для удобства читателя предполагаем, что все числа записаны в десятичной системе счисления (хоть основание системы счисления, отличное от единицы, совершенно не принципиально).

3. ПОЛИНОМИАЛЬНО БЫСТРЫЕ ВЫЧИСЛЕНИЯ

Поскольку ниже будет идти речь о полиномиально быстрых вычислениях (то есть о классе ЕР), то требуется доказывать, что длина записи промежуточных вычислений и число шагов вычисления не превосходят полинома от длины записи исходных данных.

Определение. Целочисленный алгоритм (паскалевидная функция) назовем дважды полиномиальным, если как число его шагов, так и длина записи промежуточных вычислений не превосходят полинома от длины записи исходных данных.

Отметим, что паскалевидные функции для обработки целых чисел могут использовать целые числа сколь угодно большой длины записи. В связи с этим острая необходимость использования нединамических массивов отпадает. Вместо массивов можно использовать дважды по-

линомиальные функции с, I и г и их итерации, где функция с нумерует пары. Она обладает свойством

с(х, у) = с(х',уг) ^ х = х' & у = у', I(с(х, у)) = х, г(с(х, у)) = у

Примером такой функции с может служить с(х, у) (см. рис. 1).

Построение функций I и г оставляется читателю в качестве упражнения по программированию на паскале. Поскольку функция (х + у)(х + у + 1)/2 + х нумерует натуральными числами (включая ноль) множество всех пар натуральных чисел (в том числе и содержащие ноль), то предложенная функция с является отображением всех пар целых чисел на множество всех целых чисел.

Значения всех элементов массива х[1..п] могут быть представлены в виде

числа с(п, с(... с( х[1], х[2],... х[п])...)...).

п—1 раз

С помощью итераций функций I и г можно выразить любой элемент массива х.

Отметим, что изобретатель языка Паскаль не включил в него операцию возведения в степень, использование которой, как правило, не является полиномиально быстрым. Впрочем, он включил в него операцию БОЯ (то есть функцию возведения в квадрат), которая при использовании в выражении п раз позволяет вычис-2»

лить 2 (см. в приложении также теорему 1).

В приложении будет изложена идея доказательства следующей теоремы.

Теорема. Класс дважды полиномиальных паскалевидных функций совпадает с классом ЕР.

2((х + у)(х + у +1)/2 + х, если х, у > 0

с

— 2((х + у)(х + у +1)/2 + х, если х > 0 и у < 0

— 22((х + у)(х + у +1)/2 + х - -1, если х < 0 и у > 0

Рис. 1

4. NP-ПРЕДИКАТЫ

Дадим новое определение недетерминированных полиномиальных предикатов, которое будет базироваться на паскале-видных функциях.

Определение.

Предикат Q будем называть NP-пре-дикатом, если имеется дваждыь полиномиальная паскалевидная функция, которая по каждому набору исходныьх данныьх для нее и дополнительному аргументу для целыьх чисел, не превосходящих по длине записи некоторого полинома от длины1 записи исходные данныьх, и равная 1 тогда и только тогда, когда истинен предикат Q.

Говоря более формализовано, NP-пре-дикат Q получается из дважды полиномиальной паскалеовидной функции f по следующей формуле

Q(х) o3y(y £ p(|| x ||)& f (x,y) = 1), где p(|| x ||) - некоторый полином от длины записи списка аргументов х .

Множество всех NP-предикатов образует класс NP.

Ранее уже упоминалась проблема, оцененная в один миллион долларов. Более кратко она может быть сформулирована в виде: «доказать или опровергнуть, что P = NP».

Определенные здесь классы P и NP -те же самые, что и в традиционном смысле (приведенные ранее). Доказательство этого основано на теореме 4 из приложения.

5. ИСХОДНЫЕ ПРИМЕРЫ NP-ПОЛНЫХ ПРЕДИКАТОВ

Приведем первый пример NP-полного предиката (см., например, [1, 2]). Его принято называть массовой задачей ВЫПОЛНИМОСТЬ (сокращенно ВЫП или SAT). Он представляет собой проверку выполнимости пропозициональной (или, как часто говорят, булевой) формулы, находящейся в конъюнктивной нормальной форме, то есть представляющую собой многократную конъюнкцию элементарных

дизъюнкций (многократных дизъюнкций переменных или их отрицаний). Под выполнимостью понимается возможность подбора таких булевых констант, подставляемых вместо переменных, которые обеспечивают истинное значение заданной на входе пропозициональной формулы.

Будем говорить, что предикат Q1 полиномиально т-сводится к предикату Q1

и писать Q <рт Q2, если можно построить дважды полиномиальную функцию / такую, что "X ((х) о Q2 ( (X))).

Легко доказать, что введенное отношение является отношением порядка, то есть оно рефлексивно и транзитивно.

Определение. ИР-предикат Q назовем ИР-полным, если ВЫП <р Q.

т х'

Это определение отличается от общепринятого [1, 2], но эквивалентно ему и более удобно для применения, а по существу именно оно (и транзитивность полиномиальной т-сводимости) используется в практике доказательства КР-полноты всех задач, кроме задачи ВЫПОЛНИМОСТЬ.

Задача 3-ВЫПОЛНИМОСТЬ (сокращенно 3-ВЫП или 3-БАТ) является сужением задачи выполнимость, при котором каждая элементарная дизъюнкция формулы содержит ровно три переменные.

Теорема. ВЫП <р 3-ВЫП.

* т

Доказательство. Легко видеть, что выполнимость дизъюнкции у1 V ... V ук, где к > 3, равносильна выполнимости

((у1 V у2) о г1) & ((у3 V г 1) о г2) & ...

& ((у„ V гп-2) 0 гп-1) & гп-1, где г1, ..., гп-1 -новые переменные. Формула вида

(и1 V и2) о и3 эквивалентна по выполнимости формуле

(((М V и2) ^ И3 & (И3 ^ (И1 V И2)), которая, в свою очередь, эквивалентна (—М V И3) & (—М2 V И3) & (н'1 V И2 V 0»3). Осталось заменить формулу вида и1 V и2 на равносильную ей по выполнимости (и1 V И2 V И3) & (И1 V 0И3),

где w3 - новая переменная, а формулу вида w1 на (w1 v w2 v w3) & (w1 v w2 v 0W3) & (Wj v —w2 v w3) & (w1 v —iW2 v —w3), где w2, w3 - новые переменные.

Можно оценить сверху длину вновь построенной формулы посредством C • n • log n + C0 (при некоторых положительных C и C0), где n - длина исходной формулы при некоторых положительных C и C0. Логарифмический сомножитель появляется из-за необходимости введения новых переменных, которые можно записывать в алфавите из нескольких букв. (В случае необходимости использовать только однобуквенный алфавит верхняя оценка увеличится до Cn2 + C0 при некоторых положительных C и C0).

Примером NP-полной задачи из другой области математики может служить задача булева линейного программирования, то есть задача проверки совместности в числах из {0, 1} линейных целочисленных нестрогих неравенств.

Теорема. Задача 3-ВЫП полиномиально ш-сводится к задаче булева линейного программирования.

Доказательство. Выполнимость каждой элементарной дизъюнкции вида x v^y v z эквивалентна совместности в целых числах системы нестрогих неравенств

x > 0, y > 0, z > 0, x < 1, y < 1, z < 1, x + (1 - y) + z > 1. Верхняя оценка длины записи системы линейных неравенств, соответствующих формуле из условия задачи 3-ВЫП, длина записи которой равна n, может иметь вид Cn + C0 при некоторых положительных C

и C0.

Полученная система линейных целочисленных нестрогих неравенств будет иметь решение в целых числах тогда и только тогда, когда она будет иметь решение в числах из {0, 1} в силу неравенств для переменных. При этом значение 1 соответствует истине, а значение 0 - лжи.

Анализируя только что приведенное доказательство получаем еще две NP-пол-

ные задачи: задача проверки совместности в целых числах (и в числах из {0, 1}) системы линейных целочисленных нестрогих неравенств, каждое неравенство в которой содержит не более трех переменных.

Заменяя систему неравенств на систему уравнений, можно задачу 3-ВЫП полиномиально ш-свести к задаче проверки совместности в числах из {0, 1} системы целочисленных линейных уравнений. Действительно, выполнимость каждой элементарной дизъюнкции вида x v^y v z эквивалентна совместности в числах из {0, 1} уравнения x +(1- y) + z =1 + u + v, где u и v - новые переменные. Верхняя оценка длины записи новой системы уравнений при кодировании переменных словами в многобуквенном алфавите может быть оценена посредством C • n • log n + C0 при некоторых положительных C и C0.

Итак, NP-полна задача проверки совместности в числах из {0, 1} системы целочисленных линейных уравнений, каждое из которых содержит ровно 5 переменных.

Аналогично можно доказать, что NP-полна задача проверки совместности в числах из {0, 1} системы целочисленных линейных дизуравнений, каждое из которых содержит ровно три переменные. Доказательство основывается на эквива-лентностях, аналогичных x v 0 y v z о x + (1 - y) + z Ф 0.

При программировании на языке Паскаль дважды полиномиальных паскалевид-ных функций, осуществляющих описанные здесь сведения, следует иметь в виду, что каждая система неравенств (и уравнений) записывается словом в небольшом конечном алфавите, буквы которого могут рассматриваться как ненулевые цифры числа, представляющего это число в некоторой системе счисления при достаточно большом основании. Само программирование оставляется читателю в качестве длительно выполняемого, но простого задания на программирование средствами языка Паскаль в рамках дважды полиномиальных паскалеобразных функций.

Без доказательства (из-за его большой длины, в чем можно убедиться, посмотрев, например, [2]), приведем еще одну КР-полную задачу, известную под названием СУММА РАЗМЕРОВ. Она представляет собой проверку разрешимости в числах из {0, 1} линейных уравнений вида ах, + ... + ах = Ь, где а,... а , Ь - поло-

11 п п 7 1' п7

жительные целые числа.

Следует отметить, что если задача имеет числовые параметры, то важно, записаны ли значения этих параметров в позиционной системе счисления с основанием, отличным от единицы, или в так

называемой унарной системе, то есть число а имеет вид 1...1.

а

Назовем задачей СУММА УНАРНЫХ РАЗМЕРОВ задачу, аналогичную задаче СУММА РАЗМЕРОВ, в которой все числа а1, ... , ап, Ь записаны в унарной системе счисления.

Можно доказать, что используя метод динамического программирования, новую задачу всегда можно решить с использованием дважды полиномиальной паскале-образной функции. Идею ее реализации можно посмотреть, например, в [2].

ПРИЛОЖЕНИЕ

Пусть N - множество двоичных записей натуральных чисел (включающее число 0), знак 2 используется для обозначения функции возведения в квадрат, & и V - поразрядные конъюнкция и дизъюнкция соответственно.

Заметим, что если задача проверки истинности предиката вида ЗУ Р(Х, У) является КР-полной, то задача нахождения того значения У, для которого эта формула верна (иногда пишут (?У) Р(Х, У)) является КР-трудной. Точное определение КР-трудной задачи имеется, например, в [2, 8].

Терм в заданной сигнатуре представляет собой формализованную запись арифметического выражения, в которой использованы константы, переменные и функции из этой сигнатуры. Постоянный терм не содержит переменных.

Теорема 1. Задача вычисления знака постоянного терма в сигнатуре является

ИР-трудной.

Доказательство. Сведем задачу ВЫПОЛНИМОСТЬ (ВЫП) к предикатной модификации, рассматриваемой в формулировке теоремы задачи: «проверка положительности постоянного терма в

2

сигнатуре —, •,/, , ».

Пусть исходными данными для задачи ВЫП являются пропозициональные переменные х1, ..., хг и элементарные дизъюнкции с1, ..., ст. Воспользуемся тем, что 2г = 2 •...• 2 . Каждой предметной пере-

г раз

менной х. (г = 1, ..., г) ставим в соответствие число г-, кодирующее г-ый столбец в списке всех набо-

ров значении

переменных xp ..., xr. Точнее, zr = 1W0N ' , а при i е [1, r-1]

z=1p 0p+22 p • 1p 0p + + 22 pq • 1p 0p =

i

(2p -1) 2p • (1 + 22p +... + 22pq )= (2p -1) 2p •

22 p(q+l) — 1

22 p — 1 '

где p = 2i-1, q = 2r-i- 1, - слово, состоящее из букв b, повторенных k раз, S - двоичное число, соответствующее слову S, состоящему из двоичных цифр.

Отметим, что экспоненты, появившиеся в формуле, моделируются постоянными термами в заданной сигнатуре. А именно

2p = 2i—1 = (...(2)2...)2 , i—1 раз

22 р = 222" = 22' = (...(2)2...)2

г раз

22 р (+1) = 22 2,-12г-' = 22г = ( (2)2 )2

г раз

Таким образом, каждой переменной х. (г = 1, ..., г) не более чем за полином шагов от длины записи исходных данных для ВЫП ставится в соответствие постоянный терм, содержащий функцию возведения в квадрат.

Операцией г-поразрядного отрицания 0 константы из N2, длина записи которой не превосходит г, будем называть замену всех символов 1 в записи на символ 0, а всех символов 0 (включая ведущие нули, отсутствующие в записи длины г) на символ 1. В арифметической записи 0 а = 2г - а - 1, если

Iа £ г.

Поразрядная дизъюнкция может быть выражена через г-поразрядное отрицание и поразрядную конъюнкцию по обычным формулам, при этом длина записи терма при исключении поразрядной дизъюнкции вырастет линейно.

Истинность всех дизъюнкций ср ..., ст хоть на одном наборе значений переменных равносильна тому, что значение постоянного терма, полученного из пропозициональной формулы с1&...&ст заменой & на & , V на V , 0 на 0 и переменных х1, ..., хг на построенные постоянные термы, больше нуля. Таким образом, задача ВЫП полиномиально сводится к проверке положительности постоянного терма в сигнатуре ^N2;+, —, •, /, 2, & .

Несмотря на ^-трудность задачи из формулировки теоремы 1, доказанной в [6], можно доказать полиномиальность задачи вычисления постоянных термов при ограничении на его длину записи. Пусть || - длина записи терма t, [ t] - значение постоянного терма t.

Теорема 2. Каково бы ни было множество постоянных термов в конечной сигнатуре, содержащей функции только из ЕР, задача вычисления постоянного терма из этого множества принадлежит ЕР, если при некоторой константе Е для всякого подтерма t вычисляемых термов выполняется

........Е

Доказательство.

Во все функции рассматриваемой сигнатуры вводим дополнительный фиктивный аргумент, вме-

сто которого подставляем значение || ^ , для которого выполняется неравенство из условия теоремы. При этом длина записи терма || {/} || увеличится не более, чем полиномиально.

Все функции становятся неудлиняющими, то есть длина записи результата каждой из них не превосходит суммы длин записей ее аргументов (включая длину записи фиктивного аргумента). Следовательно, можно воспользоваться следующей теоремой из [6].

Теорема 3. Пусть имеется конечный список функций /р ..., /т, вычислимых на детерминированной машине Тьюринга за полиномиальное время, причем время вычисления каждой функции/ (] = 1,..., т ) не превосходит С^ я. (где я. — сумма длин записей аргументов, С, I — некоторые константы). И пусть длина записи значения каждой функции не превосходит суммы длин записей ее аргументов.

Тогда вычисление постоянного терма в сигнатуре /р ..., осуществимо на детерминированной машине Тьюринга за полиномиальное время.

Точнее, время вычисления этого терма не превосходит С• Ь^ п1 £ С• п1+1, где Ь — глубина терма, п - длина записи терма, С - константа.

Доказательство проведем методом возвратной математической индукции по глубине терма Ь.

При Ь = 0 (то есть терм является константой) теорема очевидна.

Рассмотрим терм t = /..., tk) глубины Ь, где t1, ..., tk - термы глубин Ь1, ..., Ьк соответственно (Ь. < Ь). По индукционному предположению t. вычисляется не более чем за С• Ь • п1. шагов, где длина записи t. равна п. (г = 1, ..., к).

Пусть 5 - длина записи слова Б, [ I ] - значение постоянного терма t.

По условию теоремы длина записи значения терма t не превосходит суммы длин записей термов t1, ..., tk. Используя это, дополнительной возвратной математической индукцией по Ь можно дока-

к I к

зать, что | [] | £ ^ ] £ ^ п. < п . По индукционному предположению время вычисления терма t¡ 1=1 .=1 не превосходит С• Ь.• п1. .

По условию теоремы время вычисления f ([tj, ...,[tk]) не превосходит C • (X^-J [tj ]| )l£ C • nl,

ik

jj=l

общее время вычисления терма t не превосходит

k

J , V ^ т J

C • nl + £C • L • ni £

j • ni j=i

k

C• nl + C•(L-l)£nl £

j=i

œ k ^

C • nl + C •

s

Vj=1

n

С • п1 + С — 1) п1 = С • 1 • П.

Следствие теоремы 2. Какова бы ни быта конечная сигнатура функций из ЕР, вычисление постоянных термов в этой сигнатуре принадлежит классу ЕР, если для некоторой константы С верно

"х (||/(х^^М+С).

Это следствие усиливает теорему 3.

Теорема 4. Класс дважды полиномиальных паскалевидных функций совпадает с классом ЕР.

Идея доказательства. Каждая конфигурация машины Тьюринга МТ (то есть непустое содержимое ленты вместе с указанием положения головки и номера состояния машины, ограниченное слева и справа бланковыми символами) может быть промоделирована двумя динамическими массивами, первые элементы которых кодируют бланковый символ ленты.

Длина записи числа в этом массиве будет ограничена полиномом от длины записи исходных данных, если МТ совершает число шагов, ограниченное полиномом от длины записи исходных данных. Таким образом, каждая функция из класса ЕР может быть промоделирована дважды полиномиальной паскалевидной функцией.

Докажем, что всякая дважды полиномиальная паскалевидная функция принадлежит классу ЕР. Элементы массивов располагаем на дополнительной ленте машины Тьюринга в виде последовательности пар вида ([ 1 ], [а( 1)]), где [ 1 ] - список значений индексов, [а( 1 )] - значение элемента массива.

Во-первых, отметим, что каждая операция языка Паскаль принадлежит классу ЕР. Более того, ее можно сделать неудлиняющей добавлением фиктивного аргумента, ограничивающего сверху длину записи ее результата. Длина записи этого результата не превосходит полинома от длины записи первоначальных исходных данных.

Используя следствие теоремы 2 получаем, что вычисление каждого выражения, не содержащего дополнительно определяемых функций, принадлежит классу ЕР. Аналогичное утверждение будет верно и относительно полиномиального числа присваиваний, включая и косвенную адресацию.

Литература

1. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979.

2. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982.

3. Косовская Т.М. Машины Тьюринга // Компьютерные инструменты в образовании, 2005. № 3. С. 52-61.

4. Косовская Т.М. О временной сложности решения задач распознавания // Компьютерные инструменты в образовании, 2005. № 4. С. 61-68.

5. Косовская Т.М. О классах сложности алгоритмов // Компьютерные инструменты в образовании, 2005. № 5. С. 35-41.

6. Косовский Н.К., Косовская Т.М. Полиномиальность и NP-трудность задачи вычисления знака постоянного терма // Математические вопросы кибернетики, 2007. Вып. 16. С. 125-128.

7. Форсайт Р. Паскаль для всех. М.: Машиностроение, 1986.

8. Du D.Z., Ko K.I. Theory of Computational Complexity. A Wiley-Interscience Publication. John Wiley & Sons, Inc. 2000.

Abstract

The paper is devoted to the problem of proving that some function is in FP complexity class. Such proofs may use pascal-like functions, that are more easy for programmers, than computation models based on a Turing machine. It will be presented the idea of proof of the theorem, that if both the number of steps of pascal-like function evaluation and a size of all intermediate evaluations are not greater than some polynomial of the length of initial data, then this function is in FP and vice versa.

Keywords: P, FP, NP, Turing machine, pascal-like functions, NP-full, NP-complete, NP-complete functions examples.

Косовская Татьяна Матвеевна, кандидат физико-математических наук, доцент кафедры математики Государственного Морского Технического Университета, kosov@NK1022.spb.edu,

Косовский Николай Кириллович, доктор физико-математических наук, профессор, заведующий кафедрой информатики математико-механического факультета Санкт-Петербургского государственного университета, kosov@NK1022.spb.edu

© Наши агторы, 2010. Our authors, 2010.