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

Асимптотические свойства решений специального типа рекуррентных соотношений Текст научной статьи по специальности «Математика»

CC BY
549
47
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
СЛОЖНОСТЬ ВЫЧИСЛЕНИЙ / АНАЛИЗ АЛГОРИТМОВ / РЕКУРСИЯ / SOFTWARE / COMPUTATION COMPLEXITY / ANALYSIS ALGORITHMS / RECURSION

Аннотация научной статьи по математике, автор научной работы — Быкова Валентина Владимировна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Asymptotic properties of solutions for special type of recurrence relations

Two special types of recurrence relations that appear at the analysis of recursive algorithms are presented. The proof of the theorem defining asymptotic properties of the solution of recurrence relations with additive reduction of parameter recursion is resulted.

Текст научной работы на тему «Асимптотические свойства решений специального типа рекуррентных соотношений»

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

УДК 519.52+004.051

В. В. БЫКОВА

Сибирский федеральный университет,

г. Красноярск

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

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

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

1. Введение. В математике и программировании рекурсия — это метод определения или выражения функции или процедуры посредством той же функции и процедуры. Рекурсию обычно рассматривают в качестве антипода итерации. Соответственно, различают два больших класса алгоритмов: итерационные и рекурсивные. В основе итерационных алгоритмов лежит итерация — многократное повторение одних и тех же действий. Структура таких алгоритмов описывается алгоритмическими конструкциями «следование», «ветвление», «цикл», а анализ вычислительной сложности сводится к определению трудоемкости этих конструкций и формированию интегральной асимптотической оценки с использованием пра-

вил суммы и произведения О-оценок [ 1 ]. Заметим, что под вычислительной сложностью алгоритма в данной статье понимается трудоемкость продуцируемого алгоритмом вычислительного процесса. Эта трудо- § емкость формально описывается функцией слож- ° ности t{n), которая указывает максимальное количе- > ство элементарных шагов, нужное алгоритму для о достижения запланированного результата в зависи- | мости от п — длины входа алгоритма (размерности _< решаемой задачи) [2]. Рекурсивный алгоритм — это | тоже повторение, но повторение целого в его части. § Например, сведение задачи размерности п к той же 1 задаче меньшей размерности. Необходимость при-менения рекурсивных алгоритмов в одних случаях

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

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

Основным инструментом анализа сложности рекурсивных алгоритмов является метод рекуррентных соотношений [2, 4]. Идея данного метода состоит в построении и решении рекуррентного соотношения, которому удовлетворяет функция сложности t(n) рекурсивного алгоритма. Если рекуррентное соотношение для t(n) построено, то нет ни какой гарантии, что удастся установить явную форму или хотя бы асимптотическую оценку для t(n). Проблема в том, что универсальных методов решения рекуррентных соотношений общего вида нет. Известны лишь методы решения некоторых классов рекуррентных соотношений. Тем не менее, во многих практических ситуациях выход находится. Так, относительно хорошо решаются рекуррентные соотношения, характерные для прямой рекурсии, организованной по принципу «разделяй и властвуй» и аддитивным уменьшением параметра рекурсии на некоторую константу. В настоящей работе представляются соответствующие рекуррентные соотношения. Приводятся известные результаты для соотношения, свойственного принципу «разделяй и властвуй». Доказывается теорема, определяющая асимптотические свойства решений рекуррентного соотношения, присущего рекурсии с аддитивным уменьшением параметра рекурсии.

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

Г с, если 0 <л<лпг

