You are on page 1of 339

L THUYT TH

TS. L Nht Duy


Blog: htps://Lnduy.wordpress.com
Email: Ln.duy@mail.ru
Ni dung chng trnh
Mc tiu mn hc
Cung cp cho sinh vin cc khi nim c bn ca l
thuyt th, th Euler, Hamilton, cy v cy khung b
nht ca th, bi ton ng i ngn nht v bi ton
lung cc i trong mng => Gip sinh vin c th s
dng m hnh l thuyt th m hnh ha vn bi
ton thc t mt cch hiu qu. Hc phn ny trang b
nhng kin thc ton nn tng phc v cho cc chuyn
ngnh thuc lnh vc CNTT.
Thi lng
L thuyt : 45 tit
Mc tiu mn hc
Cung cp cho sinh vin cc khi nim c bn ca l
thuyt th, th Euler, Hamilton, cy v cy khung b
nht ca th, bi ton ng i ngn nht v bi ton
lung cc i trong mng => Gip sinh vin c th s
dng m hnh l thuyt th m hnh ha vn bi
ton thc t mt cch hiu qu. Hc phn ny trang b
nhng kin thc ton nn tng phc v cho cc chuyn
ngnh thuc lnh vc CNTT.
Thi lng
L thuyt : 45 tit
2
Ni dung chng trnh
1. TH
2. CY
3. LOGIC MNH

Kim tra nh gi
Kim tra gia k
Tiu lun/bi tp ln theo nhm
Thi kt thc mn
Kim tra gia k
Tiu lun/bi tp ln theo nhm
Thi kt thc mn

Gio trnh v TLTK


Gio trnh
Kenneth H.Rosen, Ton ri rc - ng dng trong tin
hc, NXB Khoa hc k thut. H ni-1997. (Phm Vn
Thiu v ng Hu Thnh dch).
Ti liu thamkho
Slides bi ging ca ging vin.
Gio trnh
Kenneth H.Rosen, Ton ri rc - ng dng trong tin
hc, NXB Khoa hc k thut. H ni-1997. (Phm Vn
Thiu v ng Hu Thnh dch).
Ti liu thamkho
Slides bi ging ca ging vin.

Rules

L thuyt th
Chng 1: Cc khi nim c bn
2
Chng 1 Cc khi nim c bn
Ni dung
Cc loi th
nh ngha th
I.
II.
Cc thut ng c bn trong th
III.
th lin thng
ng i, chu trnh
IV.
V.
Mt s dng th c bit
VI.
L thuyt th
2
3
Chng 1 Cc khi nim c bn
I. nh ngha th
Bi ton Euler
Konigsber
(1736)
C th ch mt ln
L thuyt th
3
i qua tt c 7 chic cu ny hay khng?
4
Chng 1 Cc khi nim c bn
I. nh ngha th
Chuyn bi ton v dng th
Mi vng l 1 nh
Mi chic cu l 1 cnh
L thuyt th
4
5
Chng 1 Cc khi nim c bn
I. nh ngha th
th c xy dng t bi ton Euler
C th i qua tt c cc cnh ca th, sao cho
mi cnh ch i qua ng mt ln c khng?
L thuyt th
5
6
Chng 1 Cc khi nim c bn
I. nh ngha th
nh ngha
th G l mt tp hp gm cc nh v cc cnh. Ta
thng k hiu: G = (V, E), trong :
+ V: L tp cc nh
+ E: L tp cc cnh
V={1, 2, 3, 4}
E={a, b, c, d, e}
L thuyt th
6
7
Chng 1 Cc khi nim c bn
Ni dung
Cc loi th
nh ngha th
I.
II.
Cc thut ng c bn trong th
III.
th lin thng
ng i, chu trnh
IV.
V.
Mt s dng th c bit
VI.
L thuyt th
7
8
Chng 1 Cc khi nim c bn
II. Cc loi th
th
th v hng
th c hng
n th a th Gi th
n th a th
L thuyt th
8
9
Chng 1 Cc khi nim c bn
II. Cc loi th
n th v hung
th G=(V, E) c gi l n th v hng:
V: L tp cc nh
E: l tp cc cp khng c th t gm hai phn t khc nhau
ca V.
V={1, 2, 3, 4, 5}
E={(1, 2), (1, 3), (1, 5), (2, 5), (3, 4), (3, 5), (4, 5)}
L thuyt th
9
10
Chng 1 Cc khi nim c bn
II. Cc loi th
a th v hung
th G=(V, E) c gi l a th v hng:
V: L tp cc nh
E: L h cc cp khng c th t gm hai phn t khc nhau
ca V.
Hai cnh e1, e2 gi l cnh lp nu chng cng tng ng vi
mt cp nh
V={1, 2, 3, 4, 5}
E={(1, 2), (1, 3), (1, 5), (2, 5), (3, 4), (3, 5), (4, 5), (1, 2), (2, 1), (5, 2), (3, 5) }
L thuyt th
10
11
Chng 1 Cc khi nim c bn
II. Cc loi th
Gi th v hung
th G=(V, E) c gi l gi th v hng:
V: L tp cc nh
E: L h cc cp khng c th t gm hai phn t khng nht
thit khc nhau ca V.
Cnh e c gi l khuyn nu n c dng: e=(u, u)
V={1, 2, 3, 4, 5}
E={(1, 2), (1, 3), (1, 5), (2, 5), (3, 4), (3, 5), (4, 5), (1, 2), (2, 1), (5, 2), (3, 5), (2, 2), (3, 3) }
L thuyt th
11
12
Chng 1 Cc khi nim c bn
II. Cc loi th
n th c hng
th G=(V, E) c gi l n th c hng:
V: L tp cc nh
E: L tp cc cp c th t gm hai phn t khc nhau ca V.
(tp cc cung)
V={1, 2, 3, 4, 5}
E={(2, 1), (1, 3), (5, 1), (4, 2), (3, 4), (3, 5), (5, 4)}
L thuyt th
12
13
Chng 1 Cc khi nim c bn
II. Cc loi th
a th c hng
th G=(V, E) c gi l n th c hng:
V: L tp cc nh
E: L h cc cp c th t gm hai phn t khc nhau ca V.
(tp cc cung)
Hai cung e1, e2 c gi l cung lp nu chng cng tng
ng vi mt cp nh.
V={1, 2, 3, 4, 5}
E={(2, 1), (1, 3), (6, 2), (3, 4), (6, 3), (4, 6), (5, 4), (5, 6), (3,1), (6,2)}
L thuyt th
13
14
Chng 1 Cc khi nim c bn
II. Cc loi th
th
th v hng
th c hng
n th
a th
Gi th
n th
a th
Khng c th t
Khng cnh lp, khng khuyn
C cnh lp, khng khuyn
C cnh lp, C khuyn
C th t
Khng cung lp, khng khuyn
C cung lp, khng khuyn
L thuyt th
14
15
Chng 1 Cc khi nim c bn
Ni dung
Cc loi th
nh ngha th
I.
II.
Cc thut ng c bn trong th
III.
th lin thng
ng i, chu trnh
IV.
V.
Mt s dng th c bit
VI.
L thuyt th
15
16
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
K v lin thuc
Gi s u v v l hai nh ca th v hng G v
e=(u, v) l cnh ca th, khi ta ni:
+ u v v k nhau v e lin thuc vi u v v.
+ u v v l cc nh u ca cnh e
u
v
e
L thuyt th
16
17
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
Bc ca nh
Bc ca nh v trong th v hng l s cnh lin
thuc vi n.
K hiu: deg(v)
deg(1)= 2, deg(2)= 2,
deg(3)= 3, deg(4)= 3,
deg(5)= 3, deg(6)= 1,
deg(7)= 0.
nh treo l nh ch c duy nht mt cnh lin thuc
vi n. nh 6
nh c lp l nh khng c cnh no lin thuc vi
n. nh 7
L thuyt th
17
18
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
nh l bt tay
Gi s G=(V,E) l th v hng vi m cnh. Khi
tng tt c cc bc ca nh trong V bng 2m.
m v
V v
2 ) deg( =

14 2 ) deg(
7
= =
=

m v
m
V v
L thuyt th
18
19
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
nh l bt tay
Chng minh?
Mi mt cnh ni vi ng hai nh, v th mt cnh
ng gp 2 n v vo tng cc bc ca tt c cc
nh.
tng cc bc ca tt c cc nh gp i s cnh
ca th
L thuyt th
19
20
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
H qu ca nh l bt tay
Trong th v hng, s nh bc l l mt s chn.
Cc nh bc l: 3, 5, 4, 6 4 nh
L thuyt th
20
21
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
H qu ca nh l bt tay
Trong th v hng, s nh bc l l mt s chn.
Chng minh:?
Gi L v C ln lt l tp cc nh bc l v bc chn
ca th v hng G= (V, E). Ta c:
+ Tng 2m chn
+ Tng chn
Tng chn


+ = =
C v L v V v
v v v m ) deg( ) deg( ) deg( 2

C v
v) deg(

L v
v) deg(
L thuyt th
21
22
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
K trong th c hng
Gi s u v v l hai nh ca th c hng G v e=(u, v)
l mt cung ca th, khi ta ni:
+ u v v k nhau
L thuyt th
22
, cung e i ra khi u v i vo v.
+ u l nh u, v l nh cui ca cnh e.
u
v
e
23
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
Bn bc vo v bn bc ra ca nh
Bn bc ra (bn bc vo) ca nh v trong th c hng
l s cung ra khi n (i vo n).
K hiu: ( )
) ( deg v

) ( deg v
+
2 ) 2 ( deg , 1 ) 2 ( deg = =
+
1 ) 6 ( deg , 2 ) 6 ( deg = =
+
L thuyt th
23
24
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
nh l
Gi s G=(V,E) l th c hng vi m cung, khi
tng tt c cc bn bc ra bng tng tt c cc bn
bc vo v bng m.
m v v
V v V v
= =

+
) ( deg ) ( deg
7 ) ( deg ) ( deg = =

+
V v V v
v v
L thuyt th
24
25
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
Bi tp
1. C bao nhiu cnh trong th c 10 nh, mi nh
c bc bng 6
a) 20 b) 30 c) 40 d)50
2. Cho bit cc nh ca th c bc ln lt l: 4, 3, 3,
2, 2. S cnh ca th ny l:
a) 5 b) 6 c) 7 d) 8
3. Cho danh sch bc cc nh ca cc th sau, th
no khng tn ti?
a) 3, 3, 3, 3, 2 b) 1, 2, 3, 4, 5
c) 0, 1, 2, 2, 3 d) 1, 1, 1, 1
L thuyt th
25
26
Chng 1 Cc khi nim c bn
III. Cc thut ng c bn
Bi tp
4. C th tn ti th n 15 nh, mi nh c bc
bng 5 hay khng?
5. Trong mt gii thi u c n i tham d v c n+1
trn u c tin hnh. CMR c 1 i thi u t
nht 3 trn.
L thuyt th
26
27
Chng 1 Cc khi nim c bn
Ni dung
Cc loi th
nh ngha th
I.
II.
Cc thut ng c bn trong th
III.
th lin thng
ng i, chu trnh
IV.
V.
Mt s dng th c bit
VI.
L thuyt th
27
28
Chng 1 Cc khi nim c bn
IV. ng i, chu trnh
ng i di n t nh u n nh v trn th v
hng G=(V,E) l dy(theo nh): x
0
, x
1
, , x
n-1
, x
n.

