Полезная методичка
.pdfà ë 1
РЕКУРРЕНТН Е УРАВНЕНИ
1.1.ПОН ТИЕ РЕКУРРЕНТНОГО УРАВНЕНИ
Для н которой чи по по ч й мы у м поним ть ту -чу, но с м ньшим числом п р м тро , или чу с т м числом п р м тро , но при этом хотя ы о ин и п р м тро им т м ньшн ч ни . О ним и осно ных спосо о р ш ния ч я ля тся их с ни к р ш нию т ко о н ор по ч, что ы, исхо я и р ш - ний по ч, ыло о мо но получить р ш ни исхо ной чи. Н й нный спосо с ния исхо ной чи к р ш нию н которых по ч мо т ыть пис н и соотнош ний, которыхн ч ни функции, соот тст ующ й исхо ной ч , ыр тся ч р н ч ния функций, соот тст ующих по ч м.
Соотнош ния, с я ы ющи о ни и т функции, но с р лич- ными р ум нт ми, н ы ются р курр нтными соотнош ниями, или р курр нтными ур н ниями. Р курр нтно ур н - ни н ы тся пр ильным, сли н ч ния р ум нто у лю ой и функций пр ой ч сти соотнош ния м ньш н ч ния р у- м нто у лю ой и функций л ой ч сти соотнош ния; сли р у- м нто н сколько, то ост точно ум ньш ни о но о и них.
Ïðèì ð 1.
T (n) = T(n 1) + T (n 2) пр ильно р курр нтно ур н ни ;
T (n) = T (n 1) + T (n+ 1) н пр ильно р курр нтно ур н ни .
Пр ильно р курр нтно ур н ни н ы тся полным, сли оно опр л но ля с х опустимых н ч ний р ум нто .
Ïðèì ð 2.
T (i) = T (i 1) + ai; i > 1; T (1) = a1:
11
При м прим ры р курр нтных ур н ний.
1.Í õî íè ì êñèì ëüíî î ýë ì íò è n ýë ì íòî ì ññè-:
T(n) = T (n 1) + C = (T (n 2) + C) + C = = C (n 1); T (1) = 0;
C = O(1):
2.Í õî íè í è îëüø î è í èì íüø î è n ýë ì íòî ì ñ- ñè :
T (n) = 1; ïðè n = 2;
T (n) = 2T n2 + 2; ïðè n > 2:
1.2. СПОСОБ РЕ ЕНИ РЕКУРРЕНТН Х УРАВНЕНИЙ
Р ссмотрим осно ны м то ы р ш ния р курр нтных ур н ний:
1.Ì òî èò ð öèé.
2.По ст но очный м то .
3.М то р курси ных р ь .
Ì òî èò ð öèé
Д нный м то ключ тся том, что нно р курр нтно ур н ни р списы тся ч р мно ст о ру их и т м поисхо ит суммиро ни получ нно о ыр ния.
Ïðèì ð 1.
Í éòè ð ø íè ëÿ ð êóð íòíî î óð í íèÿ
T (n) = 2T n2 + 5n2 T (1) = 7
ì òî îì èò ð öèé.
12
|
|
Для простоты мы пр поло им, что |
|
n ÿ ëÿ òñÿ ñò ï íüþ 2 , |
||||||||||||||||||||||||||||||||||||||||||||||||||
ò. . |
n = 2k . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
n |
|
|
|
||||
|
|
T (n) = 2T |
|
2 |
|
+ 5n = 2(2T |
|
4 |
|
+ 5 |
|
2 |
|
|
) + 5n = 2(2(2T |
|
8 |
|
+ |
|||||||||||||||||||||||||||||||||||
+5 |
|
n |
2 |
)+5 |
n |
|
2 |
|
|
|
|
2 |
= 2 |
k |
T |
(1)+2 |
k |
|
1 |
5 |
|
|
|
n |
|
|
|
2 |
+ +2 5 |
|
n |
2 |
|
|
|
2 |
: |
|||||||||||||||||
4 |
|
2 |
|
|
|
)+5n |
|
|
|
|
|
|
2k |
|
1 |
|
|
|
2 |
|
+5n |
|||||||||||||||||||||||||||||||||
|
|
Ïîñë í |
ûð íè |
|
|
ìî ò |
ûòü ïð ñò ë íî |
ñë óþù é |
||||||||||||||||||||||||||||||||||||||||||||||
суммой: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k 1 n2 |
|
|
|
|
|
|
|
|
|
|
|
k 1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
7n + 5 Xi=0 2i = 7n + 5n2 Xi=0 |
|
: |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
2i |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
Учиты я, что |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
1 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Xi=1 |
|
|
= 1 |
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2i |
|
2n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
получим |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
2 |
|
|
||
|
|
T (n) = 7n + 5n |
|
|
2 |
2 |
k 1 |
|
= 7n + 5n |
|
|
|
2 |
|
n |
= 7n + 10n |
|
|
||||||||||||||||||||||||||||||||||||
|
10n = 10n2 |
|
|
3n: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
Т ким о р ом мы получили точно р ш ни р курр нтно о |
óð í íèÿ.
Ïðèì ð 2.
Í éòè ð ø íè ëÿ ð êóð íòíî î óð í íèÿ
T (n) = aT (n 1) + bn; 0 < a < 1; b > 0; n > 1
T (1) = 0
ì òî îì èò ð öèé.
Ð ñïèø ì ííî ð êóð íòíî óð í íè ÷ ð ìíî ñò î ðó-èõ:
|
T (n) = aT(n |
|
1) + bn = a (aT(n |
|
|
2) + b(n |
|
1)) + bn = bn + |
|||||||||||||||||
|
|
|
|
2 |
|
|
2) = bn + ab(n |
|
|
2 |
b(n |
|
3 |
|
3) = |
||||||||||
+ ab(n 1) + a T |
(n |
|
|
1) + a |
|
2) + a T(n |
|
||||||||||||||||||
= b |
n 2 |
ai(n i) |
|
|
n |
|
2 |
ai: |
|
|
|
|
|
|
|
|
|||||||||
P |
|
|
|
bn |
P |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
i=0 |
|
|
|
|
i=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Ò ê ê ê 0 |
< a < |
1 , òî ó û þù ÿ îì òðè÷ ñê ÿ ïðî ð ññèÿ |
||||||||||||||||||||||
мо т ыть о р нич н конст нтой, н исящ й от n , ò. . |
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
n 2 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
Xi=0 ai < |
|
: |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
1 a |
|
|
|
|
|
|
|
Сл о т льно, тру о мкость л оритм сть O(n) и л оритм им т лин йную сло ность.
13
По ст но очный м то
Ïðèì ð 1.
Ïð ïîëî èì, ÷òî í î õî èìî ð øèòü ñë óþù ð êóðð íòíî
óð í íè :
T(n) = 2T n2 + n:
Д нный м то ключ тся том, что м то ом по ор н хо-ится т к я функция g(n) , при по ст но к которой р курр нтно ур н ни м сто T(n) получ тся рно н р нст о
g(n) 2g n2 + n:
Функция ол н ыть н им ньш о о мо но о поря к .
По ст им функцию g(n) = cn ýòî óð í íè cn 2 cn2 + n:
Получ м ло но н р нст о:
cn cn + n:
По ст им т п рь функцию g(n) = cn2 ýòî óð í íè cn2 2c n2 2 + n:
Получ м н р нст о:
cn2 cn22 + n
èëè
c > n2 ;
которо рно ля c 2 .
Сл о т льно, функция g(n) = cn2 я ля тся р ш ни м р с- см три мо о р курр нтно о ур н ния и тру о мкость л орит- м н пр ыш т O(n2) . Попыт мся т п рь ум ньшить поря ок м орирующ й функции. Пусть g(n) = cn log2 n , òî
14
cn n рно н р нст о. Сл о т льно, тру о мкость
л оритм по кр йн й м р O (n log2 n) .
Ïðèì ð 2.
Ð øèòü ì òî îì ïî ñò íî îê ñë óþù ð êóðð íòíî óð í -
íè : |
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
T(n) = 2T 2 + b: |
|
|
|
|
|
|
|||||
Пусть g(n) = cn , òî í ð íñò î cn |
|
cn + b ëî íî. |
|||||||||||
|
2 |
2 |
|
n |
|
2 |
|
|
cn2 |
|
|||
Ïóñòü g(n) = cn |
|
, òî cn |
2c 2 |
|
|
+ b |
è |
2 |
b ðíî ëÿ |
||||
n > (2b=c) . Сл о т льно, тру о мкость л оритм н пр ы- |
|||||||||||||
ø òpO(n2) . Попыт тся улучшить. |
|
|
|
|
|
|
|
|
|
||||
Пусть g(n) = c1n + c2 , òî c1n + c2 |
2(c1 |
n |
+ c2) + b: Åñëè |
||||||||||
2 |
|||||||||||||
c1n + c2 c1n + 2c2 + b , òî c2 |
b . Ñë î ò ëüíî, c2 := b . |
||||||||||||
Поэтому тру о мкость л оритм сть O(n) . |
|
|
|
|
|
М то р курси ных р ь
Д нный м то ключ тся том, что по и у р курр нтно о ур н ния строится р о и н я структур :
1.Н п р ой ит р ции формиру тся р о сл ующ о и :
кор нь р носится с о о ный чл н исхо но о р - курр нтно о ур н ния;
сыно ьями это о корня я ляются р курр нтны функции пр ой ч сти исхо но о соотнош ния.
2.Н посл ующих ит р циях ля к о о и сыно й строитсян ло ичн я р о и н я структур .
Проц сс постро ния р о и ной структуры к нчи тся, ко-
с н ч ния исячих ршин р ны T (1) , при этом н ч ниянутр нних ршин р сть н которы я ны функции (н р - курр нтны ) от р м р чи. З м тим, что исячи ршины постро нной р о и ной структуры н о я т льно о ин ко о у - л ны от корня.
Посл постро ния р суммиро ни н ч ний ршин х прои о ится сл ующим о р ом:
15
T ( 27n )
|
|
|
|
|
n |
|
|||||||
|
|
|
|
|
|
||||||||
|
|
|
|
|
3 |
Æ |
|||||||
|
|
|
|
|
|
A |
|
|
|
|
|||
|
|
|
|
|
|
|
A |
||||||
|
n |
|
|
|
|
|
2n |
|
|||||
|
|
|
|
|
|
|
|||||||
|
9Æ |
|
|
|
|
|
9Æ |
||||||
|
|
|
E |
|
|
|
|
e |
|||||
|
|
|
EE |
|
|
|
|
e |
|||||
|
|
|
|
|
|
|
e |
||||||
T ( |
2n |
) |
T ( |
2n |
) |
|
T ( |
4n |
) |
||||
|
|
|
|
||||||||||
27 |
|
|
27 |
|
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
n |
PP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
ÆPPP |
|
|
|
||||||||||||||
|
|
|
|
|
|
P |
2n |
||||||||||
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
3 |
Æ |
||||||||
|
|
|
|
|
|
|
|
|
|
S |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
S |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
2n |
|
|
|
|
|
|
|
|
4n |
|
|
|
|
|
|
|
|
9Æ |
|
|
|
|
|
9Æ |
|||||||
|
|
|
|
E |
|
|
|
|
|
C |
|||||||
|
|
|
|
EE |
|
|
|
|
|
CC |
|||||||
|
T ( |
2n |
) T ( |
4n |
) |
T ( |
4n |
) |
T ( |
8n |
) |
||||||
|
|
|
|
|
|||||||||||||
|
27 |
|
27 |
|
|
|
27 |
|
27 |
|
Рис. 1.2.1.: М то р курси ных р ь
1.Опр ляются суммы н ч ний ля р ноу л нных от корняршин (эти ршины н хо ятся н о ном уро н ).
2.Í õî èòñÿ ì êñèì ëüí ÿ ñóìì ïî óðî íÿì.
3.О щ я тру о мкость л оритм о р нич н с рху о ним и сл ующих н ч ний:
м ксим льной суммой, умно нной н колич ст о уро - н й;
суммой, получ нной р ульт т суммиро ния суммн ч ний по уро ням.
З м тим, что колич ст о уро н й ля р сть O(log2 n) .
Ïðèì ð 1.
Ïð ïîëî èì, ÷òî í î õî èìî ð øèòü ñë óþù ð êóðð íòíî óð í íè :
T(n) = T n + T 2n + n:
3 3
Н рис.1.2.1. и о р н р о и н я структур ля р ссм три -мо о прим р . Оц ним тру о мкость л оритм . Т к к к сумм
16
n
1920 n
1920 2 n
T ( 125n )
|
|
n |
|
||
|
|
|
|||
5 |
Æ |
||||
|
|
A |
|
|
|
|
|
A |
|||
n |
|
|
3n |
|
|
|
|
|
|||
25Æ |
|
20Æ |
|||
|
E |
|
|
e |
|
|
E |
|
|
e |
|
|
E |
|
|
e |
T ( 1003n ) T ( 1003n ) T ( 980n )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
n PP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
ÆPPP |
|
|
|
|||||||||||||
|
|
|
|
|
P |
3n |
||||||||||
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
4 |
Æ |
||||||||
|
|
|
|
|
|
|
|
|
S |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
S |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|||||||||
|
|
|
3n |
|
|
|
|
|
|
|
|
9n |
|
|
|
|
|
|
|
20Æ |
|
|
|
|
|
16Æ |
|||||||
|
|
|
E |
|
|
|
|
|
C |
|||||||
|
|
|
|
EE |
|
|
|
|
|
CC |
||||||
T ( |
3n |
) T ( |
9n |
) |
T ( |
9n |
) |
T ( |
27n |
) |
||||||
|
|
|
|
|||||||||||||
100 |
|
80 |
|
|
|
80 |
|
64 |
|
Рис. 1.2.2.: М то р курси ных р ь
í ÷ íèé í ê îì óðî í í ïð îñõî èò n и колич ст о уро - н й сть log 32 n = C log2 n , òî
T (n) = T n + T 2n + n Cn log2 n
3 3
и тру о мкость л оритм O(n log2 n) .
Ïðèì ð 2.
Ïð ïîëî èì, ÷òî í ì í î õî èìî ð øèòü ñë óþù ð êóð- ð íòíî óð í íè :
T(n) = T n + T 3n + n:
5 4
Н рис.1.2.2. и о р н р о и н я структур ля р ссм три -мо о прим р . Оц ним тру о мкость л оритм . Сумм н ч ний н нул ом уро н сть n , í ï ð îì óðî í í ïð îñõî èò
н тором н пр осхо ит 1920 2 n и т. . Колич ст о уро н й сть log 43 n . Суммиро ни сумм н ч ний по уро ням при о ит н с к
îì òðè÷ ñêîé ïðî ð ññèè ñî í ì í ò ë ì q = 1920 < 1 , è ò ê ê ê ñóìì ñêîí ÷íî ñõî ÿù éñÿ îì òðè÷ ñêîé ïðî ð ññèè ð -
17
н конст нт , то
n |
3n |
+ n < n(1 + q + q2 + + q |
log |
4 |
n |
|
T (n) = T 5 |
+ T 4 |
3 |
|
) C1n: |
Тру о мкость л оритм O(n) .
1.3. ТЕОРЕМА О РЕ ЕНИИ РЕКУРРЕНТНОГО УРАВНЕНИ
Т ор м 1.3.1. Пусть a; b; c; k н которы конст нты. То
ð ø íè ð êóðð íòíî î óð í íèÿ
T (n) = aT(n=b) + cnk; T(1) = c
èì ò è :
T (n) = O(nlogb a); ñëè a > bk;
T (n) = O(nk log n); ñëè a = bk;
T (n) = O(nk); ñëè a < bk:
Äîê ò ëüñò î.
Б о р нич ния о щности у м пр пол ть, что n = bm(m = logb n) .
T(n) =
=
=
=
Îòì òèì, ÷òî
a |
aT(n=b2) + c(n=b)k |
+ cnk |
||||||||
|
m |
|
|
m |
1 |
m 1 |
) |
k |
+ |
|
a T (1) + a |
|
|
c(n=b |
|
|
|||||
|
m |
|
|
|
|
|
|
|
|
|
c |
i=0 am ibik |
|
|
|
|
|
||||
cam |
m |
(bk=a)i: |
|
|
|
|
||||
|
P Pi=0 |
|
|
|
|
|
|
|
|
+ ac(n=b)k + cnk
(1.1)
am = alogb n = nlogb a:
Сумм , фи урирующ я (1.1) я ля тся ом трич ской про р сси-й, н ч ни которой исит от р цион льно о числ r = bk=a . Р ссмотрим три о мо ных случ я:
1.Пусть r < 1 . Учиты я, что сумм скон чно схо ящ йсяом трич ской про р ссии р н конст нт , то сть
1 |
1 |
|
|
Xi=0 ai = |
|
|
ëÿ 0 < a < 1; |
1 a |
|||
|
18 |
|
|
получим, что
m |
1 |
|
|
Xi=0 ri < |
я ля тся конст нтой: |
||
|
|||
1 r |
|||
Ñë î ò ëüíî, |
|
|
T(n) = O(am) = O(nlogb a):
2. Пусть r = 1 . Ò ê ê ê r = bk=a , òî a = bk è am = bmk = nk; (bm = n):
Ê òîìó
m
X ri = m + 1 = (m = logb n) = logb n + 1:
i=0
Ñë î ò ëüíî,
m |
|
|
|
c |
|
|
cam |
ri = cnk(log |
|
n + 1) = |
|
nk log n + cnk |
|
b |
|
|||||
Xi=0 |
|
|
log b |
|
||
|
|
|
|
è
T (n) = O(nk log n):
3.Пусть r > 1 . Учиты я н р нст о ля суммы ом трич - ской про р ссии
n |
|
an+1 1 |
|
|
|
|
Xi=0 |
ai = |
|
|
ëÿ a > 1; |
||
|
|
a 1 |
|
|||
получим, что |
|
|
|
|
|
|
m |
|
|
rm+1 1 |
|
|
|
Xi=0 |
ri = |
|
= O(rm): |
|||
|
|
r 1 |
|
Ò êèì î ð îì,
T (n) = O(amrm) = O(am(bk=a)m) = O(bkm) = O(nk):
2
З м ч ни 1.3.1. Н сло но пок ть, что т ор м ссимптотик O мо т ыть м н н ссимптотикой .
19
1.4.ПРИМЕР
Ïðèì ð 1.
Вычислить н ч ни ыр ния y = 2n .
При м три простых л оритм р ш ния пост л нной чи и оц ним их тру о мкость, построи ля к о о и них р курр нтно ур н ни .
Ал оритм 1
F := 1;
for i := 1 to n do
F := F + F;
Ð êóðð íòíî óð í íè : T (1) = 2; T(n) = T (n 1) + 1; n > 1: Р ш я это ур н ни м то ом ит р ций, получ м
T (n) = T (n 1) + 1 = T (n 2) + 2 = = T (1) + (n 1) = n + 1;
ò. . T (n) = (n) . Ò ê ê ê n = 2l , то тру о мкость л оритм 1сть (2l) , т. . л оритм 1 я ля тся экспон нци льным.
Ал оритм 2
function F(k:byte):word; begin
if k = 1 then F := 2; else
if k-÷ òíî then F := F (k=2) F (k=2) else F := F((k 1)=2) F((k 1)=2) 2;
end;
Ð êóðð íòíî óð í íè : T (1) = 2; T (n) = T (n=2)+T (n=2)+2; n > > 1: Сл мо , р но 2 р курр нтном ур н нии, о о н ч т
êîì í û óìíî íèÿ ûð íèè F := F ((k 1)=2) F ((k
1)=2) 2: По т ор м о р ш нии р курр нтных ур н ний T (n) = = (nlogb a) = (n) . Ò ê ê ê n = 2l , то тру о мкость л оритм 2
ñòü (2l) , т. . л оритм 2 т к я ля тся экспон нци льным.
20