Об асимптотике решений рекуррентных соотношений специального вида и технике Кульмана — Люкхардта

2013 Вычислительные методы в дискретной математике №4

ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ В ДИСКРЕТНОЙ МАТЕМАТИКЕ

УДК 519.712

ОБ АСИМПТОТИКЕ РЕШЕНИЙ РЕКУРРЕНТНЫХ СООТНОШЕНИЙ СПЕЦИАЛЬНОГО ВИДА И ТЕХНИКЕ КУЛЬМАНА — ЛЮКХАРДТА

В. В. Быкова

Институт математики и фундаментальной информатики Сибирского федерального университета, г. Красноярск, Россия

E-mail: bykvalen@mail.ru

Обсуждаются проблемы решения рекуррентных соотношений, возникающих в анализе вычислительной сложности рекурсивных алгоритмов. Класс рассматриваемых алгоритмов ограничен алгоритмами расщепления, а именно DPLL-алгоритмами, предназначенными для решения задачи пропозициональной выполнимости. Исследована техника Кульмана — Люкхардта, традиционно применяемая при исследовании вычислительной сложности алгоритмов расщепления. Предложена теорема, устанавливающая верхние оценки времени выполнения DPLL-алгоритма в случае сбалансированного расщепления. Теорема расширяет возможности техники Кульмана — Люкхардта, так как учитывает неоднородность рекуррентного соотношения, описывающего время работы DPLL-алгоритма.

Ключевые слова: вычислительная сложность рекурсивных алгоритмов, алгоритмы расщепления, решение рекуррентных соотношений.

Введение

Задача пропозициональной выполнимости (англ. вариант — SATISFIABILITY, или коротко SAT) является одной из известных задач дискретной математики и теории сложности вычислений. Это задача о выполнимости формулы логики высказываний. Для формул, записанных в конъюнктивной нормальной форме, задача SAT является NP-полной (С. А. Кук, 1971) [1]. Многие проблемы из класса NP естественным образом сводятся к данной задаче [2].

Задача SAT формулируется следующим образом. Пусть X — конечное множество переменных, принимающих значения false и true. Формула F в конъюнктивной нормальной форме (КНФ) представляет собой конъюнкцию конечного числа элементарных дизъюнкций. Требуется установить, существует ли для входной формулы F, заданной в КНФ над множеством переменных X, набор значений переменных, при котором каждая дизъюнкция формулы F принимает значение true (такой набор принято называть выполняющим). Формула считается выполнимой, если для неё существует хотя бы один выполняющий набор, и невыполнимой, если выполняющего набора не существует.

Входной формуле F обычно приписывают числовую величину, которая принимает неотрицательные целые значения (принадлежит Z+) и характеризует размерность этой формулы. Такие величины называют мерами сложности формулы логики высказываний. В качестве основных мер сложности рассматривают: N = |Х| —число

переменных; K — число дизъюнкций; L = |F| —длину формулы F, как количество входящих в неё литералов (переменных или их отрицаний). Относительно этих мер сложности традиционно определяют вычислительную сложность (время работы) исследуемого алгоритма решения задачи SAT.

Задача пропозициональной выполнимости NP-полная, поэтому маловероятно, что она может быть решена за полиномиальное время. Так, алгоритм полного перебора, анализирующий все 2N различных наборов значений N переменных, устанавливает тривиальную верхнюю оценку вычислительной сложности задачи SAT в худшем случае. Поиск алгоритмов, работающих быстрее полного перебора, активно ведётся с начала 60-х годов прошлого века и до настоящего времени. Среди них наиболее известными являются алгоритмы расщепления [3]. Алгоритмы расщепления — это декомпозиционные алгоритмы. Они сводят задачу SAT для входной формулы F к конечному числу подзадач, каждая из которых — это SAT для формул меньшей сложности, чем сложность F. Причём это сведение может быть детерминированным (алгоритм производит рекурсивные вызовы самого себя для формул меньшей сложности, полученных при расщеплении F) или вероятностным (случайный выбор одной из образованных после расщепления формул). Детерминированные алгоритмы расщепления принято назвать DPLL-алгоритмами (по первым буквам фамилий их авторов: M. Davis, H. Putman, G. Logemann, D. Loveland) [4, 5]. Значительная часть алгоритмов, разработанных за последние пятьдесят лет для задачи SAT, базируется на идеях, которые заложены в DPLL-алгоритмах. Далее везде под алгоритмами расщепления будем иметь в виду DPLL-алгоритмы.

