Аналитическое решение специального класса рекуррентных соотношений в целях анализа рекурсивных алгоритмов

96 Вестник СамГУ — Естественнонаучная серия. 2008. №3(62).

УДК 510.52

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

© 2008 В.А. Головешкин^ М.В. Ульянов2

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

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

1. Предварительные замечания

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

1 Головешкин Василий Адамович (nikshevolog@yandex.ru), кафедра высшей математики Московского государственного университета приборостроения и информатики, 107475, Россия, г. Москва, ул. Стромынка, 20.

2Ульянов Михаил Васильевич (muljanov@mail.ru), кафедра прикладной математики и моделирования систем Московского государственного университета печати, 127550, Россия, г. Москва, ул. Прянишникова, 2а.

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

Основная идея метода декомпозиции состоит в сведении исходной задачи к ряду более простых задач с понижением их размерности [2, 3], при этом под размерностью задачи понимается некоторая мера длины входа алгоритма, решающего данную задачу. Общая схема метода предполагает выполнение следующей последовательности шагов:

1) Шаг разделения задачи. На этом шаге выбирается способ разделения задачи на некоторое число подзадач меньшей размерности.

2) Шаг решения полученных подзадач. Это рекурсивный шаг — каждая подзадача рассматривается как задача определенной размерности, и выполняется ее разделение на собственные подзадачи до тех пор, пока рекурсивно не будет получена такая размерность, при которой решение может быть получено непосредственно.

3) Шаг останова рекурсии. На этом шаге выполняется непосредственное решение полученных подзадач для малых размерностей.

4) Шаг объединения решений. На этом шаге полученные решения подзадач меньшей размерности при возврате в точку рекурсивного вызова объединяются в решение задачи текущей размерности. Подъем вверх по цепочке рекурсивных возвратов позволяет на верхнем уровне дерева рекурсии получить решение исходной задачи.

На основе этой схемы можно получить общий вид рекуррентного соотношения, которое задает функцию трудоемкости такого рекурсивного алгоритма. Пусть п — размерность решаемой задачи, тогда если в рекурсивном алгоритме, при решении задачи размерности п происходит такое ее разделение, которое приводит к необходимости решения а подзадач размерностью п/Ь, и Ь является делителем п, то функция трудоемкости такого алгоритма /а(п) имеет вид [3]:

/а

где й(п) — трудоемкость фрагмента алгоритма, выполняющего разделение задачи на подзадачи, и(п) — трудоемкость фрагмента алгоритма, объединяющего полученные решения подзадач размерностью п/Ь в решение задачи размерности п. При этом на шаге останова рекурсии для некоторой малой размерности задачи, т.е. при п = по, возможно ее прямое (не рекурсивное) решение. Обозначая трудоемкость получения этого прямого решения через /а(по) и вводя обозначение g(n) = й(п) + и(п), получаем, с учетом (1.1),

общий вид рекуррентного соотношения для функции трудоемкости алгоритмов, разработанных методом декомпозиции в случае, если b является делителем b [3]:

\ /л (n) = a • /л (n/b) + d (n) + U (n), n > no.

Отметим, что получение аналитического решения соотношения (1.2) осложняется тем, что размерность решаемой задачи должна, очевидно, быть целой. Поэтому в общем случае вместо n/b в качестве аргумента функции в (1.2) должна фигурировать целая часть частного с округлением вниз или вверх, т.е. |_n/bj или \n/b\

Изучение рекуррентных соотношений вида (1.2) привело к получению ряда результатов: как аналитических решений для некоторых частных случаев, например для b = 2 и линейной функции g(n) [4], так и асимптотических оценок функции /л(п) при ^ то. Применение основной теоремы о рекуррентных соотношениях (J.L. Bentley, Dorothea Haken, J.B. Saxe, 1980, [2]) позволяет получить асимптотическое поведение функции /л(п) при n ^то для достаточно широкого класса функций g(n) при произвольных а и b. Формулировка теоремы в обозначениях из [2] (T — обозначение временной сложности алгоритма) имеет вид.

Теорема. Пусть а ^ 1 и b > 1 —константы, g(n) — известная функция, T(n) определено при неотрицательных значениях n формулой

T