Trong :
+ u= x
0
+ v= x
n
+ (x
i
, x
i+1
) E
Hay theo cnh: (x
0
, x
1
), (x
1
, x
2
), , (x
n-1
, x
n
).
Khi : u gi l nh u, v gi l nh cui ca ng
i.
Theo nh: (1, 3, 4, 5, 6)
Theo cnh: (b, c, h, g)
L thuyt th
28
29
Chng 1 Cc khi nim c bn
IV. ng i, chu trnh
ng i c nh u v nh cui trng nhau gi l
chu trnh.
ng i (hay chu trnh) c gi l n nu n khng i qua mt
cnh no qu mt ln.
Chu trnh n: (1, 2, 6, 3, 1)
Chu trnh khng phi chu trnh n: (2, 6, 4, 3, 6, 2)
L thuyt th
29
30
Chng 1 Cc khi nim c bn
IV. ng i, chu trnh
ng i v chu trnh trong th c hng
30
ng i di n (nN
+
) t nh u n nh v trn th c hng
G=(V,E) l dy:
x
0
, x
1
, ..., x
n-1
, x
n
.
Trong u= x
0
, v= x
n
, (x
i
, x
i+1
) E
Hay theo cc cung: (x
0
, x
1
), (x
1
, x
2
), ..., (x
n-1
, x
n
).
1
2
6
4
a
d
c
b
g
h
f
e
(1, 2, 6, 4, 3)
(a, c, f, d)
(1, 3, 4, 5, 6)
5
3
L thuyt th
31
Chng 1 Cc khi nim c bn
Ni dung
Cc loi th
nh ngha th
I.
II.
Cc thut ng c bn trong th
III.
th lin thng
ng i, chu trnh
IV.
V.
Mt s dng th c bit
VI.
L thuyt th
31
32
Chng 1 Cc khi nim c bn
V. th lin thng
th v hng G=(V,E) c gi l lin thng nu
lun tm c ng i gia 2 nh bt k ca n.
ng i: 1, 3, 2, 4, 5
33
Chng 1 Cc khi nim c bn
V. th lin thng
th H=(W,F) c gi l th con ca th G=(V,E)
nu : W V v F E
V={1, 2, 3, 4, 5} W={1, 2, 4, 5}
E={a, b, c, d, e} F={a, d, e}
34
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
Bi tp
1. th K
3
c bao nhiu th con c t nht mt nh ?
L thuyt th
34
35
Chng 1 Cc khi nim c bn
V. th lin thng
Mt th khng lin thng s c phn r thnh cc
thnh phn lin thng, v mi thnh phn lin thng ny
l mt th con ca th ban u.
36
Chng 1 Cc khi nim c bn
V. th lin thng
nh v c gi l nh r nhnh nu vic loi b v cng
cc cnh lin thuc vi n s lm tng s thnh phn lin
thng ca th
Cnh e c gi l cu nu vic loi b n s lm tng s
thnh phn lin thng ca th
4
2 Cc nh r nhnh?
Cc cnh l cu ?
1
3
G
5
37
Chng 1 Cc khi nim c bn
th c hng G=(V,E) c gi l lin thng mnh
nu lun tm c ng i t 1 nh bt k n mt
nh bt k khc ca n.
th c hng G=(V,E) c gi l lin thng yu
nu th v hng tng ng vi n l th v
hng lin thng.
4
5
2
1
3
G
H
1
4
V. th lin thng
2
5
3
38
Chng 1 Cc khi nim c bn
V. th lin thng
Bi tp
1. Trong 1 th G c cha ng 2 nh bc l (cc
nh cn li nu c u bc chn). CM c 1
ng i ni 2 nh bc l vi nhau.
39
Chng 1 Cc khi nim c bn
Ni dung
Cc loi th
nh ngha th
I.
II.
Cc thut ng c bn trong th
III.
th lin thng
ng i, chu trnh
IV.
V.
Mt s dng th c bit
VI.
L thuyt th
39
40
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
th y : Mt th n v hng n nh
c gi l th y nu hai nh bt k u
c ni vi nhau bng 1 cnh.
K hiu: K
n
S cnh ca
th y ?
L thuyt th
40
41
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
th vng: Mt th n v hng n nh
c gi l th vng nu n c duy nht mt
chu trnh n i qua tt c cc nh.
K hiu: C
n
S cnh, s nh ca
th vng ?
L thuyt th
41
42
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
th bnh xe vi n 3 nh l th thu c
t th C
n
bng cch b xung thm mt nh
mi ni vi tt c cc nh ca C
n
.
K hiu: W
n
S cnh, s nh ca
th bnh xe ?
L thuyt th
42
43
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
th siu khi
th siu khi k=2
n
nh l th c cc nh
c nh s bng cc chui nh phn di n.
K hiu: Q
n
Hai nh k nhau nu 2 chui nh phn tng ng
ch khc nhau 1 bit.
S cnh ca
th siu khi l: n.2
n - 1
L thuyt th
43
44
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
th hai pha
n th G=(V, E) gi l th hai pha nu:
- V = X Y, X , Y , X Y =
- Mi cnh ca G s c mt nh thuc X v mt
nh thuc Y.
L thuyt th
44
45
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
th hai pha y
n th G = (X Y, E ) c gi l th hai pha y
nu: Mi nh thuc X s c ni vi mi nh thuc Y. Nu
|X| = m v |Y| = n th ta s k hiu l: K
m, n
S cnh ca th
hai pha y ?
L thuyt th
45
46
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
nh l:
n th G = (V, E) l th hai pha khi v ch khi
n khng cha chu trnh di l.
Chng minh:
th hai pha
Khng cha chu trnh di l
th, khng cha chu trnh di l
hai pha
L thuyt th
46
47
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
Thut ton kim tra th hai pha
1. Chn v l nh bt k. t X = {v}
2. Y = { u | u k vi v, v X}
3. Nu X Y G khng l th hai pha
4. Ngc li, t X := Y Quay tr li 2.
5. Nu tt c cc nh c xt ht m khng xy ra 3.
th G l th hai pha. Ngc li G khng l th
hai pha.
L thuyt th
47
48
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
V d:
X= {1}
Y= {5}, X Y = , X:=Y
Y= {1, 2}, X Y = , X:=Y
Y= {5, 6, 7}, X Y = , X:=Y
Y = {1, 2, 3, 4}
DNG
Khi th l hai pha:
X={1, 2, 3, 4}
Y={5, 6, 7}
L thuyt th
48
49
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
Bi tp:
Kim tra th sau c phi l th hai pha hay khng?
L thuyt th
49
50
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
Bi tp:
Khng phi l th hai pha
Chu trnh
di l
L thuyt th
50
51
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
th phng
th c gi l th phng nu ta c th v
n trn mt mt phng m cc cnh khng giao
nhau.
L thuyt th
51
52
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
nh l Euler
Gi s G = (V, E) l th phng, lin thng vi e cnh v v
nh. Gi f l s mt ca th. Khi : f = e v + 2.
S cnh: e = 4
S nh: v = 4
S mt: f = 4 4 + 2 = 2
L thuyt th
52
53
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
nh l Euler
Chng minh: Bng PP Quy np
Gi f
n
, e
n
, v
n
ln lt l s mt, s cnh, s nh ca th
phng G
n
do biu din phng ca th G vi n cnh sinh ra
+ Trng hp: e
1
=1, v
1
=2 th f
1
= 1 2 + 2 = 1
+ Gi s th G
n
(n cnh) tha ng thc: f
n
= e
n
v
n
+ 2.
Thm vo th G
n
mt cnh (a
n+1
, b
n+1
) c th G
n+1
.
Ta phi chng minh: f
n+1
=e
n+1
v
n+1
+ 2
Xy ra hai trng hp
L thuyt th
53
54
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
nh l Euler (Chng minh)
+ C 2 nh a
n+1
, b
n+1
thuc G
n:
f
n+1
= f
n
+1
e
n+1
=e
n
+ 1
v
n+1
=v
n
==> f
n+1
= e
n+1
v
n+1
+ 2
f
n
+ 1 = e
n
+ 1 v
n
+ 2
f
n
= e
n
v
n
+ 2
L thuyt th
54
55
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
nh l Euler (Chng minh)
+ C 2 nh a
n+1
, b
n+1
thuc
G
n:
f
n+1
= f
n
e
n+1
=e
n
+ 1
v
n+1
=v
n
+ 1
f
n+1
= e
n+1
v
n+1
+ 2
f
n
= e
n
+ 1 v
n
+ 1 + 2
f
n
= e
n
v
n
+ 2
PCM
L thuyt th
55
56
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
nh l Kuratowski
Php chia cnh (u, v) l vic ta b i cnh (u, v) v thm vo
mt nh mi w cng vi hai cnh (u, w), (w, v).
nh ngha ng cu
Hai th c gi l ng cu nu chng c th thu c t
cng mt th no nh cc php chia cnh.
L thuyt th
56
57
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
nh l Kuratovski
iu kin cn v mt th l phng l th ny khng
cha bt k mt th con no ng cu vi K
3,3
v K
5
L thuyt th
57
58
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
Cc dng th c bit
th y (K
n
)
th vng (C
n
)
th siu khi (Q
n
)
th bnh xe (W
n
)
th hai pha
th hai pha y (K
m,n
)
th phng
L thuyt th
58
59
Chng 1 Cc khi nim c bn
VI. Mt s dng th c bit
Bi tp
1. S cnh ca th K
8
?
2. S cnh ca th C
2007
?
3. S cnh ca th W
100
?
4. Cho th G phng, lin thng c 20 nh, bc ca mi nh
bng 3. th biu din phng ca G c bao nhiu mt?
5. Cho th phn i p nh v q cnh. CM:
q p
2
/4. Du = xy ra khi no?
6. Cho th G c n nh, m cnh vi m n. Chng minh G c
mt chu trnh.
7. C bao nhiu th n gm 5 nh v c 4 hoc 6 cnh ?
L thuyt th
59
Chng 2: Biu din th
2
Chng 2 Biu din th
Ni dung
S ng cu ca cc th
Cc cch biu din th
I.
II.
Hng dn ci t
III.
L thuyt th
2
3
Chng 2 Biu din th
I. Cc cch biu din th
Cc cch biu din th
Ma trn k Danh sch cnh Danh sch k Ma trn lin thuc
n trng s Danh sch cung Ma tr
L thuyt th
3
4
Chng 2 Biu din th
I.1. Ma trn k (n th v hng)
nh ngha
n th G = (V,E) vi tp nh V = {0,,n-1}, tp
cnh E = {e
0
,e
1
,e
m-1
}. Ta gi ma trn k ca G l
A = {a
i,j
, i,j = 0,,n-1}, vi:

=
E j i if
E j i if
a
j i
) , ( , 1
) , ( , 0
,
0 1 2 3 4
0 0 1 1 0 1
1 1 0 1 0 1
2 1 1 0 0 0
3 0 0 0 0 0
4 1 1 0 0 0
5
Chng 2 Biu din th
I.1. Ma trn k (n th c hng)
nh ngha
Ging n th c hng
E l tp cc cung

=
E j i if
E j i if
a
j i
) , ( , 1
) , ( , 0
,
0 1 2 3 4
0 0 0 1 0 1
1 1 0 0 0 0
2 0 1 0 1 0
3 0 0 0 0 1
4 0 1 0 0 0
6
Chng 2 Biu din th
I.1. Ma trn k (a th)
nh ngha
E l tp cc cnh/cung
A
i,j
l s cnh ni nh i v nh j
0 1 2 3 4 5
0 0 1 1 0 1 0
1 1 0 1 0 1 0
2 1 1 0 2 0 0
3 0 0 2 0 1 1
4 1 1 0 1 0 1
5 0 0 0 1 1 1
7
Chng 2 Biu din th
I.1. Ma trn k (a th)
Mt s tnh cht ca ma trn k
Ma trn k ca th v hng l i xng
a[i,j] = a[j,i]. Ngc li, ma trn i xng (0,1), c
ng cho chnh bng 0, bc n s tng ng vi
n th v hng n nh.
Nu th v hng:
Tng dng th i = Tng ct th i = deg(i)
Nu th c hng:
Tng dng i = deg
+
(i), Tng ct i = deg
-
(i)
u im v hn ch
ca ma trn k?
8
Chng 2 Biu din th
I.2. Ma trn trng s (n th)
nh ngha
n th G = (V,E) vi tp nh V = {0,,n-1}, tp
cnh E = {e
0
,e
1
,e
m-1
}.
Ta gi ma trn k trng s ca G l
A = {a
i,j
, i,j = 0,,n-1}, vi:

=
E j i if c
E j i if b
a
k
j i
) , ( ,
) , ( ,
,
C
k
l mt gi tr no c
quy nh trc (0, -1, , -, ..)
0 1 2 3 4 5
0 0 4 3 0 7 0
1 4 0 5 0 3 0
2 3 5 0 2 0 0
3 0 0 2 0 5 2
4 7 3 0 5 0 3
5 0 0 0 2 3 0
9
Chng 2 Biu din th
I.3. Danh sch cnh
i vi cc th tha n nh, m cnh (m < 6n) ngi
ta thng dng cch biu din danh sch cnh tit
kim khng gian lu tr
Lu cc cnh e=(u, v) ca th trong mt danh sch
Danh sch c th c ci t bng mng 1 chiu hoc
danh sch lin kt.
Cnh u 1 u 2
0 0 2
1 0 1
2 0 4
3 1 2
4 1 4
5 2 3
6 3 4
7 3 5
8 4 5
10
Chng 2 Biu din th
I.3. Danh sch cnh
Ci t bng mng 1 chiu
Cnh u
1
u 2
0 0 2
1 0 1
2 0 4
3 1 2
4 1 4
5 2 3
6 3 4
7 3 5
8 4 5
Ci t bng danh sch lin kt
typde struct tagNode
{
int diemdau1, diemdau2;
} Canh;
11
Chng 2 Biu din th
I.4. Danh sch cung
Trong trng hp th c hng th mi phn t ca
danh sch (gi l danh sch cung) l mt cung e=(u, v).
Trong u l nh u, v l nh cui ca cung.
Cnh u 1 u 2
(1,2) 1 2
(4,1) 4 1
(1,3) 1 3
(2,4) 2 4
(3,4) 3 4
12
Chng 2 Biu din th
I.4. Danh sch k
Tng ng vi mi nh v ca th, ta c tng ng
mt danh sch lu cc nh k vi n.
Danh sch: mng 1 chiu, hoc danh sch lin kt
nh V Cc cnh k
0 1, 2, 4
1 0, 2, 4
2 0, 1, 3
3 2, 4, 5
4 0, 1, 3, 5
5 3, 4
Ci t bng mng:
Ke[] = {1, 2, 4, 0, 2, 4, 0, 1, 3, 2, 4, 5, 0, 1, 3, 5, 3, 4 }
ViTri[] = {0, 3, 6, 9, 12, 16}
13
Chng 2 Biu din th
I.4. Danh sch k
Ci t bng danh sch k lin kt
nh V Cc cnh k
0 1, 2, 4
1 0, 2, 4
2 0, 1, 3
3 2, 4, 5
4 0, 1, 3, 5
5 3, 4
14
Chng 2 Biu din th
I.4. Danh sch k
Thut ton xy dng danh sch k lin kt
# include <iostream.h>
# include <stdlib.h>
const maxV = 99;
typedef struct Node {
int v;
struct Node*next;
}node;
int j, x, y, m, n, v ;
node *p, *ke[maxV];
15
Chng 2 Biu din th
I.4. Danh sch k
Thut ton xy dng danh sch k lin kt
int main(int argc, char* argv[])
{
cout<<"Cho so canh va so dinh cua do thi: ";
cin>>m>>n;
for(j=0;j<n;j++)
ke[j]=NULL;
for(j=1;j<=m;j++)
{
cout<<"Cho dinh dau, dinh cuoi cua canh "<<j<<":";
cin>>x>>y;
p = (node*)malloc(sizeof(node));
p->v = x;
p->next = ke[y];
ke[y]=p;
p = (node*)malloc(sizeof(node));
p->v = y;
p->next = ke[x];
ke[x]=p;
}
}
16
Chng 2 Biu din th
I.4. Danh sch k
V d
nh V Cc cnh k
0 1, 2, 4
1 0, 2, 4
2 0, 1, 3
3 2, 4, 5
4 0, 1, 3, 5
5 3, 4
17
Chng 2 Biu din th
I.5. Ma trn lin thuc ( th v hng)
nh ngha
th v hng G=(V, E). Tp nh V={0, 1, 2, , n-
1)}. Tp cnh E={e
1
, e
2
, , e
m-1
}. Ta gi ma trn lin
thuc ca G l B = {b
i, j
, i = 0,..,n-1, j = 0, .. m-1}. Trong