В данной работе алгоритмы расщепления рассматриваются с точки зрения вычислительной сложности. Будем использовать традиционные для анализа алгоритмов асимптотические обозначения [1]. Например, для вещественнозначных функций q(n) и h(n) от n Е Z+ запись q(n) = 0[h(n)] означает, что существуют такие константы ci,c2 > 0 и такое По Е Z+, что cih(n) ^ q(n) ^ c2h(n) при n ^ По. Аналогично, пишут q(n) = O[h(n)], если найдётся константа с > 0 и такое n0 Е Z+, что q(n) ^ с  h(n) при всех n ^ n0. Точно так же q(n) = o[h(n)] тогда и только тогда, когда для любой положительной константы с существует такое n0 Е Z+, что всегда q(n) < с  h(n) при n ^ n0. Все эти обозначения предполагают, что функции q(n) и h(n) неотрицательные асимптотически, т. е., по крайней мере, начиная с некоторого значения n.

В п. 1 работы приводится общая схема функционирования алгоритма расщепления; в п. 2 определяется вид рекуррентного соотношения, описывающего время работы DPLL-алгоритма, исследуются вычислительные возможности получения для него решения в явном виде или в виде асимптотических оценок, а также анализируется техника Кульмана — Люкхардта, традиционно применяемая при рассмотрении вычислительной сложности алгоритмов расщепления; в п. 3 представляется основной результат — теорема, которая устанавливает верхние оценки времени выполнения DPLL-алгоритма в случае сбалансированного расщепления. В отличие от техники Кульмана — Люкхардта, данная теорема определяет асимптотические оценки в явном виде и позволяет учитывать временные затраты алгоритма, которые не связаны с его рекурсивными вызовами.

1. Схема работы алгоритма расщепления

В алгоритмах расщепления снижение меры сложности входной формулы осуществляется с помощью редуцирования и расщепления этой формулы. В общем виде схему работы DPLL-алгоритма можно представить следующим образом.

Вход: формула F в КНФ над X.

Ответ: «Выполнима» / «Невыполнима».

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

2. Если задача SAT тривиально решается для F0, то выдать соответствующий ответ.

3. Выбрать переменную x Е X по определённому правилу. Таких переменных может быть несколько. Их число определяется правилом расщепления, употребляемом на следующем шаге.

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

5. Осуществить рекурсивные вызовы данного алгоритма применительно к полученным формулам. Выдать ответ, основываясь на результатах, возвращённых рекурсивными вызовами: если хотя бы один из рекурсивных вызовов вернул выполняющий набор, то ответ — «Выполнима», в противном случае — «Невыполнима».

Таким образом, DPLL-алгоритм — рекурсивный алгоритм, вызывающий сам себя на формулах меньшей сложности. Рекурсивные вызовы прекращаются, как только задача SAT решается тривиально, т. е. если в результате преобразований получается формула, для которой решение задачи может быть найдено за полиномиальное время. В частности, к полиномиально разрешимым случаям приводят следующие классы формул: пустые формулы (они не содержат дизъюнкций вообще, всякая такая формула интерпретируется как true); формулы в 2-КНФ (каждая их дизъюнкция содержит не более двух литералов); хорновские формулы (в них каждая дизъюнкция содержит переменные с отрицанием, кроме одной переменной) и ряд других классов формул [6, 7]. К трудоёмкости шагов DPLL-алгоритма предъявляют ряд естественных требований. Суть их в том, что все действия, не связанные с рекурсивными вызовами (это шаги 1-4 алгоритма), должны выполняться за полиномиальное время относительно выбранной меры сложности формул.