где под [n/b] понимается |_n/bj или \n/b], тогда:

1) если g(n) = o(nlogba-e^ для некоторого е > 0, то T(n) = 0('nlogbа);

2) если g(n) = o(nlogba^, то T(n) = 0 (nlogba logbnj;

3) если найдутся константы с > 0 и е > 0 такие, что при достаточно больших n выполнено g(n) > cnLOgba+e и найдется положительная константа d > 1 такая, что при достаточно больших n выполнено ag(n/b) ^ dg(n), то T(n) = 0(g(n)).

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

2. Постановка задачи

Рассмотрим специальный класс рекуррентных соотношений вида (1.2) с линейной функцией g(n), описывающих функцию трудоемкости алгоритмов, разработанных методом декомпозиции задачи размерности n на р подзадач размерностью [n/k], где р, k — целые положительные числа: p ^ 2,

к ^ 2. Поскольку под [п/к] понимается \п/к\ или |~п/к|, то в рамках изучаемого специального класса рассматриваются два подкласса рекуррентных соотношений, а именно:

I. Подкласс рекуррентных соотношений вида | Т (0) = С, п = 0;

\Т

II. Подкласс рекуррентных соотношений вида

1 Т (0) = 0, п = 0; Т (1) = С, п = 1;

Соотношения (2.1) и (2.2) являются частными случаями (1.3) с функцией g(n) = Ап + В и описывают функцию трудоемкости рекурсивного алгоритма, использующего метод декомпозиции с линейной трудоемкостью разделения и объединения решений. Отметим, что такие соотношения характерны для функции трудоемкости алгоритмов решения задачи сортировки, поиска выпуклого охватывающего контура и ряда других задач [2, 3].

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

3. Аналитическое решение рекуррентных соотношений подкласса I

Поскольку в правой части соотношения (2.1) аргументом функции является целая часть от деления аргумента п на значение к — \_п/к\, введем в рассмотрение представление числа в системе счисления по основанию к

п = аткт + ат-1кт 1 + ••• + а\к + ао,

где а^: 0 ^ ау < к — целые числа (цифры в системе счисления по основанию к). В начале рассмотрим ряд частных случаев значений аргумента п в рекуррентном соотношении (2.1). Прежде всего отметим, что если 0 ^ п < к, то из (2.1) непосредственно следует

Т (п) = рТ (0) + Ап + В = рС + Ап + В.

3.1. Случай п = кт и р Ф к

В этом случае соотношение (2.1) преобразуется к виду Т (кт) = рТ(кт-1) + Акт + В,

и, в частности, при т = 0,1, 2 имеем Т (1) = рС + А + В,

Т (к) = рТ (1) + Ак + В = р2С + А (р + к) + В (р + 1), Т {к2) = рТ (к) + Ак2 + В = ръС + А^р2 + кр + к2) +

+В(р2 + р + 1) = р3С + А

р3 - к3 р3 - 1

И +В-

р - к р - 1 По индукции положим

рт+1 _ кт+1 рт+1 _ 1

Т

р - к р - 1

тогда

Т{кт+1) = р

р

рт+1С + А—

т+1 — кт+1 рт+1 — 1

+ в-

р - к р - 1

+

р

+Акт+1 + В = рт+2С + А--------т----+ В

т+2 — кт+2 рт+2 — 1

р - к р - 1

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

Для перехода к исходному аргументу п заметим, что из п = кт следует т = logkn. Подстановка т = logkn в (3.2) дает аналитическое решение рассматриваемого случая

п\+\°%кп _ а^0ёкп п1+10ёкп - 1

Г

р - к р - 1

3.2. Случай п = кт и р = к

В этом случае соотношение (2.1) имеет вид

Т (кт) = кТ (Г-1) + Акт + В,

в частности Т (1) = кС + А + В и Т (к) = кТ (1) + Ак + В = к2С + 2Ак + В (к + 1).

По индукции положим

кт+1 _ 1

Т

к - 1 ’

тогда

кт+1 - 1

Т(кт+1) = к

кт+1С + (т + 1) • ктА + В-

к1

+ Акт+1 + В =

кт+2 1

= кт+2С + (т + 2)  кт+1А + В----—,

к- 1

что доказывает предположение индукции.

Подстановка п = кт и т = \о%кп в (3.4) дает аналитическое решение

кп — 1

Т

к- 1

Заметим, что при к = 2 получаем Т(п) = @(п log2 п), что, очевидно, согласуется с результатом основной теоремы о рекуррентных соотношениях (см. случай 2 теоремы).

3.3. Случай n = akm, 1 ^ a < k и p Ф k

В этом случае соотношение (2.1) принимает вид T (akm) = pT {akm-1) + Aakm + B.

Полагая по индукции

km

пт+1С + Ап— , „

k - p p - 1

km+1 _ pm+1 pm+1 _ 1

T

получаем

T^akm+^ = p

fcm+1 _ pm+1 pm+1 __ 1

pm+1C + Ad--------------+ В

k- p p- 1

+

km+2 __ pm+2 pm+2 __ 1

+Аакт+1 + В = рт+2С + Аа-----------+ В 1 ,

к - р р - I

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

Для перехода в данном случае к исходному аргументу п заметим, что

из п- акт следует т - \}о^кп\) и а = — = ]^°^п~т^ подстановка в (3.6) дает