b
i,j
= 1 nu nh i k cnh j
b
i, j
= 0 nu nh i khng k cnh j
0 1 2 3 4 5 6 7 8
0 1 0 0 0 0 1 1 0 0
1 0 0 0 0 1 1 0 1 0
2 1 1 0 1 0 0 0 1 0
3 0 1 1 0 0 0 0 0 1
4 0 0 1 0 1 0 1 0 1
18
Chng 2 Biu din th
I.5. Ma trn lin thuc ( th v hng)
Tnh cht
Mi ct cha ng hai s 1 ch hai u ca cnh tng ng vi
nh ng vi ct . Ct ng vi khuyn cha ng mt s 1.
Cc ct ng vi cc cnh lp th ging nhau.
Nu th khng c khuyn th tng hng i l bc ca nh .
0 1 2 3 4 5 6 7 8
0 1 0 0 0 0 1 1 0 0
1 0 0 0 0 1 1 0 1 0
2 1 1 0 1 0 0 0 1 0
3 0 1 1 0 0 0 0 0 1
4 0 0 1 0 1 0 1 0 1
19
Chng 2 Biu din th
I.5. Ma trn lin thuc ( th c hng)
nh ngha
n th c hng G=(V, E). Tp nh V={0, 1, 2, , n-1)}. Tp cung
E={e
1
, e
2
, , e
m-1
}.
Ta gi ma trn lin thuc ca G l B = {b
i, j
, i = 0,..,n-1, j = 0, .. m-1}.
Trong
b
i,j
= 1 nu nh i l nh u ca cung j
b
i,j
= -1 nu nh i l nh cui ca cung j
b
i, j
= 0 nu nh i khng l u mt ca cung j
(1,2) (4,1) (1,3) (3,4) (2,4)
1 1 -1 1 0
0
1
-1
0
2 -1 0 0 1
3 0 0 -1 0
4 0 1 0 -1
20
Chng 2 Biu din th
I. Cc cch biu din th
20
Cc cch biu din th
Ma trn k
Danh sch cnh
Danh sch k
Ma trn lin thuc
n
2
n v b nh
D kim tra /k k nhau
2m n v b nh
th tha
Kh kim tra /k k nhau
2m+n n v b nh
D dng vic thm bt cc
cnh, nh
m*n n v b nh
D dng vic thm bt cc
cnh, nh
21
Chng 2 Biu din th
Ni dung
Cc cch biu din th
S ng cu ca cc th
I.
II.
Hng dn ci t
III.
L thuyt th
21
22
Chng 2 Biu din th
II. S ng cu ca cc th
nh ngha
Cc th n G
1
= (V
1
,E
1
) v G
2
= (V
2
, E
2
) l ng
cu nu c hm song nh :
f : V
1
V
2
sao cho nh a & b k trong G
1
f(a) &
f(b) k trong G
2.
Tn ti mt php tng ng mt mt gia cc
nh ca hai th ng thi m bo quan h lin
k.
f(1) = a, f(2) = b
f(3) = d, f(4) = b
23
Chng 2 Biu din th
II. S ng cu ca cc th
Tnh bt bin
Hai th ng cu bt k c tnh cht ging nhau (s
nh, s cnh, bc ca mt nh,). Ngi ta gi
l tnh bt bin trong cc th ng cu.
24
Chng 2 Biu din th
II. S ng cu ca cc th
Chng minh 2 th l ng cu
Tm mt nh x f tng ng mt mt gia cc nh
So snh 2 ma trn lin k to ra da trn nh x f
25
Chng 2 Biu din th
Ni dung
S ng cu ca cc th
Cc cch biu din th
I.
II.
Hng dn ci t
III.
L thuyt th
25
26
Chng 2 Biu din th
III. Hng dn ci t
Khai bo file
Kt ni bin file vi tn thc ca file trn a (floppy
or hard disk)
M file, ng file
c thng tin t file v ghi thng tin vo file
hiu tt danh sch k lin kt cn tham kho phn
bin con tr trong cc ti liu v lp trnh.
Chng 3: Tm kim trn th
2
Chng 3 Tm kim trn th
Ni dung
Duyt th theo chiu rng
Duyt th theo chiu su
I.
II.
Tm ng i
III.
Kim tra tnh lin thng
IV.
L thuyt th
2
3
Chng 3 Tm kim trn th
I. Duyt th theo chiu su
Gii thiu
Duyt th l qu trnh i qua tt c cc nh ca
th sao cho mi nh ca n c ving thm ng
mt ln.
Duyt theo chiu su (Depth First Search DFS)
Duyt theo chiu rng (Breadth First Search BFS)
4
Chng 3 Tm kim trn th
I. Duyt th theo chiu su
Nguyn l
Bt u tm kim t mt nh v no ca th.
Sau chn u l mt nh ty k vi v (vi th c
hng th u l nh sau, v l nh u ca cung uv)
Lp li qu trnh ny vi u cho n khi khng tm c
nh k tip theo na th tr v nh ngay trc nh m
khng th i tip tm qua nhnh khc.
5
Chng 3 Tm kim trn th
I. Duyt th theo chiu su
Th t duyt:
d c b a
g k l
h
f m
e
6
Chng 3 Tm kim trn th
I.1. Ci t quy
B1: Ly s l mt nh ca th
B2: t v = s
B3: Duyt nh v
B4: Nu nh k ca v u c
duyt, t v=nh c duyt
trc nh v, Nu v = s th i n
Bc 6, ngc li tr li Bc 3.
B5: Chn u l nh k cha c
duyt ca v, t v = u, tr li Bc
3
B6: Kt thc
7
Chng 3 Tm kim trn th
I.1. Ci t quy
Ci t bng m gi
/* Khai bo cc bin ChuaXet, Ke */
DFS(v)
{
Duyt nh (v);
ChuaXet[v] = 0; /*nh du xt nh v*/
for ( u Ke(v) )
if ( ChuaXet[u] ) DFS(u);
};
void main()
{
/* Nhp th, to mng Ke */
for (v V) ChuaXet[v] = 1; /* Khi to c cho nh */
for (v V)
if ( ChuaXet[v] ) DFS(v);
}
8
Chng 3 Tm kim trn th
I.2. Ci t khng quy
Thut ton
B1: Ly s l mt nh ca th
B2: t s vo STACK
B3: Nu STACK rng i n 7.
B4: Ly nh p t STACK
B5: Duyt nh p
B6: t cc nh k ca p cha
c xt (cha tng c mt
trong STACK) vo STACK, tr
li 3.
B7: Kt thc.
9
Chng 3 Tm kim trn th
I.Duyt th theo chiu su
ngha
Kim tra ng i gia 2 nh
Chia th thnh cc thnh phn lin thng
Xy dng cy khung ca th
Kim tra xem th c chu trnh hay khng
10
Chng 3 Tm kim trn th
Ni dung
Duyt th theo chiu su
Duyt th theo chiu rng
I.
II.
Tm ng i
III.
Kim tra tnh lin thng
IV.
L thuyt th
10
11
Chng 3 Tm kim trn th
II. Duyt th theo chiu rng
Nguyn l
Bt u t mt nh v bt k.
Duyt tt c nhng nh k ca v lu vo mt tp
T(u) (vi th c hng th T(u) l tp cc nh u vi
u l nh sau, v l nh u ca cung uv).
Sau tip tc xt cc nh u thuc T(u) v p dng
li cch duyt ging nh vi v.
12
Chng 3 Tm kim trn th
II. Duyt th theo chiu rng
Th t duyt:
d
e c
b f
a g m
h k
l
13
Chng 3 Tm kim trn th
II.1. Ci t bng hng i
B1: Ly s l mt nh ca th
B2: t s vo QUEUE
B3: Lp nu QUEUE cha rng.
a.Ly nh p t QUEUE
b.Duyt nh p
c.t cc nh k ca p cha c
xt (cha tng c mt trong
QUEUE) vo QUEUE.
d.Kt thc lp
14
Chng 3 Tm kim trn th
II.1. Ci t bng hng i
/* Khai bo cc bin ChuaXet, Ke */
BFS(v)
{
QUEUE = ;
QUEUE v;
ChuaXet[v] = 0;/*nh du xt nh v*/
while ( QUEUE )
{
p QUEUE;
Duyt nh p;
for ( u Ke(p) )
if ( ChuaXet[u] )
{
QUEUE u;
ChuaXet[u] = 0;/*nh du xt nh */
}
}
}
void main()
/* Nhp th, to bin Ke */
{
for ( v V ) ChuaXet[v] = 1; /* Khi to c cho nh */
for ( v V )
if ( ChuaXet[v] ) BFS(v);
}
15
Chng 3 Tm kim trn th
II.2. Ci t bng thut ton loang
16
Chng 3 Tm kim trn th
II.2. Ci t bng thut ton loang
Bc 1: Khi to
Bt u t nh s. nh du nh s, cc nh khc s u cha b
nh du
X = {s}, Y =
Bc 2: Lp li cho n khi X=
Gn Y= .
Vi mi nh u X
Xt tt c cc nh v k vi u m cha b nh du. Vi mi nh
:
nh du v
Lu ng i, nh lin trc v trong ng i t s v l u.
a v vo tp Y
Gn X = Y
17
Chng 3 Tm kim trn th
II. Duyt th theo chiu rng
ngha
Kim tra ng i gia 2 nh
Chia th thnh cc thnh phn lin thng
Xy dng cy khung ca th
Tm ng i ngn nht t 1 nh n cc nh cn
li
18
Chng 3 Tm kim trn th
Ni dung
Duyt th theo chiu rng
Duyt th theo chiu su
I.
II.
Tm ng i
III.
Kim tra tnh lin thng
IV.
L thuyt th
18
19
Chng 3 Tm kim trn th
III. Tm ng i
Bi ton
Cho th G, s v t l hai nh ty ca th. Hy
tm ng i t s n t.
Phng php
Bt u t nh s, S dng DFS hoc BFS duyt
th.
Tm thy ChuaXet(t) = 0
Khng tm thy ChuaXet(t) = 1
S dng thm mng Truoc[] lu vt
20
Chng 3 Tm kim trn th
III.1. Tm ng i theo chiu su
/* Khai bo cc bin ChuaXet, Ke */
DFS(v);
{
Duyt nh (v);
ChuaXet[v] = 0;
for ( u Ke(v) )
if ( ChuaXet[u] )
{
Truoc[u] = v; /* Lu vt*/
DFS(u);
}
}
main() // Nhp th, to bin Ke
{
for ( v V ) ChuaXet[v] = 1; // Khi to c cho nh
DFS(s);
}
21
Chng 3 Tm kim trn th
III.2. Tm ng i theo chiu rng
/* Khai bo cc bin ChuaXet, Ke , QUEUE */
BFS(v);
{
QUEUE = ; QUEUE v; ChuaXet[v] = 0;
while ( QUEUE )
{
p QUEUE;
Duyt nh p;
for ( u Ke(p) )
if ( ChuaXet[u] )
{
QUEUE u;
ChuaXet[u] = 0;
Truoc[u] = p;/*Lu vt*/
}
}
}
main() // Nhp th, to bin Ke
{
for ( v V ) ChuaXet[v] = 1; // Khi to c cho nh
BFS(s);
}
22
Chng 3 Tm kim trn th
III.2. Tm ng i theo chiu rng
Khi phc ng i t s n t
s x
1
x
2
x
n
t
Ci t:
v = t;
while (v != s)
{
printf (v);
v = Truoc[v];
}
23
Chng 3 Tm kim trn th
Ni dung
Duyt th theo chiu rng
Duyt th theo chiu su
I.
II.
Tm ng i
III.
Kim tra tnh lin thng
IV.
L thuyt th
23
24
Chng 3 Tm kim trn th
IV. Kim tra tnh lin thng
Bi ton
Tnh s thnh phn lin thng ca th, v xc nh
nhng nh thuc cng mt thnh phn lin thng.
Phng php
S dng DFS v BFS
Bin inconnect m s thnh phn lin thng ca
th.
Mng index[] lu ch s ca cc thnh phn lin
thng.
25
Chng 3 Tm kim trn th
IV.1. Tm theo chiu su
/* Khai bo cc bin ChuaXet, Ke, index*/
DFS(v);
{
Duyt nh (v);
index[v] = inconnect;
ChuaXet[v] = 0;
for ( u Ke(v) )
if ( ChuaXet[u] ) DFS(u);
}
main()
{
/* Nhp th, to bin Ke */
for ( v V ) ChuaXet[v] = 1; /* Khi to c cho nh */
inconnect = 0;
for ( v V )
if ( ChuaXet[v] )
{
inconnect ++; DFS(v);
}
}
26
Chng 3 Tm kim trn th
IV.2. Tm theo chiu rng
/* Khai bo cc bin ton cc ChuaXet, Ke, QUEUE, index */
BFS(v) {
QUEUE = 0; QUEUE v; ChuaXet[v] = 0;
while ( QUEUE 0 ) {
p QUEUE; Duyt nh p;
index[p] = inconnect;
for ( u Ke(p) )
if ( ChuaXet[u] ) {
QUEUE u;ChuaXet[u] = 0;
}
}
}
main() {
for ( v V ) ChuaXet[v] = 1;
inconnect = 0;
for ( v V )
if ( ChuaXet[v] ) {
inconnect + + ; BFS(v);
}
}
Chng 4: th Euler v th Hamilton
2
Chng 4 th Euler v Hamilton
Ni dung
th Hamilton
th Euler
I.
II.
L thuyt th
2
3
Chng 4 th Euler v Hamilton
I. th Euler
th Euler
1. nh ngha
2. nh l Euler
3. Gii thut xy dng chu trnh Euler
4
Chng 4 th Euler v Hamilton
I.1. nh ngha
Gi s G l n (a) th v (c) hng:
Chu trnh Euler trong G l chu trnh n i qua tt c
cc cnh ca th. Nu G c chu trnh Euler th G
c gi l th Euler.
ng i Euler trong G l ng i n qua tt c
cc cnh ca th. Nu G c ng i Euler th G
c gi l th na Euler.
th Euler th na Euler
5
Chng 4 th Euler v Hamilton
I.2. nh l
nh l 1
th v hng, lin thng G=(V, E) c chu trnh
Euler khi v ch khi mi nh ca G u c bc chn.
Chng minh
G c chu trnh Euler => Mi nh u bc chn
Mi nh u bc chn => G c chu trnh Euler
6
Chng 4 th Euler v Hamilton
I.2. nh l
B
Cho th G=(V, E), nu mi nh ca G c deg(u) 2
th G c chu trnh
Chng minh ?
7
Chng 4 th Euler v Hamilton
I.2. nh l
nh l 2:
th v hng, lin thng G=(V, E) c ng i Euler m khng c
chu trnh Euler khi v ch khi G c ng hai nh bc l.
Chng minh: ?
nh l 3:
th c hng, lin thng yu G=(V, E) c chu trnh Euler khi v ch
khi mi nh ca G c bn bc vo bng bn bc ra.
=> Khi G (c hng) c chu trnh Euler th n lin thng mnh.
nh l 4:
th c hng, lin thng yu G=(V, E) c ng i Euler nhng
khng c chu trnh Euler khi v ch khi G tn ti duy nht hai nh sao
cho: deg
+
(u) deg
-
(u) = deg
+
(v) - deg
-
(v) = 1, v tt c cc nh cn li
c bn bc vo bng bn bc ra.
8
Chng 4 th Euler v Hamilton
I.3.Gii thut x/d chu trnh Euler
CT, CTcon l cc chu trnh
Bc 1: u tin, xy dng 1 chu trnh CT trong G
Bc 2: H ( G \ CT ) \ {Cc nh c lp sau khi b CT khi G}.
Bc 3: Nu H vn cn cnh th n bc 4. Ngc li n bc 8.
Bc 4: Xy dng chu trnh con CTcon trong H vi nh u thucchu
trnh CT
Bc 5: H ( H \ CTcon) \ {Cc nh c lp sau khi b CTcon khi H}
Bc 6: CT CT CTcon
Bc 7: n bc 3.
Bc 8: Kt thc. CT l chu trnh Euler
9
Chng 4 th Euler v Hamilton
I.3.Gii thut x/d chu trnh Euler
CT= {3, 7, 8, 9}.
H={G\CT)}\{Cc nh c lp} = {1, 2, 4, 5, 6, 10, 11, 12}.
+ Ln 1:
CTcon = {10, 11, 12}.
H={H\Hcon}\{Cc nh c lp}={1, 2, 4, 5, 6}.
+ Ln 2:
CTcon={1, 2, 5, 6, 4}
H={H\Hcon}\{Cc nh c lp}= . DNG.
Cui cng ta c chu trnh Euler: 3, 2, 1, 4, 6, 5, 9, 10, 12, 11, 8, 7.
10
Chng 4 th Euler v Hamilton
I.3.Gii thut x/d chu trnh Euler
Ci t
main(){
STACK = ;
CE = ; /* CE - Chu trnh Euler */
Chn u l 1 nh bt k ca th;
STACK u;
while (STACK != ){
x = top(STACK);
if (Ke(x) != ){
y = nh u trong danh sch Ke(x);
STACK y;
Ke(x) = Ke(x) \ {y};
Ke(y) = Ke(y) \ {x}; /* B cnh (x,y) */
}else {
x STACK;
CE x;
}
}
}
11
Chng 4 th Euler v Hamilton
I.3.Gii thut x/d chu trnh Euler
Ci t
nh v Ke(v)
1 6, 5
2 5, 6
3 6, 5
4 6, 5, 7, 8
5 4, 3, 2, 1
6 4, 3, 2, 1
7 4, 8
8 4, 7
12
Chng 4 th Euler v Hamilton
I.3.Gii thut x/d chu trnh Euler
nh v Ke(v)
1 6, 5
2 5, 6
3 6, 5
4 6, 5, 7, 8
5 4, 3, 2, 1
6 4, 3, 2, 1
7 4, 8
8 4, 7
STACK CE
3, 6
3, 6, 4
3, 6, 4, 5
3, 6, 4, 5, 3
3, 6, 4, 5 3
3, 6, 4, 5, 2 3
3, 6, 4, 5, 2, 6 3
3, 6, 4, 5, 2, 6, 1 3
3, 6, 4, 5, 2, 6, 1, 5 3
3, 6, 4 3, 5, 1, 6, 2, 5
3, 6, 4, 7 3, 5, 1, 6, 2, 5
3, 6, 4, 7, 8 3, 5, 1, 6, 2, 5
3, 6, 4, 7, 8, 4 3, 5, 1, 6, 2, 5
3, 5, 1, 6, 2, 5, 4, 8, 7, 4, 6, 3
13
Chng 4 th Euler v Hamilton
I.3.Gii thut x/d chu trnh Euler
Thut ton Fleury
Bt u t mt nh bt k, i theo cc cnh ca th
theo quy tc sau:
Qui tc 1: Xa cc cnh i qua v cc nh c lp
nu c
Qui tc 2: Ti mi nh, ta ch i qua cu nu khng cn
ng no khc.
14
Chng 4 th Euler v Hamilton
Ni dung
th Hamilton
th Euler
I.
II.
L thuyt th
14
15
Chng 4 th Euler v Hamilton
II. th Hamilton
th Hamilton
1. nh ngha
2. nh l
3. Gii thut xy dng chu trnh Hamilton
16
Chng 4 th Euler v Hamilton
II.1. nh ngha
Lch s
Gi s ta c mt khi 12 mt, mi mt l mt hnh ng gic
u. Mi nh trong 20 nh ca khi ny c t bng tn ca
mt thnh ph. Hy tm mt ng xut pht t mt thnh ph,
i dc theo cc cnh ca khi, gh thm mi mt trong 19 thnh
ph cn li ng mt ln, cui cng tr li thnh ph ban u
Trong th hnh trn c hay khng mt chu trnh i qua
tt c cc nh ca th, mi nh ng mt ln ?
17
Chng 4 th Euler v Hamilton
II.1. nh ngha
Gi s G l n th v (c) hng, ta c
cc nh ngha sau:
Chu trnh Hamilton l chu trnh xut pht t mt nh, i
thm tt c cc nh cn li mi nh ng mt ln, cui
cng quay tr li nh xut pht. th c chu trnh
Hamilton gi l th Hamilton.
ng i Hamilton l ng i qua tt c cc nh ca
th, mi nh ng mt ln. th c ng i
Hamilton gi l th na Hamilton.
18
Chng 4 th Euler v Hamilton
II.2. nh l
Nhn bit th Hamilton

Cha c
Cha c

chu
chu

n
n

nh
nh

n bi
n bi

t 1
t 1

th
th

c
c

l
l

Hamilton hay
Hamilton hay
khng
khng

Cha c
Cha c

thu
thu

t to
t to

n
n

ki
ki

m tra
m tra

C
C

c k
c k

t qu
t qu

thu
thu

c
c

d
d

ng i
ng i

u ki
u ki

n
n

N
N

u G c
u G c

s
s

c
c

nh
nh

l
l

n th
n th

G l
G l

Hamilton
Hamilton
19
Chng 4 th Euler v Hamilton
II.2. nh l
nh l Dirac
Cho th v hng G=(V, E) c n nh (n 3). Nu mi
nh v ca th u c deg(v) n/2 th G c chu trnh
Hamilton.
20
Chng 4 th Euler v Hamilton
II.2. nh l
Chng minh

Thm v
Thm v

o G k
o G k

nh m
nh m

i v
i v

n
n

i ch
i ch

ng v
ng v

i t
i t

t c
t c

c
c

c
c

nh c
nh c

a G ta
a G ta

c G
c G

.
.

Gi
Gi

s
s

k l
k l

s
s

nh
nh

nh
nh

t sao cho G
t sao cho G

l
l

th
th

Hamilton.
Hamilton.

Ta s
Ta s

ch
ch

ng minh l
ng minh l

k = 0.
k = 0.
21
Chng 4 th Euler v Hamilton
II.2. nh l
Chng minh

Gi
Gi

s
s

k > 0, X
k > 0, X

t chu tr
t chu tr

nh Hamilton trong G
nh Hamilton trong G

: v
: v

p
p

v. V
v. V

i p l
i p l

1 trong nh
1 trong nh

ng
ng

nh m
nh m

i. Ta th
i. Ta th

y:
y:
v v v v w khng th w khng th k k nhau nhau ( N ( Ng g c l c l i khi i khi c c th th b b p p v v
l v l v k l k l min min ) )
N N u v u v k k v v v v w w k k w th w th w w khng th khng th i li i li n sau v n sau v . . Tr Tri i l l i i: : Ta Ta
thay v thay v p p w v v w w v b v b i: v i: v v v w w
w w v b v b qua p qua p. . Do Do : : V V i m i m i i nh k nh k v v i v ta lun i v ta lun
t tm m c 1 c 1 nh khng k nh khng k v v i w i w: :

S
S

nh khng k
nh khng k

v
v

i w
i w

s
s

nh k
nh k

v
v

i v
i v

(n/2 + k)
(n/2 + k)

M
M

s
s

nh k
nh k

v
v

i w
i w

(
(
n/2
n/2
+ k
+ k
)
)

Do
Do

|
|
VG
VG

|
|

(
(
n +
n +
2
2
k)
k)
> n
> n
+
+
k V l !
k V l !
!! (
!! (
PCM
PCM
)
)
22
Chng 4 th Euler v Hamilton
II.2. nh l
nh l Dirac cho th c hng
Cho th c hng, lin thng mnh G=(V, E) v c n
nh. Nu mi nh v V u c v th G c chu trnh
Hamilton.
23
Chng 4 th Euler v Hamilton
II.3. Gii thut x/d chu trnh Hamilton
Dng gii thut quay lui
Bt u t 1 nh, i theo con ng di nht c th
c (depth first)
Nu ng cha mi nh v c th ni 2 nh u v
cui bng 1 cnh th l chu trnh Hamilton
Nu tri li ta li li mt nh m con ng theo
chiu su khc
C tip tc qu trnh trn cho n khi thu c chu trnh
Hamilton.
24
Chng 4 th Euler v Hamilton
II.3. Gii thut x/d chu trnh Hamilton
Ci t thut ton
void hamilton(k)
/*Pht trin dy X1,X2,,Xk-1
G=(V,E) c cho bi Danh Sch k: Ke(v), v V */
{
for ( y Ke(Xk-1) )
if ( ( k = = n+1 ) && ( y = = v0 ) ) Xut(X1,Xn,v0);
else if ( Chuaxet[y] ) {
Xk = y;
Chuaxet[y] = 0;
Hamilton(k+1);
Chuaxet[y] = 1; //Quay lui
}
}
main(){
for (v V) Chuaxet[v] = 1;
X1 = v0; Chuaxet[v0] = 0; Hamilton(2);
}
25
Chng 4 th Euler v Hamilton
II.3. Gii thut x/d chu trnh Hamilton
V d
26
Chng 4 th Euler v Hamilton
II.3. Gii thut x/d chu trnh Hamilton
V d
Chng 5: Cy
2
Chng 5 - Cy
Ni dung
Cy khung ca th
nh ngha
I.
II.
Tp cc chu trnh c bn
III.
Cy khung nh nht
IV.
Cy c gc
V.
L thuyt th
2
3
Chng 5 - Cy
I. nh ngha
Cy l th v hng
Lin thng
Khng c chu trnh
Rng l th v hng
Khng c chu trnh
4
Chng 5 - Cy
I. nh ngha
nh l nhn bit cy
Cho T =(V, E) l th v hng n nh. Cc mnh sau
y l tng ng:
M1: T l cy ( T lin thng v khng cha chu trnh ).
M2: T khng cha chu trnh v c n-1 cnh.
M3: T lin thng v c n-1 cnh.
M4: T lin thng v mi cnh ca n u l cu.
M5: Hai nh bt k ca T c ni vi nhau bi ng 1
ng i n.
M6: T khng cha chu trnh nhng h c thm vo n
mt cnh ta thu c ng 1 chu trnh.
5
Chng 5 - Cy
I. nh ngha
nh l nhn bit cy
Chng minh:
Ta s chng minh nh l trn theo s sau:
M1 M2 M3 M4 M5 M6 M1
6
Chng 5 - Cy
I. nh ngha
Chng minh M1 M2: Nu T l cy n nh th T khng c chu
trnh v c n-1 cnh
Chng minh bng phng php quy np
Vi n=1 th th c n-1 = 1 1 = 0 (ng)
Gi s khng nh ng cy c k 1 nh. Ta s ch ra cy T c
k+1 1 nh s c s cnh l k.
Chn ng i di nht trong G l P = (v
1
,v
2
,,v
m
).R rng v1 l nh
treo :
v
1
khng th k vi cc nh v
3
,,v
m
v G khng c chu trnh.
v
1
khng th c ni vi cc nh khc v P l di nht
Xt G = G \ { v
1
, (v
1
,v
2
) } (Khng th b cc nh trung gian). Ta c
G c k nh. Theo gi thit quy np G c k-1 cnh. Do G c k cnh
(PCM)
7
Chng 5 - Cy
I. nh ngha
Chng minh M2 M3: Nu T khng cha chu
trnh v c n-1 cnh th T lin thng.
Chng minh bng phng php phn chng.
Gi s T khng lin thng, khi T c phn r thnh
k>1 thnh phn lin thng T
1
, T
2
, , T
k
.V T khng cha
chu trnh (theo gi thit) nn cc cy cng vy, suy ra T
i
l cy.
Gi v(T) v e(T) tng ng l s nh v cnh ca T. Theo
phn trc M1 M2 ta c: e(T
i
) = v(T
i
) 1. Suy ra:
e(T
i
) = (v(T
i
) -1) = v(T
i
) k
e(T) = v(T) k
n - 1 = n - k . V l vi k>1 (PCM)
8
Chng 5 - Cy
I. nh ngha
Chng minh M3 M4:Nu T lin thng v c n-1
cnh th mi cnh ca T l cu
Suy lun tng t nh chng minh M1 M2.
Chn ng i di nht P = (v1, v2, v3, ,vm).
Nu t th T ta b i mt cnh no trn ng i P,
th r rng khng cn con ng no khc i t v
1
n
v
m
(v nu ngc li th T c chu trnh). V vy cc cnh
ca T u l cu.
9
Chng 5 - Cy
I. nh ngha
Chng minh M4 M5:Nu T lin thng v mi
cnh ca T l cu th hai nh bt k ca T c
ni vi nhau ng bi 1 ng n.
T lin thng nn mi 2 nh ca T tn ti ng ni
gia chng. ng ni ny l duy nht v tri li T s
c chu trnh v cc cnh trn chu trnh s khng th
l cu.(PCM)
10
Chng 5 - Cy
I. nh ngha
Chng minh M5 M6:Nu hai nh bt k ca T c ni
vi nhau ng bi 1 ng n th T khng cha chu trnh
nhng h c thm vo n 1 cnh ta thu c ng 1 chu
trnh
T khng cha chu trnh v nu T c chu trnh th s c cp nh
c ni vi nhau bi 2 ng n.
Thm vo cnh (u,v) ta s nhn c chu trnh gm ng n
ni u vi v v cnh (u,v) mi.
Do ng n ni trn l duy nht nn chu trnh nhn c cng
l duy nht.
(PCM)
11
Chng 5 - Cy
I. nh ngha
Chng minh M6 M1:T khng cha chu trnh
nhng h c thm vo n mt cnh ta thu c
ng 1 chu trnh th T l cy (lin thng v khng
c chu trnh).
Chng minh bng phn chng
12
Chng 5 - Cy
Ni dung
Cy khung ca th
nh ngha
I.
II.
Tp cc chu trnh c bn
III.
Cy khung nh nht
IV.
Cy c gc
V.
L thuyt th
12
13
Chng 5 - Cy
II.1. nh ngha
Cho th G =(V, E) v hng, lin thng. Mt cy
T=(V,F) c xy dng t G vi F E (T cha tt c cc
nh ca G v tp cnh F l con ca tp cnh E) c gi
l cy khung ca th G.
Cy bao trm hay cy ti i.
14
Chng 5 - Cy
II.2. nh l Cayley
S cy khung ca th K
n
l n
n-2
abc, bcd, cda, dab,
afc, dfb, aec, deb,
aed, afb, bec, cfd,
efc, efd, efa, efb.
S cy khung l: 4
2
= 16
15
Chng 5 - Cy
II.3. Xy dng cy khung
Xy dng theo chiu su
Xy dng theo chiu rng
Tham s
Input: th G lu di dng danh sc k - Mng Ke[]
Output: Cy khung T ca th
Mng ChuaXet[] dng nh u cc nh c xt hay cha.
16
Chng 5 - Cy
II.3.a. X/d theo chiu su
/* Khai bo cc bin ton cc ChuaXet, Ke, T */
void Tree_DFS(v);
{
ChuaXet[v] = 0;
for (u Ke(v))
if (ChuaXet[u]) {
T = T (v,u);
Tree_DFS(u);
};
}
main(){
/* Nhp th, to bin Ke */
for (v V)
ChuaXet[v] = 1; /* Khi to c cho nh */
T = ; /* T l tp cnh cy khung */
Tree_DFS(root); /* root l nh no ca th */
}
17
Chng 5 - Cy
II.3.a. X/d theo chiu su
V d nh v Ke(v)
1 2, 3
2 4, 1
3 1, 6, 5, 4
4 2, 3, 7, 8
5 6, 3
6 3, 5
7 4,8
8 7, 4, 10, 9
9 8, 10
10 8, 9
12 4 3 6 5
7 8 10 9
Cy khung ca G l:
{(1, 2), (2, 4), (4, 3), (3, 6), (6, 5), (4, 7), (7, 8), (8, 10), (10, 9)}
18
Chng 5 - Cy
II.3.b. X/d theo chiu rng
/* Khai bo cc bin ton cc ChuaXet, Ke, QUEUE */
void Tree_BFS(r);{
QUEUE = ;
QUEUE r;
ChuaXet[r] = 0;
while (QUEUE != ){
v QUEUE;
for (u Ke(v))
if ( ChuaXet[u] ){
QUEUE u;
ChuaXet[u] = 0;
T = T (v,u);
};
}
}
main() /* Nhp th, to bin Ke */{
for (v V)
ChuaXet[v] = 1; /* Khi to c cho nh */
T = ; /* T l tp cnh cy khung */
Tree_DFS(root); /* root l nh no ca th */
}
19
Chng 5 - Cy
II.3.b. X/d theo chiu rng
V d nh v Ke(v)
1 2, 3
2 4, 1
3 1, 6, 5, 4
4 2, 3, 7, 8
5 6, 3
6 3, 5
7 4,8
8 7, 4, 10, 9
9 8, 10
10 8, 9 1 2 3
4 6 5
7 8
10 9
Cy khung ca G l: {(1, 2), (2, 3), (2, 4), (4, 6), (6, 5), (4, 7), (7, 8), (8, 10), (10, 9)}
20
Chng 5 - Cy
Ni dung
Cy khung ca th
nh ngha
I.
II.
Tp cc chu trnh c bn
III.
L thuyt th
20
Cy khung nh nht
IV.
Cy c gc
V.
21
Chng 5 - Cy
III.Tp cc chu trnh c bn
nh ngha

Gi
Gi

s
s

G=(V,E) l
G=(V,E) l

n
n

th
th

v h
v h

ng lin thng, H=(V,T)


ng lin thng, H=(V,T)
l
l

cy khung c
cy khung c

a G.
a G.

N
N

u thm m
u thm m

t c
t c

nh e
nh e

E
E
\
\
T v
T v

o cy khung H ta s
o cy khung H ta s

thu
thu

c
c

ng 1 chu tr
ng 1 chu tr

nh trong H, k hi
nh trong H, k hi

u n
u n

l
l

C
C
e e
. T
. T

p c
p c

c
c
chu tr
chu tr

nh:
nh:

= { C
= { C
e e
: e
: e

E
E
\
\
T }
T }

c g
c g

i l
i l

t
t

p c
p c

c chu tr
c chu tr

nh c b
nh c b

n
n
c
c

a
a

th
th

G.
G.
22
Chng 5 - Cy
III.Tp cc chu trnh c bn
Tnh cht
Tp cc chu trnh c bn ph thuc vo cy khung ca th. Hai cy
khung khc nhau c th cho hai tp chu trnh c s khc nhau.
Nu mt th lin thng c n nh, m cnh. Khi cy khung c n-1
cnh, cn li m-n+1 cnh ngoi. Tng ng vi mi cnh ngoi, ta c
mt chu trnh c bn. V vy, s chu trnh c bn ca mt th lin
thng l m-n+1.
Tp cc chu trnh c bn l mt tp nhiu nht cc chu trnh tha mn
iu kin: Mi chu trnh c ng mt cnh ring, cnh khng nm
trong cc chu trnh cn li v vic loi b cnh ny khng nh hng
n tnh lin thng ca th v khng nh hng n cc chu trnh
cn li. Nh vy ta c th b ti a m - n+1 cnh m vn m bo tnh
lin thng ca th.
23
Chng 5 - Cy
III.Tp cc chu trnh c bn
ngha
Cc bi ton v mch in
Mi mch vng tng ng vi mt chu trnh c bn.
Tng hiu in th dc theo mt mch vng bng 0. (L
Kirchoff)
Lp h PT tuyn tnh Tnh ton hiu in th trn mi
ng dy ca mng in.
24
Chng 5 - Cy
III.Tp cc chu trnh c bn
Thut ton
/* Khai bo cc bin ton cc d, num, STACK, Index, Ke */
void Cycle(int v);{
d ++; STACK[d] = v; num ++; Index[v] = num;
for (u Ke(v))
if (Index[u] ==0 ) Cycle(u);
else if (( u != STACK[d-1] ) && ( Index[v] > Index[u] ) )
Ghi nhn chu trnh STACK[d], , STACK[c], vi STACK[c] =u;
d --;
}
main(){
for (v V) Index[v] = 0; /* Khi to c cho nh */
num = 0; d = 0; STACK[0] = 0;
for (v V)
if (Index[v] == 0) Cycle(v);
}
25
Chng 5 - Cy
III.Tp cc chu trnh c bn
V d
nh v Ke(v)
1 2, 7, 3
2 6, 1
3 5, 4, 1
4 3, 5
5 3, 4
6 8, 9, 7, 2
7 6, 9, 1
8 6
9 7, 6
26
Chng 5 - Cy
III.Tp cc chu trnh c bn
27
Chng 5 - Cy
Ni dung
Cy khung ca th
nh ngha
I.
II.
Tp cc chu trnh c bn
III.
L thuyt th
27
Cy khung nh nht
IV.
Cy c gc
V.
28
Chng 5 - Cy
IV. Cy khung nh nht
Cy khung nh nht
1. Khi nim
2. Thut ton Kruskal
3. Thut ton Prim
29
Chng 5 - Cy
IV.1. Khi nim

Cho G = (V, E) l
Cho G = (V, E) l

th
th

v h
v h

ng lin thng.
ng lin thng.

M
M

i c
i c

nh e c
nh e c

a
a

th
th

c g
c g

n v
n v

i m
i m

t s
t s

khng m
khng m
w(e) g
w(e) g

i l
i l

d
d

i (Tr
i (Tr

ng s
ng s

)
)
c
c

a n
a n

.
.

Gi
Gi

s
s

T = (V, F) l
T = (V, F) l

cy khung c
cy khung c

a G
a G

Tr
Tr

ng s
ng s

c
c

a cy khung T:
a cy khung T:
w(T) =
w(T) =

B
B

i to
i to

n
n
: T
: T

m T sao cho w(T)


m T sao cho w(T)
nh
nh

nh
nh

t
t

F e
e w ) (
30
Chng 5 - Cy
IV.1. Khi nim
ng dng

B
B

i to
i to

n xy d
n xy d

ng h
ng h

th
th

ng
ng

ng s
ng s

t
t

B
B

i to
i to

n n
n n

i m
i m

ng m
ng m

y t
y t

nh
nh
31
Chng 5 - Cy
IV.2. Thut ton Kruskal

th
th

G=(V, E), Xy d
G=(V, E), Xy d

ng t
ng t

p c
p c

nh F c
nh F c

a T=(V, F) theo
a T=(V, F) theo
t
t

ng b
ng b

c:
c:
1. S
1. S

p x
p x

p c
p c

c c
c c

nh c
nh c

a G theo th
a G theo th

t
t

tr
tr

ng s
ng s

(
(

d
d

i)
i)
tng d
tng d

n
n
2. B
2. B

t
t

u v
u v

i F=
i F=

b
b

xung d
xung d

n c
n c

c c
c c

nh c
nh c

a G v
a G v

o F v
o F v

i
i
i
i

u ki
u ki

n khng t
n khng t

o nn chu tr
o nn chu tr

nh trong T.
nh trong T.
3. Thu
3. Thu

t to
t to

n d
n d

ng l
ng l

i khi c
i khi c

n
n
-
-
1 c
1 c

nh
nh

c ch
c ch

n.
n.
32
Chng 5 - Cy
IV.2. Thut ton Kruskal
V d
(d, e) (a, f) (b, f) (c, d) (c, e) (a, b) (f, e) (b, c)
1 3 4 5 7 12 20 24
(d, e) (a, f) (b, f) (c, d) (f, e)
1 3 4 5 20
33
Chng 5 - Cy
IV.2. Thut ton Kruskal
Void Kruskal;
{
F = ;
while ( ( |F| < n-1 ) && ( E != ) )
{
Chn e = min E;
E = E \ {e};
if ( F {e} khng cha chu trnh )
F = F {e};
}
if ( |F| < n-1 ) cout << th khng lin thng;
}
34
Chng 5 - Cy
IV.3. Thut ton Prim
Cho
Cho

th
th

G=(V, E), Xy d
G=(V, E), Xy d

ng t
ng t

p
p

nh V
nh V
T T
v
v

t
t

p c
p c

nh F
nh F
c
c

a cy khung T=(V
a cy khung T=(V
T T
, F) theo t
, F) theo t

ng b
ng b

c:
c:
1. B
1. B

t
t

u v
u v

i V
i V
T T
= s, m
= s, m

t
t

nh b
nh b

t k
t k

v
v

T=
T=

. Trong t
. Trong t

t c
t c

c
c

c c
c c

nh c
nh c

1
1

nh
nh

V
V
T T
v
v

1
1

nh
nh

V
V
T T
ch
ch

n c
n c

nh c
nh c

tr
tr

ng
ng
s
s

nh
nh

nh
nh

t.
t.
2. B
2. B

sung c
sung c

nh
nh

v
v

o F v
o F v

nh tng
nh tng

ng v
ng v

o V
o V
T T
.
.
3. Thu
3. Thu

t to
t to

n d
n d

ng l
ng l

i khi c
i khi c

n
n
-
-
1 c
1 c

nh
nh

c ch
c ch

n (ho
n (ho

c
c
V
V
T T
=V )
=V )
.
.
35
Chng 5 - Cy
IV.3. Thut ton Prim
(a, f) (e, f) (d, e) (c, f) (a, b)
3 2 1 4 12
36
Chng 5 - Cy
IV.3. Thut ton Prim
Ci t
void Prim()
{
F = ; VT = u;
while ( |F| < n-1 )
{
Chn e = { min w(u,v) (u VT ) & (v VT ) };
F = F {e};
VT = VT {v};
}
}
37
Chng 5 - Cy
IV. Cy khung nh nht
Chng minh tnh ng n v nhn xt hai thut
ton Kruskal v Prim ?
38
Chng 5 - Cy
Ni dung
Cy khung ca th
nh ngha
I.
II.
Tp cc chu trnh c bn
III.
L thuyt th
38
Cy khung nh nht
IV.
Cy c gc
V.
39
Chng 5 - Cy
V. Cy c gc
Cy c gc
1. Cc khi nim
2. Cy tm kim nh phn
3. Cy quyt nh
4. Cc phng php duyt cy
40
Chng 5 - Cy
V.1. Cc khi nim
T l mt cy c gc
x, y, z l cc nh trong T
v
0
, v
1
, , v
n
l mt ng i
n trong T
V
n-1
l cha (parent) ca v
n
v
0
,v
1
,,v
n-1
l cc tin bi (
ancestor) ca v
n
v
n
l con (child) ca v
n-1
Nu x l tin bi ca y th y l
hu du (descendant) ca x
Nu y, z l con ca x th y v
z l anh em (siblings)
41
Chng 5 - Cy
V.1. Cc khi nim
Nu x khng c con th x l l (leaf)
Nu x khng l l th x l nh trong
(branch vertex)
Mc (level) ca nh x l chiu di (s
cnh) ca ng n t gc v
0
ti x.
level(v
0
) = 0
Chiu cao (height) ca mt cy l mc
ln nht trong cy
Cy con (subtree) ca T gc ti x l
th con ca T m
Tp nh gm x v tt c cc hu du ca x
Tp cc cnh gm mi cnh ni ti cc hu
du ca x
42
Chng 5 - Cy
V.1. Cc khi nim
Cha ca c l b
Con ca g l h, i, j
Cc tin bi ca e l c, b, a
Cc hu du ca b l c, d, e
Cc nh trong : a, b, c, g, h, j, k
Cc l : d, e, f, l, m, i, n, o
Mc ca c l 2, ca k l 3
Chiu cao ca cy l 4
Cy con gc g.
43
Chng 5 - Cy
V.1. Cc khi nim
Mt cy c gc gi l:
m cy (m-ary tree) nu mi nh trong khng c
qu m con
m cy y (full m-ary tree) nu mi nh trong c
ng m con
Cy nh phn (binary tree) nu mi nh khng c
qu 2 con
Cy c gc th t (Ordered rooted tree) nu cc con
ca mi nh trong c xp th t t tri qua phi
44
Chng 5 - Cy
V.1. Cc khi nim
c bit: Cy nh phn c th t:
Nu mt nh trong c 2 con th
Con th nht l con bn tri ( left child)
Con th 2 l con bn phi ( right child)
Mt m cy vi chiu cao h gi l thng
bng ( balanced) nu tt c cc l u mc
h hay h-1.
45
Chng 5 - Cy
V.1. Cc khi nim
Mt s v d
M hnh gia ph mt dng h
M hnh biu din ca cc t chc
V d: M hnh t chc Trng i Hc
46
Chng 5 - Cy
V.1. Cc khi nim
Mt s v d
M hnh cc tp tin trong
my tnh
Cc tp tin trong my
tnh c t chc
thnh cc th mc, cc
th mc c t chc
di dng cy, trong
th mc gc l gc ca
cy
47
Chng 5 - Cy
V.2. Cy tm kim nh phn
Mt cy tm kim nh phn l mt cy nh
phn T m trong :
Mi nh c gn cho mt nhn
Cc nhn c th so snh c vi nhau
nh vT, cc nhn trong cy con bn tri ca v u
nh hn nhn ca v v cc nhn trong cy con bn phi
ca v u ln hn nhn ca v
48
Chng 5 - Cy
V.2. Cy tm kim nh phn
V d:: 30, 20, 10, 40, 32, 27, 17, 8, 42, 78, 35.
49
Chng 5 - Cy
V.2. Cy tm kim nh phn
Thut ton tm kim trn cy tm kim nh
phn
Gi s ta c mt cy tm kim, x l mt gi tr no
Xc nh v tr ca bin x nu x l nhn ca mt nh v
Nu thy rng x khng l nhn ca mt nh no c th
to ra mt nh mi v gn nhn x cho nh
phc tp thut ton: O(log n)
50
Chng 5 - Cy
V.2. Cy tm kim nh phn
Thut ton tm kim trn cy tm kim nh phn
void TK( Cy NPTK T, phn t x);
{
v = gc ca T;
if (v == NULL ) thm nh r vo cy v gn cho n nhn l x
while ((v != NULL) && (label(v) != x) )
{
if (x == label(v)) cout << Tm c x;
if (x < label(v))
if (con bn tri v != NULL) v = con bn tri v;
else thm nh nhn x l con bn tri v v t v := NULL;
if (x > label(v))
if (con bn phi v != NULL) v = con bn phi v;
else thm nh nhn x l con bn phi v v t v:=NULL;
}
}
51
Chng 5 - Cy
V.3. Cy quyt nh
Thut ton tm kim trn cy tm kim nh phn
Cy quyt nh l cy c gc m:
Mi nh tng ng vi 1 quyt nh
Mi cy con ti cc nh ny ng vi mi kt cc
c th ca ca quyt nh
Mt li gii l mt ng i t gc n l
V d: Cho 8 ng xu, trong c mt ng nh
hn. Xc nh n bng 1 ci cn thng bng.
52
Chng 5 - Cy
V.3. Cy quyt nh
C 3 trng thi sau mi ln cn. Do cy quyt
nh cho mt dy cc ln cn l cy tam phn
C t nht 8 l trong cy quyt nh v c 8 kt
cc c th v mi kt cc cn biu din bng t
nht 1 l
S ln cn nhiu nht xc nh ng xu gi l
chiu cao ca cy h
Ta c h log
3
8 = 2 (lm trn tng)
53
Chng 5 - Cy
V.3. Cy quyt nh
54
Chng 5 - Cy
V.4. Cc phng php duyt cy
Thut ton ving thm mi nh ca mt cy
c gc c th t ng 1 ln mt cch c h
thng gi l thut ton duyt cy
C 3 thut ton ph thng:
Duyt tin t (Preoder traversal)
Duyt trung t (Inorder traversal)
Duyt hu t (Postorder traversal)
55
Chng 5 - Cy
V.4. Cc phng php duyt cy
Thut ton duyt tin t
void Preorder( cy th t c gc T);
{
r = gc ca T;
Thm r;
for ( Mi cy con c ca r t tri sang phi )
{
T(c) = Cy con vi gc c
Preorder( T(c) )
}
}
56
Chng 5 - Cy
V.4. Cc phng php duyt cy
Thut ton duyt trung t
void Inorder( cy th t c gc T)
{
r := gc ca T
else
{
s = con u tin t tri sang phi ca r
T(s) = Cy con vi gc s;
Inorder( T(s) ); Thm r
for (Mi cy con c ca r t tri sang phi tr s)
T(c) = Cy con vi gc c
Inorder( T(c) )
}
}
if (r l l) Thm r;
57
Chng 5 - Cy
V.4. Cc phng php duyt cy
Thut ton duyt hu t
Void Postorder( cy th t c gc T);
{
r = gc ca T
for (Mi cy con c ca r t tri sang phi)
{
T(c) = Cy con vi gc c
Postorder( T(c) )
}
Thm r
}
58
Chng 5 - Cy
V.4. Cc phng php duyt cy
V d
+ Duyt tin t: a, b, c, d, e, f, g, h, o, k, l, m, n, p, q, s, t
+ Duyt trung t: d, c, e, b, a, g, f, h, m, l, n, k, o, p, s, q, t
+ Duyt hu t: d, e, c, b, g, h, f, m, n, l, k, p, s, t, q, o, a
Chng 6: Bi ton t mu th
2
Chng 6 Bi ton t mu th
Ni dung
nh l 4 mu
nh ngha
I.
II.
Nhn bit th 2-mu
III.
Thut ton SequentialColor
IV.
Mt s bi ton ng dng
V.
L thuyt th
2
3
Chng 6 Bi ton t mu th
I. nh ngha
Cn phi t mu mt bn vi iu kin:
Hai min chung bin gii c t hai mu khc nhau
S mu cn dng l ti thiu
Hy xc nh s mu ti thiu cho mi bn

Bn ny cn dng 4 mu t
4
Chng 6 Bi ton t mu th
I. nh ngha
a
b e
d
c
Bi ton t mu bn quy v bi ton t mu cc nh ca th
nh ngha 1
T mu mt n th l s gn mu cho cc nh ca n sao cho
hai nh lin k nhau c gn mu khc nhau.
nh ngha 2
S mu ca mt th l s ti thiu cc mu cn thit t mu th ny.
5
Chng 6 Bi ton t mu th
II. nh l 4 mu
nh l: S mu ca mt th phng l
khng ln hn 4
nh l ny c pht biu ln u tin nm 1850 v
c 2 nh ton hc M Appel v Haken chng minh
nm 1976 bng phn chng.
i vi cc th khng phng s mu c th tu ln
chng minh th G l n-mu ta phi
Ch ra 1 cch t mu G vi n mu
CMR khng th t mu G vi t hn n mu
6
Chng 6 Bi ton t mu th
II. nh l 4 mu
Cc bi ton t mu th
1. Cho th G v s nguyn k. Xy dng mt
thut ton kim tra xem c th t mu G
bng k mu, nu c th thc hin vic .
2. Cho th G hy xc nh s mu k ca th
v hy t mu G bng k mu
7
Chng 6 Bi ton t mu th
II. Nhn bit th 2-mu
nh l
Mt th G l 2-mu khi v ch khi G khng
cha mt chu trnh l no.
Chng minh
1. Gi s G l th 2-mu ta phi CMR G khng cha
chu trnh l.
Tht vy nu G c chu trnh l C=(v
1
, v
2
, , v
2n+1
, v
1
)
Do C ch c t bi 2 mu cc nh l s c t
bng 1 mu. Nhng lc v
1
v v
2n+1
l 2 nh k nhau
c cng mu v l !!! (PCM)
8
Chng 6 Bi ton t mu th
II. Nhn bit th 2-mu
Chng minh
2. Gi s G khng cha chu trnh l.Ta s CMR G l th
2-mu.
Chn 1 nh r lm gc v t n mu . x V s
c t mu nu ng i ngn nht t x ti r c
s ca.nh chn. Tri li t x mu xanh.
Ta s chng minh rng nh x, y ca cnh (x,y) bt k
c t hai mu khc nhau.
Tri li gi s x v y l 2 nh ca cnh (x,y) no
c t cng mu
9
Chng 6 Bi ton t mu th
II. Nhn bit th 2-mu
Chng minh
Trng hp 1: Px v Py khng c chung cnh. Ta c
Px + (x,y) + Py l chu trnh c s cnh l. (Mu thun
gi thit).
10
Chng 6 Bi ton t mu th
II. Nhn bit th 2-mu
Chng minh
Trng hp 2: Px v Py c chung k cnh t nh a ti
nh b. Ta s nhn c hai chu trnh Ca , Cb v k
cnh chung. Ta c Px + (x,y) + Py c s l cnh m:
| Px + (x,y) + Py | = | Ca | + | Cb | + 2k
Do mt trong hai chu trnh Ca hoc Cb s c s cnh l
V l !!! (PCM)
Vy G l 2 - mu
11
Chng 6 Bi ton t mu th
III. Thut ton SequentialColor
Vi k=2 vic nhn bit th 2 mu c gii quyt
Tuy vy vic nhn bit th k mu vi k > 2 vn cha c
li gii
Thut ton SequentialColor t mu 1 th vi k mu:
Xem cc nh theo th t t 1 n |V|, ti mi nh v gn mu
u tin c sn m cha c gn cho 1 nh no lin v
1. Xp cc nh theo th t bt k 1,2,n
2. To tp L
i
- tp cc mu c th gn cho nh I
3. Bt u t t nh 1
4. Vi nh k {1,,n} t mu u tin ca L
k
cho k
5. j > k v j k k loi b trong L
j
mu c t cho k
6. Gii thut dng li khi tt c cc nh c t
12
Chng 6 Bi ton t mu th
III. Thut ton SequentialColor
V d
Cc mu:
X: Xanh
:
T: Tm
V: Vng
Th t t cc nh: 1, 2, 3, 4
Cc bc L1 L2 L3 L4 Mu t
Khi to X, , T, V X, , T, V X, , T, V X, , T, V
B1 X X, , T, V X, , T, V , T, V 1 - Xanh
B2 X , T, V , T, V 2 - Xanh
B3 T, V 3 -
B4 T 4 - Tm
13
Chng 6 Bi ton t mu th
III. Thut ton SequentialColor
V d
Cc mu:
X: Xanh
:
T: Tm
V: Vng
Th t t cc nh: 4, 3, 2, 1
Cc bc L4 L3 L1 L2 Mu t
Khi to X, , T, V X, , T, V X, , T, V X, , T, V
B1 X , T, V , T, V X, , T, V 4 - Xanh
B2 , T, V X, T, V 3 -
B3 X, T, V 1 -
B4 X 2 - Xanh
14
Chng 6 Bi ton t mu th
III. Thut ton SequentialColor
Nhn xt
L dng thut ton tham lam Li gii tm c cha
chc ti u
phc tp ca gii thut O(n
2
)
15
Chng 6 Bi ton t mu th
IV.Mt s bi ton ng dng
Bi ton lp lch thi
Lp lch thi: Hy lp lch thi trong trng i hc sao
cho khng c sinh vin no c 2 mn thi cng lc
Cc nh : Cc mn thi
C 1 cnh ni 2 nh nu nh c 1 SV thi c 2
mn ny
Thi gian thi c th hin bi cc mu khc
nhau
Vic lp lch thi s tng ng vi vic t mu th
ny
16
Chng 6 Bi ton t mu th
IV.Mt s bi ton ng dng
Bi ton lp lch thi
C 7 mn thi: Ton (t), Anh Vn (a), L (l), Pascal (p), Tin hc i cng
(h), Ting vt thc hnh (v), Visual Basic (b).
Cc cp mn thi c chung sinh vin l: (t,a), (t, l), (t, p), (t,b),(a,l), (a,p),
(a,h), (a,b), (l,p), (l,b), (p,h), (p,v), (h,b), (v,b).
Kt qu t mu
a l p h v b t
Xanh Tm Nu L cy Vng en
Kt qu xp lch thi
t thi Mn thi
1 Anh Vn
2 L, Tin hc i cng
3 Pascal, Visual Basic
4 Ting vit thc hnh, Ton
17
Chng 6 Bi ton t mu th
IV.Mt s bi ton ng dng
Bi ton phn chia tn s
Phn chia tn s: Cc knh truyn hnh t s 2 ti 13
c phn chia cho cc i truyn hnh Bc M sao
cho 2 i gn nhau di 150 km c 2 knh khc
nhau
Gii quyt:
Mi i pht : 1 nh
Hai i gn nhau di 150 km l 2 nh c ni vi nhau
Vic phn chia knh: T mu th, trong mi mu biu th
mt knh
Chng 7: Bi ton tm ng i ngn nht
2
Chng 7 Bi ton tm ng i ngn nht
Ni dung
Thut ton Ford-Bellman
Gii thiu
I.
II.
Thut ton Dijkstra
III.
Thut ton Floyd
IV.
L thuyt th
2
3
Chng 7 Bi ton tm ng i ngn nht
I. Gii thiu
Xt th c hng, c trng s G=(V, E)


=
E v u if v u a
E v u if
v u ngSo Tro
) , ( ), , (
) , ( ,
) , (
Vi a(u, v) R
Nu dy v
0
,v
1
,,v
p
l 1 ng i trn G
th di ca n c nh ngha:

=

=
p
i
i i p
v v a v v v DoDai
1
1 1 0
) , ( ) ,..., , (
4
Chng 7 Bi ton tm ng i ngn nht
I. Gii thiu
Bi ton ng i ngn nht
Gi s c nhiu ng i t v
0
n v
p
: ng i
ngn nht l ng i c tng trng s cc cung nh
nht.
ng i t mt nh
Ford-Bellman
Dijkstra
ng i t mt nh
Floyd
5
Chng 7 Bi ton tm ng i ngn nht
Ni dung
Thut ton Ford-Bellman
Gii thiu
I.
II.
Thut ton Dijkstra
III.
Thut ton Floyd
IV.
L thuyt th
5
6
Chng 7 Bi ton tm ng i ngn nht
II. Thut ton Ford-Bellman
Thut ton Ford-Bellman dng tm ng i
ngn nht t mt nh s n tt c cc nh cn
li ca th.
c s dng cho th khng c chu trnh m.
Cho th c hng, c trng s G=(V, E). Trng s ca cc cnh
ca G c tnh nh sau:
TrongSo(u, v) = nu cung (u, v) E.
TrongSo(u, v) = a(u, v) nu cung (u, v) E.
Thut ton tm ng i ngn nht d(v) t nh s nh v, mi v V:
+ Xt u V. Nu d(u) + TrongSo(u, v) < d(v) th ta thay d(v) = d(u) +
TrongSo(u, v).
+ Qu trnh ny s c lp li cho n khi khng th c gi tr d(v)
tt hn.
7
Chng 7 Bi ton tm ng i ngn nht
II. Thut ton Ford-Bellman
Ci t thut ton
u vo:
th c hng G=(V,E) vi n nh.
s V l nh xut pht.
a[u,v], u,v V l ma trn trng s
u ra :
Khong cch t s n tt c cc nh cn li d[v],
v V .
Truoc[v], v V l nh i trc v trong ng i
ngn nht t s n v
8
Chng 7 Bi ton tm ng i ngn nht
II. Thut ton Ford-Bellman
void Ford_Bellman()
{
for (v V) /* Khi to d v Truoc */
{
d[v] = a[s,v];
Truoc[v] = s;
}
d[s] = 0;
for (k = 1; k < n-1; k++)
for (v V \ {s})
for ( u V)
if (d[v] > d[u] + a[u,v] )
{
d[v] = d[u] + a[u,v] ;
Truoc[v] = u;
}
} /* phc tp ca thut ton l O(n3) */
9
Chng 7 Bi ton tm ng i ngn nht
II. Thut ton Ford-Bellman
V d
1 2 3 4 5
1 1 3
2 3 3 8
3 1 -5
4 2
5 4
k d[5], Truoc[5] d[4], Truoc[4] d[3], Truoc[3] d[2], Truoc[2]
1 3, 1 , 1 , 1 1, 1
2 3, 1 4, 2 4, 2 1, 1
3 -1, 3 4, 2 4, 2 1, 1
4 -1, 3 3, 5 4, 2 1, 1
5 -1, 3 3, 5 4, 2 1, 1
10
Chng 7 Bi ton tm ng i ngn nht
Ni dung
Thut ton Ford-Bellman
Gii thiu
I.
II.
Thut ton Dijkstra
III.
Thut ton Floyd
IV.
L thuyt th
10
11
Chng 7 Bi ton tm ng i ngn nht
III. Thut ton Dijkstra
Thut ton Dijkstra dng tm ng i ngn
nht t nh s n cc nh cn li trong th.
c s dng cho th khng c cung trng s
m.
Thut ton
u vo
th c hng G=(V,E) vi n nh.
s V l nh xut pht.
a[u,v], u,v V l ma trn trng s
u ra
Khong cch t s n tt c cc nh cn li d[v], v V .
Truoc[v], v V l nh i trc v trong ng i ngn nht t
s n v.
12
Chng 7 Bi ton tm ng i ngn nht
III. Thut ton Dijkstra
void Dijkstra;{
for (v V) /* Khi to d v Truoc */ {
d[v] = a[s,v];
Truoc[v] = s;
}
d[s] = 0; T = V \ {s};
while (T != ) {
Tm u T sao cho d(u) = min { d(z): z T }
T = T \ {u}; /* C nh nhn ca u */
for (v T) do
if (d[v] > d[u] + a[u,v] ) then
{
d[v] = d[u] + a[u,v] ;
Truoc[v] = u;
}
}
} /* phc tp ca thut ton l O(n2) */
13
Chng 7 Bi ton tm ng i ngn nht
III. Thut ton Dijkstra
V d
1 2 3 4 5
1 1 7
2 1 4 8
3 2 4
4 1
5 4
T nh 2 nh 3 nh 4 nh 5
2, 3, 4, 5 1, 1 ,1 , 1 7, 1
3, 4, 5 2, 2 5, 2 7, 1
4, 5 4, 3 6, 3
E 6, 3
1, 1 2, 2 4, 3 6, 3
14
Chng 7 Bi ton tm ng i ngn nht
Ni dung
Thut ton Ford-Bellman
Gii thiu
I.
II.
Thut ton Dijkstra
III.
Thut ton Floyd
IV.
L thuyt th
14
15
Chng 7 Bi ton tm ng i ngn nht
IV. Thut ton Floyd
Tm ng i ngn nht gia tt c cc
cp nh trong th.
Thut ton
Vi mi nh k ca th xt theo th t t 1 n n,
xt mi cp nh u, v. Ta tm ng i ngn nht t u
n v theo cng thc:
a(u, v) = min (a(u, v), a(u, k) + a(k, v))
16
Chng 7 Bi ton tm ng i ngn nht
IV. Thut ton Floyd
Ci t
u vo
th cho bi ma trn trng s: a[i, j], i, j = 1, 2, , n.
u ra: Hai ma trn
Ma trn ng i ngn nht gia cc cp nh:
d[i, j], i, j = 1..n.
d[i, j] l di ng i ngn nht t i n j
Ma trn ghi nhn ng i.
p[i, j], i, j = 1..n.
p[i, j] ghi nhn nh i trc nh j trong ng i ngn nht t i
n j.
17
Chng 7 Bi ton tm ng i ngn nht
IV. Thut ton Floyd
void Floyd;{
for (i = 1; i <= n; i ++) /* Khi to */
for (j = 1; j <= n; j ++){
d[i,j] = a[i,j];
p[i,j] = i;
}
for (k = 1; k <= n; k++) /* 3 vng lp */
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
if (d[i,j] > d[i,k] + d[k,j])
{
d[i,j] = d[i,k] + d[k,j];
p[i,j] = p[k,j];
}
}
18
Chng 7 Bi ton tm ng i ngn nht
IV. Thut ton Floyd
V d
19
Chng 7 Bi ton tm ng i ngn nht
IV. Thut ton Floyd
Vy ng i ngn nht t
nh 1 n nh 3 l: 1 2 3.
Vi trng s = 0.
Chng 8: Lung trong mng
2
Chng 8 Lung trong mang
Ni dung
nh l Ford-Fulkerson
Bi ton lung cc i
I.
II.
Thut ton tm lung cc i trong mng
III.
L thuyt th
2
3
Chng 8 Lung trong mang
I. Bi ton lung cc i
Mng
Mng l mt th c hng G= (V, E)
! nh s (im pht) m deg
-
(s) = 0
! nh t (im thu) m deg
+
(t) = 0
cung e = (v, w) E c gn vi mt s khng
m c(e) = c(v, w) 0 gi l Kh nng thng qua
ca cung e.
s : im pht
t : im thu
Nu khng c
cung (v, w) th
c(v, w) = 0
4
Chng 8 Lung trong mang
I. Bi ton lung cc i
Lung trong mng
Cho mng G= (V, E), ta gi lung f trong mng G l mt nh x
f: E R*, vi mi cung e=(v, w) E c gn vi mt s khng
m f(e) = f(v, w) 0 gi l lung trn cung e, tha mn cc iu
kin sau:
Lung trn mi cung e E khng vt qu kh nng thng qua ca
n: 0 f(e) c(e)
Vi mi nh v khng trng vi nh pht s, v nh thu t, tng lung
trn cc cung i vo v bng tng lung cc cung i ra khi v.
0 ) , ( ) , ( ) (
) ( ) (
= =

+
v w v w
f
w v f v w f v Div
} ) , ( | { ) ( E v w V w v =

} ) , ( | { ) ( E w v V w v =
+
iu kin cn
bng lung
Vi
5
Chng 8 Lung trong mang
I. Bi ton lung cc i
Lung trong mng
Gi tr ca lung f l tng lung trn cc cung i ra khi nh
pht (bng tng lung trn cc cung i vo nh thu).

+

= =
) ( ) (
) , ( ) , ( ) (
t w s w
t w f w s f f val
6
Chng 8 Lung trong mang
I. Bi ton lung cc i
Lung trong mng
2
3
9
6
3
5
12
v

-
(v)

+
(v)
0 20 20
20 12 5 3
20 6 9 3 2
= =
= + + =
= + + + =

) v ( Div
) w , v ( f
) v , w ( f
f
) v ( w
) v ( w

7
Chng 8 Lung trong mang
I. Bi ton lung cc i
Lung trong mng
2
3
9
6
3
5
12
s

+
(s)

-
(t)
t
20
20 12 5 3
20 6 9 3 2
=
= + + =
= + + + =

) f ( val
) w , s ( f
) t , w ( f
) s ( w
) t ( w

8
Chng 8 Lung trong mang
I. Bi ton lung cc i
Cc s mu xanh: Kh nng thng qua trn mi cung
Cc s mu : Lung trn mi cung
Gi tr ca lung:
val(f) = 5
s t
2, 2
5, 1
3, 3
9, 0
8, 1
10, 2
4, 2
3, 3
20, 1
10, 1
1, 1
s : im pht
t : im thu
Nu khng c
cung (v, w) th
c(v, w) = 0
9
Chng 8 Lung trong mang
I. Bi ton lung cc i
Bi ton lung cc i
Cho mng G= (V, E), hy tm lung f trong mng sao
cho gi tr lung l ln nht.
Lung f nh vy gi l lung cc i
ng dng:
Bi ton lp bn giao thng trong thnh ph.
Bi ton m ci vng qu.
10
Chng 8 Lung trong mang
Ni dung
nh l Ford-Fulkerson
Bi ton lung cc i
I.
II.
Thut ton tm lung cc i trong mng
III.
L thuyt th
10
11
Chng 8 Lung trong mang
II.1. Lt ct
Cho mng G = (V, E). Lt ct (X, X*) l mt phn
hoch tp nh V ca mng thnh hai tp X v X* vi
im pht s X v im thu t X*.
Kh nng thng qua ca lt ct (X, X*) l tng tt c
cc kh nng thng qua ca cc cung (v, w) c v X
v w X*.
Lt ct vi kh nng thng qua nh nht c gi l
lt ct hp nht.
12
Chng 8 Lung trong mang
II.1. Lt ct
Lt ct
Kh nng thng qua ca lt ct (X, X*) l: 3 + 8 + 10 = 21.
13
Chng 8 Lung trong mang
II.2. Lung v lt ct
nh l 1
Gi tr ca mi lung f trong mng khng ln hn kh
nng thng qua ca lt ct bt k (X, X*).
val(f) c (X, X*)
Kh nng thng qua l 21.
Gi tr ca lung f: val(f)=5<21.
14
Chng 8 Lung trong mang
II.2. Lung v lt ct
nh l 1
Chng minh
Vi mi v V, ta cng cc iu kin cn bng lung:
= div(s) = - val(f).
Tng ny gm cc s hng dng f(u,v) vi du + v
du m c t nht u hoc v X. Nu c u v v u
X th f(u,v) s xut hin vi du + trong Div(v) v du -
trong Div(u) nn chng trit tiu ln nhau. Ta thu c:

(PCM).
) ) , ( ) , ( (
) ( ) (

+



v w
X v
v w
w v f v w f
) ( ) , ( ) , (
*, * ,
f val w v f w v f
X w X v X w X v
= +




=
* , *, * ,
) , ( ) , ( ) , ( ) (
X w X v X w X v X w X v
w v c w v f w v f f val
*) , ( ) ( X X c f val
15
Chng 8 Lung trong mang
II.2. Lung v lt ct
H qu
Gi tr lung cc i trong mng khng vt qu kh
nng thng qua ca lt ct hp nht trong mng.
nh l Ford-Fulkerson
Gi tr lung cc i trn mng ng bng kh nng
thng qua ca lt ct hp nht.
16
Chng 8 Lung trong mang
II.3. th tng lung, ng tng lung
Gi s f l mt lung trong mng G = (V, E). T
mng G ta xy dng th c trng s G
f
=(V, E
f
) nh
sau:
Xt cc cnh e = (v, w) E:
Nu f(v, w) = 0 : thm mt cung (v, w) c trng s l c(v, w) vo G
f
.
Nu f(v, w) = c(v, w) : thm mt cung (w, v) c trng s c(v, w) vo
G
f
.
Nu 0 < f(v, w) < c(v, w) : thm mt cung (v, w) c trng s c(v,
w) f(v,w), v mt cung (w, v) c trng s f(v, w) vo G
f
.
Cc cung ca ng thi cng l cung ca G c gi l
cung thun, cc cung cn li c gi l cung nghch.
th c gi l th tng lung.
17
Chng 8 Lung trong mang
II.3. th tng lung, ng tng lung
th tng lung G
f
=(V, E
f
)
Mng G=(V, E)
18
Chng 8 Lung trong mang
II.3. th tng lung, ng tng lung
Gi s P = (s, , t) l mt ng i t s n t trn
th tng lung . Gi d l trng s nh nht trong cc
trng s ca cc cung trn ng i P. T lung f,
xy dng lung f trn mng G nh sau:
Nu (v, w) P l cung thun th f(v, w) = f(v, w) + d.
Nu (v, w) P l cung nghch th f(v, w) = f(v, w) d.
Nu (v, w) P th f(v, w) = f( v, w).
Khi ta c lung f l lung trong mng G v gi
tr ca lung f tng thm d so vi gi tr ca lung f.
ng i P c gi l ng tng lung.
19
Chng 8 Lung trong mang
II.3. th tng lung, ng tng lung
20
Chng 8 Lung trong mang
II.3. th tng lung, ng tng lung
nh l 2
Cho mng G=(V, E) v f l mt lung trong mng
G. Cc mnh sau l tng ng
f l lung cc i trong mng.
Khng tm c ng tng lung f.
val(f) = c(X, X*), vi (X, X*) l mt lt ct no ca
mng.
Chng minh?
21
Chng 8 Lung trong mang
Ni dung
nh l Ford-Fulkerson
Bi ton lung cc i
I.
II.
Thut ton tm lung cc i trong mng
III.
L thuyt th
21
22
Chng 8 Lung trong mang
III. Thut ton tm lung cc i trong mng
Qui trnh thut ton Ford-Fulkerson
t lung ban u bng 0 (lung khng). V mt
mng bt k u c t nht mt lung l lung khng.
Lp li hai qu trnh tm ng tng lung v tng
lung cho mng theo ng tng lung . Vng lp
kt thc khi khng tm c ng tng lung na.
Khi c lung cc i, xy dng lt ct hp nht
ca mng.
23
Chng 8 Lung trong mang
III. Thut ton tm lung cc i trong mng
Thut ton tm ng tng lung
u tin, gn nhn cho s v t n l cha xt. Tip
tc ta gn nhn cho cc nh k ca s v s tr thnh
nh xt. Lm tng t cho cc nh k vi s
c gn nhn. Thut ton dng li nu:
1. nh t c gn nhn. Khi ta tm c ng tng
lung.
2. Hoc t cha c nhn m tt c cc nh c nhn khc
c xt. Khi lung ang xt l cc i, khng tm c
ng tng lung.
24
Chng 8 Lung trong mang
III. Thut ton tm lung cc i trong mng
Bc 1: t f(e)=0, vi mi cnh e E
Bc 2: Gn nhn cho s:
p[s]=[-, (s)];
(s)=;
t u= s;
Bc 3:
a) Vi mi vKe+(u), Nu v cha c nhn v s(u,v)=c(u,v)f(u,v)>0 th:
t (v) = min((u), s(u,v));
Gn nhn p[v] = [ +u, (v)] ;
Vi mi v Ke-(u), Nu v cha c nhn v f(u,v)>0 th:
t (v) = min ((u), f(u,v));
Gn nhn p[v] = [ -u, (v)] ;
Bc 4: Nu t c nhn (v == t) n Bc 5.
Ngc li :
Nu Mi nh c nhn xt: n Bc 6.
Ngc li: t u=v, n Bc 3.
Cui nu.
Cui nu.
Bc 5: Dng p[t] tm ng tng lung P bng cch i ngc t t n s. t
f = f + (t) cnh e P. n Bc 2.
Bc 6: X = {Cc nh c nhn xt }, X* = V \ X . Lt ct (X,X*) l cc tiu.
25
Chng 8 Lung trong mang
III. Thut ton tm lung cc i trong mng
V d
+ Gn nhn: s [-,].
+ Xt s: cung (s,a) s(s,a) = 3 > 0: (a) = min(,3) = 3, p[a]= [+s,3].
nh b: Cha c gn nhn.
+ Xt a: p[c]= [+a,2]
+ Xt c: cung (b,c) f(b,c) = 5 > 0, (c) = min(2,5) = 2 p[b]= [-c,2]
+ Xt b: p[d]= [+b,2].
+ Xt d: p[t]= [+d,2].
Ta c ng tng lung:
t d b c a s
Lung f := f + 2 = 7 + 2 = 9.
LOGIC MNH
1
Contents
1. Mnh
2. S tng ng ca cc mnh
3. V ng v lng t
2
1. Mnh
Mnh l mt cu ng hoc sai, ch khng
th va ng va sai.
(mnh)
H ni l th ca Vit Nam.
1 + 5 = 70
(Khngphi mnh)
x + y = z (khng ng khng sai)
By gi l my gi? (cu trn thut)
3
Mnh l mt cu ng hoc sai, ch khng
th va ng va sai.
(mnh)
H ni l th ca Vit Nam.
1 + 5 = 70
(Khngphi mnh)
x + y = z (khng ng khng sai)
By gi l my gi? (cu trn thut)
Mnh (cont.)
Cc ch ci s c dng k hiu mnh v cc
bin : p, q, r, s Gi tr chn l ca mnh l
ng/sai, k hiu T (F).
Cc nh lut ca t duy Geogre Boole (1854) =>
cc mnh phc hp c to t mnh hin c
bng cch dng cc ton t logic.
nh ngha 1: Gi s p l mnh .
Cu khng phi l p
L 1 mnh khc, c gi l ph nh ca p. k
hiu p hoc
Cc ch ci s c dng k hiu mnh v cc
bin : p, q, r, s Gi tr chn l ca mnh l
ng/sai, k hiu T (F).
Cc nh lut ca t duy Geogre Boole (1854) =>
cc mnh phc hp c to t mnh hin c
bng cch dng cc ton t logic.
nh ngha 1: Gi s p l mnh .
Cu khng phi l p
L 1 mnh khc, c gi l ph nh ca p. k
hiu p hoc
4
p
Ton t ph nh
V d: tm ph nh ca mnh : Hm nay l
th t.
Gii: Hm nay khng phi l th t
V d: tm ph nh ca mnh : Hm nay l
th t.
Gii: Hm nay khng phi l th t
5
V d: Hm nay l th t. Hm nay
tri ma => Hm nay th t v tri
ma (ton t hi, p^q)
6
V d:
Mn khai v sp hoc
salat.
Cc sinh vin ngnh
CNTT hoc Ton ng
dng c th theo hc
hc phn LTT.
V d:
Mn khai v sp hoc
salat.
Cc sinh vin ngnh
CNTT hoc Ton ng
dng c th theo hc
hc phn LTT.

Mnh tuyn loi


8
Mnh ko theo p->q
9
Mnh tng ng
10
Dch nhng cu thng thng
Ting Anh (Vit ) thng c tnh khng r
rng. Dch cc cu thng thng sang biu thc
logic l lm mt i tnh khng r rng ca n.
ng thi c th xc nh gi tr chn l, thao tc
v cc quy tc suy din suy lun chng.
V d: Bn khng c li xe my nu bn cao
di 1.5m tr phi bn trn 18 tui.
Ting Anh (Vit ) thng c tnh khng r
rng. Dch cc cu thng thng sang biu thc
logic l lm mt i tnh khng r rng ca n.
ng thi c th xc nh gi tr chn l, thao tc
v cc quy tc suy din suy lun chng.
V d: Bn khng c li xe my nu bn cao
di 1.5m tr phi bn trn 18 tui.
11
Gi
q = Bn c li xe my
r = Bn cao di 1.5m
s = Bn trn 18 tui.
Biu thc logic:
(r ^ s) -> q
V 1 s cch khc tng ng
q = Bn c li xe my
r = Bn cao di 1.5m
s = Bn trn 18 tui.
Biu thc logic:
(r ^ s) -> q
V 1 s cch khc tng ng
12
Cc php ton logic v cc php ton BIT
Binary bit (0, 1) - John Tukey (nh thng k),
1946. 1 = true; 0 = false.
13
14
Bi tp
15
16
1
18
19
20
21
22
23
24
25
26
2
28
29
30
31
32
2. Tng ng logic
Cc mnh phc hp lun lun c cng gi tr
chn l c gi l tng ng logic.
nh ngha 1. cc mnh p v q c gi l
tng ng logic nu p<->q l hng ng.
K hiu: p q ch p v q l tng ng
logic.
Mt cch xc nh hai mnh c tng
ng hay khng l dng bng gi tr chn l.
Cc mnh phc hp lun lun c cng gi tr
chn l c gi l tng ng logic.
nh ngha 1. cc mnh p v q c gi l
tng ng logic nu p<->q l hng ng.
K hiu: p q ch p v q l tng ng
logic.
Mt cch xc nh hai mnh c tng
ng hay khng l dng bng gi tr chn l.
33
34
35
36
3
38
39
40
Bi tp
41
42
43
44
45
3. V NG V LNG T
46
4
48
LNG T
49
50
51
52
53
54
Dch cc cu thng thng thnh biu thc Logic
Trong phn 1 m t dch cc cu thng thng thnh cc
biu thc logic cha nhiu mnh v cc lin t logic.
Trong phn ny s biu din c tp hp rng ln hn
cc cu thng thng thnh cc biu thc logic. Mc
ch loi i nhng iu m m, cha r rng v lm cho
ta c th dng cc cu suy lun c.
Cc v d sau cho thy cc ton t logic v lng t dng
din t cc cu thng thng, tng t nh loi cu
thng gp trong cc pht biu ton hc, trong lp trnh
logic v tr tu nhn to.
Trong phn 1 m t dch cc cu thng thng thnh cc
biu thc logic cha nhiu mnh v cc lin t logic.
Trong phn ny s biu din c tp hp rng ln hn
cc cu thng thng thnh cc biu thc logic. Mc
ch loi i nhng iu m m, cha r rng v lm cho
ta c th dng cc cu suy lun c.
Cc v d sau cho thy cc ton t logic v lng t dng
din t cc cu thng thng, tng t nh loi cu
thng gp trong cc pht biu ton hc, trong lp trnh
logic v tr tu nhn to.
55
56
CC V D CA LEWIS CARROL
Lewis Carrol (bt danh C.L.Dodgson) tc gi ca
Alice trong t nc k l v 1 s cng trnh
logic k hiu.
5
P(x) : x l s t
Q(x) : x hung d
R(x) : x ung cafe
58
59
CC BiN RNG BuC
60
61
Cc lng t hai bin
62
63
64
65
BI TP
66
6
68
69
0
BI TP TH
1. G l mt th n, v hng c s nh N>3.
Chng minh G c cha 2 nh cng bc.
2. th G c ng 2 nh bc l. Chng minh tn
ti mt dy chuyn ni hai nh vi nhau.
3. Xt th G n, v hng gm N nh, M cnh
v P thnh phn lin thng.
a. Chng minh: M (N-P)(N-P+1)/2,
suy ra nu M > (N-1)(N-2)/2 th G lin thng.
a. Mt th n c 10 nh, 37 cnh th c chc lin
thng hay khng?

1. G l mt th n, v hng c s nh N>3.
Chng minh G c cha 2 nh cng bc.
2. th G c ng 2 nh bc l. Chng minh tn
ti mt dy chuyn ni hai nh vi nhau.
3. Xt th G n, v hng gm N nh, M cnh
v P thnh phn lin thng.
a. Chng minh: M (N-P)(N-P+1)/2,
suy ra nu M > (N-1)(N-2)/2 th G lin thng.
a. Mt th n c 10 nh, 37 cnh th c chc lin
thng hay khng?
BI TP
4. th G n, v hng gm N nh v d(x)(N-
1)/2 vi mi nh x. Chng minh G lin thng.
5. th v hng G lin thng gm N nh.
Chng minh s cnh ca G N-1.
6. Xt th G v hng n. Gi x l nh c bc
nh nht ca G. Gi s d(x)k2 vi k nguyn
dng. Chng minh G cha mt chu trnh s cp
c chiu di ln hn hay bng k+1.
2
4. th G n, v hng gm N nh v d(x)(N-
1)/2 vi mi nh x. Chng minh G lin thng.
5. th v hng G lin thng gm N nh.
Chng minh s cnh ca G N-1.
6. Xt th G v hng n. Gi x l nh c bc
nh nht ca G. Gi s d(x)k2 vi k nguyn
dng. Chng minh G cha mt chu trnh s cp
c chiu di ln hn hay bng k+1.
BI TP
7. Cho G l th v hng lin thng. Gi s C
1
v C
2
l 2 dy chuyn s cp trong G c s cnh
nhiu nht. Chng minh C
1
v C
2
c nh chung.
8. G l th v hng khng khuyn v d(x) 3
vi mi nh x. Chng minh G c cha chu trnh
vi s cnh chn.

7. Cho G l th v hng lin thng. Gi s C


1
v C
2
l 2 dy chuyn s cp trong G c s cnh
nhiu nht. Chng minh C
1
v C
2
c nh chung.
8. G l th v hng khng khuyn v d(x) 3
vi mi nh x. Chng minh G c cha chu trnh
vi s cnh chn.
1. Chng minh cc nh l tng ng
2. Xc nh s lng cy ti i ca th dng
CY, CHU TRNH S CP, ,
3. Chng minh tnh ng n ca cc gii thut
PRIM, KRUSKAL
TREE
1. Chng minh cc nh l tng ng
2. Xc nh s lng cy ti i ca th dng
CY, CHU TRNH S CP, ,
3. Chng minh tnh ng n ca cc gii thut
PRIM, KRUSKAL

1. Chng minh nguyn l Bellman


2. Chng minh tnh ng n ca cc thut ton
Dijkstra, Floyd, Bellman
3. Ci t thut ton xc nh chu trnh Euler
4. Xc nh cc nt ca th K nt.
BI TP NG I
1. Chng minh nguyn l Bellman
2. Chng minh tnh ng n ca cc thut ton
Dijkstra, Floyd, Bellman
3. Ci t thut ton xc nh chu trnh Euler
4. Xc nh cc nt ca th K nt.

1. Tm lung cc i cho mng sau:


3 2

1. Tm lung cc i cho mng sau:


HCMUS 2009 HCMUS 2009 Bi ging L thuyt th ng Nguyn c Tin Bi ging L thuyt th ng Nguyn c Tin 66
4 5
t s

2. Hy nu gii pht gii quyt vn lin thng


cnh.
3. *Hy nu gii php tm c path cover cc tiu.
4. Chng minh rng mt lung cc i trn mng G
= (V, E) lun c th xc nh c sau mt dy
ti a |E| qu trnh tm ng tng lung.
5. Chng minh vi mt cp nh u, v bt k, ta lun
c c
f
(u, v) + c
f
(v, u) = c(u, v) + c(v, u). Vi c
f
l
trng s ca cung trn th tng lung.
2. Hy nu gii pht gii quyt vn lin thng
cnh.
3. *Hy nu gii php tm c path cover cc tiu.
4. Chng minh rng mt lung cc i trn mng G
= (V, E) lun c th xc nh c sau mt dy
ti a |E| qu trnh tm ng tng lung.
5. Chng minh vi mt cp nh u, v bt k, ta lun
c c
f
(u, v) + c
f
(v, u) = c(u, v) + c(v, u). Vi c
f
l
trng s ca cung trn th tng lung.
HCMUS 2009 HCMUS 2009 Bi ging L thuyt th ng Nguyn c Tin Bi ging L thuyt th ng Nguyn c Tin 77

You might also like