Различные расщепляющие алгоритмы отличаются друг от друга в основном правилами редукции, стратегией выбора переменных на шаге 3, правилами расщепления и используемой мерой сложности формул. Уже предложено и доказано значительное число правил редукции, наиболее известные из них можно найти в работах [3-5]. Среди них: «единичная дизъюнкция», «чистый литерал», «резолюция», «поглощение» и др. Типичные стратегии по выбору переменных для расщепления — это, чаще всего, эвристики вида: «взять любую переменную из самой короткой дизъюнкции», «предпочтение отдать переменной, входящей в наибольшее число дизъюнкций». Правила расщепления также могут быть различными. Например, простейшее правило расщепления сводится к замене формулы F0 на две формулы

Fi = F0[x] и F2 = F0[-x].

При этом формула Fi получается из формулы F0 присваиванием значения true переменной x. Это влечёт удаление всех дизъюнкций, содержащих x без отрицания, и удаление литерала —x в оставшихся дизъюнкциях. Формула F2 получается аналогичным образом — присваиванием переменной x значения false и дальнейшим соответствующим упрощением полученной формулы. Таким образом, при данном правиле расщепления DPLL-алгоритм выполняет два рекурсивных вызова для формул F1 и F2

соответственно. Своеобразные правила расщепления, например такие, как

Fi = F0 [x, y], F2 = F0[x, —y], F3 = F0 [—x];

Fi = F0 [x, y], F2 = F0 [x, —y], F3 = F0 [—x, y], F4 = F0 [—x, —y],

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

Важно отметить следующие факты. Если расщепление выполняется по правилу Fi = F0[x] и F2 = F0[—x], то DPLL-алгоритм в худшем случае (например, для невыполнимой формулы, к которой неприменимы рассматриваемые правила редукции) перебирает все 2n различных наборов значений N переменных. Как будет показано ниже, подобное наблюдается и при других правилах расщепления, когда отсутствует этап редуцирования и в качестве меры сложности входной формулы выступает число переменных. Это вполне согласуется с тем, что задача SAT является NP-полной. Для данной задачи (когда отсутствуют какие-либо ограничения на длину и структуру дизъюнкций во входной формуле) до сих пор не найдено методов решения, в том числе и DPLL-алгоритмов, со временем работы O(cN), где с < 2. Между тем известны алгоритмы расщепления с оценками вычислительной сложности 0(1,238823k), 0(1,073997l) относительно числа K дизъюнкций и длины L входной формулы соответственно [8]. Область применения DPLL-алгоритмов не ограничивается задачей SAT. Алгоритмы расщепления успешно применяются при решении многих NP-полных задач, например MAX-SAT, MAX-2-SAT [9]. Существует большое количество научных публикаций, посвященных этому классу алгоритмов. Более того, имеется много работ, описывающих DPLL-алгоритмы для SAT, где каждая следующая улучшает результат предыдущей за счёт введения иной меры сложности формул, оригинальных правил редукции и расщепления, более тщательного анализа алгоритмов. При этом предлагаемые алгоритмы сравниваются между собой преимущественно с точки зрения O-оценки (верхней асимптотической оценки) времени их работы в худшем случае.

2. Рекуррентные соотношения в анализе алгоритмов расщепления: асимптотика решений и техника Кульмана — Люкхардта

В общем случае анализ вычислительной сложности DPLL-алгоритмов представляет собой весьма непростую задачу ввиду их рекурсивности. В настоящее время основным математическим инструментом исследования вычислительной сложности рекурсивных алгоритмов является метод рекуррентных соотношений [1, 10]. Идея данного метода состоит в построении и решении рекуррентного соотношения, которому удовлетворяет функция, описывающая время работы рассматриваемого алгоритма. Однако данный метод не универсален. Существует несколько серьёзных препятствий для его практического воплощения. Во-первых, для построения рекуррентного соотношения необходимо, чтобы преобразование, уменьшающее значение параметра рекурсии, было линейным относительно этого параметра [11]. Во-вторых, если рекуррентное соотношение всё же найдено, то нет никакой гарантии, что удастся установить явную форму или асимптотическую оценку его решения. Причина в том, что общих методов решения рекуррентных соотношений до сих пор не найдено. Известны лишь методы решения некоторых классов рекуррентных соотношений [12, 13]. Интересно выяснить, какой вид имеет рекуррентное соотношение, описывающее время работы DPLL-алгоритма, и какие вычислительные возможности имеются для нахождения его решения? Дадим ответы на поставленные вопросы.