кт

аналитическое решение

п кт+1 _ рт+1 рт+1 _ 1

Т

кт к - р р - 1

3.4. Случай п = акт, 0 ^ а < к и р = к

Опуская предварительные выкладки, полагаем по индукции

кт+1 _ 1

Т

k - 1 ’

тогда

km+1 - 1

T^akm+^ = k

Г+1С+ (т + \)Г+1Аа + В'-

k - 1

+Aakm+1 + B = km+2C + (m + 2) • km+1 Aa + B

+

km+2 1

k1

что доказывает предположение индукции. п

Подстановка а = — в (3.8) с учетом того, что т- \}о^кп\) дает анали-

кт

тическое решение:

кт+1 _ 1

Т

к - 1

3.5. Случай п = Бк + а, 0 ^ а < к, Б > 0

Заметим, что в этом случае соотношение (2.1) преобразуется к виду Т (п) = рТ (Я) + А (Як + а) + В = Т (Як) + Аа,

далее, полагая, что аргумент функции Т имеет вид Якт, при т = 1,2,3, получаем

Т (Як) = рТ (Я) + АЯк + В,

т(Як2) = р [рТ (Я) + АЯк + В] + АЯк2 + В =

= р2Т(Я) + АЯк (р + к) + В (р + 1),

Т^Як3) = р3Т (Я) + АЯк(р2 + рк + к2) + В^р2 + р + 1),

по индукции при р Ф к положим, что

рт _ кт рт — 1

Т

р - к р - 1

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

Если р = к, то предположение индукции о том, что

кт+1 _ 1

Т

к- 1

также доказываются аналогично ранее рассмотренным случаям.

3.6. Случай п = акт + Ькт-1, 0 ^ а < к ,0 ^ Ь < к и р = к

Предварительно введем следующие обозначения чисел. Исходное число имеет представление n = amkm + am-ikm-i +----------+ aik + ao, в соответствие кото-

рому поставим числа nj, содержательно обозначающие замену нулями последних справа разрядов от 0-го до j-го в k-ичном представлении числа n. В частности,

no = amkm + am-ikm-i + ••• + aik,

ni = amkm + am-ikm 1 + ••• + a2k2,

при этом T (n) = T (no) + Aao (см. случай 3.5).

Представим число n = akm + bkm-i в виде n = к”-1 (ak + b) = Skm-i, и на основании формулы (3.10), полагая S = ak + b, получим

п”-і _ к”-1 pm-1 _ 1

Т(п) = pm~lT (ak + b) + A (ak + b) к—--------+ В-------—,

p - к p - 1

поскольку T (ak + b) = T (ak) + Ab (см. случай 3.5), то

п”-і _ к”-1 pm-1 1

Т (п) = pm~lT(ak) + А (ак) к----------+ В----------—+

p - к p - І

п”-1_ km-i pm — кm

+Abpm~l + Abk-------------= T (alT) + Ab--------.

p - к p - к

3.7. Случай п = акт + Ькт 1, 0 ^ а < к, 0 ^ Ь < к и р = к

