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 w1w2...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
w1w2wn。
 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 w1w2w3 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
w1w2w3 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
w1w2w3wk
 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.
 waw1, wbw2.
 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

iV
jV
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
iV
jt
jV
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
iP , jV  P
ij
iP , jV  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),
 VfmaxCmin(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,