Пусть неотрицательная целая величина п — некоторая мера сложности входной формулы ^ (например, количество переменных или число дизъюнкций). Предположим, что ВРЬЬ-алгоритм вначале редуцирует, а затем расщепляет формулу ^ на т > 1 формул ^1, ^2, ... , сложности П1, п2, ..., пт соответственно, пт ^ ... ^

^ п2 ^ п1 < п. Пусть Т(п) —монотонно неубывающая функция от п, представляющая общее время работы алгоритма расщепления для формулы ^ сложности п; её областью значений является множество неотрицательных вещественных чисел, а областью определения — множество неотрицательных целых чисел. Из схемы работы ВРЬЬ-ал-горитма следует, что значение T(п) складывается из времени выполнения рекурсивных вызовов для формул ^1, ^2, ... , ^т, а также из временных затрат, не связанных с рекурсивными вызовами:

T (п) = T (щ) + T (п2) +-+ T (пт) + / (п).

Здесь / (п) — функция полиномиального порядка роста [14], которая как раз и учитывает нерекурсивные затраты ВРЬЬ-алгоритма, т. е. время, затрачиваемое им на редуцирование ^, выбор переменных для расщепления, построение решения для ^ из решений для ^о, ^1, ^2, ..., ^т и на прочие подобные действия. Выражение для Т(п) можно представить так:

Т

где ^1 = п — п1, £2 = п — п2, ... , £т = п — пт, 1 ^ ^1 ^ £2 ^ ... ^ £т < п. В публикациях

по БРЬЬ-алгоритмам вектор (^1,^2,... , £т) обычно называют вектором расщепления. Далее будем придерживаться этой терминологии. Вектор расщепления назовём сбалансированным, если все его элементы равны, и максимально несбалансированным, если в нём нет ни одной пары равных элементов.

Поскольку в векторе расщепления возможны равные элементы, то равенство (4) можно преобразовать к следующему неоднородному линейному рекуррентному соотношению порядка к ^ 1 с постоянными коэффициентами:

Т

Т

Начальные условия (6) свидетельствуют о том, что время работы алгоритма расщепления ограничено сверху и снизу константами для формулы сложности не более к — 1 . В соотношении (5) коэффициенты а1, а2, ... , а& — положительные целые константы, не равные нулю одновременно. Для рекуррентного соотношения порядка к естественными являются условия а1, а2,... , а^-1 ^ 0, а& ^ 1.

Общих методов нахождения явного вида решения рекуррентного соотношения (5) неизвестно. Между тем при /(п) = 0 к нему возможно применение классической теоремы Пуанкаре — Перрона [15, 16]. Согласно теореме Пуанкаре — Перрона, общий вид решения однородного линейного рекуррентного соотношения с постоянными коэффициентами устанавливается через корни соответствующего характеристического многочлена. Так, если а1, а2, ... , ак — простые (некратные) корни уравнения

хк — а1жй-1 — а2хк-2 —    — ак = 0,

то решение рекуррентного соотношения

Т

определяется формулой

Т

где С1, С2, ... , Ск —постоянные величины, значения которых вычисляются, исходя из начальных условий (6). Таким образом, если а — наибольший положительный вещественный корень уравнения (7), то, согласно (8), верна асимптотическая оценка

Т

Следует заметить, что (7) по правилу перемены знаков в последовательности коэффициентов алгебраического уравнения [17] имеет ровно один положительный вещественный корень. В силу единственности он простой. Именно этот корень и выступает в роли а. В работах, посвящённых ВРЬЬ-алгоритмам, величину а называют числом расщепления и пишут а = а(^1,^2,... , £т), подчёркивая тем самым зависимость значения а от вектора расщепления (^1, £2,... , £т). Применение к (7) метода Лагранжа для определения границ положительных вещественных корней алгебраического уравнения [17] приводит к оценке а ^ 2, в которой равенство достижимо в ряде случаев. В частности,

а(1,1) = а(1, 2, 2) = а(2, 2, 2, 2) = 2,