Рассуждая аналогично случаю 3.6 и используя формулу (3.11), имеем

. . кт — 1

Т (п) = Т (кт~1 (ак + Ь)) = ктТ (ак + Ь)+А(ак + Ъ)кт~1 (т - 1) + В-

к1

что после преобразований дает

к!” — 1

Т (п) = 1ГТ (ак) + А (ак) 1Г~1 (т - 1) + В- + ктАЬ + АЬкт~1 (/и - 1),

к - 1

и окончательно

Т

з.8. Общее решение для подкласса I

Переходя к введенным обозначениям для чисел nj, на основе формулы (3.12) в предположении, что р Ф к, последовательно получаем

Т (п) = Т (по) + Аао,

п2 - к2

Т (п0) = Т (щ) + Аа\----------—,

р - к

р3 - к3

Т (щ) = Т (п2) + Аа2----—,...,

р - к

и, объединяя полученные выражения, имеем общее аналитическое решение при р Ф к

т-1 Р>+1 - У+1

Т

и р - к

заметим, что пт-\ = аткт, а для Т (аткт) уже получено явное аналитическое выражение (см. формулу 3.6), а значения aj вычисляются на основе представления числа п в соответствии с формулой (3.1).

Для случая р = к используем формулу (3.13) для вычисления Т(nj), в результате имеем аналитическое решение:

т-1

Т

j=о

а явное выражение для Т(аткт) в этом случае задается формулой (3.7). Тем самым формулы (3.14) и (3.6) доставляют общее аналитическое решение рекуррентных соотношений, принадлежащих подклассу I для случая р Ф к, а формулы (3.15) и (3.7)—для случая р = к.

4. Аналитическое решение рекуррентных соотношений подкласса II

Поскольку в правой части соотношения (2.2) аргументом функции является целая часть с округлением вверх от деления аргумента п на значение к — \п/к\, введем в рассмотрение специальное представление числа п по степеням к

п = аткт - ат-\кт-1 -  - а\к - ао, т = \\ogkn], т ^ 1,

где aj: 0 ^ aj < к — целые числа (цифры в системе счисления по основанию к). В начале рассмотрим ряд частных случаев значений аргумента п в рекуррентном соотношении (2.2). Прежде всего, отметим, что если 1 < п ^ к, то из (2.2) непосредственно следует

Т

4.1. Случай п = акт, а > 0 и р ± к

В этом случае соотношение (2.2) принимает вид Т (акт) = рТ {акт-1) + Аакт + В.

Полагая по индукции

рт _ кт р" — 1

Т

р - к р - 1

получаем

Т (акТ^1) = рТ (акт) + Аакт+1 + В =

рт+1 _ ркт+1 рт+1 _ р

= рт+1Т (а) + Ака-------- ----+ В--------+ Аакт+1 + В =

р - к р - 1

рШ + \ кт + 1 рШ + \ 1

= рт+1Т (а) + Ака------------+ В---------—,

p - k p — 1

что доказывает правильность соотношения (4.3) для всех значений m ^ 1.

4.2. Случай n = akm, a > 0 и p = к

Рассуждая аналогично случаю 4.1, полагаем по индукции

km — 1

Т

к — 1

тогда

T {akm+1) = kT (akm) + Aakm+1 + B =

im+1 — k

= km+1T (a) + Ama  km+1 + В------— + Aakm+1 + B =

k— 1

km+1 _ 1

= km+1T (a) + A(m + 1) a  km+1 + В----—.

k— 1

что доказывает предположение индукции.

4.3. Случай n = akm — b, a > 0, 0 ^ b < к

В этом случае соотношение (2.2) преобразуется к виду

T {akm — b) = pT

4.4. Случай п = кт (ак1 — Ь), а > 0, 0 ^ Ь < к и р Ф к

Используя соотношение (2.2) и полученные ранее результаты — формулы (4.3) и (4.5), получаем

рт - кт рт - 1

р" _ к"

