Document 7702506
Download
Report
Transcript Document 7702506
5.6 Prefix codes and optimal tree
Definition 31: Codes with this property which the bit
string for a letter never occurs as the first part of the
bit string for another letter are called prefix codes.
Theorem 5.21: We can construct a prefix code from any
binary tree, and we can construct a binary tree from
the prefix codes.
Proof: (1) We can construct a prefix code from any
binary tree where the left edge at each internal vertex is
labeled by 0 and the right edge by a 1 and where the
leaves are labeled by characters
(2)We can construct a binary tree from the prefix codes
字母
频率
字母
频率
a
b
c
d
e
f
g
h
i
j
k
l
m
0.0356
0.0139
0.0279
0.0378
0.1304
0.0289
0.0199
0.0528
0.0627
0.0013
0.042
0.0339
0.0249
n
o
p
q
r
s
t
u
V
w
x
y
z
0.0707
0.0797
0.0199
0.0012
0.0677
0.0607
0.1045
0.0249
0.0092
0.0149
0.0017
0.0199
0.0008
Definition 32: Let T be a tree with weigths w1w2...wn
at its leaf nodes. The weighted leaf path length w(T) of
n
T is W(T)= wi li , where li is the path length from the
i 1
root to vertex i. Say that a binary tree T is optimal if
w(T) has its minimum value over all possible trees with
the same set of leaf nodes.
Example: Let T be a binary tree with weigths 3, 5, 7, 9
a) wi li 48,
b) wi li 47,
Huffman algorithm:
Let a1,a2,,an be n vertex with weight w1,w2,,wn and
w1w2wn。
F:=forest of n rooted tree each consisting of the single vertex
ai with weight wi for i=1,2,...n.
While F is not a tree
Begin
Replace the rooted trees T and T’ of least weights from F
with w(T)≥ w(T’) with a tree having a new root that has T as
its left subtree and T’ as its right subtree. Assign w(T)+w(T’)
as the weight of the new tree.
end
w(T)=2*4+4*4+7*3+
12*2+8*2+10*2=105
Theorem 5.22: Let T be built according to Huffman
algorithm and leaves of T with weight w1,w2,,wn.
Then T is an optimal tree (Where w1w2w3 wk).
Proof: Let us apply induction on the number n of
vertices.
n=2,
The results holds
Suppose that result holds for n=k-1
For n=k,
By the inductive hypothesis,
Suppose that nodes in an optimal tree T have weights
w1+w2,w3,,wk. Then This is an optimal tree with weight
w1,w2,w3,,wk if T’s leaf with weight w1+w2 is replaced
by subtree
Lemma 5.1 Let T1 be an optimal tree with weights
w1w2w3 wk. Then there is an optimal tree T2 so that
T2’s two vertices with weights w1 and w2 are brother nodes.
Proof: Let T1 be an optimal tree with weights
w1w2w3wk
The two weights wa ,wb are on lowest level and they are
brothers. We denoted by va and vb. Let v0 be the father of
va, vb.
waw1, wbw2.
Let la be the length of the path from root to va, and lb be
the length of the path from root to vb.
la=lb
We obtain a new tree T2 by exchanging from leaf v1 to va
and from leaf v2 to vb.
w(T1)-w(T2)=(wa-w1)(la-l1)+ (wb-w2)(la-l2)0
Lemma 5.2: Suppose that nodes of an optimal tree
T have weights w1+w2,w3,,wk. Then this is an
optimal tree with weight w1,w2,w3,,wk if T*’s leaf
with weight w1+w2 is replaced by subtree
Proof: By the Lemma 5.1,there is an optimal tree T2 with weight
w1,w2,w3,,wk so that T2’s two vertices with weights w1 and w2 are
brother nodes.
Let l1 be the length of the path from root to v1 with weight w1.
Let T2* be a same tree as T2 without leaf with weight w1 and leaf with
weight w2, but with a having leaf of weight w1+w2.
w(T2*)=w(T2)-w1l1 - w2l1 +(w1+w2)(l1-1)
Thus w(T2)=w(T2*)+w1+w2
Let T* be a same tree as T without leaf with w1+w2 but with subtree
Suppose that T* is not an optimal tree.
Theorem 5.22:Proof: Let us apply induction on
the number n of vertices.
n=2,
The results holds
Suppose that result holds for n=k-1
For n=k,By the inductive hypothesis, the tree with
weight w1+w2,w3,,wk by according to Huffman
algorithm is an optimal tree .
By lemma 5.2, this is an optimal tree with weight
w1,w2,w3,,wk if T’s leaf with weight w1+w2 is
replaced by subtree
5.7 Transport Networks
5.7.1 Transport Networks
Definition 33: A transport network or a network, is a
connected digraph N(V,E,C) with the following
properties:
(1)N has no loop.
(2)There is a unique node s, the source, that has indegree 0. And there is a unique node t, the sink, that
has out-degree 0.
(3)The graph is labeled. The label, cij on edge (i,j) is
a nonnegative number called the capacity of the
edge. Let C={cij |(i,j)E}.
Definition 34: A flow in a network N(V,E,C) is
a function that assigns to each edge (i,j) of N a
nonnegative number fij that does not exceed cij.
A conservation flow is a flow with the
properties:
f ki f jk for each vertex other than the
iV
jV
source and sink. The sum f f V
is called the value of the conservation flow. A
conservation flow f is called maximum flow, if
vf ≥vf’ for any conservation flow f ’ of N.
si
iV
jt
jV
f
Definition 35: Let N be a network with the
source node and the sink node. If P is a subset
of V containing source s but not sink t then
E(P,V-P)is called a cut separating s from t.
In effect, a cut does “cut” a digraph into two
pieces, one containing the source and one
containing the sink. If the edges of a cut were
removed, it has not any paths from source to
sink.
The capacity of a cut E(P,V-P)is c , we
denote by C(P,V-P). i.e. C ( P,V P) c
ij
iP , jV P
ij
iP , jV P
A cut E(P,V-P) of N is called minimum cut, if
C(P,V-P)≤C(P',V-P') for any cut E(P',V-P') of
N.
Theorem 5.23: For every conservation flow f
and any cut E(P,V-P), the result holds: Vf
C(P,V-P).
Vf C(P,V-P),
VfmaxCmin(P,V-P)
NEXT:Transport Networks, 8.4 P307, Graph
Matching 8.5 P329 (Sixth) OR P315(Fifth)
Exercise:
1. (1)Find a optimal binary tree with
weight 1,3,8,9,12, 15,16
(2)Construct a algorithms for optimal 3ary tree
(3)Find a optimal 3-ary tree with weight
1,2,3,4,5,6,7,8,9
(4)Find a optimal 3-ary tree with weight
1,2,3,4,5,6,7,8,