в чём нетрудно убедиться, решив надлежащие характеристические уравнения. Примечательно, что векторы расщепления (1,1), (1, 2, 2), (2, 2, 2, 2) отвечают БРЬЬ-алго-ритмам, в которых отсутствует этап редуцирования, в роли п выступает число N переменных, а расщепление выполняется по правилам (1)-(3) соответственно. В данном случае оценка (9) принимает вид О(2м). Это подтверждает приведённый в п. 1 факт, что ВРЬЬ-алгоритмы не способны улучшить время работы алгоритма полного перебора, если сложность формул измерять числом входящих в них пропозициональных переменных.

Для нахождения чисел расщепления нет общих вычислительных формул, поэтому они находятся преимущественно с помощью численных методов [17], исходя из вектора расщепления. В ряде частных случаев можно воспользоваться свойствами чисел расщепления, которые легко доказываются. Некоторые из них приведены в работе [9]. Например, для сбалансированного вектора расщепления с т > 1 равными элементами справедливо равенство

а (к, к, ...,&) = т1/к = 2(1°^т)/к,

т раз

а для максимально несбалансированного вектора расщепления (1, 2,... , т) верно строгое неравенство а(1, 2,... , т) < 2. Кроме того, всегда

а(^1,^2,... ) ^ а(рьр2,..., Рт) ,

если и ^ р^ для всех г. Отсюда при т > 1

т1/т = а(т, т,..., т) < а(1, 2,..., т) < 2,

4----------'

т раз

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

Разработчики ВРЬЬ-алгоритмов для анализа вычислительной сложности этих алгоритмов традиционно применяют технику Кульмана — Люкхардта [18, 19]. Многие оценки для задачи БАТ и родственных с ней КР-полных задач получены с помощью данной техники. Её подробное описание дано в работе [3]. Исследование техники Кульмана — Люкхардта показало, что она полностью базируется на теореме Пуанкаре — Перрона и приведённых выше особенностях алгебраического уравнения (7), хотя её описание не содержит явных ссылок на эти известные математические факты [18, 19]. Неоднородность рекуррентного соотношения (5) в технике Кульмана — Люкхардта игнорируется. Чтобы как-то обозначить существование этой неоднородности, разработчиками ВРЬЬ-алгоритмов всегда делается оговорка, что оценка времени работы алгоритма получена с точностью до полиномиального сомножителя, для чего используется запись

Т

Степень полинома в (10) не уточняется (в общем случае это сделать невозможно, ведь число расщепления а, как правило, приходится находить численно).

Техника Кульмана — Люкхардта имеет свои достоинства, которые способствуют её широкому практическому применению. Во-первых, данная техника служит единым инструментом, с помощью которого оценивается время работы алгоритмов расщепления. Это даёт возможность сопоставлять такие алгоритмы между собой. Во-вторых, численный характер техники позволяет её автоматизировать. Известны программы для автоматического доказательства верхних оценок ВРЬЬ-алгорит-мов [20]. В-третьих, техника Кульмана — Люкхардта максимально аккумулирует математические возможности вычисления оценок для решений рекуррентных соотношений вида (5). Одним из возможных направлений развития данной техники является рассмотрение случаев, когда f (п) ф 0. Игнорирование неоднородности в (5)—это основной недостаток техники Кульмана — Люкхардта. Между тем учёт этой неоднородности чрезвычайно важен с точки зрения развития идей, заложенных в ВРЬЬ-алгоритмах. В самом деле, постоянное расширение списка правил редукции и расщепления направлено на уменьшение числа расщепления а, а значит, и второго сомножителя правой части (10). Однако это неизбежно приводит к увеличению нерекурсивных расходов ВРЬЬ-алгоритма и первого сомножителя в правой части (10). Таким образом, принимая во внимание допустимые значения п, целесообразно сопоставлять вклад обоих сомножителей в значение функции Т(п) (ведь при 1 ^ п ^ 100 значение 10п3 гораздо больше, чем 1,1п). Предлагаемая ниже теорема даёт возможность учитывать неоднородность в (5) для одного частного случая, когда расщепление является сбалансированным и f (п) = 0(пт), где т — неотрицательная вещественная константа.

3. Теорема для сбалансированного расщепления

Расщепление формулы ^ является сбалансированным относительно меры п, если ему отвечает сбалансированный вектор расщепления

(к, к,..., к), а раз