т(кт(ак1-Ь|= ртт(а!^ - ь)+ Ак(ак! - ъ) ------------+ В

р - к р - 1 рт - кт рт - 1 рт - кт

И------+ В------------ - АкЪ----------

р - к р - 1 р - к

~.т+1 кт+1

= т-(«лг'™)-лг,-р

ртт

р к р 1 р к

р - к

4.5. Случай п = кт {ак1 — Ь), а > 0, 0 ^ Ь < к и р = к

Используя соотношение (2.2) и формулы (4.4) и (4.5), получаем

кт 1

Т (кТ (ак1 - ь)) = к"Т (ак? - ь) + Ат (ак1 - ь)  К" + В

кт- 1 к- 1

т к - 1

= ктТ

\ > к - 1

= Т (ак1+т) - АЬкт (т + 1).

4.6. Общее решение для подкласса II

Переходя к введенному представлению числа п — п = аткт - ат-\кт 1 --------а\к-ао и используя формулы (4.5) и (4.6) последовательно получаем:

Т (п) = Т (аткт - ат-1 кт 1 - ... - а\к - ао) =

= Т (аткт - ат-\кт 1 - ... - а\^ - Аао =

р2 _

— Т (аткт — С1т—\кт ^ — ... — — Л.и^ — Аа\ -

р - к

и окончательно имеем

т-1

Т

р->+1 - К+1

аз

j=о

Заметим, что для Т(аткт) уже получено явное аналитическое выражение— формула (4.3), подстановка которого в (4.8) позволяет получить окончательный результат — общее аналитическое решение рассматриваемого подкласса при р Ф к:

рт _ к" р" — 1 т~1 р}'+1 — к] + 1

Т

р - к р - 1 =о р - к

Для случая р = к используем формулу (4.7) для вычисления Т(п) и формулу (4.4) для вычисления Т(аткт), в результате имеем аналитическое

решение при р = к:

кт - \------------------------------тТ

р -1 и

Значение Т(ат) в формулах (4.9) и (4.10) вычисляется по формуле (4.2):

Т (ат) = рС + Аат + В.

Переход к исходному аргументу п в формулах (4.9) и (4.10) производится подстановкой значения т = \\ogkU] и вычислением значений ау на основе представления п, задаваемого формулой (4.1).

Заключение

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

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

Литература

[1] Ульянов, М.В. Классификация и методы сравнительного анализа вычислительных алгоритмов / М.В. Ульянов. - М.: Издательство физикоматематической литературы, 2004. - 212 с.

[2] Алгоритмы: построение и анализ / Т. Кормен [и др.]; 2-ое изд. пер. с англ. - М.: Издательский дом ”Вильямс”, 2005. - 1296 с.

[3] Головешкин, В.А. Теория рекурсии для программистов / В.А. Головешкин, М.В. Ульянов. - М.: ФИЗМАТЛИТ, 2006. - 296 с.

[4] Грэхем, Р. Конкретная математика. Основание информатики / Р. Грэхем, Д. Кнут, О.Паташник; пер. с англ. - М.: Мир, 1998. - 703 с.

Поступила в редакцию 2/УІ/2008; в окончательном варианте — 2/УІ/2008.

AN ANALYTICAL SOLUTION OF SPECIAL CLASS OF RECURRENCE RELATIONS FOR THE PURPOSE TO ANALYSE RECURSIVE ALGORITHMS

© 2008 GoloveshkinV.A.3 Ulyanov M.V.4

In the paper analytical solution for special class of recurrence relations is proposed. Analysed recurrence relations are characterized for the of labour-intensiveness recurrence relations functions processed by decomposition method and has linear labour-intensiveness of union obtained solutions. Analytical solution for two subclasses arising at theoretical examination of investigated class recurrence relations is obtained. The results can be used to receive explicit functions of labourintensiveness recurrence algorithms decompising the task with linear labour-intensiveness of results union.

Keywords: relation recursive, recursive algorithm, decomposition method, calculation model, labour-intensiveness function.

Paper received 2/V7/2008. Paper accepted 2/V7/2008.

3Goloveshkin Vasily Adamovich (nikshevolog@yandex.ru), Dept. of Applied Mathematics, Moscow State University of Instrumental-making and Informatics, Moscow, 107475, Russia.

4Ulyanov Mikhail Vasilievich (muljanov@mail.ru), Dept. of Applied Mathematics and System Modeling, Moscow State University of Printing Arts, Moscow, 127550, Russia.