You are on page 1of 7

info@programmingassignmenthelper.

com
Go To Code Directly
18.415/6.854 Advanced Algorithms

Problem Set 4
Lecturer: Michel X. Goemans

1. In class, W
we have seen Klein's cycle cancelling algorithm for the Min Cost Circulation
Problem (MCCP). This algorithm requires O(mCU) iterations in the worst case, i.e.,
its running time is not polynomial in m, log C and log U. In this problem, we will see
how to apply the idea of cost scaling on this algorithm to obtain an algorithm whose
running time is polynomial in m, log C, and U.
(In fact, it is possible to apply the same idea on both costs and capacities to obtain
an algorithm whose running time is polynomial in m, log U and log C , but this is not
required in this problem.)
Recall that in MCCP, a bidirected graph G = (V, E), an anti-symmetric cost function
c : E H Z, and a capacity function u : E I+ Zare given. Let n and m denote the num-
ber of vertices and edges in G, U = max(v,w)EE I u ( v , W) I, and C = max(v,w)EEI c ( v , w)I.
(a) For every integer i, define the cost function di) : E H Z as follows:

1
cci)(v, w) := sgn(c(v,w)) I c ( y ) I ] ,

where sgn(x) is the sign of x. Notice that by the above definition, c(O)(v, w) =
) ( V=, 0. Our objective is to find a way to solve MCCP
c(v, w) and C ( ~ ' O ~ ( ~ + ~ ) ~W)
for the cost function di),given its solution for c(~+').
Let f be an optimum circulation for G with the cost function c(~+') and the
capacity function u. Prove that if we apply Klein's cycle cancelling algorithm on
G with the cost function c ( ~and ) capacity function u, starting from the circulation
f , then the number of iterations of this algorithm is O(mU).
(b) Use part (a) to obtain an algorithm for MCCP that requires O(mU log C ) iter-
at ions.

2. Consider a directed graph G = (V, E) with a length function 1 : E + Zand a specified


source vertex s E V. The Bellman-Ford shortest path algorithm computes the shortest
path lengths d(v) between s and every vertex v E V, assuming that G has no directed
cycle of negative length (otherwise the problem is NP-hard). Here is a description of
this algorithm:
The Bellman-Ford algorithm computes d(v) by computing dk(v) = the shortest walk1
between s and v using exactly k edges. dk(v) can be computed by the recurrence

dk(v) = min [dk-1(w) +l(w,v)].


(w,v)EE
'A walk is like a path except that vertices might be repeated.

https://www.programmingassignmenthelper.com
Let hl (v) = min dk(v). It can be shown that if the graph has no negative cycle then
k=l,...,1
hnPl (v) = d(v) 'for all v E V. Moreover, the graph has no negative cycle iff, for all v,
dn(u) 2 hn-l(u)-
(You are not required to prove any of the above facts.)

(a) Let p* be the minimum average length of a directed cycle C of G, i.e.,

C(U,V)Ec ~ ( u Y 21)
p*(G) = min p(C) = min
directed cycles c c ICI

Using the Bellman-Ford algorithm, show how to compute p* in O(nm) time.


(Hint: Use the fact that if we decrease the length of each edge by p the average
length of any cycle decreases by p.)
(b) Can you find the cycle C with p(C) = p* using only 0 (n2)additional time? (In
other words, suppose you are given all the values that the Bellman-Ford algorithm
computes. Can you find a minimum mean cost cycle using this information in
0(n2)?)

3. Suppose we have n objects that we want to store in a data structure. After storing
these objects in the data structure, we would like to perform m find operations on
the data structure. Assume that the i'th object is accessed ki 2 1 times. Therefore,
C r = l = m. We want to evaluate the performance of the data structure by comput-
ing the total running time of these m find queries (no other operation, such as delete
or insert, is performed on the data structure).

(a) Show that if we store the objects in a splay tree, then no matter what the initial
configuration of the splay tree is, and no matter in which order we access the
objects, the total running time of the m access operations is at most

(b) Show that if we store the objects in a static binary search tree (i.e., a binary
search tree that does not change by a find operation), then no matter in which
order the objects are stored in the BST, and no matter in which order they are
accessed, the total running time of the m access operations is at least

This shows that the splay trees are within a constant factor as optimal as any static
binary search tree.
18.415/6.854 Advanced Algorithms

Problem Set Solution 4


Lecturer: Michel X. Goemans

1. In class, Wwe have seen Klein's cycle cancelling algorithm for the Min Cost Circu-
lation Problem (MCCP). This algorithm requires O(mCU) iterations in the worst
case, i.e., its running time is not polynomial in m, log C and log U. In this problem,
we will see how to apply the idea of cost scaling on this algorithm to obtain an
algorithm whose running time is polynomial in m, log C, and U .
(In fact, it is possible to apply the same idea on both costs and capacities to obtain
an algorithm whose running time is polynomial in m, logU and log C, but this is
not required in this problem.)
Recall that in MCCP, a bidirected graph G = (V, E), an anti-symmetric cost
function c : E I+ Z,and a capacity function u : E I-+ Z are given. Let n and
m denote the number of vertices and edges in G, U = m a x ( , , w ) EIu(u7w)I,
~ and
GI = ~ ~ ( v , w ) EIc(u,
E w)I-

(a) For every integer i, define the cost function c(" : E E Z as follows:

-,
c(') (u, W) := sgn(c(u,w))LIc';~w)I]

where sgn(x) is the sign of x. Notice that by the above definition, (u, w) =
' ) l=) (0.u Our
c(u, w) and ~ ( ~ ~ ~ g ( ~ +w) , objective is to find a way to solve MCCP
for the cost function di),given its solution for di+').
Let f be an optimum circulation for G with the cost function c(~+')and the
capacity function u. Prove that if we apply Klein's cycle cancelling algorithm
on G with the cost function di) and capacity function u, starting from the
circulation f , then the number of iterations of this algorithm is O(mU).

Since f is an optimum circulation for G with the cost function c(~+'),by the theorem
that was proved in the class, there must be a potential function p, such that for every
+
edge (u, w) in the residual graph Gt , cFf ') (u, w) = c(*') (u, w) p(u) - p(w) 2 0. By
the definition of di),for every edge (u, w) , c ( ~(u,
) w) is equal to 2c(*') (u, w) plus one of
the numbers -1, 0, or 1. Therefore, for every edge (u, w) in Ef ,

c g (u, w) = c("(u, w) - 2c("') (72, w) + 2 (c("f)(v, W) + p(u) - P(W)) 2 -1.


We know that for every cycle (flow, resp.), the cost of the cycle (flow, resp.) is the same
with respect t o di) and cyi. Therefore, if we replace the cost function di)with the cost
function cy:, Klein's cycle cancelling algorithm works in exactly the same way that it
works with c(9, and outputs the same result. Therefore, we consider the cost function
: !c instead of c(9. Let f * be the optimal circulation for ;c; and consider the circulation
f' := f * - f . By the definition of the residual graph, f ' is a circulation in Ef . Therefore,
the cost of f ' is at least
where the last inequality is a consequence of (1) and the fact that If' (u, w) 1 5 2U for every
edge (u, w). Now, notice that the cost of f ' is equal to the cost of f * minus the cost of
f . Therefore, the cost of f * is at most 2mU units less than the cost of f . This, together
with the fact that in every iteration of Klein's algorithm the cost of the circulation is
decreased by at least 1, implies that the number of iterations of Klein's algorithm is at
most 2mU.

(b) Use part (a) to obtain an algorithm for MCCP that requires O(mU1ogC)
iterations.

Start with the cost function ~ ( ~ ' * g ( ~ + (v, 1 ) . For this function, the any feasible circula-
~ ) w)
tion is an optimal circulation. Run the algorithm in part (a) for i = rlog(C 1)l- 1,... , 0 ,+
to compute the optimal circulation with respect to the cost function di) for every i , and
in particular the optimal circulation with respect to do)= c. By part (a), every step takes
at most O(mU) iterations, and therefore the total number of iterations is O(mU log C).

2. Consider a directed graph G = (V, E ) with a length function 1 : E + Zand a specified


source vertex s E V. The Bellman-Ford shortest path algorithm computes the
shortest path lengths d(v) between s and every vertex u E V, assuming that G has
no directed cycle of negative length (otherwise the problem is NP-hard). Here is
a description of this algorithm:
The Bellman-Ford algorithm computes d(u) by computing dk(v) = the shortest
walk1 between s and u using exactly k edges. dx(u) can be computed by the
recurrence
dk (u) = min [dk-1(w) 1(w, u)] .
(w7u)EE
+
Let hl (u) = min dk(u). It can be shown that if the graph has no negative cycle
k=17...71
then hn-1 (v) = d(v) for all u E V. Moreover, the graph has no negative cycle iff, for
>
all u, dn(u) hn-1(u).
(You are not required to prove any of the above facts.)

(a) Let p* be the minimum average length of a directed cycle C of G, i.e.,

x ( u 7 V )E C ( ~ 7
min p(C) = min
directed cycles c c ICI
Using the Bellman-Ford algorithm, show how to compute p* in O(nm) time.
(Hint: Use the fact that if we decrease the length of each edge by p the
average length of any cycle decreases by p.)

Notice that if we decrease the length of each edge in the graph by p, the mean length of
each cycle in the graph is decreased by p. Therefore, p* is the largest value of p such
that if we decrease the length of each edge by p, there will be no negative length cycle
in the graph. Also, by the definition of dl (v), if one decreases the length of each edge by
p, the effect on dl(v) is simply that it will be decreased by lp. Therefore, by the above
facts about the Bellman-Ford algorithm, p* is the largest value of p for which all the
inequalities

d, (v) - n p 2 min (dk(u) - kp)


k=17...7n-l
'A walk is like a path except that vertices might be repeated.
hold for every u E V. Let's compute the largest value of p that satisfies the above
inequality for a fixed u. This value is equal to the maximum over k of the largest value
of p that satisfies the inequality d,(u) - n p 2 dk(u) - kp. Therefore, for a fixed u, the
largest p that satisfies inequality (2) is maxx,l,...,,-l
d, v -dk(v)
(
that satisfies inequality (2) for every vertex u E V is equal to
L,
. Thus, the largest p

dn (u) - dk (v)
p* = min max
V E V k=l,...,n-1 n -k
It is obvious that given all the values dl (u) that are computed by the Bellman-Ford
algorithm, the above value can be computed in O(n2).

(b) Can you find the cycle C with p(G) = p* using only O(n2) additional time?
(In other words, suppose you are given all the values that the Bellman-Ford
algorithm computes. Can you find a minimum mean cost cycle using this
informat ion in 0(n2)?)

We use the following algorithm:


1. Compute the value of p* using the algorithm in part (a).
2. Subtract p* from the length of each edge. From now on, when we talk about the
length of an edge, we mean the updated length.
3. For every Z = 0, . .. , n and every vertex u E V, compute the following values:

di (u) := dl (u) - Zp*


hk (u) := min di(v)
k=l,...,n-1
4. Find a vertex u such that h; (u) = d;(u).
5. Let VO, ul,u2, .. .un be a sequence of vertices defined as follows:

- uo = u.

- For k = 0,. .. ,n - 1,vk+l is a vertex for which we have

6. Find i and j (i < j ) such that u; = uj.


7. Output the cycle C :=U j , ~ j - 1 ,. .. ,U i + l , Ui = vj.

We prove that the above algorithm finds the minimum mean length cycle. After step 2,
we know that a cycle of total length zero must exist in the resulting graph (and this cycle
corresponds to a cycle with the minimum mean length in the original graph). Therefore,
we only need to find such a cycle. Also, we know that there is no negative length cycle
in the graph.
After step 3, by the argument in part (a), we know that df(u) is the length of the shortest
walk with exactly Z edges from s to u, and hd(u) is the length of the shortest walk with
at most n edges from s to v.
In step 4, such a vertex u must exist, since otherwise we would have hL(v) < d;(u) for
every vertex u, and therefore we can find a small positive E: such that if we subtract r: from
the length of each edge, all the inequalities h',(v) _< db(u) are still satisfied. Therefore,
subtracting 6 from the length of each edge does not create any negative length cycle. This
is in contradiction with the fact that there is a zero length cycle in the graph.
The sequence uo, vl, u2,. . . u, defined in step 5 is well-defined, because by the definition
of di(u) we know that for every u and k, there must be a vertex w such that dk(u) =
da-~(w)+t(w,v), A b , noticethat bymmmhg Equstim c3) fork = O,...ln- l3 we
+
obtain &(u) = ~ [ Q I * )f(P)$whete I C P ) is the fen@h ofthe walk P := v,%-i.. .tly~lg.
~ r e I ~ c e ~ b (O iwf w) =aaaLdinffaityif w #s, and$[v) b MinfmiQ
(Mais i P of the a&ampticmthat the graph is sbmngly ama&d), khe equality
&(v) = $(vn) + i(P) implies that w, = a and P is a walk fm& a to pr d length &(v).
h ~ & m ~ d y n u e r t i c e ; g i n & e ~ p b , t h m m ~ b e ~ a n dcjj)ap&thatry=y.
(f

C d d m dl the' -ties $-a(~h) = dn-[k+l)(~k+~) -I-l ( ~ ~ + ~ &~t* ~h )= i, . * j - 1,


A.

By dcbg all these w d i t i w b+, we get &-d(va) = d,j(v3) +I(C), where qC) is
* I & d e b e q d e C ~ t i s o u t p u t b y t b & m ~ h . We&hthatI(C) =0.
Suppose Wclaimiclnottru~.ThawemusthaveZ(C) rO(Remember:tbert~isno
negative hgkhqdeinthegraph). T h e m h , %v-I ... vf+lvj*i-~t~a...vo b a *
t b a t w l m ~ n ~ a a d i t s I @ i s & ( v ) - I ( C ) <&(u>. ThbiaacoW&etion
with tb assumption &(v) = &(v].
Th+ret the above algorithm hds the minknm messn length cycle m r e d p , It L
dm obpigm from the decription of the algorithm that the rnnntng time of the &me
d g d t h m b Q(n=).
3, Suppaee we have n objer:b that we waaf to atore m a dab s h c t n x e , After storiag
the objects in tbe data dru&ure, we wbdd like to perform m find o p d i o m
on $be data e&u&uxe. Asame that the f'th object is ameaad ki 4 1 Eim~ra.
T h d o ~EL,, & = m. We want to eva2-e thep&mmamce of tha data s t ~ p c e
by mmputbg the tow m d n g t k of these rn &ld queries (no other operation,
~uchas delete or insert, L performed on the data atrnetms) .
(a) Show that if we Hope the object&in a splay tree, then no matter whaf the
%id configuration of the isph tree is, a d no matter h which order we
the objckbrs, the t o t a l m m d q g t i i of &he m amee opera ti^ is at
m08t

We me the thwrem that is proved in the d m with the hmction wi = h. With


this mightfuxwction, the theorem wys that the m o r t k d cost ofof- the i'th object
is at most 1+T(PI) - rli), where r(v)is the d t ofthe mX,a d r(i) is the d t of the
no& of the tree thaf contains the i'th object. We lmaw that the tatat weight of the
is ELl hi = .a. T h d o m , ~ ( v )= lopx. Also, r(i) = log[s(i)) 2 log(ki). Thmehm,
t +
b arndmd mst of m m h g the Ptb, object f at YD& 1 log(m/&). Thus, the Wd
~~ a t d m awmes is at most 'm + EELki llog(na/b).By the dehitim ofthe
amortiztdcost,tbisIs egralm&etoWrPnningtimesrfm~ea,plnsthetotal d t
in the tree after the awessea, minm the total d t in the tree that we &art with. Since
in any tree the credit of the node that contains the i'th object ik at .thgh ad at
most Iogrn, the total Wt in the tree x& any time is at -1
BZ Iogm. Therefore, the total running time d m is at most
z,log& and at mmt
(h) that if w e store the objects t t a
~ static binary search tree (i.e., a binary
search tree that does not change by a 3mi operation), then no matter inwhich
order the objects axe dored in the BST, aad no matter in which order they
are accesrd, the total d g time of the rn access operations i at least

W e use induction on n bo prow that the total c& of na operations on my BST is at lea&
# (m + zsM hi Iog(g)).The induction baais is trivial, We prove the induction step as
f o k Cansider an arbitrary BST and let r be the object that is in the root of the h e ,
a d L asd A be the sets of objects h t ~bl.ein the I& md fight subbees, resp.ectfvely.
~ ~r n denote
Also, let a i and ~ C,,,& and CERki,m i * . EIy the debition of
BST, the left a d right sabtrm we MTs. Thembe, by the ladwCt;on h y p o W i (md
d d & g t b e f & that t h e ~ ~ u f ~elawntin h l g L~i n ~ w treeis me plus
the m& of mmsabg it in .the I& m b ) , the tad cost ofthe n m operations
~ an the
elements OfL is at least

and shnhly for the right subtree. A b ,the cost ofkr accesses to the object et 9. p d s d y
t .T-,the tdcmtofrn~isatleast

Th@fmcth f (x) := xlog(x) is cewWc, t b r e k ~ #, (P(*) +f (%l) 4- f (4)2 f ( 9 1


every s,y,a 3 0, Thus,the above cost is ax -1

This compiel;es the proof d the Muation step.

You might also like