где а — число формул, получаемых при расщеплении, и каждая из этих формул характеризуется мерой сложности (п — к), где а > 1. Заметим, что здесь число формул, получаемых в процессе расщепления, обозначено через а (вместо т, используемого ранее).

Рекуррентное соотношение (5) при сбалансированном расщеплении значительно упрощается, поскольку а1 = а2 = ••• = ак-1 = 0, ак = а. В данном случае (5), (6) можно записать так:

Т

Т

Для такого неоднородного линейного рекуррентного соотношения возможно получение асимптотических оценок в явном виде, что подтверждает следующая теорема.

Теорема 1. Пусть задано рекуррентное соотношение (11) с начальными условиями (12), где а > 1, к ^ 1 —целые константы. Пусть т ^ 0 — вещественная константа.

Тогда при любом достаточно большом значении п верны оценки

Т

Т

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

Случай 1. Пусть /(п) = 0. Оценка (14) прямо следует из (9). В данном случае а = а1/к.

Случай 2. Предположим, что п кратно к, т. е. представимо в виде п = кр, р Е ^+. Пусть также /(п) = Ьпт, где Ь > 0, т ^ 0 — вещественные константы.

Введём функцию ^(р) = Т(кр). Тогда Т(кр — к) = Т(к(р — 1)) = ^(р — 1) и (11),(12) можно представить следующим образом:

Т (кр) = аТ (кр — к) + Ьктрт, если р > 0,

Т(кр) = 0(1), если р = 0,

или

^

^(р) = 0(1), если р = 0.

Подстановка соотношения (15) самого в себя при условии, что ^(0) = 0(1), даёт

^

где Б (а, 0, т) = 0, а при р > 0

Б(а,р, т) = ар-1  1т + ар_2  2т +    + а0  рт = ^ ар-ггт.

г=1

Найдём значение конечной суммы Б(а,р,т). При т = 0 и а > 1 справедливо равенство

р ар 1

Б(а,р, 0) = £ ар-гг° = ар-1 + ар_2 +    + а0 =-----.

г=1 а — 1

Таким образом, при т = 0 для рекуррентного соотношения (15) верна оценка

ар 1

д(р) = ар0(1) + ЬктБ(а,р, т) = ар0(1) + Ь-----= 0(ар).

а1

Поскольку р = п/к, то

^(р) = Т (кр) = Т (п) = 0(ап/к),

что отвечает оценке (13), ведь 0-оценка функции всегда влечет справедливость соответствующей 0-оценки той же функции.

Для произвольного вещественного т ^ 0 значение суммы Б(а,р,т) установить крайне сложно. Между тем значение Б(а,р, т) можно оценить сверху. В работе автора [10] доказано неравенство

ар 1

Б(а,р,т) ^ рт------г-,

а — 1

из которого следует, что

ар 1

д(р) = ар0(1) + ЬктБ(а,р, т) ^ ар0(1) + Ьктрт---------,

а — 1

ар 1

Т

а — 1

Принимая во внимание, что ктрт = пт и р = п/к, из (17) вытекает оценка

Т

которая совпадает с (13).

Случай 3. Пусть по-прежнему п = кр, р Е ^+. Предположим теперь, что /(п) = 0(пт), т ^ 0. Функцию /(п) = 0(пт) можно записать в виде /(п) = Ьпт + о(пт), где Ь > 0 — некоторая вещественная константа. Тогда в правой части равенства (16) появляется дополнительное слагаемое

р ар 1

о

г=1 V а — 1 у

С учётом этого неравенство (17) преобразуется к виду

ар 1

Т(кр) ^ ар0(1) + Ьктрт---------+ о (ктртар),

а — 1

из которого следует, что дополнительное слагаемое в (16) не изменяет оценку (18).

С л у ч а й 4. В предыдущих двух случаях предполагалось, что п кратно к. Однако это предположение можно снять, исходя из монотонности функции Т(п), поскольку если п не кратно к, то всегда найдется ближайшее сверху п*, такое, что п* = кр, р Е ^+, и Т(п) ^ Т(п*). Очевидно, что в этой ситуации порядок роста функции Т(п), выраженный верхней асимптотической оценкой (13), остаётся прежним для любого целого неотрицательного п.

