Introduction to Algorithms, Third Edition



Download 4,84 Mb.
Pdf ko'rish
bet252/618
Sana07.04.2022
Hajmi4,84 Mb.
#534272
1   ...   248   249   250   251   252   253   254   255   ...   618
Bog'liq
Introduction-to-algorithms-3rd-edition

if
i
==
j
2
return
0
3
mŒi; j 
D 1
4
for
k
D
i
to
j
1
5
q
D
R
ECURSIVE
-M
ATRIX
-C
HAIN
.p; i; k/
C
R
ECURSIVE
-M
ATRIX
-C
HAIN
.p; k
C
1; j /
C
p
i
1
p
k
p
j
6
if
q < mŒi; j 
7
mŒi; j 
D
q
8
return
mŒi; j 
Figure 15.7 shows the recursion tree produced by the call R
ECURSIVE
-M
ATRIX
-
C
HAIN
.p; 1; 4/
. Each node is labeled by the values of the parameters
i
and
j
.
Observe that some pairs of values occur many times.
In fact, we can show that the time to compute
mŒ1; n
by this recursive proce-
dure is at least exponential in
n
. Let
T .n/
denote the time taken by R
ECURSIVE
-
M
ATRIX
-C
HAIN
to compute an optimal parenthesization of a chain of
n
matrices.
Because the execution of lines 1–2 and of lines 6–7 each take at least unit time, as


386
Chapter 15
Dynamic Programming
does the multiplication in line 5, inspection of the procedure yields the recurrence
T .1/
1 ;
T .n/
1
C
n
1
X
k
D
1
.T .k/
C
T .n
k/
C
1/
for
n > 1 :
Noting that for
i
D
1; 2; : : : ; n
1
, each term
T .i /
appears once as
T .k/
and once
as
T .n
k/
, and collecting the
n
1 1
s in the summation together with the
1
out
front, we can rewrite the recurrence as
T .n/
2
n
1
X
i
D
1
T .i /
C
n :
(15.8)
We shall prove that
T .n/
D
.2
n
/
using the substitution method. Specifi-
cally, we shall show that
T .n/
2
n
1
for all
n
1
. The basis is easy, since
T .1/
1
D
2
0
. Inductively, for
n
2
we have
T .n/
2
n
1
X
i
D
1
2
i
1
C
n
D
2
n
2
X
i
D
0
2
i
C
n
D
2.2
n
1
1/
C
n
(by equation (A.5))
D
2
n
2
C
n
2
n
1
;
which completes the proof. Thus, the total amount of work performed by the call
R
ECURSIVE
-M
ATRIX
-C
HAIN
.p; 1; n/
is at least exponential in
n
.
Compare this top-down, recursive algorithm (without memoization) with the
bottom-up dynamic-programming algorithm. The latter is more efficient because
it takes advantage of the overlapping-subproblems property. Matrix-chain mul-
tiplication has only
‚.n
2
/
distinct subproblems, and the dynamic-programming
algorithm solves each exactly once. The recursive algorithm, on the other hand,
must again solve each subproblem every time it reappears in the recursion tree.
Whenever a recursion tree for the natural recursive solution to a problem contains
the same subproblem repeatedly, and the total number of distinct subproblems is
small, dynamic programming can improve efficiency, sometimes dramatically.


15.3
Elements of dynamic programming
387

Download 4,84 Mb.

Do'stlaringiz bilan baham:
1   ...   248   249   250   251   252   253   254   255   ...   618




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish