discrete mathematicscis.catholic.ac.kr/sunoh/courses/discretem/dmchapter7.pdf · 2017-11-21 ·...
TRANSCRIPT
![Page 1: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/1.jpg)
Chapter 7. trees
Sanguk Noh
Discrete Mathematics
![Page 2: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/2.jpg)
Table
Trees
Labeled Trees
Tree searching
Undirected trees
Minimal Spanning Trees
![Page 3: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/3.jpg)
Trees
Theorem : Let (T, v0) be a rooted tree. Then,
There are no cycles in T.
v0 is the only root of T.
Each vertex in T, other than v0, has in-degree one. And v0 has in-
degree zero.
![Page 4: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/4.jpg)
Trees
Notation
v0
v1 v2 v3
v6 v7 v8 v5 v4
The root
No edges enter v0.
parent
offspring ‘leaves’ (have no offspring) Siblings(the offspring of any one vertex)
Level 0
Level 1
Level 2
‘height’ of
the tree
* ‘ordered tree’: some ordering at each level by arranging offspring from left to right
![Page 5: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/5.jpg)
Trees
Theorem : : Let (T, v0) be a rooted tree on a set A
T is irreflexive.
T is asymmetric.
If (a,b)∈T and (b,c) ∈T, then (a,c) ∉T for all a,b,c in A
Notation
v0
v1 v2 v3
At most n offspring : n-tree
All vertices of T have exactly
n offspring
Complete n-tree
* 2-tree : binary tree
![Page 6: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/6.jpg)
Trees Theorem
If (T, v0) is a rooted tree and v∈T, then T(v) is also a rooted
tree with root v.
T(v): the subtree of T beginning at v.
e.g.) A={v1,v2,….,v10}
T={(v2, v3), (v2, v1), (v4, v5), (v4, v6), (v5, v8), (v6, v7),
(v4, v2), (v7, v9), (v7, v10)}
v4
v6 v2 v5
v8 v3 v1 v7
v9 v10
T(v5)
T(v2)
(T,v4): the tree T(v6)
![Page 7: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/7.jpg)
Labeled Trees
The fully parenthesized, algebraic expression
(3-(2*x)) + ((x-2)-(3+x))
+
- -
3 * - +
2 x x 2 3 x
Central operator
*tree data structure. n-tree(T,v0)
![Page 8: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/8.jpg)
Labeled Trees
Computer representation of binary trees
Doubly linked list. (searching a set of data in either direction)
data Left
pointer
Right
pointer Data
storage
Pointer to the next cell.
(an address where the next cell is located)
For a pointer specifying no additional date.
(0: the corresponding off spring does not exist)
![Page 9: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/9.jpg)
Labeled Trees
e.g.)
∙ start
∙ ∙ + ∙ ∙ - ∙ ∙ + x
3
∙ ∙ -
3
1
2
3
4
8
5
Fig.7.10 p277
Index Left Data Right
1
2
3
4
5
6
7
8
2
3
4
0
6
0
0
9
■
+
-
3
*
2
x
-
0
8
5
0
7
0
0
12
![Page 10: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/10.jpg)
Tree searching
Tree search : the process of visiting each vertex of a tree in
some specific order
Positional binary tree(labeled digraph)
(we place in its appropriate position each offspring that
actually occurs.)
The positions for potential offspring are labeled left and right.
L R
R
R
L
L R
* T : a binary positional tree with root v. (T,v)
T(VL) : the left subtree of T
T(VR): the right subtree of T
![Page 11: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/11.jpg)
Tree searching
Preorder search Algorithm PREORDER(T,v)
print v // visit the root
if vL≠NIL
then PREORDER(T(vL),VL)
//search the left subtree
if vR≠NIL
then PREORDER(T(vR),VR)
//search the right subtree
end PREORDER
A
B H
C
D F
E I
G J L
K
The result of the complete search of T
A B
C E
D F G
A B C
D
C B D
Nil Nil
A C B D A
C B D A E A B C E F A B C D E G D F
G F Nil Nil Nil Nil ABCDEFG H
I K
L J
![Page 12: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/12.jpg)
Tree searching e.g.) the prefix of the given algebraic expression by applying
PREORDER to the tree
Unambiguous expression w/o parentheses
*-ab+c/de Move from left to right Fxy
F: symbol (+,-,*,/,etc)
x&y: numbers
Continue this procedure until only one number remains.
Ex) *-64+5/22 =>12
2 1
6
12
*
-
a b
+
c /
d e
* -
a b
* - +
c /
d e
a b (a-b)*((c+(d/e))
![Page 13: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/13.jpg)
Tree searching Inorder search
Postorder search
Algorithm INORDER(T,v)
if vL≠NIL
then INORDER(T(vL),VL) //search the left subtree
print v // visit the root
if vR≠NIL
then INORDER(T(vR),VR)//search the right subtree
end INORDER
Algorithm POSTORDER(T,v)
if vL≠NIL
then POSTORDER(T(vL),VL) //search the left subtree
if vR≠NIL
then POSTORDER(T(vR),VR) //search the right subtree
print v // visit the root
end POSTORDER
![Page 14: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/14.jpg)
Tree searching
A
B H
C
D F
E I
G J L
K
*Inorder search
A B C D D C B E
F G D
nil nil
DCBFEGA….
*Postorder search
A B C
D
D C B
E
F G
E
F G
DCFGEB….
![Page 15: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/15.jpg)
Tree searching e.g.) algebraic expression
1. infix a-b*c+d/e : ambiguous! 2. postfix ab-cde/+* a=6, b=4, c=5, d=2, e=2 2 522/+* 2 5 1+* 2 6* 12 ⇒ unambiguous
⇒ the method of evaluating expressions in some calculations
×
-
a b
+
c /
d e
![Page 16: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/16.jpg)
Tree searching Searching General Trees
T : ordered tree
A : the set of vertices of T
B(T) : binary positional tree
If v∈A,
then the left offspring vL of v in B(T)←the first offspring of v in T
the right offspring vR of v in B(T)←the next sibling of v in T
e.g.) general tree: T corresponding binding positional tree: B(T)
1
2
5 6
4
9 10
3
7 8
11 12 13
1
2 3
4 8
9
10 5
6
7
13
12
11
![Page 17: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/17.jpg)
Tree searching 7.3 Problem #2 Fig. 7.19
- preorder
- inorder
- postorder
![Page 18: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/18.jpg)
Undirected trees Def.) Undirected tree:
the symmetric closure of a tree (bidirectional edges)
Undirected edge of T
The set {a,b}, where (a,b) and (b,a) are in T.
(a, b: adjacent vertices)
Def.) spanning tree
R : a connected, undirected relation on A
T : a spanning tree of R
If |A| vertices and |A|-1 edges, then the edges connect all the vertices.
![Page 19: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/19.jpg)
Undirected trees
e.g.) a connected, undirected relation R
Spanning trees (not unique!) undirected spanning tree
a
b c
d e
f
a
b
d
f
e
c
b a c
d e
f f
d e
c
a
b
![Page 20: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/20.jpg)
Undirected trees Algorithm Merging-process
// R : a relation on a set A
// a, b∈A
while (R′ is not undirected spanning tree)
A0=A-{a,b}
A′=A0∪{a′}, a′∉A
// R′ on A′ // u,v∈A′, where u≠a′, v≠a′ (a′, u)∈R′ iff (a,u)∈R or (b,u)∈R
(u, a′)∈R′ iff (u,a)∈R or (u,b)∈R
(u, v)∈R′ iff (u,v) ∈R
end while
End Merging-process
![Page 21: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/21.jpg)
Undirected trees
e.g.) a symmetric relation
v1
v3
v4
v5
v0
v2
v6 v3 v4
v′0
v5
v2
v6
{v0, v1}
A0={v2, v3 , v4 , v5 , v6}
A′= A0∪{v′0}
={v′0, v2, v3 , v4 , v5 , v6}
{v′0, v2} A0={v3 , v4 , v5 , v6}
A′= A0∪{v′′0}
={v′′0, v3 , v4 , v5 , v6}
* Merging process
v′′0
v3 v4 v5
v6
![Page 22: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/22.jpg)
Undirected trees
Matrix of R′(merging two vertices into a new vertex)
Step 1. row i-vertex a
row j-vertex b
replace row i by the join (either has a 1) of rows i and j
Step 2. Replace column i by the join of columns i and j
Step 3. Restore the main diagonal to its original values in R
(avoid cycle of length 1)
Step 4. Delete row j and column j
![Page 23: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/23.jpg)
Undirected trees
v1
v3
v4
v5
v2
v6
v0
v0
v1
v2
v3
v4
v5
v6
v0
0
1
1
0
0
1
0
v1
1
0
0
1
1
0
0
v2
1
0
0
0
0
1
1
v3
0
1
0
0
0
0
0
v4
0
1
0
0
0
0
0
v5
1
0
1
0
0
0
0
v6
0
0
1
0
0
0
0
v′0
v2
v3
v4
v5
v6
v′0
0
1
1
1
1
0
v2
1
0
0
0
1
1
v3
1
0
v4
1
0
v5
1
1
v6
0
1
v′′0
v3
v4
v5
v6
v′′0 v3 v4 v5 v6
0 1 1 1 1
1
1
1
1
v3 v4
v′0
v5
v2
v6
v′′0
v3 v4 v5
v6
![Page 24: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/24.jpg)
Undirected trees Algorithm Prim
//finding a spanning tree/
Do
Choose v1(∈R) and v1 is the 1st row in the matrix.
Choose v2 s.t. (v1, v2)∈R.
Merge v1 &v2 into a new vertex v′1 .
Compute the matrix of the resulting relation R′.
v′1←{v1, v2}
ST ←ST∪{(v1, v2)}
Until (|A|=1)
End Prim
// Single vertex is obtained
![Page 25: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/25.jpg)
Undirected trees e.g.)
a
c
b
d c d
a b
root
<by deleting some edges of R>
a
b
c
d
a
0
0
1
1
b
0
0
1
1
c
1
1
0
0
d
1
1
0
0
a′ b
d
a′ 0
1
1
b
1
0
1
d
1
1
0
a′′ d
a′′ 0
1
a
1
0
a′′′ a′′′ 0
Merged vertices New vertex
-
a′←{a,c}
a′′←{a,c,b}
a′′′ ←{a,c,b,d}
c (a,c) a=root
b (c,b) or (a,b)
d (a,d) or
(c,d) or
(b,d)
-
![Page 26: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/26.jpg)
Minimal Spanning Trees Minimal Spanning Trees
Def.) weighted graph
each edge is labeled with a numerical value (weight).
Def.) nearest neighbor of vertex
if vertices u and v are adjacent and the weight on the edge
is minimum.
Def.) minimal spanning tree
undirected spanning tree for which the total weight of the
edges in the tree is as small as possible.
![Page 27: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/27.jpg)
Minimal Spanning Trees Algorithm MST-Prim
// R with n vertices
V←{v1}
E ←{ }
Do
vj∈V
vi ← nearest-neighbor(vj)
(vi, vj) does not form a cycle with members of E.
// whether the edge is “safe” or not
V ←V∪{vi}
E ←E ∪ {(vi,vj)}
Until (|E|=n-1)
End MST-Prim
![Page 28: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/28.jpg)
Minimal Spanning Trees
The greedy strategy advocates making the choice that is the
best at the moment.
e.g.)
A C
B D H
E
F G
A
C
B D H
E
F
G
3
2 5 2
3
4
2
6
2 6
3 3
2 5
5 4 3
4
The root vertex : A
2
![Page 29: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/29.jpg)
Minimal Spanning Trees Algorithm MST-Kruskal
// R with n vertices
// S={e1,e2,…ek}: the set of weighted edges
// e1 of least weight
E←{e1}
S←S-{e1}
Do
Select ei∈S of least weight that will not make a cycle.
E ←E∪{ei}
S ←S-{ei}
Until (|E|=n-1)
End MST-Kruskal
![Page 30: Discrete Mathematicscis.catholic.ac.kr/sunoh/Courses/DiscreteM/DMChapter7.pdf · 2017-11-21 · Trees Notation v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 The root Level 0 No edges enter](https://reader033.vdocument.in/reader033/viewer/2022041921/5e6c065d6ddea24c4128f855/html5/thumbnails/30.jpg)
Minimal Spanning Trees
e.g.) Figure 7.49 & Fig 7.55
4
8
8 7 9
10
14
4
1 2
6
2
7
11
4
8
1 2
2
4
7
9 4
8 7 9 2 4
2 1
Mst-Kruskal Mst-Prim