Heavy-Light Decomposition Link/cut tree
this technique calls edge heavy or light depending on number of nodes in subtree.
s
i
z
e
(
v
)
{\displaystyle size(v)}
represents number of nodes in subtree of v in represented tree. edge called heavy if size(v) > ⁄2 size(parent(v)). can see each node can have @ 1 heavy edge. edge not heavy edge referred light edge.
the light-depth refers number of light edges on given path root vertex v. light-depth ≤ lg n because each time traverse light-edge decrease number of nodes @ least factor of 2 (since can have @ half nodes of parent).
so given edge in represented tree can of 4 possibilities: heavy-preferred, heavy-unpreferred, light-preferred or light-unpreferred.
first prove
o
(
log
2
n
)
{\displaystyle o(\log ^{2}n)}
upper bound.
o(log n) upper bound
the splay operation of access gives log n, need bound number of accesses log n prove o(log n) upper bound.
every change of preferred edge results in new preferred edge being formed. count number of preferred edges formed. since there @ log n edges light on given path, there @ log n light edges changing preferred.
the number of heavy edges becoming preferred can
o
(
n
)
{\displaystyle o(n)}
given operation,
o
(
log
n
)
{\displaystyle o(\log n)}
amortized. on series of executions can have n-1 heavy edges become preferred (as there @ n-1 heavy edges total in represented tree), on number of heavy edges become preferred equal number of heavy edges became unpreferred on previous step. every heavy edge becomes unpreferred light edge must become preferred. have seen number of light edges can become preferred @ log n. number of heavy edges become preferred m operations
m
(
log
n
)
+
(
n
−
1
)
{\displaystyle m(\log n)+(n-1)}
. on enough operations (
m
>
n
−
1
{\displaystyle m>n-1}
) averages
o
(
log
n
)
{\displaystyle o(\log n)}
.
improving o(log n) upper bound
we have bound number of preferred child changes @
o
(
log
n
)
{\displaystyle o(\log n)}
, if can show each preferred child change has cost o(1) amortized can bound access operation @
o
(
log
n
)
{\displaystyle o(\log n)}
. done using potential method.
let s(v) number of nodes under v in tree of auxiliary trees. potential function
Φ
=
∑
v
log
s
(
v
)
{\displaystyle \phi =\sum _{v}\log {s(v)}}
. know amortized cost of splaying bounded by:
c
o
s
t
(
s
p
l
a
y
(
v
)
)
≤
3
(
log
s
(
r
o
o
t
(
v
)
)
−
log
s
(
v
)
)
+
1
{\displaystyle cost(splay(v))\leq 3\left(\log {s(root(v))}-\log {s(v)}\right)+1}
we know after splaying, v child of path-parent node w. know that:
s
(
v
)
≤
s
(
w
)
{\displaystyle s(v)\leq s(w)}
we use inequality , amortized cost of access achieve telescoping sum bounded by:
3
(
log
s
(
r
)
−
log
s
(
v
)
)
+
o
(
number of preferred child changes
)
{\displaystyle 3\left(\log {s(r)}-\log {s(v)}\right)+o({\text{number of preferred child changes}})}
where r root of represented tree, , know number of preferred child changes
o
(
log
n
)
{\displaystyle o(\log n)}
. s(r) = n, have
o
(
log
n
)
{\displaystyle o(\log n)}
amortized.
Comments
Post a Comment