Доказанная теорема расширяет возможности техники Кульмана — Люкхардта, так как учитывает неоднородность рекуррентного соотношения, описывающего время работы ВРЬЬ-алгоритма в случае сбалансированного расщепления. Теорема может быть применена и тогда, когда расщепление не является сбалансированным. Для этого необходимо сбалансировать вектор расщепления и воспользоваться монотонностью функции Т(п) . Конечно, полученная оценка может оказаться хуже реальной, но зато она

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

T

В данном случае вектор расщепления равен (6, 7). Техника Кульмана — Люкхардта приводит к оценке

T(n) = poly(n)  O(1,24n).

Поскольку T(n — 7) ^ T(n — 6), то возможен переход к сбалансированному вектору расщепления (6, 6) и соответствующему рекуррентному соотношению

T(n) ^ 4T(n — 6) + n3.

Применение теоремы 1 (здесь a = 4, k = 6) даёт оценку

T(n) = O(n31, 26n),

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

ЛИТЕРАТУРА

1. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. М.: Вильямс, 2012.

2. Отпущенников И. В., Семёнов А. А. Технология трансляции комбинаторных проблем в булевы уравнения // Прикладная дискретная математика. 2011. № 1(11). С. 96-115.

3. Всемирное М. А., Гирш Э. А., Данцин Е. Я., Иванов С. В. Алгоритмы для пропозициональной выполнимости и верхние оценки их сложности // Теория сложности вычислений. VI. Зап. научн. сем. ПОМИ. СПб., 2001. Т. 277. С. 14-46.

4. Davis M., Logemann G., and Loveland D. A machine program for theorem-proving // Comm. ACM. 1962. No. 5(7). P. 394-397.

5. Davis M. and Putman H. A computing procedure for quantification theory // J. ACM. 1960. No. 7(3). P. 201-215.

6. Franco J. and Gelder A. V. A perspective on certain polynomial-time solvable classes of Satisfiability // Discr. Appl. Math. 2003. V. 125. Iss. 2-3. P. 177-214.

7. Алексеев В. Б., Носов В. А. NP-полные задачи и их полиномиальные варианты. Обзор // Обозрение прикладной и промышленной математики. 1997. Т. 4. Вып. 2. С. 165-193.

8. Hirsch E. A. New worst-case upper bounds for SAT // J. Automated Reasoning. 2000. No. 24(4). P. 397-420.

9. Куликов А. С., Куцков К. Новые верхние оценки для задачи максимальной выполнимости // Дискретная математика. 2009. №21(1). С. 139-157.

10. Быкова В. В. Математические методы анализа рекурсивных алгоритмов // Журнал Сибирского федерального университета. Сер. Математика и физика. 2008. № 1(3). С. 236-246.

11. Головешкин В. А., Ульянов М. В. Теория рекурсии для программистов. М.: Физматлит, 2006.

12. Гельфонд А. О. Исчисление конечных разностей. М.: Физматлит, 1959.

13. Грэхем Р., Кнут Д., Паташник О. Конкретная математика. Основание информатики. М.: Бином. Лаб. знаний, 2006.

14. Бытова В. В. Эластичность алгоритмов // Прикладная дискретная математика. 2010. №2(8). С. 87-95.

15. Poincare H. Sur les equations lineaires aux differentielles ordinaires et aux differences finies //

Amer. J. Math. 1885. V. 7. P. 203-258.

16. Perron O. Uber einen Satz des Herrn Poincare // J. Reine Angewand. Math. 1909. B. 136. S.17-34.

17. Бахвалов Н. С. Численные методы. М.: Бином. Лаб. знаний, 2006.

18. Kullmann O. New methods for 3-SAT decision and worst-case analysis // Theor. Computer

Sci. 1999. No. 223. P. 1-72.

19. Kullmann O. and Luckhardt H. Deciding propositional tautologies: Algorithms and their complexity // Preprint. 1997. http://www.cs.swan.ac.uk/~csoliver.

20. Куликов А. С., Федин С. С. Автоматические доказательства верхних оценок на время работы алгоритмов расщепления // Теория сложности вычислений. IX. Зап. научн. сем. ПОМИ. СПб., 2004. Т. 316. С. 111-128.