№) = { m

[tr + ts+tu,ecAn л>л0 >0, 11

где л — параметр рекурсии (размерность задачи, решаемой рекурсивным алгоритмом); л0 — размерность задачи, при которой время работы алгоритма не зависит от л; с>0 — трудоемкость нерекурсивной ветви (некоторая постоянная величина); ts — время сведения задачи к подзадачам; tr — трудоемкость рекурсивной ветви (время выполнения подзадач); t — время объединения решений, полученных подзадачами.

При использовании принципа «разделяй и власт-■ вуй» задача размера л разбивается на подзадачи

размера л / к, где к > 1 — некоторая целая константа. В этом случае соотношение (1) принимает более конкретный рекуррентный вид:

[с, если 0 < л < л0,

Î(i7) ~~ \Л(п) t(n/к) + В(п), если л > л0 > 0.

Здесь А(л), В (л) — неотрицательные, монотонно возрастающие, вещественнозначные функции, областью определения которых выступает множество неотрицательных целых чисел Z+. Эти функции описывают затраты на рекурсивный переход. Очевидно, что соотношение (2) однозначно определяет функцию t(n) только при л = 0 и п = кт, те Z+.

Для рекурсивных алгоритмов, организованных путем аддитивного уменьшения параметра рекурсии л на целую константу к>\, соотношение (1) может быть представлено в виде:

Г с, если 0 < л < л0,

= I А(п) f (л -к) + В(п), если л > л0 > 0. ,3)

где А (л), В(п) имеют аналогичный смысл, что и в соотношении (2). В данном случае рекуррентное соотношение (3) однозначно определяет функцию t(n) только при п = кт, те Z+.

Решить соотношения (2), (3) в общем виде не представляется возможным — слишком общий вид они имеют. Это допустимо в частном случае, когда А (л) = а и В(п) = Ъпх, где а, Ь, т — положительные константы, а трактуется как число подзадач, порождаемых рекурсивной ветвью алгоритма, а степенная функция Ьлт определяет трудоемкость рекурсивного перехода.

3. Первая теорема о рекуррентных соотношениях. Была доказана в 1980 г. Дж. Бентли, Д. Хакеном и Дж. Саксом. Она определяет решение рекуррентного соотношения, которое типично для рекурсии, организованной по принципу «разделяй и властвуй».

Т е о р е м а 1 [2,4]. Пусть дано рекуррентное соотношение

t(n) =

с,

если л = 1,

at(n/k) + bn\ если л > 1,

(4)

где а>0, к> 1 — целые константы, Ь>0, с>0, т>0 — вещественные константы. Тогда при п = кт, теЪ+ решением соотношения (4) является функция

\атс + Ьктхт, если а = к\

[ (а/кх)-1

При л->°о и любых Ь>0 и с>0 справедливы оценки

t(n) =

0(лт1одАл), если а = к\ 0(лт), если а<к\ 0(л1од*°)г если а>к\

Если b = 0 и с > 0, то всегда

t(n) = 0(а1од*") = 0(л1од"°)

(5)

(6)

Оценки (5), (6) при любых значения t(l) =с>0дают полиномиальный порядок роста функции сложности t(n). Стало быть, рекурсия, организованная по принципу «разделяй и властвуй», всегда приводит к полиномиальным по сложности алгоритмам.

4. Вторая теорема о рекуррентных соотношениях. Эта теорема и вытекающие из нее следствия указывают асимптотические оценки для частного случая рекуррентного уравнения (3), которое присуще рекурсивным алгоритмам с аддитивным уменьшением параметра рекурсии на целую константу к> 1. Такие алгоритмы возникают, например, при рекурсивной реализации метода динамического программирования.

Теорема2. Пусть дано рекуррентное соотношение

(с, если 0< л <¿-1, at(n-k) + bnx, если п>к, ^

где а > О, к> 1 — целые константы, Ь>0, с>0, т>0 — вещественные константы. Тогда при n = km, те Z+ верны неравенства

c + bkx~'n< t(n) < с + - лт+1, если а = 1, (8) ; Jfc

Пп/к -1 пп/к - 1

ап/кс + bkx --— < t(n) < aIl/kc + bnx

а-1

а-1

если а ф 1. (9)

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

f{m) = t(km).

(Ю)

и равенства достигаются при т = 0. Тогда

£ атЧ = 50 < S(a,m,T) < S, = £am-'rnT.

Установим значения сумм 50, St при a = 1 и . Если а = 1, то

т т

/ = 1 ( = 1 jn П7 m

S, = £ ат~'тх = £ Г-'шт =£ шт =

/=1

Откуда, согласно (12), (15), и с учетом а= 1 для функции /(я?) верны неравенства:

с + bkx т < f{m) <c + bkxтх + \ Если аФ 1, то

„о _ a"' -1 а-1 '

(16)

5_, п? — 1 . ni — 2 , ,

п= а + а н-----на

5t= л7т(ат_1 + am~2 + ••• + а°) = л71

а"' -1 а-1 '

Тогда ¿(¿л? — /с) = Цк[т — 1)) = /(л? — 1) и соотношение (7) принимает вид

Г с, если Л2 = 0, /(л?)Ч (и)

[а!(т-\) + Ькхтх, если т > 0.

Подстановка соотношения (11) самого в себя дает:

Г(т) = атс + Ъкх8(а,тл), т = 0,1, ..., (12)

где 5(а, 0, т) — 0, а при т>0

т

5(а,ш,т) = ат'х • Г + ат~2 • 2Т + • •• +а° • ш1 = £ ат" Т.(13)

г = 1

Остается найти значение конечной суммы 5(а, т, т). В частности, при т = 0 верны равенства:

Я! Я?

5(а,т,0) = У£ат-1Г =т, при а = 1,

т пт _ л

5(а,т,0) = £ а7""'/0 = ат"1 + ат -2 + • • • + а0 = ---,

7TÍ а-1

при а * 1.

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

Гс + Ьт, если а = 1,

/(л?) = атс + Ьк°Б(а,т,0) = < т ат-1 (I4)

а с + Ь-, еслиа*1.

I а-1

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

Следовательно, при a^lверны верхняя и нижняя оценки:

ат -1 ат -1

атс + Ъкх -—- < f[m) < атс + Ъкх тх

а-1

а-1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(17)

Подстановка т = п/к в (14), (16), (17) дает требуемые оценки (8), (9). Теорема 2 доказана.

Формулы (8), (9) в общем случае не дают точного решения рекуррентного соотношения (7), а значит, и истинных асимптотических оценок. Они лишь определяют верхние и нижние границы. В этом смысле теорема 2 слабее первой основной теоремы. Однако при некоторых условиях можно получить точные решения и оценки. Это подтверждают соответствующие следствия.

Следствие1.£ предположениях теоремы 2 при т = 0 решением рекуррентного соотношения (7) является функция

т-

с н—л, если а = 1, к

пп/к -1 п/к i U- А

а с + Ь-, если аФ 1.

а-1

(18)

Следствие 2. При т = 0, любых значениях с> 0 и л->°о для решения рекуррентного соотношения (7) верны асимптотические оценки

JOín) если а = 1,Ь>0, 1 ' [0(а ), еслиаФ 1, Ь>0.

В частности, лри т = 0, а=1 и Ь = 0 всегда t(n) = =0( 1).

Следствие 3. Для решения рекуррентного соотношения (7) прих= 0, т>1, а= 1, с>0, b>0 и л->°о справедлива асимптотическая оценка

ат~' <ат~Чх <ат~1тх, / = 1,2,...,ш,

¿(л) = 0(лг+1).

(20)

155

Доказательство. Не представляет труда найти некоторые значения 5(а, т, т) при а = 1 и целых неотрицательных т:

5(1ГЯ2Г0) = т,

2 2 2

1 ; б 3 2 6

т (гл. +1) ш4 ш3 т2

5(1, ш, 3 ) = —--- = — +— +—.

v ' 4 4 2 4

Подстановка 5( 1, ш, 0), 5( 1, т, 1) f 5( 1, т, 2), 5( 1, т, 3) в (12) подтверждает асимптотическую оценку (20). Для случая, когда т>1 — вещественное число, известно следующее приближение [3]:

5(1,

Я х + 1

+— +-

2 12

- + 0(т1~2), т > 1,

Отсюда по формулам (10), (12) получаем требуемую оценку (20):

t(n) = t(km) = атс + bkxS(l,m,T) = = c + bkxS(l,m, т) = с + Ь£т

тх тх шт 1 т_2ч

-+ — +-+ (Э(тх

т + 1 2 12

\

и!кх + 1тх + { кхтх кткх-хтх~1 ^пх_2

= с + Ь\-+-+-+ 0{к т z)

¿(т + 1) 2 12

1 + 1 пх ктпх~1

= c + i

- + — + -

¿(т + 1) 2

12

+ 0(nx~z) = 0(л ).

5(1,ш,т)

т + 1

(В„,(ш + 1)-В1+1(0)) =

= —-Хс; + 1(л7 + 1Г + 1-'В(, т>0, т + 1 = о

где

(т + 1)!

z!(t + 1-z)!

Использование на практике формулы (21) весьма проблематично ввиду ее сложности. Поэтому приходится довольствоваться только асимптотикой. Предельный переход в (21) при т —подтверждает оценку (20). В самом деле, согласно (21), функция 5(1, т, т) есть многочлен от (т+1) степени т + 1:

5(1,ш,т) = ^(0^ + 1)^ В0 +с; + 1(ш + 1Г

••• + Стт+1(ш + 1)1 ВТ )=

1

+ ^(ш + 1)т + 1 -^(ш + 1)т н-----ь(т + 1)(т + \)Вт

Значит, 5(1, т, т) = 0((ш+ 1)т + 1) = 0(шт + 1) и при а = 1 верно

¿(л) = f(£m) = amc + bkxS{ 1, т, т) = 0(£т)-5(1, ш, т) = —0(A:T)0(mT + 1) = 0((кт)х + 1) = 0(лт + 1).

Необходимо отметить, что оценку S(\, т,т) = =0(шт + 1) для целых положительных т можно получить другим путем, не прибегая к представлению суммы 5( 1, я?, т) через комбинаторные числа. Для этого достаточно применить теорему Штольца [5]. В самом деле, прит>\ функция5(1,ш,т) представимаввиде:

t+i (V+2x+...+mx)

5(l,m,T) = £Y =т

i=i 111

Обозначим хт= (Г + 2х + ... + тх) и ут = тх+1. Тогда по теореме Штольца

lim Ьп- = Hm = lim

т

тх — (т — 1)т

Примечательно, что точное значение суммы 5( 1, т, т) в математике получено лишь для целых положительных т и выражается через комбинаторные числа так [5]:

= lim

лГ

1

(т + 1)шт +о(тх) т + 1

Это означает, что 5(1, т,т) = 0(тх + {). Следствие 3 доказано.

При а> 1 и целочисленном т>0 непосредственное применение к конечной сумме (13) формулы суммирования Эйлера — Маклорена [5] дает еще одну точную асимптотику.

Следствие 4. Для решения рекуррентного соотношения (7) при а> 1, с>0, Ь>0 и целых неотрицательных т справедлива асимптотическая оценка

(21)

t(n) = 0(пхап/

(22)

— многочлен Бернулли и биномиальные коэффициенты соответственно, а Б— числа Бернулли, определяемые рекуррентным соотношением

В0 = 1, С,°£0 + С)ВХ+С*В2+ • • • + 0, г = 2, 3,... ,

согласно которому В. = 0 для всех нечетных [> 1 и

11 11

В0 = 1, В, = —, В2 =-,В4=

1 2 2 6 4 30 6 42

5. Заключение. Из доказанных в работе теоремы 2 и оценок (18) — (20), (22) можно сделать важный практический вывод: рекурсивные алгоритмы, образованные аддитивным уменьшением параметра рекурсии на некоторую константу, могут быть полиномиальными или экспоненциальными с точки зрения вычислительной сложности. Так, при В(п) = Ьпх (когда трудоемкость рекурсивного перехода описывается степенной функцией) алгоритм будет иметь экспоненциальную сложность всегда, если аФ 1, Ь>0 и с>0 (или Ь>0 и с>0). О чем говорят данные условия? Как следует организовывать рекурсивные вычисления, чтобы они имели полиномиальную сложность? Для получения ответов на эти вопросы необходимо напомнить смысл констант соотношения (7). Константа а определяет число подзадач размера п—к, к которым

сводится исходная задача. Постоянные Ь их описывают трудоемкость рекурсивного перехода от л к п—к. Константа с характеризует временные затраты, которые требуются для непосредственного решения задачи, когда ее размерность чрезвычайно мала (0<п<к— 1). Для реальных алгоритмов всегда существуют какие-то затраты на организацию рекурсии, т.е. Ь>0 и с>0. Если эти затраты не зависят от л, то т = 0. При т = 0, а= 1, согласно следствиям 1 и 2, рекурсивный алгоритм имеет линейную сложность. При т>1, а = 1 и л—о по следствию 3 справедлива оценка t(n) = 0(лт + 1). Таким образом, при а = 1 рекурсивный алгоритм всегда полиномиальный. Следствие 4 утверждает, что при числе подзадач аФ\ рекурсивный алгоритм неизменно имеет экспоненциальную сложность и никакие усовершенствования процедуры разбиения и объединения подзадач не способны изменить класс его сложности.

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

Основные теоремы о рекуррентных соотношениях представляют пусть не универсальное, но доста-

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

Библиографический список

1. Ахо, А. Структуры данных и алгоритмы / А. Ахо, Дж. Хоп-крофт, Дж. Ульман. — М.: Издательский дом «Вильяме», 2007. — 400 с.

2. Кормен, Т. Алгоритмы: построение и анализ / Т. Кормен, Ч. Лейзерсон, Р. Ривест. - М.: МЦНМО, 1999. - 960 с.

3. Грин, Д. Математические методы анализа алгоритмов / Д. Грин, Д. Кнут. - М. : Мир, 1987. - 120 с.

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

5. Корн, Г. Справочник по математике / Г. Корн , Т. Корн. — М.: Наука, 1973. - 832 с.

БЫКОВА Валентина Владимировна, кандидат технических наук, доцент (Россия), профессор кафедры вычислительных и информационных технологий Института математики.

Адрес для переписки: e-mail: bykvalen@mail.ru.

Статья поступила в редакцию 20.09.2010 г. © В. В. Быкова

УДК 378.1:004.9 В> Д ГЛОТОВ

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

В. Ю. ИГНАТЮГИН

Сибирский государственный университет путей сообщения, г. Новосибирск

КОМПЛЕКСНЫЙ ПОДХОД К ОБУЧЕНИЮ ИНЖЕНЕРОВ-МЕХАНИКОВ С ИСПОЛЬЗОВАНИЕМ КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ (САР/САМ/САЕ СИСТЕМ)_

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

Ключевые слова: электронная модель, дипломный проект, компьютерные технологии, Компас-ЗЭ, комплексный подход.

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

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

В настоящее время в Сибирском государственном университете путей сообщения при обучении инженеров-механиков имеется возможность использовать

i Надоели баннеры? Вы всегда можете отключить рекламу.