The Algorithm Design Manual Second Edition


When are Dynamic Programming Algorithms Efficient?



Download 5,51 Mb.
Pdf ko'rish
bet235/488
Sana31.12.2021
Hajmi5,51 Mb.
#273936
1   ...   231   232   233   234   235   236   237   238   ...   488
Bog'liq
2008 Book TheAlgorithmDesignManual

8.7.2

When are Dynamic Programming Algorithms Efficient?

The running time of any dynamic programming algorithm is a function of two

things: (1) number of partial solutions we must keep track of, and (2) how long it

take to evaluate each partial solution. The first issue—namely the size of the state

space—is usually the more pressing concern.

In all of the examples we have seen, the partial solutions are completely de-

scribed by specifying the stopping places in the input. This is because the com-

binatorial objects being worked on (strings, numerical sequences, and polygons)

have an implicit order defined upon their elements. This order cannot be scram-

bled without completely changing the problem. Once the order is fixed, there are

relatively few possible stopping places or states, so we get efficient algorithms.

When the objects are not firmly ordered, however, we get an exponential num-

ber of possible partial solutions. Suppose the state of our partial solution is entire

path taken from the start to end vertex. Thus LP [i, j, P ] denotes the longest

simple path from to j, where is the exact sequence of intermediate vertices

between and on this path. The following recurrence relation works to compute

this, where denotes appending to the end of :

LP [i, j, P x] =

max


(

x,j)

∈E,x,j ∈P

LP [i, x, P ] + c(x, j)

This formulation is correct, but how efficient is it? The path consists of an

ordered sequence of up to n

− 3 vertices. There can be up to (n − 3)! such paths!

Indeed, this algorithm is really using combinatorial search (a la backtracking) to

construct all the possible intermediate paths. In fact, the max is somewhat mis-

leading, as there can only be one value of and one value of to construct the

state LP [i, j, P x].

We can do something better with this idea, however. Let LP





[i, j, S] denote the

longest simple path from to j, where the intermediate vertices on this path are

exactly those in the subset S. Thus, if =



{a, b, c}, there are exactly six paths

consistent with Siabcjiacbjibacjibcajicabj, and icbaj. This state space is at

most 2

n

, and thus smaller than enumerating the paths. Further, this function can

be evaluated using the following recurrence relation:

LP



[i, j, S



∪ {x}] =

max


(

x,j)

∈E,x,j ∈S

LP [i, x, S] + c(x, j)


304

8 .


D Y N A M I C P R O G R A M M I N G

where S



∪ {x} denotes unioning with x.

The longest simple path from to can then be found by maximizing over all

possible intermediate vertex subsets:

LP [i, j] = max

S

LP



[i, j, S]

There are only 2

n

subsets of vertices, so this is a big improvement over

enumerating all n! tours. Indeed, this method could certainly be used to solve

TSPs for up to thirty vertices or so, where = 20 would be impossible using

the O(n!) algorithm. Still, dynamic programming is most effective on well-ordered

objects.


Take-Home Lesson: Without an inherent left-to-right ordering on the objects,

dynamic programming is usually doomed to require exponential space and

time.


Download 5,51 Mb.

Do'stlaringiz bilan baham:
1   ...   231   232   233   234   235   236   237   238   ...   488




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