You are on page 1of 168

B gio dc v o to

i hc hu
trng i hc khoa hc

nguyn gia nh





gio trnh

Ton ri rc









000
100
010
001
011
101
111 110






hu 2003
LI NI U

c s ng vin mnh m ca cc ng nghip trong cc Khoa Ton-C-Tin
hc, Cng ngh Thng tin v Vt l (Trng i hc Khoa hc-i hc Hu), cc Khoa
Ton v Tin hc (Trng i hc S phm-i hc Hu) v c bit do nhu cu hc tp
ca cc sinh vin trong i hc Hu cc Khoa ni trn v cc hc vin cao hc ngnh
Phng php ging dy Ton, chng ti mnh dn vit gio trnh Ton ri rc trong khi
trn th trng sch c kh nhiu ti liu lin quan n Ton ri rc. iu m chng ti
mong mun l cc kin thc ca hc phn ny phi c a vo y , c ng,
chnh xc, cp nht, bm st theo yu cu o to sinh vin cc ngnh Cng ngh Thng
tin, Ton-Tin, Vt l-Tin v mt s ngnh k thut khc ca cc trng i hc v cao
ng.
Vi s n lc ht mnh ca bn thn, chng ti thit ngh y s l ti liu tham
kho tt cho cc gio vin ging dy hc phn ton ri rc, cc hc vin cao hc ngnh
Phng php ging dy Ton, cc th sinh thi vo cao hc ngnh cng ngh thng tin,
cc sinh vin thuc cc ngnh c cp trn v cc hc sinh thuc khi chuyn
Ton, chuyn Tin.
Ni dung ca ti liu ny c b tr trong 4 phn, khng k li ni u, mc lc,
ti liu tham kho v phn ph lc:
-- Phn 1 c dnh cho Chng I cp n Thut ton;
-- Phn 2 c dnh cho Chng II ni n bi ton m;
-- Phn 3, y l phn chim nhiu trang nht trong gio trnh, bn v L thuyt th v
cc ng dng gm 5 chng: th, th Euler v th Hamilton, Mt s bi ton
ti u trn th, Cy, th phng v t mu th;
-- Phn 4 c dnh cho Chng 8, chng cui cng, cp n i s Boole.
Trong mi chng, cc chng minh ca cc nh l, mnh c trnh by chi tit,
ngoi tr mt s nh l c phn chng minh qu phc tp th c chng ti b qua.
Trong cc phn ca mi chng c nhiu v d c th minh ho cho nhng khi nim
cng nh nhng kt qu ca chng. Cui ca mi chng l nhng bi tp c chn
lc t d n kh, bm theo ni dung ca chng .
Chng ti xin chn thnh cm n cc ng nghip ng vin v gp cho
cng vic vit gio trnh Ton ri rc ny v li cm n c bit xin dnh cho Khoa
Cng ngh Thng tin v s gip qu bu v to iu kin thun li cho vic xut bn
gio trnh ny.
Tc gi mong nhn c s ch gio ca cc ng nghip v c gi v nhng
thiu st kh trnh khi ca cun sch.
Ma Thu nm 2003
Ton ri rc - Nguyn Gia nh 1
MC LC

Li ni u ......................................................................................................................1
Mc lc ............................................................................................................................2
Chng I: Thut ton ....................................................................................................4
1.1. Khi nim thut ton .................................................................................................4
1.2. Thut ton tm kim...................................................................................................5
1.3. phc tp ca thut ton........................................................................................7
1.4. S nguyn v thut ton ...........................................................................................12
1.5. Thut ton quy .....................................................................................................17
Bi tp Chng I .............................................................................................................19
Chng II: Bi ton m..............................................................................................22
2.1. C s ca php m .................................................................................................22
2.2. Nguyn l Dirichlet ..................................................................................................25
2.3. Chnh hp v t hp suy rng ..................................................................................28
2.4. Sinh cc hon v v t hp........................................................................................30
2.5. H thc truy hi ........................................................................................................32
2.6. Quan h chia tr....................................................................................................34
Bi tp Chng II ............................................................................................................35
Chng III: th.........................................................................................................37
3.1. nh ngha v th d .................................................................................................37
3.2. Bc ca nh .............................................................................................................39
3.3. Nhng n th c bit ........................................................................................41
3.4. Biu din th bng ma trn v s ng cu th ...............................................44
3.5. Cc th mi t th c.......................................................................................46
3.6. Tnh lin thng .........................................................................................................47
Bi tp Chng III...........................................................................................................51
Chng IV: th Euler v th Hamilton ............................................................54
4.1. ng i Euler v th Euler ................................................................................54
4.2. ng i Hamilton v th Hamilton....................................................................58
Bi tp Chng IV...........................................................................................................64
Chng V: Mt s bi ton ti u trn th ............................................................67
5.1. th c trng s v bi ton ng i ngn nht ..................................................67
5.2. Bi ton lung cc i ..............................................................................................72
5.3. Bi ton du lch.........................................................................................................79
Bi tp Chng V............................................................................................................84

Ton ri rc - Nguyn Gia nh 2
Chng VI: Cy.............................................................................................................87
6.1. nh ngha v cc tnh cht c bn...........................................................................87
6.2. Cy khung v bi ton tm cy khung nh nht .......................................................88
6.3. Cy c gc ................................................................................................................93
6.4. Duyt cy nh phn...................................................................................................94
Bi tp Chng VI......................................................................................................... 101
Chng VII: th phng v t mu th............................................................. 104
7.1. th phng ........................................................................................................... 104
7.2. th khng phng ................................................................................................ 106
7.3. T mu th.......................................................................................................... 107
Bi tp Chng VII ....................................................................................................... 112
Chng VIII: i s Boole ......................................................................................... 114
8.1. Khi nim i s Boole .......................................................................................... 114
8.2. Hm Boole.............................................................................................................. 117
8.3. Mch lgic.............................................................................................................. 120
8.4. Cc tiu ho cc mch lgic................................................................................... 125
Bi tp Chng VIII...................................................................................................... 132
Ti liu tham kho....................................................................................................... 134
Phn ph lc ................................................................................................................ 135
Ph lc 1 ....................................................................................................................... 135
Ph lc 2 ....................................................................................................................... 158

Ton ri rc - Nguyn Gia nh 3
CHNG I:
THUT TON

1.1. KHI NIM THUT TON.
1.1.1. M u:
C nhiu lp bi ton tng qut xut hin trong ton hc ri rc. Chng hn, cho
mt dy cc s nguyn, tm s ln nht; cho mt tp hp, lit k cc tp con ca n; cho
tp hp cc s nguyn, xp chng theo th t tng dn; cho mt mng, tm ng i
ngn nht gia hai nh ca n. Khi c giao cho mt bi ton nh vy th vic u
tin phi lm l xy dng mt m hnh dch bi ton thnh ng cnh ton hc. Cc
cu trc ri rc c dng trong cc m hnh ny l tp hp, dy, hm, hon v, quan h,
cng vi cc cu trc khc nh th, cy, mng - nhng khi nim s c nghin cu
cc chng sau.
Lp c mt m hnh ton hc thch hp ch l mt phn ca qu trnh gii.
hon tt qu trnh gii, cn cn phi c mt phng php dng m hnh gii bi ton
tng qut. Ni mt cch l tng, ci c i hi l mt th tc, l dy cc bc
dn ti p s mong mun. Mt dy cc bc nh vy, c gi l mt thut ton.
Khi thit k v ci t mt phn mm tin hc cho mt vn no , ta cn phi
a ra phng php gii quyt m thc cht l thut ton gii quyt vn ny. R
rng rng, nu khng tm c mt phng php gii quyt th khng th lp trnh
c. Chnh v th, thut ton l khi nim nn tng ca hu ht cc lnh vc ca tin
hc.
1.1.2. nh ngha: Thut ton l mt bng lit k cc ch dn (hay quy tc) cn thc
hin theo tng bc xc nh nhm gii mt bi ton cho.
Thut ng Algorithm (thut ton) l xut pht t tn nh ton hc Rp Al-
Khowarizmi. Ban u, t algorism c dng ch cc quy tc thc hin cc php tnh
s hc trn cc s thp phn. Sau , algorism chuyn thnh algorithm vo th k 19.
Vi s quan tm ngy cng tng i vi cc my tnh, khi nim thut ton c cho
mt ngha chung hn, bao hm c cc th tc xc nh gii cc bi ton, ch khng
phi ch l th tc thc hin cc php tnh s hc.
C nhiu cch trnh by thut ton: dng ngn ng t nhin, ngn ng lu (s
khi), ngn ng lp trnh. Tuy nhin, mt khi dng ngn ng lp trnh th ch nhng
lnh c php trong ngn ng mi c th dng c v iu ny thng lm cho s
m t cc thut ton tr nn ri rm v kh hiu. Hn na, v nhiu ngn ng lp trnh
u c dng rng ri, nn chn mt ngn ng c bit no l iu ngi ta khng
mun. V vy y cc thut ton ngoi vic c trnh by bng ngn ng t nhin
cng vi nhng k hiu ton hc quen thuc cn dng mt dng gi m m t thut
Ton ri rc - Nguyn Gia nh 4
ton. Gi m to ra bc trung gian gia s m t mt thut ton bng ngn ng thng
thng v s thc hin thut ton trong ngn ng lp trnh. Cc bc ca thut ton
c ch r bng cch dng cc lnh ging nh trong cc ngn ng lp trnh.
Th d 1: M t thut ton tm phn t ln nht trong mt dy hu hn cc s nguyn.
a) Dng ngn ng t nhin m t cc bc cn phi thc hin:
1. t gi tr cc i tm thi bng s nguyn u tin trong dy. (Cc i tm
thi s l s nguyn ln nht c kim tra mt giai on no ca th tc.)
2. So snh s nguyn tip sau vi gi tr cc i tm thi, nu n ln hn gi tr
cc i tm thi th t cc i tm thi bng s nguyn .
3. Lp li bc trc nu cn cc s nguyn trong dy.
4. Dng khi khng cn s nguyn no na trong dy. Cc i tm thi im
ny chnh l s nguyn ln nht ca dy.
b) Dng on gi m:
procedure max (a
1
, a
2
, ..., a
n
: integers)
max:= a
1
for i:= 2 to n
if max <a
i
then max:= a
i
{max l phn t ln nht}
Thut ton ny trc ht gn s hng u tin a
1
ca dy cho bin max. Vng lp
for c dng kim tra ln lt cc s hng ca dy. Nu mt s hng ln hn gi
tr hin thi ca max th n c gn lm gi tr mi ca max.
1.1.3. Cc c trng ca thut ton:
-- u vo (Input): Mt thut ton c cc gi tr u vo t mt tp c ch r.
-- u ra (Output): T mi tp cc gi tr u vo, thut ton s to ra cc gi tr u ra.
Cc gi tr u ra chnh l nghim ca bi ton.
-- Tnh dng: Sau mt s hu hn bc thut ton phi dng.
-- Tnh xc nh: mi bc, cc bc thao tc phi ht sc r rng, khng gy nn s
nhp nhng. Ni r hn, trong cng mt iu kin hai b x l cng thc hin mt bc
ca thut ton phi cho nhng kt qu nh nhau.
-- Tnh hiu qu: Trc ht thut ton cn ng n, ngha l sau khi a d liu vo
thut ton hot ng v a ra kt qu nh mun.
-- Tnh ph dng: Thut ton c th gii bt k mt bi ton no trong lp cc bi ton.
C th l thut ton c th c cc u vo l cc b d liu khc nhau trong mt min
xc nh.
1.2. THUT TON TM KIM.
1.2.1. Bi ton tm kim: Bi ton xc nh v tr ca mt phn t trong mt bng lit
k sp th t thng gp trong nhiu trng hp khc nhau. Chng hn chng trnh
Ton ri rc - Nguyn Gia nh 5
kim tra chnh t ca cc t, tm kim cc t ny trong mt cun t in, m t in
chng qua cng l mt bng lit k sp th t ca cc t. Cc bi ton thuc loi ny
c gi l cc bi ton tm kim.
Bi ton tm kim tng qut c m t nh sau: xc nh v tr ca phn t x
trong mt bng lit k cc phn t phn bit a
1,
a
2
, ..., a
n
hoc xc nh rng n khng c
mt trong bng lit k . Li gii ca bi ton trn l v tr ca s hng ca bng lit k
c gi tr bng x (tc l i s l nghim nu x=a
i
v l 0 nu x khng c mt trong bng
lit k).
1.2.2. Thut ton tm kim tuyn tnh: Tm kim tuyn tnh hay tm kim tun t l
bt u bng vic so snh x vi a
1
; khi x=a
1
, nghim l v tr a
1
, tc l 1; khi xa
1
, so
snh x vi a
2
. Nu x=a
2
, nghim l v tr ca a
2
, tc l 2. Khi xa
2
, so snh x vi a
3
. Tip
tc qu trnh ny bng cch tun t so snh x vi mi s hng ca bng lit k cho ti
khi tm c s hng bng x, khi nghim l v tr ca s hng . Nu ton bng lit
k c kim tra m khng xc nh c v tr ca x, th nghim l 0. Gi m i
vi thut ton tm kim tuyn tnh c cho di y:
procedure tm kim tuyn tnh (x: integer, a
1
,a
2
,...,an: integers phn bit)
i := 1
while (i n and x a
i
)
i := i + 1
if i n then location := i
else location := 0
{location l ch s di ca s hng bng x hoc l 0 nu khng tm c x}
1.2.3. Thut ton tm kim nh phn: Thut ton ny c th c dng khi bng
lit k c cc s hng c sp theo th t tng dn. Chng hn, nu cc s hng l cc
s th chng c sp t s nh nht n s ln nht hoc nu chng l cc t hay xu
k t th chng c sp theo th t t in. Thut ton th hai ny gi l thut ton tm
kim nh phn. N c tin hnh bng cch so snh phn t cn xc nh v tr vi s
hng gia bng lit k. Sau bng ny c tch lm hai bng k con nh hn c
kch thc nh nhau, hoc mt trong hai bng con t hn bng con kia mt s hng. S
tm kim tip tc bng cch hn ch tm kim mt bng k con thch hp da trn vic
so snh phn t cn xc nh v tr vi s hng gia bng k. Ta s thy rng thut ton
tm kim nh phn hiu qu hn nhiu so vi thut ton tm kim tuyn tnh.
Th d 2. tm s 19 trong bng lit k 1,2,3,5,6,7,8,10,12,13,15,16,18,19,20,22 ta
tch bng lit k gm 16 s hng ny thnh hai bng lit k nh hn, mi bng c 8 s
hng, c th l: 1,2,3,5,6,7,8,10 v 12,13,15,16,18,19,20,22. Sau ta so snh 19 vi s
hng cui cng ca bng con th nht. V 10<19, vic tm kim 19 ch gii hn trong
bng lit k con th 2 t s hng th 9 n 16 trong bng lit k ban u. Tip theo, ta
Ton ri rc - Nguyn Gia nh 6
li tch bng lit k con gm 8 s hng ny lm hai bng con, mi bng c 4 s hng, c
th l 12,13,15,16 v 18,19,20,22. V 16<19, vic tm kim li c gii hn ch trong
bng con th 2, t s hng th 13 n 16 ca bng lit k ban u. Bng lit k th 2
ny li c tch lm hai, c th l: 18,19 v 20,22. V 19 khng ln hn s hng ln
nht ca bng con th nht nn vic tm kim gii hn ch bng con th nht gm cc
s 18,19, l s hng th 13 v 14 ca bng ban u. Tip theo bng con cha hai s
hng ny li c tch lm hai, mi bng c mt s hng 18 v 19. V 18<19, s tm
kim gii hn ch trong bng con th 2, bng lit k ch cha s hng th 14 ca bng
lit k ban u, s hng l s 19. By gi s tm kim thu hp v ch cn mt s
hng, so snh tip cho thy19 l s hng th 14 ca bng lit k ban u.
By gi ta c th ch r cc bc trong thut ton tm kim nh phn.
tm s nguyn x trong bng lit k a
1
,a
2
,...,a
n
vi a
1
< a
2
< ... < a
n
, ta bt u
bng vic so snh x vi s hng a
m
gia ca dy, vi m=[(n+1)/2]. Nu x > a
m
, vic
tm kim x gii hn na th hai ca dy, gm a
m+1
,a
m+2
,...,a
n
. Nu x khng ln hn a
m
,
th s tm kim gii hn trong na u ca dy gm a
1
,a
2
,...,a
m
.
By gi s tm kim ch gii hn trong bng lit k c khng hn [n/2] phn t.
Dng chnh th tc ny, so snh x vi s hng gia ca bng lit k c hn ch. Sau
li hn ch vic tm kim na th nht hoc na th hai ca bng lit k. Lp li
qu trnh ny cho ti khi nhn c mt bng lit k ch c mt s hng. Sau , ch cn
xc nh s hng ny c phi l x hay khng. Gi m cho thut ton tm kim nh phn
c cho di y:
procedure tm kim nh phn (x: integer, a
1
,a
2
,...,an: integers tng dn)
i := 1 {i l im mt tri ca khong tm kim}
j := n {j l im mt phi ca khong tm kim}
while i < j
begin
m:= [(i+j)/2]
if x>a
m
then i:=m+1
else j := m
end
if x = ai then location := i
else location := 0
{location l ch s di ca s hng bng x hoc 0 nu khng tm thy x}
1.3. PHC TP CA THUT TON.
1.3.1. Khi nim v phc tp ca mt thut ton:
Thc o hiu qu ca mt thut ton l thi gian m my tnh s dng gii
bi ton theo thut ton ang xt, khi cc gi tr u vo c mt kch thc xc nh.
Ton ri rc - Nguyn Gia nh 7
Mt thc o th hai l dung lng b nh i hi thc hin thut ton khi cc gi
tr u vo c kch thc xc nh. Cc vn nh th lin quan n phc tp tnh
ton ca mt thut ton. S phn tch thi gian cn thit gii mt bi ton c kch
thc c bit no lin quan n phc tp thi gian ca thut ton. S phn tch
b nh cn thit ca my tnh lin quan n phc tp khng gian ca thut ton. Vc
xem xt phc tp thi gian v khng gian ca mt thut ton l mt vn rt thit
yu khi cc thut ton c thc hin. Bit mt thut ton s a ra p s trong mt
micro giy, trong mt pht hoc trong mt t nm, hin nhin l ht sc quan trng.
Tng t nh vy, dung lng b nh i hi phi l kh dng gii mt bi ton,v
vy phc tp khng gian cng cn phi tnh n.V vic xem xt phc tp khng
gian gn lin vi cc cu trc d liu c bit c dng thc hin thut ton nn
y ta s tp trung xem xt phc tp thi gian.
phc tp thi gian ca mt thut ton c th c biu din qua s cc php
ton c dng bi thut ton khi cc gi tr u vo c mt kch thc xc nh. S
d phc tp thi gian c m t thng qua s cc php ton i hi thay v thi gian
thc ca my tnh l bi v cc my tnh khc nhau thc hin cc php tnh s cp trong
nhng khong thi gian khc nhau. Hn na, phn tch tt c cc php ton thnh cc
php tnh bit s cp m my tnh s dng l iu rt phc tp.
Th d 3: Xt thut ton tm s ln nht trong dy n s a
1
, a
2
, ..., a
n
. C th coi kch
thc ca d liu nhp l s lng phn t ca dy s, tc l n. Nu coi mi ln so snh
hai s ca thut ton i hi mt n v thi gian (giy chng hn) th thi gian thc
hin thut ton trong trng hp xu nht l n-1 giy. Vi dy 64 s, thi gian thc hin
thut ton nhiu lm l 63 giy.
Th d 4:Thut ton v tr chi Thp H Ni
Tr chi Thp H Ni nh sau: C ba cc A, B, C v 64 ci a (c l t
vo cc), cc a c ng knh i mt khc nhau. Nguyn tc t a vo cc l: mi
a ch c chng ln a ln hn n. Ban u, c 64 a c t chng ln nhau ct
A; hai ct B, C trng. Vn l phi chuyn c 64 a sang ct B hay C, mi ln ch
c di chuyn mt a.
Xt tr chi vi n a ban u cc A (cc B v C trng). Gi S
n
l s ln
chuyn a chi xong tr chi vi n a.
Nu n=1 th r rng l S
1
=1.
Nu n>1 th trc ht ta chuyn n-1 a bn trn sang cc B (gi yn a th n
di cng ca cc A). S ln chuyn n-1 a l S
n-1
. Sau ta chuyn a th n t cc A
sang cc C. Cui cng, ta chuyn n-1 a t cc B sang cc C (s ln chuyn l S
n-1
).
Nh vy, s ln chuyn n a t A sang C l:
S
n
=S
n-1
+1+S
n
=2S
n-1
+1=2(2S
n-2
+1)+1=2
2
S
n-2
+2+1=.....=2
n-1
S
1
+2
n-2
+...+2+1=2
n
1.
Ton ri rc - Nguyn Gia nh 8
Thut ton v tr chi Thp H Ni i hi 2
64
1 ln chuyn a (xp x 18,4 t
t ln). Nu mi ln chuyn a mt 1 giy th thi gian thc hin thut ton xp x 585 t
nm!
Hai th d trn cho thy rng: mt thut ton phi kt thc sau mt s hu hn
bc, nhng nu s hu hn ny qu ln th thut ton khng th thc hin c trong
thc t.
Ta ni: thut ton trong Th d 3 c phc tp l n-1 v l mt thut ton hu
hiu (hay thut ton nhanh); thut ton trong Th d 4 c phc tp l 2
n
1 v l
mt thut ton khng hu hiu (hay thut ton chm).
1.3.2. So snh phc tp ca cc thut ton:
Mt bi ton thng c nhiu cch gii, c nhiu thut ton gii, cc thut
ton c phc tp khc nhau.
Xt bi ton: Tnh gi tr ca a thc P(x)=a
n
x
n
+a
n-1
x
n-1
+ ... +a
1
x+a
0
ti x
0
.
Thut ton 1:
Procedure tnh gi tr ca a thc (a
0
, a
1
, ..., a
n
, x
0
: cc s thc)
sum:=a
0
for i:=1 to n
sum:=sum+a
i
x
0
i
{sum l gi tr ca a thc P(x) ti x
0
}
Ch rng a thc P(x) c th vit di dng:
P(x)=(...((a
n
x+a
n-1
)x+a
n-2
)x...)x+a
0
.
Ta c th tnh P(x) theo thut ton sau:
Thut ton 2:
Procedure tnh gi tr ca a thc (a
0
, a
1
, ..., a
n
, x
0
: cc s thc)
P:=a
n
for i:=1 to n
P:=P.x
0
+a
n-i
{P l gi tr ca a thc P(x) ti x
0
}
Ta hy xt phc tp ca hai thut ton trn.
i vi thut ton 1: bc 2, phi thc hin 1 php nhn v 1 php cng vi
i=1; 2 php nhn v 1 php cng vi i=2, ..., n php nhn v 1 php cng vi i=n. Vy
s php tnh (nhn v cng) m thut ton 1 i hi l:
(1+1)+(2+1)+ ... +(n+1)=
2
) 1 ( + n n
+n=
2
) 3 ( + n n
.
i vi thut ton 2, bc 2 phi thc hin n ln, mi ln i hi 2 php tnh
(nhn ri cng), do s php tnh (nhn v cng) m thut ton 2 i hi l 2n.
Ton ri rc - Nguyn Gia nh 9
Nu coi thi gian thc hin mi php tnh nhn v cng l nh nhau v l mt
n v thi gian th vi mi n cho trc, thi gian thc hin thut ton 1 l n(n+3)/2,
cn thi gian thc hin thut ton 2 l 2n.
R rng l thi gian thc hin thut ton 2 t hn so vi thi gian thc hin thut
ton 1. Hm f
1
(n)=2n l hm bc nht, tng chm hn nhiu so vi hm bc hai
f
2
(n)=n(n+3)/2.
Ta ni rng thut ton 2 (c phc tp l 2n) l thut ton hu hiu hn (hay
nhanh hn) so vi thut ton 1 (c phc tp l n(n+3)/2).
so snh phc tp ca cc thut ton, iu tin li l coi phc tp ca
mi thut ton nh l cp ca hm biu hin thi gian thc hin thut ton y.
Cc hm xt sau y u l hm ca bin s t nhin n>0.
nh ngha 1:Ta ni hm f(n) c cp thp hn hay bng hm g(n) nu tn ti hng s
C>0 v mt s t nhin n
0
sao cho
|f(n)| C|g(n)| vi mi nn
0
.
Ta vit f(n)=O(g(n)) v cn ni f(n) tho mn quan h big-O i vi g(n).
Theo nh ngha ny, hm g(n) l mt hm n gin nht c th c, i din
cho s bin thin ca f(n).
Khi nim big-O c dng trong ton hc gn mt th k nay. Trong tin
hc, n c s dng rng ri phn tch cc thut ton. Nh ton hc ngi c Paul
Bachmann l ngi u tin a ra khi nim big-O vo nm 1892.
Th d 5: Hm f(n)=
2
) 3 ( + n n
l hm bc hai v hm bc hai n gin nht l n
2
. Ta c:
f(n)=
2
) 3 ( + n n
=O(n
2
) v
2
) 3 ( + n n
n
2
vi mi n3 (C=1, n
0
=3).
Mt cch tng qut, nu f(n)=a
k
n
k
+a
k-1
n
k-1
+ ... +a
1
n+a
0
th f(n)=O(n
k
). Tht vy,
vi n>1,
|f(n)|| |a
k
|n
k
+|a
k-1
|n
k-1
+ ... +|a
1
|n+|a
0
| = n
k
(|a
k
|+|a
k-1
|/n+ ... +|a
1
|/n
k-1
+a
0
/n
k
)
n
k
(|a
k
|+|a
k-1
|+ ... +|a
1
|+a
0
).
iu ny chng t |f(n)| Cn
k
vi mi n>1.
Cho g(n)=3n+5nlog
2
n, ta c g(n)=O(nlog
2
n). Tht vy,
3n+5nlog
2
n = n(3+5log
2
n) n(log
2
n+5log
2
n) = 6nlog
2
n vi mi n8 (C=6, n
0
=8).
Mnh : Cho f
1
(n)=O(g
1
(n)) v f
2
(n) l O(g
2
(n)). Khi
(f
1
+ f
2
)(n) = O(max(|g
1
(n)|,|g
2
(n)|), (f
1
f
2
)(n) = O(g
1
(n)g
2
(n)).
Chng minh. Theo gi thit, tn ti C
1
, C
2
, n
1
, n
2
sao cho
|f
1
(n)| C
1
|g
1
(n)| v |f
2
(n)| C
2
|g
2
(n)| vi mi n > n
1
v mi n > n
2
.
Do |(f
1
+ f
2
)(n)| = |f
1
(n) + f
2
(n)| |f
1
(n)| + |f
2
(n)| C
1
|g
1
(n)| + C
2
|g
2
(n)| (C
1
+C
2
)g(n)
vi mi n > n
0
=max(n
1
,n
2
), yC=C
1
+C
2
v g(n)=max(|g
1
(n)| , |g
2
(n)|).
|(f
1
f
2
)(n)| = |f
1
(n)||f
2
(n)| C
1
|g
1
(n)|C
2
|g
2
(n)| C
1
C
2
|(g
1
g
2
)(n)| vi mi n > n
0
=max(n
1
,n
2
).
Ton ri rc - Nguyn Gia nh 10
nh ngha 2: Nu mt thut ton c phc tp l f(n) vi f(n)=O(g(n)) th ta cng
ni thut ton c phc tp O(g(n)).
Nu c hai thut ton gii cng mt bi ton, thut ton 1 c phc tp
O(g
1
(n)), thut ton 2 c phc tp O(g
2
(n)), m g
1
(n) c cp thp hn g
2
(n), th ta ni
rng thut ton 1 hu hiu hn (hay nhanh hn) thut ton 2.
1.3.3. nh gi phc tp ca mt thut ton:
1) Thut ton tm kim tuyn tnh:
S cc php so snh c dng trong thut ton ny cng s c xem nh thc
o phc tp thi gian ca n. mi mt bc ca vng lp trong thut ton, c hai
php so snh c thc hin: mt xem ti cui bng cha v mt so snh phn
t x vi mt s hng ca bng. Cui cng cn mt php so snh na lm ngoi vng
lp. Do , nu x=a
i
, th c 2i+1 php so snh c s dng. S php so snh nhiu
nht, 2n+2, i hi phi c s dng khi phn t x khng c mt trong bng. T ,
thut ton tm kim tuyn tnh c phc tp l O(n).
2) Thut ton tm kim nh phn:
n gin, ta gi s rng c n=2
k
phn t trong bng lit k a
1
,a
2
,...,a
n
, vi k l
s nguyn khng m (nu n khng phi l ly tha ca 2, ta c th xem bng l mt
phn ca bng gm 2
k+1
phn t, trong k l s nguyn nh nht sao cho n < 2
k+1
).
mi giai on ca thut ton v tr ca s hng u tin i v s hng cui cng j
ca bng con hn ch tm kim giai on c so snh xem bng con ny cn
nhiu hn mt phn t hay khng. Nu i < j, mt php so snh s c lm xc nh
x c ln hn s hng gia ca bng con hn ch hay khng. Nh vy mi giai on,
c s dng hai php so snh. Khi trong bng ch cn mt phn t, mt php so snh s
cho chng ta bit rng khng cn mt phn t no thm na v mt php so snh na
cho bit s hng c phi l x hay khng. Tm li cn phi c nhiu nht
2k+2=2log
2
n+2 php so snh thc hin php tm kim nh phn (nu n khng phi l
ly tha ca 2, bng gc s c m rng ti bng c 2
k+1
phn t, vi k=[log
2
n] v s
tm kim i hi phi thc hin nhiu nht 2[log
2
n]+2 php so snh). Do thut ton
tm kim nh phn c phc tp l O(log
2
n). T s phn tch trn suy ra rng thut
ton tm kim nh phn, ngay c trong trng hp xu nht, cng hiu qu hn thut
ton tm kim tuyn tnh.
3) Ch : Mt iu quan trng cn phi bit l my tnh phi cn bao lu gii xong
mt bi ton. Th d, nu mt thut ton i hi 10 gi, th c th cn ng chi ph thi
gian my tnh i hi gii bi ton . Nhng nu mt thut ton i hi 10 t nm
gii mt bi ton, th thc hin thut ton s l mt iu phi l. Mt trong nhng hin
tng l th nht ca cng ngh hin i l s tng gh gm ca tc v lng b nh
trong my tnh. Mt nhn t quan trng khc lm gim thi gian cn thit gii mt
Ton ri rc - Nguyn Gia nh 11
bi ton l s x l song song - y l k thut thc hin ng thi cc dy php tnh.
Do s tng tc tnh ton v dung lng b nh ca my tnh, cng nh nh vic
dng cc thut ton li dng c u th ca k thut x l song song, cc bi ton vi
nm trc y c xem l khng th gii c, th by gi c th gii bnh thng.
1. Cc thut ng thng dng cho phc tp ca mt thut ton:
phc tp Thut ng
O(1) phc tp hng s
O(logn) phc tp lgarit
O(n) phc tp tuyn tnh
O(nlogn) phc tp nlogn
O(n
b
) phc tp a thc
O(b
n
) (b>1) phc tp hm m
O(n!) phc tp giai tha

2. Thi gian my tnh c dng bi mt thut ton:
Kch thc Cc php tnh bit c s dng
ca bi ton
n logn N nlogn n
2
2
n
n!
10 3.10
-9
s 10
-8
s 3.10
-8
s 10
-7
s 10
-6
s 3.10
-3
s
10
2
7.10
-9
s 10
-7
s 7.10
-7
s 10
-5
s 4.10
13
nm *
10
3
1,0.10
-8
s 10
-6
s 1.10
-5
s 10
-3
s * *
10
4
1,3.10
-8
s 10
-5
s 1.10
-4
s 10
-1
s * *
10
5
1,7.10
-8
s 10
-4
s 2.10
-3
s 10 s * *
10
6
2.10
-8
s 10
-3
s 2.10
-2
s 17 pht * *
1.4. S NGUYN V THUT TON.
1.4.1. Thut ton Euclide:
Phng php tnh c chung ln nht ca hai s bng cch dng phn tch cc s
nguyn ra tha s nguyn t l khng hiu qu. L do l ch thi gian phi tiu tn
cho s phn tch . Di y l phng php hiu qu hn tm c s chung ln
nht, gi l thut ton Euclide. Thut ton ny bit t thi c i. N mang tn nh
ton hc c Hy lp Euclide, ngi m t thut ton ny trong cun sch Nhng yu
t ni ting ca ng. Thut ton Euclide da vo 2 mnh sau y.
Mnh 1 (Thut ton chia): Cho a v b l hai s nguyn v b0. Khi tn ti
duy nht hai s nguyn q v r sao cho
a = bq+r, 0 r < |b|.
Trong ng thc trn, b c gi l s chia, a c gi l s b chia, q c gi
l thng s v r c gi l s d.
Ton ri rc - Nguyn Gia nh 12
Khi b l nguyn dng, ta k hiu s d r trong php chia a cho b l a mod b.
Mnh 2: Cho a = bq + r, trong a, b, q, r l cc s nguyn. Khi
UCLN(a,b) = UCLN(b,r).
( y UCLN(a,b) ch c chung ln nht ca a v b.)
Gi s a v b l hai s nguyn dng vi a b. t r
0
= a v r
1
= b. Bng cch p
dng lin tip thut ton chia, ta tm c:
r
0
= r
1
q
1
+ r
2
0 r
2
< r
1
r
1
= r
2
q
2
+ r
3
0 r
3
< r
2
..................
r
n-2
= r
n-1
q
n-1
+ r
n
0 r
n
< r
n-1
r
n-1
= r
n
q
n
.
Cui cng, s d 0 s xut hin trong dy cc php chia lin tip, v dy cc s d
a = r
0
> r
1
> r
2
>... 0
khng th cha qu a s hng c. Hn na, t Mnh 2 trn ta suy ra:
UCLN(a,b) = UCLN(r
0
,r
1
) = UCLN(r
1
,r
2
) = ... = UCLN(r
n-2
, r
n-1
) = UCLN(r
n-1
,r
n
) = r
n
.
Do , c chung ln nht l s d khc khng cui cng trong dy cc php chia.
Th d 6: Dng thut ton Euclide tm UCLN(414, 662).
662 = 441.1 + 248
414 = 248.1 + 166
248 = 166.1+ 82
166 = 82.2 + 2
82 = 2.41.
Do , UCLN(414, 662) = 2.
Thut ton Euclide c vit di dng gi m nh sau:
procedure CLN (a,b: positive integers)
x := a
y := b
while y 0
begin
r := x mod y
x := y
y := r
end
{UCLN (a,b) l x}
Trong thut ton trn, cc gi tr ban u ca x v y tng ng l a v b. mi giai
on ca th tc, x c thay bng y v y c thay bng x mod y. Qu trnh ny c
lp li chng no y 0. Thut ton s ngng khi y = 0 v gi tr ca x im ny, l
s d khc khng cui cng trong th tc, cng chnh l c chung ln nht ca a v b.
Ton ri rc - Nguyn Gia nh 13
1.4.2. Biu din cc s nguyn:
Mnh 3: Cho b l mt s nguyn dng ln hn 1. Khi nu n l mt s nguyn
dng, n c th c biu din mt cch duy nht di dng:
n = a
k
b
k
+ a
k-1
b
k-1
+ ... + a
1
b + a
0
.
y k l mt s t nhin, a
0
, a
1
,..., a
k
l cc s t nhin nh hn b v a
k
0.
Biu din ca n c cho trong Mnh 3 c gi l khai trin ca n theo c s
b, k hiu l (a
k
a
k-1
... a
1
a
0
)
b
. By gi ta s m t thut ton xy dng khai trin c s b
ca s nguyn n bt k. Trc ht ta chia n cho b c thng v s d, tc l
n = bq
0
+ a
0
, 0 a
0
< b.
S d a
0
chnh l ch s ng bn phi cng trong khai trin c s b ca n. Tip theo
chia q
0
cho b, ta c:
q
0
= bq
1
+ a
1
, 0 a
1
< b.
S d a
1
chnh l ch s th hai tnh t bn phi trong khai trin c s b ca n. Tip tc
qu trnh ny, bng cch lin tip chia cc thng cho b ta s c cc ch s tip theo
trong khai trin c s b ca n l cc s d tng ng. Qu trnh ny s kt thc khi ta
nhn c mt thng bng 0.
Th d 7: Tm khai trin c s 8 ca (12345)
10
.
12345 = 8.1543 + 1
1543 = 8.192 + 7
192 = 8.24 + 0
24 = 8.3 + 0
3 = 8.0 + 3.
Do , (12345)
10
= (30071)
8
.
on gi m sau biu din thut ton tm khai trin c s b ca s nguyn n.
procedure khai trin theo c s b (n: positive integer)
q := n
k := 0
while q 0
begin
a
k
:= q mod b
q := [
q
b
]
k := k + 1
end
1.4.3. Thut ton cho cc php tnh s nguyn:
Cc thut ton thc hin cc php tnh vi nhng s nguyn khi dng cc khai
trin nh phn ca chng l cc k quan trng trong s hc ca my tnh. Ta s m t
Ton ri rc - Nguyn Gia nh 14
y cc thut ton cng v nhn hai s nguyn trong biu din nh phn. Ta cng s
phn tch phc tp tnh ton ca cc thut ton ny thng qua s cc php ton bit
thc s c dng. Gi s khai trin nh phn ca hai s nguyn dng a v b l:
a = (a
n-1
a
n-2
... a
1
a
0
)
2
v b = (b
n-1
b
n-2
... b
1
b
0
)
2
sao cho a v b u c n bit (t cc bit 0 u mi khai trin , nu cn).
1) Php cng: Xt bi ton cng hai s nguyn vit dng nh phn. Th tc thc hin
php cng c th da trn phng php thng thng l cng cp ch s nh phn vi
nhau (c nh) tnh tng ca hai s nguyn.
cng a v b, trc ht cng hai bit phi cng ca chng, tc l:
a
0
+ b
0
= c
0
.2 + s
0
.
y s
0
l bit phi cng trong khai trin nh phn ca a+b, c
0
l s nh, n c th bng
0 hoc 1. Sau ta cng hai bit tip theo v s nh
a
1
+ b
1
+ c
0
= c
1
.2 + s
1
.
y s
1
l bit tip theo (tnh t bn phi) trong khai trin nh phn ca a+b v c
1
l s
nh. Tip tc qu trnh ny bng cch cng cc bit tng ng trong hai khai trin nh
phn v s nh xc nh bit tip sau tnh t bn phi trong khai trin nh phn ca
tng a+b. giai on cui cng, cng a
n-1
, b
n-1
v c
n-2
nhn c c
n-1
.2+s
n-1
. Bit ng
u ca tng l s
n
=c
n-1
. Kt qu, th tc ny to ra c khai trin nh phn ca tng, c
th l a+b = (s
n
s
n-1
s
n-2
... s
1
s
0
)
2
.
Th d 8: Tm tng ca a = (11011)
2
v b = (10110)
2
.
a
0
+ b
0
= 1 + 0 = 0.2 + 1 (c
0
= 0, s
0
= 1), a
1
+ b
1
+ c
0
= 1 + 1 + 0 = 1.2 + 0 (c
1
= 1,
s
1
= 0), a
2
+ b
2
+c
1
= 0 + 1 + 1 = 1.2 + 0 (c
2
= 1, s
2
= 0), a
3
+ b
3
+ c
2
= 1 + 0 + 1 = 1.2 +
0 (c
3
= 1, s
3
= 0), a
4
+ b
4
+c
3
= 1 + 1 + 1 = 1.2 + 1 (s
5
= c
4
=1, s
4
= 1).
Do , a + b = (110001)
2
.
Thut ton cng c th c m t bng cch dng on gi m nh sau.
procedure cng (a,b: positive integers)
c := 0
for j := 0 to n-1
begin
d :=

+ +
2
c b a
j j

s
j
:= a
j
+ b
j
+ c 2d
c := d
end
s
n
:= c
{khai trin nh phn ca tng l (s
n
s
n-1
...s
1
s
0
)
2
}
Ton ri rc - Nguyn Gia nh 15
Tng hai s nguyn c tnh bng cch cng lin tip cc cp bit v khi cn
phi cng c s nh na. Cng mt cp bit v s nh i ba hoc t hn php cng cc
bit. Nh vy, tng s cc php cng bit c s dng nh hn ba ln s bit trong khai
trin nh phn. Do , phc tp ca thut ton ny l O(n).
2) Php nhn: Xt bi ton nhn hai s nguyn vit dng nh phn. Thut ton thng
thng tin hnh nh sau. Dng lut phn phi, ta c:
ab = a

=
1
0
2
n
j
j
j
b =

=
1
0
) 2 (
n
j
j
j
b a .
Ta c th tnh ab bng cch dng phng trnh trn. Trc ht, ta thy rng ab
j
=a nu
b
j
=1 v ab
j
=0 nu b
j
=0. Mi ln ta nhn mt s hng vi 2 l ta dch khai trin nh phn
ca n mt ch v pha tri bng cch thm mt s khng vo cui khai trin nh phn
ca n. Do , ta c th nhn c (ab
j
)2
j
bng cch dch khai trin nh phn ca ab
j
i j
ch v pha tri, tc l thm j s khng vo cui khai trin nh phn ca n. Cui cng,
ta s nhn c tch ab bng cch cng n s nguyn ab
j
.2
j
vi j=0, 1, ..., n-1.
Th d 9: Tm tch ca a = (110)
2
v b = (101)
2
.
Ta c ab
0
.2
0
= (110)
2
.1.2
0
= (110)
2
, ab
1
.2
1
= (110)
2
.0.2
1
= (0000)
2
, ab
2
.2
2
=
(110)
2
.1.2
2
= (11000)
2
. tm tch, hy cng (110)
2
, (0000)
2
v (11000)
2
. T ta c
ab= (11110)
2
.
Th tc trn c m t bng on gi m sau:
procedure nhn (a,b: positive integers)
for j := 0 to n-1
begin
if b
j
= 1 then c
j
:= a c dch i j ch
else c
j
:= 0
end
{c
0
, c
1
,..., c
n-1
l cc tch ring phn}
p := 0
for j := 0 to n-1
p := p + c
j
{p l gi tr ca tch ab}
Thut ton trn tnh tch ca hai s nguyn a v b bng cch cng cc tch ring
phn c
0
, c
1
, c
2
, ..., c
n-1
. Khi b
j
=1, ta tnh tch ring phn c
j
bng cch dch khai trin nh
phn ca a i j bit. Khi b
j
=0 th khng cn c dch chuyn no v c
j
=0. Do , tm tt
c n s nguyn ab
j
.2
j
vi j=0, 1, ..., n-1, i hi ti a l
0 + 1 + 2 + ... + n1 =
2
) 1 ( n n

php dch ch. V vy, s cc dch chuyn ch i hi l O(n
2
).
Ton ri rc - Nguyn Gia nh 16
cng cc s nguyn ab
j
t j=0 n n1, i hi phi cng mt s nguyn n bit,
mt s nguyn n+1 bit, ... v mt s nguyn 2n bit. Ta bit rng mi php cng
i hi O(n) php cng bit. Do , phc tp ca thut ton ny l O(n
2
).
1.5. THUT TON QUY.
1.5.1. Khi nim quy:
i khi chng ta c th quy vic gii bi ton vi tp cc d liu u vo xc
nh v vic gii cng bi ton nhng vi cc gi tr u vo nh hn. Chng hn, bi
ton tm UCLN ca hai s a, b vi a > b c th rt gn v bi ton tm CLN ca hai s
nh hn, a mod b v b. Khi vic rt gn nh vy thc hin c th li gii bi ton ban
u c th tm c bng mt dy cc php rt gn cho ti nhng trng hp m ta c
th d dng nhn c li gii ca bi ton. Ta s thy rng cc thut ton rt gn lin
tip bi ton ban u ti bi ton c d liu u vo nh hn, c p dng trong mt
lp rt rng cc bi ton.
nh ngha: Mt thut ton c gi l quy nu n gii bi ton bng cch rt gn
lin tip bi ton ban u ti bi ton cng nh vy nhng c d liu u vo nh hn.
Th d 10: Tm thut ton quy tnh gi tr a
n
vi a l s thc khc khng v n l s
nguyn khng m.
Ta xy dng thut ton quy nh nh ngha quy ca a
n
, l a
n+1
=a.a
n
vi
n>0 v khi n=0 th a
0
=1. Vy tnh a
n
ta quy v cc trng hp c s m n nh hn,
cho ti khi n=0.
procedure power (a: s thc khc khng; n: s nguyn khng m)
if n = 0 then power(a,n) := 1
else power(a,n) := a * power(a,n-1)
Th d 11: Tm thut ton quy tnh UCLN ca hai s nguyn a,b khng m v a > b.
procedure UCLN (a,b: cc s nguyn khng m, a > b)
if b = 0 then UCLN (a,b) := a
else UCLN (a,b) := UCLN (a mod b, b)
Th d 12: Hy biu din thut ton tm kim tuyn tnh nh mt th tc quy.
tm x trong dy tm kim a
1
,a
2
,...,a
n
trong bc th i ca thut ton ta so snh
x vi a
i
. Nu x bng a
i
th i l v tr cn tm, ngc li th vic tm kim c quy v dy
c s phn t t hn, c th l dy a
i+1
,...,a
n
. Thut ton tm kim c dng th tc quy
nh sau.
Cho search (i,j,x) l th tc tm s x trong dy a
i
, a
i+1
,..., a
j
. D liu u vo l b
ba (1,n,x). Th tc s dng khi s hng u tin ca dy cn li l x hoc l khi dy cn
li ch c mt phn t khc x. Nu x khng l s hng u tin v cn c cc s hng
khc th li p dng th tc ny, nhng dy tm kim t hn mt phn t nhn c bng
cch xa i phn t u tin ca dy tm kim bc va qua.
Ton ri rc - Nguyn Gia nh 17
procedure search (i,j,x)
if a
i
= x then loacation := i
else if i = j then loacation := 0
else search (i+1,j,x)
Th d 13: Hy xy dng phin bn quy ca thut ton tm kim nh phn.
Gi s ta mun nh v x trong dy a
1
, a
2
, ..., a
n
bng tm kim nh phn. Trc
tin ta so snh x vi s hng gia a
[(n+1)/2]
. Nu chng bng nhau th thut ton kt thc,
nu khng ta chuyn sang tm kim trong dy ngn hn, na u ca dy nu x nh hn
gi tr gia ca ca dy xut pht, na sau nu ngc li. Nh vy ta rt gn vic gii
bi ton tm kim v vic gii cng bi ton nhng trong dy tm kim c di ln
lt gim i mt na.
procedure binary search (x,i,j)
m := [(i+j)/2]
if x = a
m
then loacation := m
else if (x < a
m
and i < m) then binary search (x,i,m-1)
else if (x > a
m
and j > m) then binary search (x,m+1,j)
else loacation := 0
1.5.2. quy v lp:
Th d 14. Th tc quy sau y cho ta gi tr ca n! vi n l s nguyn dng.
procedure factorial (n: positive integer)
if n = 1 then factorial(n) := 1
else factorial(n) := n * factorial(n-1)
C cch khc tnh hm giai tha ca mt s nguyn t nh ngha quy ca n. Thay
cho vic ln lt rt gn vic tnh ton cho cc gi tr nh hn, ta c th xut pht t gi
tr ca hm ti 1v ln lt p dng nh ngha quy tm gi tr ca hm ti cc s
nguyn ln dn. l th tc lp.
procedure iterative factorial (n: positive integer)
x := 1
for i := 1 to n
x := i * x
{x l n!}
Thng thng tnh mt dy cc gi tr c nh ngha bng quy, nu dng
phng php lp th s cc php tnh s t hn l dng thut ton quy (tr khi dng
cc my quy chuyn dng). Ta s xem xt bi ton tnh s hng th n ca dy
Fibonacci.
procedure fibonacci (n: nguyn khng m)
Ton ri rc - Nguyn Gia nh 18
if n = 0 the fibonacci(n) := 0
else if n = 1 then fibonacci(n) := 1
else fibonacci(n) := fibonacci(n - 1) + fibonacci(n - 2)
Theo thut ton ny, tm f
n
ta biu din f
n
= f
n-1
+ f
n-2
. Sau thay th c hai s
ny bng tng ca hai s Fibonacci bc thp hn, c tip tc nh vy cho ti khi f
0
v f
1

xut hin th c thay bng cc gi tr ca chng theo nh ngha. Do tnh f
n
cn
f
n+1
-1 php cng.
By gi ta s tnh cc php ton cn dng tnh f
n
khi s dng phng php
lp. Th tc ny khi to x l f
0
= 0 v y l f
1
= 1. Khi vng lp c duyt qua tng ca
x v y c gn cho bin ph z. Sau x c gn gi tr ca y v y c gn gi tr
ca z. Vy sau khi i qua vng lp ln 1, ta c x = f
1
v y = f
0
+ f
1
= f
2
. Khi qua vng lp
ln n-1 th x = f
n-1
. Nh vy ch c n 1 php cng c dng tm f
n
khi n > 1.
procedure Iterative fibonacci (n: nguyn khng m)
if n = 0 then y := 0
else
begin
x := 0 ; y := 1
for i := 1 to n - 1
begin
z := x + y
x := y ; y := z
end
end
{y l s Fibonacci th n}
Ta ch ra rng s cc php ton dng trong thut ton quy nhiu hn khi
dng phng php lp. Tuy nhin i khi ngi ta vn thch dng th tc quy hn
ngay c khi n t ra km hiu qu so vi th tc lp. c bit, c nhng bi ton ch c
th gii bng th tc quy m khng th gii bng th tc lp.

BI TP CHNG I:

1. Tm mt s nguyn n nh nht sao cho f(x) l O(x
n
) i vi cc hm f(x) sau:
a) f(x) = 2x
3
+ x
2
log x.
b) f(x) = 2x
3
+ (log x)
4
.
c) f(x) =
1
1
3
2 4
+
+ +
x
x x

Ton ri rc - Nguyn Gia nh 19
d) f(x) =
1
log 5
4
5
+
+
x
x x
.
2. Chng minh rng
a) x
2
+ 4x + 7 l O(x
3
), nhng x
3
khng l O(x
2
+4x + 17).
b) xlog x l O(x
2
), nhng x
2
khng l O(xlog x).
3. Cho mt nh gi big-O i vi cc hm cho di y. i vi hm g(x) trong nh
gi f(x) l O(g(x)), hy chn hm n gin c bc thp nht.
a) nlog(n
2
+ 1) + n
2
logn.
b) (nlogn + 1)
2
+ (logn + 1)(n
2
+ 1).
c) .
2
2 n
n n
n
+
4. Cho H
n
l s iu ho th n:
H
n
= 1 +
2
1
+
3
1
+ ... +
n
1

Chng minh rng H
n
l O(logn).
5. Lp mt thut ton tnh tng tt c cc s nguyn trong mt bng.
6. Lp thut ton tnh x
n
vi x l mt s thc v n l mt s nguyn.
7. M t thut ton chn mt s nguyn x vo v tr thch hp trong dy cc s nguyn
a
1
, a
2
, ..., a
n
xp theo th t tng dn.
8. Tm thut ton xc nh v tr gp u tin ca phn t ln nht trong bng lit k cc
s nguyn, trong cc s ny khng nht thit phi khc nhau.
9. Tm thut ton xc nh v tr gp cui cng ca phn t nh nht trong bng lit k
cc s nguyn, trong cc s ny khng nht thit phi khc nhau.
10. M t thut ton m s cc s 1 trong mt xu bit bng cch kim tra mi bit ca
xu xc nh n c l bit 1 hay khng.
11. Thut ton tm kim tam phn. Xc nh v tr ca mt phn t trong mt bng lit
k cc s nguyn theo th t tng dn bng cch tch lin tip bng lit k thnh ba
bng lit k con c kch thc bng nhau (hoc gn bng nhau nht c th c) v gii
hn vic tm kim trong mt bng lit k con thch hp. Hy ch r cc bc ca thut
ton .
12. Lp thut ton tm trong mt dy cc s nguyn s hng u tin bng mt s hng
no ng trc n trong dy.
Ton ri rc - Nguyn Gia nh 20
13. Lp thut ton tm trong mt dy cc s nguyn tt c cc s hng ln hn tng tt
c cc s hng ng trc n trong dy.
14. Cho nh gi big-O i vi s cc php so snh c dng bi thut ton trong Bi
tp 10.
15. nh gi phc tp ca thut ton tm kim tam phn c cho trong Bi tp 11.
16. nh gi phc tp ca thut ton trong Bi tp 12.
17. M t thut ton tnh hiu ca hai khai trin nh phn.
18. Lp mt thut ton xc nh a > b, a = b hay a < b i vi hai s nguyn a v b
dng khai trin nh phn.
19. nh gi phc tp ca thut ton tm khai trin theo c s b ca s nguyn n qua
s cc php chia c dng.
20. Hy cho thut ton quy tm tng n s nguyn dng l u tin.
21. Hy cho thut ton quy tm s cc i ca tp hu hn cc s nguyn.
22. M t thut ton quy tm x
n
mod m vi n, x, m l cc s nguyn dng.
23. Hy ngh ra thut ton quy tnh trong a l mt s thc v n l mt s
nguyn dng.
n
a
2
24. Hy ngh ra thut ton quy tm s hng th n ca dy c xc nh nh sau:
a
0
=1, a
1
= 2 v a
n
= a
n-1
a
n-2
vi n = 2, 3, 4, ...
25. Thut ton quy hay thut ton lp tm s hng th n ca dy trong Bi tp 24 l
c hiu qu hn?

Ton ri rc - Nguyn Gia nh 21
CHNG II
BI TON M

L thuyt t hp l mt phn quan trng ca ton hc ri rc chuyn nghin cu
s phn b cc phn t vo cc tp hp. Thng thng cc phn t ny l hu hn v
vic phn b chng phi tho mn nhng iu kin nht nh no , ty theo yu cu
ca bi ton cn nghin cu. Mi cch phn b nh vy gi l mt cu hnh t hp. Ch
ny c nghin cu t th k 17, khi nhng cu hi v t hp c nu ra trong
nhng cng trnh nghin cu cc tr chi may ri. Lit k, m cc i tng c nhng
tnh cht no l mt phn quan trng ca l thuyt t hp. Chng ta cn phi m cc
i tng gii nhiu bi ton khc nhau. Hn na cc k thut m c dng rt
nhiu khi tnh xc sut ca cc bin c.
2.1. C S CA PHP M.
2.1.1. Nhng nguyn l m c bn:
1) Quy tc cng: Gi s c k cng vic T
1
, T
2
, ..., T
k
. Cc vic ny c th lm tng
ng bng n
1
, n
2
, ..., n
k
cch v gi s khng c hai vic no c th lm ng thi. Khi
s cch lm mt trong k vic l n
1
+n
2
+ ... + n
k
.
Th d 1: 1) Mt sinh vin c th chn bi thc hnh my tnh t mt trong ba danh
sch tng ng c 23, 15 v 19 bi. V vy, theo quy tc cng c 23 + 15 + 19 = 57
cch chn bi thc hnh.
2) Gi tr ca bin m bng bao nhiu sau khi on chng trnh sau c thc hin?
m := 0
for i
1
:= 1 to n
1
m := m+1
for i
2
:=1 to n
2
m := m+1
.......................
for i
k
:= 1 to n
k
m := m+1
Gi tr khi to ca m bng 0. Khi lnh ny gm k vng lp khc nhau. Sau mi
bc lp ca tng vng lp gi tr ca k c tng ln mt n v. Gi T
i
l vic thi
hnh vng lp th i. C th lm T
i
bng n
i
cch v vng lp th i c n
i
bc lp. Do cc
vng lp khng th thc hin ng thi nn theo quy tc cng, gi tr cui cng ca m
bng s cch thc hin mt trong s cc nhim v T
i
, tc l m = n
1
+n
2
+ ... + n
k
.
Quy tc cng c th pht biu di dng ca ngn ng tp hp nh sau: Nu A
1
,
A
2
, ..., A
k
l cc tp hp i mt ri nhau, khi s phn t ca hp cc tp hp ny
bng tng s cc phn t ca cc tp thnh phn. Gi s T
i
l vic chn mt phn t t
Ton ri rc - Nguyn Gia nh 22
tp A
i
vi i=1,2, ..., k. C |A
i
| cch lm T
i
v khng c hai vic no c th c lm
cng mt lc. S cch chn mt phn t ca hp cc tp hp ny, mt mt bng s phn
t ca n, mt khc theo quy tc cng n bng |A
1
|+|A
2
|+ ... +|A
k
|. Do ta c:
|A
1
A
2
... A
k
| = |A
1
| + |A
2
|

+ ... + |A
k
|.
2) Quy tc nhn: Gi s mt nhim v no c tch ra thnh k vic T
1
, T
2
, ..., T
k
.
Nu vic T
i
c th lm bng n
i
cch sau khi cc vic T
1
, T
2
, ... T
i-1
c lm, khi
c n
1
.n
2
....n
k
cch thi hnh nhim v cho.
Th d 2: 1) Ngi ta c th ghi nhn cho nhng chic gh trong mt ging ng bng
mt ch ci v mt s nguyn dng khng vt qu 100. Bng cch nh vy, nhiu
nht c bao nhiu chic gh c th c ghi nhn khc nhau?
Th tc ghi nhn cho mt chic gh gm hai vic, gn mt trong 26 ch ci v
sau gn mt trong 100 s nguyn dng. Quy tc nhn ch ra rng c 26.100=2600
cch khc nhau gn nhn cho mt chic gh. Nh vy nhiu nht ta c th gn nhn
cho 2600 chic gh.
2) C bao nhiu xu nh phn c di n.
Mi mt trong n bit ca xu nh phn c th chn bng hai cch v mi bit hoc
bng 0 hoc bng 1. Bi vy theo quy tc nhn c tng cng 2
n
xu nh phn khc nhau
c di bng n.
3) C th to c bao nhiu nh x t tp A c m phn t vo tp B c n phn t?
Theo nh ngha, mt nh x xc nh trn A c gi tr trn B l mt php tng
ng mi phn t ca A vi mt phn t no ca B. R rng sau khi chn c nh
ca i - 1 phn t u, chn nh ca phn t th i ca A ta c n cch. V vy theo quy
tc nhn, ta c n.n...n=n
m
nh x xc nh trn A nhn gi tr trn B.
4) C bao nhiu n nh xc nh trn tp A c m phn t v nhn gi tr trn tp B c n
phn t?
Nu m > n th vi mi nh x, t nht c hai phn t ca A c cng mt nh, iu
c ngha l khng c n nh t A n B. By gi gi s m n v gi cc phn t
ca A l a
1
,a
2
,...,a
m
. R rng c n cch chn nh cho phn t a
1
. V nh x l n nh
nn nh ca phn t a
2
phi khc nh ca a
1
nn ch c n - 1 cch chn nh cho phn t
a
2
. Ni chung, chn nh ca a
k
ta c n - k + 1 cch. Theo quy tc nhn, ta c
n(n 1)(n 2)...(n m + 1) =
n
n m
!
( ) !

n nh t tp A n tp B.
5) Gi tr ca bin k bng bao nhiu sau khi chng trnh sau c thc hin?
m := 0
for i
1
:= 1 to n
1
for i
2
:= 1 to n
2
Ton ri rc - Nguyn Gia nh 23
.......................
for i
k
:= 1 to n
k
k := k+1
Gi tr khi to ca k bng 0. Ta c k vng lp c lng nhau. Gi T
i
l vic thi
hnh vng lp th i. Khi s ln i qua vng lp bng s cch lm cc vic T
1
, T
2
, ...,
T
k
. S cch thc hin vic T
j
l n
j
(j=1, 2,..., k), v vng lp th j c duyt vi mi gi
tr nguyn i
j
nm gia 1 v n
j
. Theo quy tc nhn vng lp lng nhau ny c duyt
qua n
1
.n
2
....n
k
ln. V vy gi tr cui cng ca k l n
1
.n
2
....n
k
.
Nguyn l nhn thng c pht biu bng ngn ng tp hp nh sau. Nu A
1
,
A
2
,..., A
k
l cc tp hu hn, khi s phn t ca tch Descartes ca cc tp ny bng
tch ca s cc phn t ca mi tp thnh phn. Ta bit rng vic chn mt phn t ca
tch Descartes A
1
x A
2
x...x A
k
c tin hnh bng cch chn ln lt mt phn t ca
A
1
, mt phn t ca A
2
, ..., mt phn t ca A
k
. Theo quy tc nhn ta c:
|A
1
x A
2
x ... x A
k
| = |A
1
|.|A
2
|...|A
k
|.
2.1.2. Nguyn l b tr:
Khi hai cng vic c th c lm ng thi, ta khng th dng quy tc cng
tnh s cch thc hin nhim v gm c hai vic. tnh ng s cch thc hin nhim
v ny ta cng s cch lm mi mt trong hai vic ri tr i s cch lm ng thi c
hai vic. Ta c th pht biu nguyn l m ny bng ngn ng tp hp. Cho A
1
, A
2
l
hai tp hu hn, khi
|A
1
A
2
| = |A
1
| + |A
2
| |A
1
A
2
|.
T vi ba tp hp hu hn A
1
, A
2
, A
3
, ta c:
|A
1
A
2
A
3
| = |A
1
| + |A
2
| + |A
3
| |A
1
A
2
| |A
2
A
3
| |A
3
A
1
| + |A
1
A
2
A
3
|,
v bng quy np, vi k tp hu hn A
1
, A
2
, ..., A
k
ta c:
| A
1
A
2
... A
k
| = N
1
N
2
+ N
3
... + (1)
k-1
N
k
,
trong N
m
(1 m k) l tng phn t ca tt c cc giao m tp ly t k tp cho,
ngha l
N
m
= | ... |
... 1
2 1
2 1 m
m
i
k i i i
i i
A A A

< < <



By gi ta ng nht tp A
m
(1 m k) vi tnh cht A
m
cho trn tp v tr hu
hn U no v m xem c bao nhiu phn t ca U sao cho khng tha mn bt k
mt tnh cht A
m
no. Gi N l s cn m, N l s phn t ca U. Ta c:
N = N | A
1
A
2
... A
k
| = N N
1
+ N
2
... + (1)
k
N
k
,
trong N
m
l tng cc phn t ca U tha mn m tnh cht ly t k tnh cht cho.
Cng thc ny c gi l nguyn l b tr. N cho php tnh N qua cc N
m
trong
trng hp cc s ny d tnh ton hn.
Ton ri rc - Nguyn Gia nh 24
Th d 3: C n l th v n phong b ghi sn a ch. B ngu nhin cc l th vo cc
phong b. Hi xc sut xy ra khng mt l th no ng a ch.
Mi phong b c n cch b th vo, nn c tt c n! cch b th. Vn cn li
l m s cch b th sao cho khng l th no ng a ch. Gi U l tp hp cc cch
b th v A
m
l tnh cht l th th m b ng a ch. Khi theo cng thc v nguyn
l b tr ta c:
N = n! N
1
+ N
2
... + (1)
n
N
n
,
trong N
m
(1 m n) l s tt c cc cch b th sao cho c m l th ng a ch.
Nhn xt rng, N
m
l tng theo mi cch ly m l th t n l, vi mi cch ly m l th,
c (n-m)! cch b m l th ny ng a ch, ta nhn c:
N
m
= (n - m)! =
m
n
C
n
k
!
!
v N = n!(1
1
1!
+
1
2!
... + (1)
n

1
n!
),
trong =
m
n
C
)! ( !
!
m n m
n

l t hp chp m ca tp n phn t (s cch chn m i


tng trong n i tng c cho). T xc sut cn tm l: 1
1
1!
+
1
2!
... + (1)
n

1
n!
. Mt iu l th l xc sut ny dn n e
-
1
(ngha l cn >
1
3
) khi n kh ln.
S N trong bi ton ny c gi l s mt th t v c k hiu l D
n
. Di
y l mt vi gi tr ca D
n
, cho ta thy D
n
tng nhanh nh th no so vi n:
n 2 3 4 5 6 7 8 9 10 11
D
n
1 2 9 44 265 1854 14833 133496 1334961 14684570
2.2. NGUYN L DIRICHLET.
2.2.1. M u:
Gi s c mt n chim b cu bay vo chung. Nu s chim nhiu hn s ngn
chung th t nht trong mt ngn c nhiu hn mt con chim. Nguyn l ny d nhin l
c th p dng cho cc i tng khng phi l chim b cu v chung chim.
Mnh (Nguyn l): Nu c k+1 (hoc nhiu hn) vt c t vo trong k hp
th tn ti mt hp c t nht hai vt.
Chng minh: Gi s khng c hp no trong k hp cha nhiu hn mt vt. Khi
tng s vt c cha trong cc hp nhiu nht l bng k. iu ny tri gi thit l c t
nht k + 1 vt.
Nguyn l ny thng c gi l nguyn l Dirichlet, mang tn nh ton hc
ngi c th k 19. ng thng xuyn s dng nguyn l ny trong cng vic ca
mnh.
Th d 4: 1) Trong bt k mt nhm 367 ngi th no cng c t nht hai ngi c
ngy sinh nht ging nhau bi v ch c tt c 366 ngy sinh nht khc nhau.
Ton ri rc - Nguyn Gia nh 25
2) Trong k thi hc sinh gii, im bi thi c nh gi bi mt s nguyn trong
khong t 0 n 100. Hi rng t nht c bao nhiu hc sinh d thi cho chc chn tm
c hai hc sinh c kt qu thi nh nhau?
Theo nguyn l Dirichlet, s hc sinh cn tm l 102, v ta c 101 kt qu im
thi khc nhau.
3) Trong s nhng ngi c mt trn tri t, phi tm c hai ngi c hm rng
ging nhau. Nu xem mi hm rng gm 32 ci nh l mt xu nh phn c chiu di
32, trong rng cn ng vi bit 1 v rng mt ng vi bit 0, th c tt c 2
32
=
4.294.967.296 hm rng khc nhau. Trong khi s ngi trn hnh tinh ny l vt
qu 5 t, nn theo nguyn l Dirichlet ta c iu cn tm.
2.2.2. Nguyn l Dirichlet tng qut:
Mnh : Nu c N vt c t vo trong k hp th s tn ti mt hp cha t nht
] N/k[ vt.
( y, ] x[ l gi tr ca hm trn ti s thc x, l s nguyn nh nht c gi tr ln
hn hoc bng x. Khi nim ny i ngu vi [x] gi tr ca hm sn hay hm phn
nguyn ti x l s nguyn ln nht c gi tr nh hn hoc bng x.)
Chng minh: Gi s mi hp u cha t hn ] N/k[ vt. Khi tng s vt l
k (]
N
k
[ 1) < k
N
k
= N.
iu ny mu thun vi gi thit l c N vt cn xp.
Th d 5: 1) Trong 100 ngi, c t nht 9 ngi sinh cng mt thng.
Xp nhng ngi sinh cng thng vo mt nhm. C 12 thng tt c. Vy theo
nguyn l Dirichlet, tn ti mt nhm c t nht ] 100/12[ = 9 ngi.
2) C nm loi hc bng khc nhau. Hi rng phi c t nht bao nhiu sinh vin
chc chn rng c t ra l 6 ngi cng nhn hc bng nh nhau.
Gi N l s sinh vin, khi ] N/5[ = 6 khi v ch khi 5 < N/5 6 hay 25 < N
30. Vy s N cn tm l 26.
3) S m vng cn thit nh nht phi l bao nhiu m bo 25 triu my in thoi
trong nc c s in thoi khc nhau, mi s c 9 ch s (gi s s in thoi c dng
0XX - 8XXXXX vi X nhn cc gi tr t 0 n 9).
C 10
7
= 10.000.000 s in thoi khc nhau c dng 0XX - 8XXXXX. V vy
theo nguyn l Dirichlet tng qut, trong s 25 triu my in thoi t nht c
] 25.000.000/10.000.000[ = 3 c cng mt s. m bo mi my c mt s cn c t
nht 3 m vng.
2.2.3. Mt s ng dng ca nguyn l Dirichlet.
Trong nhiu ng dng th v ca nguyn l Dirichlet, khi nim vt v hp
cn phi c la chn mt cch khn kho. Trong phn nay c vi th d nh vy.
Ton ri rc - Nguyn Gia nh 26
Th d 6: 1) Trong mt phng hp c n ngi, bao gi cng tm c 2 ngi c s
ngi quen trong s nhng ngi d hp l nh nhau.
S ngi quen ca mi ngi trong phng hp nhn cc gi tr t 0 n n 1. R
rng trong phng khng th ng thi c ngi c s ngi quen l 0 (tc l khng
quen ai) v c ngi c s ngi quen l n 1 (tc l quen tt c). V vy theo s lng
ngi quen, ta ch c th phn n ngi ra thnh n 1 nhm. Vy theo nguyn l
Dirichlet tn tai mt nhm c t nht 2 ngi, tc l lun tm c t nht 2 ngi c s
ngi quen l nh nhau.
2) Trong mt thng gm 30 ngy, mt i bng chuyn thi u mi ngy t nht 1 trn
nhng chi khng qu 45 trn. Chng minh rng tm c mt giai on gm mt s
ngy lin tc no trong thng sao cho trong giai on i chi ng 14 trn.
Gi a
j
l s trn m i chi t ngy u thng n ht ngy j. Khi
1 a
1
< a
2
< ... < a
30
< 45
15 a
1
+14

< a
2
+14 < ... < a
30
+14 < 59.
Su mi s nguyn a
1
, a
2
, ..., a
30
, a
1
+ 14, a
2
+ 14, ..., a
30
+14 nm gia 1 v 59. Do
theo nguyn l Dirichlet c t nht 2 trong 60 s ny bng nhau. V vy tn ti i v j sao
cho ai

= aj

+ 14 (j < i). iu ny c ngha l t ngy j + 1 n ht ngy i i chi
ng 14 trn.
3) Chng t rng trong n + 1 s nguyn dng khng vt qu 2n, tn ti t nht mt s
chia ht cho s khc.
Ta vit mi s nguyn a
1
, a
2
,..., a
n+1
di dng a
j
= q
j
k
2
j
trong k
j
l s nguyn
khng m cn q
j
l s dng l nh hn 2n. V ch c n s nguyn dng l nh hn 2n
nn theo nguyn l Dirichlet tn ti i v j sao cho q
i
= q
j
= q. Khi a
i
= q v aj =
q. V vy, nu k
i
k
2
j
k
2
i
k
j
th a
j
chia ht cho a
i
cn trong trng hp ngc li ta c a
i

chia ht cho a
j
.
Th d cui cng trnh by cch p dng nguyn l Dirichlet vo l thuyt t hp
m vn quen gi l l thuyt Ramsey, tn ca nh ton hc ngi Anh. Ni chung, l
thuyt Ramsey gii quyt nhng bi ton phn chia cc tp con ca mt tp cc phn t.
Th d 7. Gi s trong mt nhm 6 ngi mi cp hai hoc l bn hoc l th. Chng t
rng trong nhm c ba ngi l bn ln nhau hoc c ba ngi l k th ln nhau.
Gi A l mt trong 6 ngi. Trong s 5 ngi ca nhm hoc l c t nht ba
ngi l bn ca A hoc c t nht ba ngi l k th ca A, iu ny suy ra t nguyn
l Dirichlet tng qut, v ] 5/2[ = 3. Trong trng hp u ta gi B, C, D l bn ca A.
nu trong ba ngi ny c hai ngi l bn th h cng vi A lp thnh mt b ba ngi
bn ln nhau, ngc li, tc l nu trong ba ngi B, C, D khng c ai l bn ai c th
chng t h l b ba ngi th ln nhau. Tng t c th chng minh trong trng hp
c t nht ba ngi l k th ca A.
Ton ri rc - Nguyn Gia nh 27
2.3. CHNH HP V T HP SUY RNG.
2.3.1. Chnh hp c lp.
Mt cch sp xp c th t k phn t c th lp li ca mt tp n phn t c
gi l mt chnh hp lp chp k t tp n phn t. Nu A l tp gm n phn t th mi
chnh hp nh th l mt phn t ca tp A
k
. Ngoi ra, mi chnh hp lp chp k t tp
n phn t l mt hm t tp k phn t vo tp n phn t. V vy s chnh hp lp chp k
t tp n phn t l n
k
.
2.3.2. T hp lp.
Mt t hp lp chp k ca mt tp hp l mt cch chn khng c th t k phn
t c th lp li ca tp cho. Nh vy mt t hp lp kiu ny l mt dy khng k
th t gm k thnh phn ly t tp n phn t. Do c th l k > n.
Mnh 1: S t hp lp chp k t tp n phn t bng .
k
k n
C
1 +
Chng minh. Mi t hp lp chp k t tp n phn t c th biu din bng mt dy n1
thanh ng v k ngi sao. Ta dng n 1 thanh ng phn cch cc ngn. Ngn th i
cha thm mt ngi sao mi ln khi phn t th i ca tp xut hin trong t hp. Chng
hn, t hp lp chp 6 ca 4 phn t c biu th bi:
* * | * | | * * *
m t t hp cha ng 2 phn t th nht, 1 phn t th hai, khng c phn t th 3 v
3 phn t th t ca tp hp.
Mi dy n 1 thanh v k ngi sao ng vi mt xu nh phn di n + k 1 vi
k s 1. Do s cc dy n 1 thanh ng v k ngi sao chnh l s t hp chp k t tp
n + k 1 phn t. l iu cn chng minh.
Thi d 8: 1) C bao nhiu cch chn 5 t giy bc t mt kt ng tin gm nhng t
1000, 2000, 5000, 10.000, 20.000, 50.000, 100.000. Gi s th t m cc t
tin c chn l khng quan trng, cc t tin cng loi l khng phn bit v mi loi
c t nht 5 t.
V ta khng k ti th t chn t tin v v ta chn ng 5 ln, mi ln ly mt t
1 trong 7 loi tin nn mi cch chn 5 t giy bc ny chnh l mt t hp lp chp 5 t
7 phn t. Do s cn tm l = 462.
5
1 5 7 +
C
2) Phng trnh x
1
+ x
2
+ x
3
= 15 c bao nhiu nghim nguyn khng m?
Chng ta nhn thy mi nghim ca phng trnh ng vi mt cch chn 15
phn t t mt tp c 3 loi, sao cho c x
1
phn t loi 1, x
2
phn t loi 2 v x
3
phn t
loi 3 c chn. V vy s nghim bng s t hp lp chp 15 t tp c 3 phn t v
bng = 136.
15
1 15 3 +
C
2.3.3. Hon v ca tp hp c cc phn t ging nhau.
Trong bi ton m, mt s phn t c th ging nhau. Khi cn phi cn thn,
trnh m chng hn mt ln. Ta xt th d sau.
Ton ri rc - Nguyn Gia nh 28
Th d 9: C th nhn c bao nhiu xu khc nhau bng cch sp xp li cc ch ci
ca t SUCCESS?
V mt s ch ci ca t SUCCESS l nh nhau nn cu tr li khng phi l s
hon v ca 7 ch ci c. T ny cha 3 ch S, 2 ch C, 1 ch U v 1 ch E. xc
nh s xu khc nhau c th to ra c ta nhn thy c C(7,3) cch chn 3 ch cho 3
ch S, cn li 4 ch trng. C C(4,2) cch chn 2 ch cho 2 ch C, cn li 2 ch trng.
C th t ch U bng C(2,1) cch v C(1,1) cch t ch E vo xu. Theo nguyn l
nhn, s cc xu khc nhau c th to c l:
3
7
C . . . =
2
4
C
1
2
C
1
1
C
7 4 2 1
3 4 2 2 1 1 1 0
! ! ! !
!. !. !. !. !. !. !. !
=
7
3 2 1 1
!
!. !. !. !
= 420.
Mnh 2: S hon v ca n phn t trong c n
1
phn t nh nhau thuc loi 1, n
2

phn t nh nhau thuc loi 2, ..., v n
k
phn t nh nhau thuc loi k, bng

! !.... !.
!
2 1 k
n n n
n
.
Chng minh. xc nh s hon v trc tin chng ta nhn thy c cch gi n
1
n
n
C
1

ch cho n
1
phn t loi 1, cn li n - n
1
ch trng. Sau c cch t n
2
1
n
n n
C

2
phn t
loi 2 vo hon v, cn li n - n
1
- n
2
ch trng. Tip tc t cc phn t loi 3, loi 4,...,
loi k - 1vo ch trng trong hon v. Cui cng c cch t n
k
k
n
n n n
C
1 1
...


k
phn t loi
k vo hon v. Theo quy tc nhn tt c cc hon v c th l:
1
n
n
C . .... =
2
1
n
n n
C

k
k
n
n n n
C
1 1
...


! !.... !.
!
2 1 k
n n n
n
.
2.3.4. S phn b cc vt vo trong hp.
Th d 10: C bao nhiu cch chia nhng xp bi 5 qun cho mi mt trong 4 ngi
chi t mt c bi chun 52 qun?
Ngi u tin c th nhn c 5 qun bi bng cch. Ngi th hai c th
c chia 5 qun bi bng cch, v ch cn 47 qun bi. Ngi th ba c th nhn
c 5 qun bi bng cch. Cui cng, ngi th t nhn c 5 qun bi bng
cch. V vy, theo nguyn l nhn tng cng c
5
52
C
5
47
C
5
42
C
5
37
C
5
52
C . . . =
5
47
C
5
42
C
5
37
C
52!
5 5 5 5 32! !. !. !. !.

cch chia cho 4 ngi mi ngi mt xp 5 qun bi.
Th d trn l mt bi ton in hnh v vic phn b cc vt khc nhau vo
cc hp khc nhau. Cc vt l 52 qun bi, cn 4 hp l 4 ngi chi v s cn li
trn bn. S cch sp xp cc vt vo trong hp c cho bi mnh sau
Mnh 3: S cch phn chia n vt khc nhau vo trong k hp khc nhau sao cho
c n
i
vt c t vo trong hp th i, vi i = 1, 2, ..., k bng
Ton ri rc - Nguyn Gia nh 29
)! ... !.( !.... !.
!
1 2 1 k k
n n n n n n
n

.
2.4. SINH CC HON V V T HP.
2.4.1. Sinh cc hon v:
C nhiu thut ton c pht trin sinh ra n! hon v ca tp {1,2,...,n}. Ta
s m t mt trong cc phng php , phng php lit k cc hon v ca tp
{1,2,...,n} theo th t t in. Khi , hon v a
1
a
2
...a
n
c gi l i trc hon v
b
1
b
2
...b
n
nu tn ti k (1 k n), a
1
= b
1
, a
2
= b
2
,..., a
k-1
= b
k-1
v a
k
< b
k
.
Thut ton sinh cc hon v ca tp {1,2,...,n} da trn th tc xy dng hon v
k tip, theo th t t in, t hon v cho trc a
1
a
2
...a
n
. u tin nu a
n-1
< a
n
th r
rng i ch a
n-1
v a
n
cho nhau th s nhn c hon v mi i lin sau hon v cho.
Nu tn ti cc s nguyn a
j
v a
j+1
sao cho a
j
< a
j+1
v a
j+1
> a
j+2
> ... > a
n
, tc l tm cp
s nguyn lin k u tin tnh t bn phi sang bn tri ca hon v m s u nh hn
s sau. Sau , nhn c hon v lin sau ta t vo v tr th j s nguyn nh nht
trong cc s ln hn a
j
ca tp a
j+1
, a
j+2
, ..., a
n
, ri lit k theo th t tng dn ca cc s
cn li ca a
j
, a
j+1
, a
j+2
, ..., a
n
vo cc v tr j+1, ..., n. D thy khng c hon v no i
sau hon v xut pht v i trc hon v va to ra.
Th d 11: Tm hon v lin sau theo th t t in ca hon v 4736521.
Cp s nguyn u tin tnh t phi qua tri c s trc nh hn s sau l a
3
= 3
v a
4
= 6. S nh nht trong cc s bn phi ca s 3 m li ln hn 3 l s 5. t s 5
vo v tr th 3. Sau t cc s 3, 6, 1, 2 theo th t tng dn vo bn v tr cn li.
Hon v lin sau hon v cho l 4751236.
procedure Hon v lin sau (a
1
, a
2
, ..., an) (hon v ca {1,2,...,n} khc (n, n1, ..., 2, 1))
j := n 1
while a
j
> a
j+1
j := j 1 {j l ch s ln nht m a
j
< a
j+1
}
k := n
while a
j
> a
k
k := k - 1 {a
k
l s nguyn nh nht trong cc s ln hn a
j
v bn phi a
j
}
i ch (a
j
, a
k
)
r := n
s := j + 1
while r > s
i ch (a
r
, a
s
)
r := r - 1 ; s := s + 1
{iu ny s xp phn ui ca hon v sau v tr th j theo th t tng dn.}

Ton ri rc - Nguyn Gia nh 30
2.4.2. Sinh cc t hp:
Lm th no to ra tt c cc t hp cc phn t ca mt tp hu hn? V t
hp chnh l mt tp con, nn ta c th dng php tng ng 1-1 gia cc tp con ca
{a
1
,a
2
,...,a
n
} v xu nh phn di n.
Ta thy mt xu nh phn di n cng l khai trin nh phn ca mt s nguyn
nm gia 0 v 2
n
1. Khi 2
n
xu nh phn c th lit k theo th t tng dn ca s
nguyn trong biu din nh phn ca chng. Chng ta s bt u t xu nh phn nh
nht 00...00 (n s 0). Mi bc tm xu lin sau ta tm v tr u tin tnh t phi qua
tri m l s 0, sau thay tt c s 1 bn phi s ny bng 0 v t s 1 vo
chnh v tr ny.
procedure Xu nh phn lin sau (b
n-1
b
n-2
...b
1
b
0
): xu nh phn khc (11...11)
i := 0
while b
i
= 1
begin
b
i
:= 0
i := i + 1
end
b
i
:= 1
Tip theo chng ta s trnh by thut ton to cc t hp chp k t n phn t
{1,2,...,n}. Mi t hp chp k c th biu din bng mt xu tng. Khi c th lit k
cc t hp theo th t t in. C th xy dng t hp lin sau t hp a
1
a
2
...a
k
bng cch
sau. Trc ht, tm phn t u tin a
i
trong dy cho k t phi qua tri sao cho a
i
n
k + i. Sau thay a
i
bng a
i
+ 1 v a
j
bng a
i
+ j i + 1 vi j = i + 1, i + 2, ..., k.
Th d 12: Tm t hp chp 4 t tp {1, 2, 3, 4, 5, 6} i lin sau t hp {1, 2, 5, 6}.
Ta thy t phi qua tri a
2
= 2 l s hng u tin ca t hp cho tha mn
iu kin a
i
6 4 + i. nhn c t hp tip sau ta tng a
i
ln mt n v, tc a
2
=
3, sau t a
3
= 3 + 1 = 4 v a
4
= 3 + 2 = 5. Vy t hp lin sau t hp cho l
{1,3,4,5}. Th tc ny c cho di dng thut ton nh sau.
procedure T hp lin sau ({a
1
, a
2
, ..., a
k
}: tp con thc s ca tp {1, 2, ..., n} khng
bng {n k + 1, ..., n} vi a
1
< a
2
< ... < a
k
)
i := k
while a
i
= n k + i
i := i 1
a
i
:= a
i
+ 1
for j := i + 1 to k
a
j
:= a
i
+ j i

Ton ri rc - Nguyn Gia nh 31
2.5. H THC TRUY HI.
2.5.1. Khi nim m u v m hnh ha bng h thc truy hi:
i khi ta rt kh nh ngha mt i tng mt cch tng minh. Nhng c th
d dng nh ngha i tng ny qua chnh n. K thut ny c gi l quy. nh
ngha quy ca mt dy s nh r gi tr ca mt hay nhiu hn cc s hng u tin
v quy tc xc nh cc s hng tip theo t cc s hng i trc. nh ngha quy c
th dng gii cc bi ton m. Khi quy tc tm cc s hng t cc s hng i
trc c gi l cc h thc truy hi.
nh ngha 1: H thc truy hi (hay cng thc truy hi) i vi dy s {a
n
} l cng
thc biu din a
n
qua mt hay nhiu s hng i trc ca dy. Dy s c gi l li
gii hay nghim ca h thc truy hi nu cc s hng ca n tha mn h thc truy hi
ny.
Th d 13 (Li kp): 1) Gi s mt ngi gi 10.000 la vo ti khon ca mnh ti
mt ngn hng vi li sut kp 11% mi nm. Sau 30 nm anh ta c bao nhiu tin
trong ti khon ca mnh?
Gi P
n
l tng s tin c trong ti khon sau n nm. V s tin c trong ti khon
sau n nm bng s c sau n 1 nm cng li sut ca nm th n, nn ta thy dy {P
n
}
tho mn h thc truy hi sau:
P
n
= P
n-1
+ 0,11P
n-1
= (1,11)P
n-1
vi iu kin u P
0
= 10.000 la. T suy ra P
n
= (1,11)
n
.10.000. Thay n = 30 cho
ta P
30
= 228922,97 la.
2) Tm h thc truy hi v cho iu kin u tnh s cc xu nh phn di n
v khng c hai s 0 lin tip. C bao nhiu xu nh phn nh th c di bng 5?
Gi a
n
l s cc xu nh phn di n v khng c hai s 0 lin tip. nhn
c h thc truy hi cho {a
n
}, ta thy rng theo quy tc cng, s cc xu nh phn
di n v khng c hai s 0 lin tip bng s cc xu nh phn nh th kt thc bng s 1
cng vi s cc xu nh th kt thc bng s 0. Gi s n 3.
Cc xu nh phn di n, khng c hai s 0 lin tip kt thc bng s 1 chnh l
xu nh phn nh th, di n 1 v thm s 1 vo cui ca chng. Vy chng c tt c
l a
n-1
. Cc xu nh phn di n, khng c hai s 0 lin tip v kt thc bng s 0, cn
phi c bit th n 1 bng 1, nu khng th chng c hai s 0 hai bit cui cng. Trong
trng hp ny chng c tt c l a
n-2
. Cui cng ta c c:
a
n
= a
n-1
+ a
n-2
vi n 3.
iu kin u l a
1
= 2 v a
2
= 3. Khi a
5
= a
4
+ a
3
= a
3
+ a
2
+ a
3
= 2(a
2
+ a
1
) + a
2
= 13.
2.5.2. Gii cc h thc truy hi.
nh ngha 2: Mt h thc truy hi tuyn tnh thun nht bc k vi h s hng s l h
thc truy hi c dng:
Ton ri rc - Nguyn Gia nh 32
a
n
= c
1
a
n-1
+ c
2
a
n-2
+ ... + c
k
a
n-k
,
trong c
1
, c
2
, ..., c
k
l cc s thc v c
k
0.
Theo nguyn l ca quy np ton hc th dy s tha mn h thc truy hi nu
trong nh ngha c xc nh duy nht bng h thc truy hi ny v k iu kin u:
a
0
= C
0
, a
1
= C
1
, ..., a
k-1
= C
k-1
.
Phng php c bn gii h thc truy hi tuyn tnh thun nht l tm nghim
di dng a
n
= r
n
, trong r l hng s. Ch rng a
n
= r
n
l nghim ca h thc truy
hi a
n
= c
1
a
n-1
+ c
2
a
n-2
+ ... + c
k
a
n-k
nu v ch nu
r
n
= c
1
r
n
-
1
+ c
2
r
n
-
2
+ ... + c
k
r
n
-
k
hay r
k
c
1
r
k
-
1
c
2
r
k
-
2
... c
k-1
r c
k
= 0.
Phng trnh ny c gi l phng trnh c trng ca h thc truy hi, nghim ca
n gi l nghim c trng ca h thc truy hi.
Mnh : Cho c
1
, c
2
, ..., c
k
l cc s thc. Gi s rng phng trnh c trng
r
k
c
1
r
k
-
1
c
2
r
k
-
2
... c
k-1
r c
k
= 0
c k nghim phn bit r
1
, r
2
, ..., r
k
. Khi dy {a
n
} l nghim ca h thc truy hi a
n
=
c
1
a
n-1
+ c
2
a
n-2
+ ... + c
k
a
n-k
nu v ch nu a
n
=
1
r
1
n
+
2
r
2
n
+ ... +
k
r
k
n
, vi n = 1, 2, ...
trong
1
,
2
, ...,
k
l cc hng s.
Th d 14: 1) Tm cng thc hin ca cc s Fibonacci.
Dy cc s Fibonacci tha mn h thc f
n
= f
n-1
+ f
n-2
v cc iu kin u f
0
= 0
v f
1
= 1. Cc nghim c trng l r
1
=
1
2
+ 5
v r
2
=
1 5
2

. Do cc s Fibonacci
c cho bi cng thc f
n
=
1
(
1
2
+ 5
)
n
+
2
(
1 5
2

)
n
. Cc iu kin ban u f
0
= 0 =

1
+
2
v f
1
= 1 =
1
(
1 5
2
+
) +
2
(
1 5
2

). T hai phng trnh ny cho ta


1
=
1
5
,

2
= -
1
5
. Do cc s Fibonacci c cho bi cng thc hin sau:
f
n
=
1
5
(
1
2
+ 5
)
n
-
1
5
(
1 5
2

)
n
.
2) Hy tm nghim ca h thc truy hi a
n
= 6a
n-1
- 11a
n-2
+ 6a
n-3
vi iu kin
ban u a
0
= 2, a
1
= 5 v a
2
= 15.
a thc c trng ca h thc truy hi ny l r
3
- 6r
2
+ 11r - 6. Cc nghim c
trng l r = 1, r = 2, r = 3. Do vy nghim ca h thc truy hi c dng
a
n
=
1
1
n
+
2
2
n
+
3
3
n
.
Cc iu kin ban u a
0
= 2 =
1
+
2
+
3
a
1
= 5 =
1
+
2
2 +
3
3
a
2
= 15 =
1
+
2
4 +
3
9.
Gii h cc phng trnh ny ta nhn c
1
= 1,
2
= 1,
3
= 2. V th, nghim duy
nht ca h thc truy hi ny v cc iu kin ban u cho l dy {a
n
} vi
Ton ri rc - Nguyn Gia nh 33
a
n
= 1 2
n
+ 2.3
n
.
2.6. QUAN H CHIA TR.
2.6.1. M u:
Nhiu thut ton quy chia bi ton vi cc thng tin vo cho thnh mt hay
nhiu bi ton nh hn. S phn chia ny c p dng lin tip cho ti khi c th tm
c li gii ca bi ton nh mt cch d dng. Chng hn, ta tin hnh vic tm kim
nh phn bng cch rt gn vic tm kim mt phn t trong mt danh sch ti vic tm
phn t trong mt danh sch c di gim i mt na. Ta rt gn lin tip nh vy
cho ti khi cn li mt phn t. Mt v d khc l th tc nhn cc s nguyn. Th tc
ny rt gn bi ton nhn hai s nguyn ti ba php nhn hai s nguyn vi s bit gim
i mt na. Php rt gn ny c dng lin tip cho ti khi nhn c cc s nguyn
c mt bit. Cc th tc ny gi l cc thut ton chia tr.
2.6.2. H thc chia tr:
Gi s rng mt thut ton phn chia mt bi ton c n thnh a bi ton nh,
trong mi bi ton nh c c
n
b
( n gin gi s rng n chia ht cho b; trong thc
t cc bi ton nh thng c c [
n
b
] hoc ]
n
b
[ ). Gi s rng tng cc php ton thm
vo khi thc hin phn chia bi ton c n thnh cc bi ton c c nh hn l g(n). Khi
, nu f(n) l s cc php ton cn thit gii bi ton cho th f tha mn h thc
truy hi sau:
f(n) = af(
n
b
) + g(n)
H thc ny c tn l h thc truy hi chia tr.
Th d 15: 1) Thut ton tm kim nh phn a bi ton tm kim c n v bi ton tm kim
phn t ny trong dy tm kim c n/2, khi n chn. Khi thc hin vic rt gn cn hai php so
snh. V th, nu f(n) l s php so snh cn phi lm khi tm kim mt phn t trong danh sch
tm kim c n ta c f(n) = f(n/2) + 2, nu n l s chn.
2) C cc thut ton hiu qu hn thut ton thng thng nhn hai s nguyn.
y ta s c mt trong cc thut ton nh vy. l thut ton phn nhanh, c dng
k thut chia tr. Trc tin ta phn chia mi mt trong hai s nguyn 2n bit thnh
hai khi mi khi n bit. Sau php nhn hai s nguyn 2n bit ban u c thu v ba
php nhn cc s nguyn n bit cng vi cc php dch chuyn v cc php cng.
Gi s a v b l cc s nguyn c cc biu din nh phn di 2n l
a = (a
2n-1
a
2n-2
... a
1
a
0
)
2
v b = (b
2n-1
b
2n-2
... b
1
b
0
)
2
.
Gi s a = 2
n
A
1
+ A
0
, b = 2
n
B
1
+ B
0
, trong
A
1
= (a
2n-1
a
2n-2
... a
n+1
a
n
)
2
, A
0
= (a
n-1
... a
1
a
0
)
2
B
1
= (b
2n-1
b
2n-2
... b
n+1
b
n
)
2
, B
0
= (b
n-1
... b
1
b
0
)
2
.
Thut ton nhn nhanh cc s nguyn da trn ng thc:
Ton ri rc - Nguyn Gia nh 34
ab = (2
2n
+ 2
n
)A
1
B
1
+ 2
n
(A
1
- A
0
)(B
0
- B
1
) + (2
n
+ 1)A
0
B
0
.
ng thc ny ch ra rng php nhn hai s nguyn 2n bit c th thc hin bng cch
dng ba php nhn cc s nguyn n bit v cc php cng, tr v php dch chuyn.
iu c ngha l nu f(n) l tng cc php ton nh phn cn thit nhn hai s
nguyn n bit th
f(2n) = 3f(n) + Cn.
Ba php nhn cc s nguyn n bit cn 3f(n) php ton nh phn. Mi mt trong cc php
cng, tr hay dch chuyn dng mt hng s nhn vi n ln cc php ton nh phn v
Cn l tng cc php ton nh phn c dng khi lm cc php ton ny.
Mnh 1: Gi s f l mt hm tng tho mn h thc truy hi f(n) = af(
n
b
) + c vi
mi n chia ht cho b, a 1, b l s nguyn ln hn 1, cn c l s thc dng. Khi
f(n) = .

=
>
1 , ) (log
1 , ) (
log
a n O
a n O
a
b
Mnh 2: Gi s f l hm tng tho mn h thc truy hi f(n) = af(
n
b
) + cn
d
vi mi
n = b
k
, trong k l s nguyn dng, a 1, b l s nguyn ln hn 1, cn c v d l cc
s thc dng. Khi
f(n) = .

<
=
>
d d
d d
d a
b a n O
b a n n O
b a n O
b
, ) (
, ) log (
, ) (
log
Th d 16: Hy c lng s php ton nh phn cn dng khi nhn hai s nguyn n bit
bng thut ton nhn nhanh.
Th d 15.2 ch ra rng f(n) = 3f(n/2) + Cn, khi n chn. V th, t Mnh 2 ta
suy ra f(n) = O( ). Ch l log
3 log
2
n
2
3 1,6. V thut ton nhn thng thng dng
O(n
2
) php ton nh phn, thut ton nhn nhanh s thc s tt hn thut ton nhn
thng thng khi cc s nguyn l ln.

BI TP CHNG II:

1. Trong tng s 2504 sinh vin ca mt khoa cng ngh thng tin, c 1876 theo hc
mn ngn ng lp trnh Pascal, 999 hc mn ngn ng Fortran v 345 hc ngn ng C.
Ngoi ra cn bit 876 sinh vin hc c Pascal v Fortran, 232 hc c Fortran v C, 290
hc c Pascal v C. Nu 189 sinh vin hc c 3 mn Pascal, Fortran v C th trong
trng hp c bao nhiu sinh vin khng hc mn no trong 3 mn ngn ng lp
trnh k trn.
Ton ri rc - Nguyn Gia nh 35
2. Mt cuc hp gm 12 ngi tham d bn v 3 vn . C 8 ngi pht biu v
vn I, 5 ngi pht biu v vn II v 7 ngi pht biu v vn III. Ngoi ra, c
ng 1 ngi khng pht biu vn no. Hi nhiu lm l c bao nhiu ngi pht
biu c 3 vn .
3. Ch ra rng c t nht 4 ngi trong s 25 triu ngi c cng tn h vit tt bng 3
ch ci sinh cng ngy trong nm (khng nht thit trong cng mt nm).
4. Mt tay vt tham gia thi u ginh chc v ch trong 75 gi. Mi gi anh ta c t
nht mt trn u, nhng ton b anh ta c khng qu 125 trn. Chng t rng c nhng
gi lin tip anh ta u ng 24 trn.
5. Cho n l s nguyn dng bt k. Chng minh rng lun ly ra c t n s cho
mt s s hng thch hp sao cho tng ca chng chia ht cho n.
6. Trong mt cuc ly kin v 7 vn , ngi c hi ghi vo mt phiu tr li sn
bng cch nguyn hoc ph nh cc cu tr li tng ng vi 7 vn nu.
Chng minh rng vi 1153 ngi c hi lun tm c 10 ngi tr li ging
ht nhau.
7. C 17 nh bc hc vit th cho nhau trao i 3 vn . Chng minh rng lun tm
c 3 ngi cng trao i mt vn .
8. Trong k thi kt thc hc phn ton hc ri rc c 10 cu hi. C bao nhiu cch gn
im cho cc cu hi nu tng s im bng 100 v mi cu t nht c 5 im.
9. Phng trnh x
1
+ x
2
+ x
3
+ x
4
+ x
5
= 21 c bao nhiu nghim nguyn khng m?
10. C bao nhiu xu khc nhau c th lp c t cc ch ci trong t MISSISSIPI,
yu cu phi dng tt c cc ch?
11. Mt gio s ct b su tp gm 40 s bo ton hc vo 4 chic ngn t, mi ngn
ng 10 s. C bao nhiu cch c th ct cc t bo vo cc ngn nu:
1) Mi ngn c nh s sao cho c th phn bit c;
2) Cc ngn l ging ht nhau?
12. Tm h thc truy hi cho s mt th t D
n
.
13. Tm h thc truy hi cho s cc xu nh phn cha xu 01.
14. Tm h thc truy hi cho s cch i ln n bc thang nu mt ngi c th bc mt,
hai hoc ba bc mt ln.
15. 1) Tm h thc truy hi m R
n
tho mn, trong R
n
l s min ca mt phng b
phn chia bi n ng thng nu khng c hai ng no song song v khng c 3
ng no cng i qua mt im.
b) Tnh R
n
bng phng php lp.
16. Tm nghim ca h thc truy hi a
n
= 2a
n-1
+ 5a
n-2
- 6a
n-3
vi a
0
= 7, a
1
= -4, a
2
= 8.

Ton ri rc - Nguyn Gia nh 36
CHNG III
TH

L thuyt th l mt ngnh khoa hc c pht trin t lu nhng li c nhiu
ng dng hin i. Nhng tng c bn ca n c a ra t th k 18 bi nh ton
hc Thy S tn l Leonhard Euler. ng dng th gii quyt bi ton 7 chic
cu Konigsberg ni ting.
th cng c dng gii cc bi ton trong nhiu lnh vc khc nhau. Th
d, dng th xc nh xem c thc hin mt mch in trn mt bng in phng
c khng. Chng ta cng c th phn bit hai hp cht ha hc c cng cng thc
phn t nhng c cu trc khc nhau nh th. Chng ta cng c th xc nh xem hai
my tnh c c ni vi nhau bng mt ng truyn thng hay khng nu dng m
hnh th mng my tnh. th vi cc trng s c gn cho cc cnh ca n c th
dng gii cc bi ton nh bi ton tm ng i ngn nht gia hai thnh ph trong
mt mng giao thng. Chng ta cng c th dng th lp lch thi v phn chia
knh cho cc i truyn hnh.
3.1. NH NGHA V TH D.
th l mt cu trc ri rc gm cc nh v cc cnh (v hng hoc c
hng) ni cc nh . Ngi ta phn loi th ty theo c tnh v s cc cnh ni
cc cp nh ca th. Nhiu bi ton thuc nhng lnh vc rt khc nhau c th gii
c bng m hnh th. Chng hn ngi ta c th dng th biu din s cnh
tranh cc loi trong mt mi trng sinh thi, dng th biu din ai c nh hng
ln ai trong mt t chc no , v cng c th dng th biu din cc kt cc ca
cuc thi u th thao. Chng ta cng c th dng th gii cc bi ton nh bi ton
tnh s cc t hp khc nhau ca cc chuyn bay gia hai thnh ph trong mt mng
hng khng, hay gii bi ton i tham quan tt c cc ng ph ca mt thnh ph
sao cho mi ng ph i qua ng mt ln, hoc bi ton tm s cc mu cn thit
t cc vng khc nhau ca mt bn .
Trong i sng, chng ta thng gp nhng s , nh s t chc b my, s
giao thng, s hng dn th t c cc chng trong mt cun sch, ..., gm
nhng im biu th cc i tng c xem xt (ngi, t chc, a danh, chng mc
sch, ...) v ni mt s im vi nhau bng nhng on thng (hoc cong) hay nhng
mi tn, tng trng cho mt quan h no gia cc i tng. l nhng th d v
th.
3.1.1. nh ngha: Mt n th G = (V, E) gm mt tp khc rng V m cc phn
t ca n gi l cc nh v mt tp E m cc phn t ca n gi l cc cnh, l cc
cp khng c th t ca cc nh phn bit.
37
Ton ri rc - Nguyn Gia nh


3.1.2. nh ngha: Mt a th G = (V, E) gm mt tp khc rng V m cc phn t
ca n gi l cc nh v mt h E m cc phn t ca n gi l cc cnh, l cc cp
khng c th t ca cc nh phn bit. Hai cnh c gi l cnh bi hay song song
nu chng cng tng ng vi mt cp nh.
R rng mi n th l a th, nhng khng phi a th no cng l n
th.
3.1.3. nh ngha: Mt gi th G = (V, E) gm mt tp khc rng V m cc phn t
ca n gi l cc nh v mt h E m cc phn t ca n gi l cc cnh, l cc cp
khng c th t ca cc nh (khng nht thit l phn bit).
Vi vV, nu (v,v)E th ta ni c mt khuyn ti nh v.
Tm li, gi th l loi th v hng tng qut nht v n c th cha cc
khuyn v cc cnh bi. a th l loi th v hng c th cha cnh bi nhng
khng th c cc khuyn, cn n th l loi th v hng khng cha cnh bi
hoc cc khuyn.
Th d 1:





n th
v
1
v
2
v
3
v
4
v
5
v
6
v
1

v
2

v
3

v
5

v
6

v
7
v
4
Gi th
3.1.4. nh ngha: Mt th c hng G = (V, E) gm mt tp khc rng V m cc
phn t ca n gi l cc nh v mt tp E m cc phn t ca n gi l cc cung, l
cc cp c th t ca cc phn t thuc V.
3.1.5. nh ngha: Mt a th c hng G = (V, E) gm mt tp khc rng V m
cc phn t ca n gi l cc nh v mt h E m cc phn t ca n gi l cc cung,
l cc cp c th t ca cc phn t thuc V.
th v hng nhn c t th c hng G bng cch xo b cc chiu mi
tn trn cc cung c gi l th v hng nn ca G.
Th d 2:





th c hng a th c hng
v
6

v
7
v
5
v
3

v
2

V
5

v
1

v
3
v
4
v
5
v
2
v
1
v
6
38
Ton ri rc - Nguyn Gia nh


Th d 3: 1) th ln t trong sinh thi hc. th c dng trong nhiu m
hnh c tnh n s tng tc ca cc loi vt. Chng hn s cnh tranh ca cc loi
trong mt h sinh thi c th m hnh ha bng th ln t. Mi loi c biu din
bng mt nh. Mt cnh v hng ni hai nh nu hai loi c biu din bng cc
nh ny l cnh tranh vi nhau.
2) th nh hng. Khi nghin cu tnh cch ca mt nhm ngui, ta thy mt s
ngi c th c nh hng ln suy ngh ca nhng ngi khc. th c hng c
gi l th nh hng c th dng m hnh bi ton ny. Mi ngi ca nhm c
biu din bng mt nh. Khi mt ngi c biu din bng nh a c nh hng ln
ngi c biu din bng nh b th c mt cung ni t nh a n nh b.
3) Thi u vng trn. Mt cuc thi u th thao trong mi i u vi mi i khc
ng mt ln gi l u vng trn. Cuc thi u nh th c th c m hnh bng mt
th c hng trong mi i l mt nh. Mt cung i t nh a n nh b nu i
a thng i b.
4) Cc chng trnh my tnh c th thi hnh nhanh hn bng cch thi hnh ng thi
mt s cu lnh no . iu quan trng l khng c thc hin mt cu lnh i hi
kt qu ca cu lnh khc cha c thc hin. S ph thuc ca cc cu lnh vo cc
cu lnh trc c th biu din bng mt th c hng. Mi cu lnh c biu din
bng mt nh v c mt cung t mt nh ti mt nh khc nu cu lnh c biu
din bng nh th hai khng th thc hin c trc khi cu lnh c biu din bng
nh th nht c thc hin. th ny c gi l th c u tin trc sau.
3.2. BC CA NH.
3.2.1. nh ngha: Hai nh u v v trong th (v hng) G=(V,E) c gi l lin
k nu (u,v)E. Nu e = (u,v) th e gi l cnh lin thuc vi cc nh u v v. Cnh e
cng c gi l cnh ni cc nh u v v. Cc nh u v v gi l cc im u mt ca
cnh e.
3.2.2. nh ngha: Bc ca nh v trong th G=(V,E), k hiu deg(v), l s cc cnh
lin thuc vi n, ring khuyn ti mt nh c tnh hai ln cho bc ca n.
nh v gi l nh treo nu deg(v)=1 v gi l nh c lp nu deg(v)=0.
Th d 4:





Ta c deg(v
1
)=7, deg(v
2
)=5, deg(v
3
)=3, deg(v
4
)=0, deg(v
5
)=4, deg(v
6
)=1, deg(v
7
)=2.
nh v
4
l nh c lp v nh v
6
l nh treo.
v
1

v
2
v
3
v
5

v
6 v
7
v
4
39
Ton ri rc - Nguyn Gia nh


3.2.3. Mnh : Cho th G = (V, E). Khi
2|E| =

V v
v) deg( .
Chng minh: R rng mi cnh e = (u,v) c tnh mt ln trong deg(u) v mt ln
trong deg(v). T suy ra tng tt c cc bc ca cc nh bng hai ln s cnh.
3.2.4. H qu: S nh bc l ca mt th l mt s chn.
Chng minh: Gi V
1
v V
2
tng ng l tp cc nh bc chn v tp cc nh bc l
ca th G = (V, E). Khi
2|E| =

1
) deg(
V v
v +

2
) deg(
V v
v
V tri l mt s chn v tng th nht cng l mt s chn nn tng th hai l mt s
chn. V deg(v) l l vi mi v V
2
nn |V
2
| l mt s chn.
3.2.5. Mnh : Trong mt n th, lun tn ti hai nh c cng bc.
Chng minh: Xt n th G=(V,E) c |V|=n. Khi pht biu trn c a v bi
ton: trong mt phng hp c n ngi, bao gi cng tm c 2 ngi c s ngi quen
trong s nhng ngi d hp l nh nhau (xem Th d 6 ca 2.2.3).
3.2.6. nh ngha: nh u c gi l ni ti v hay v c gi l c ni t u trong
th c hng G nu (u,v) l mt cung ca G. nh u gi l nh u v nh v gi l
nh cui ca cung ny.
3.2.7. nh ngha: Bc vo (t.. bc ra) ca nh v trong th c hng G, k hiu
deg
t
(v) (t.. deg
o
(v)), l s cc cung c nh cui l v.
Th d 5:
v
1

v
2
v
4

v
5
v
6
v
3





deg
t
(v
1
) = 2, deg
o
(v
1
) = 3,
deg
t
(v
2
) = 5, deg
o
(v
2
) = 1,
deg
t
(v
3
) = 2, deg
o
(v
3
) = 4,
deg
t
(v
4
) = 1, deg
0
(v
4
) = 3,
deg
t
(v
5
) = 1, deg
o
(v
5
) = 0,
deg
t
(v
6
) = 0, deg
o
(v
6
) = 0.
nh c bc vo v bc ra cng bng 0 gi l nh c lp. nh c bc vo bng 1
v bc ra bng 0 gi l nh treo, cung c nh cui l nh treo gi l cung treo.
3.2.8. Mnh : Cho G =(V, E) l mt th c hng. Khi
40
Ton ri rc - Nguyn Gia nh




=
V v V v
o t
v v ) ( deg ) ( deg = |E|.
Chng minh: Kt qu c ngay l v mi cung c tnh mt ln cho nh u v mt
ln cho nh cui.
3.3. NHNG N TH C BIT.
3.3.1. th y : th y n nh, k hiu l K
n
, l n th m hai nh
phn bit bt k ca n lun lin k. Nh vy, K
n
c
2
) 1 ( n n
cnh v mi nh ca K
n

c bc l n1.
Th d 6:


K
1
K
2
K
3
K
4
v
1
v
2
v
3

v
1
v
2
v
3
v
4
v
5
v
2
v
1

v
3

V
4

v
2

v
1
v
1

K
5
3.3.2. th vng: n th n nh v
1
, v
2
, ..., v
n
(n3) v n cnh (v
1
,v
2
), (v
2
,v
3
), ...,
(v
n-1
,v
n
), (v
n
,v
1
) c gi l th vng, k hiu l C
n
. Nh vy, mi nh ca C
n
c bc
l 2.
Th d 7:



C
3
C
4
C
5
C
6
v
1
v
5
v
2
v
4
v
3
v
1
v
6

v
5

v
2
v
3
v
4
v
1

v
2

v
3

v
1

v
2
v
4

v
3
3.3.3. th bnh xe:T th vng C
n
, thm vo nh v
n+1
v cc cnh (v
n+1
,v
1
),
(v
n+1
,v
2
), ..., (v
n+1
,v
n
), ta nhn c n th gi l th bnh xe, k hiu l W
n
. Nh
vy, th W
n
c n+1 nh, 2n cnh, mt nh bc n v n nh bc 3.

Th d 8:



W
3
W
4
W
5
W
6
v
2

v
3

v
1

v
2
v
4

v
3
v
1
v
5
v
2
v
4
v
3
v
6

v
5

v
2
v
3
v
4
v
1

v
4

v
5
v
6
v
7
v
1

3.3.4. th lp phng: n th 2
n
nh, tng ng vi 2
n
xu nh phn di n
v hai nh k nhau khi v ch khi 2 xu nh phn tng ng vi hai nh ny ch khc
nhau ng mt bit c gi l th lp phng, k hiu l Q
n
. Nh vy, mi nh ca
Q
n
c bc l n v s cnh ca Q
n
l n.2
n-1
(t cng thc 2|E| =

V v
v) deg( ).
41
Ton ri rc - Nguyn Gia nh


Th d 9:


Q
1
Q
2


10 11
01 00
000
110
111
101
011
001
010
100 1 0
Q
3
3.3.5. th phn i ( th hai phe): n th G=(V,E) sao cho V=V
1
V
2
,
V
1
V
2
=, V
1
, V
2
v mi cnh ca G c ni mt nh trong V
1
v mt nh
trong V
2
c gi l th phn i.
Nu th phn i G=(V
1
V
2
,E) sao cho vi mi v
1
V
1
, v
2
V
2
, (v
1
,v
2
)E th
G c gi l th phn i y . Nu |V
1
|=m, |V
2
|=n th th phn i y G
k hiu l K
m,n
. Nh vy K
m,n
c m.n cnh, cc nh ca V
1
c bc n v cc nh ca V
2

c bc m.
Th d 10:




v
1

v
2

v
3

v
4

v
5

v
6

v
1
v
2
v
3

v
4
v
5
v
6

K
2,4
K
3,3

3.3.6. Mt vi ng dng ca cc th c bit:
1) Cc mng cc b (LAN): Mt s mng cc b dng cu trc hnh sao, trong tt
c cc thit b c ni vi thit b iu khin trung tm. Mng cc b kiu ny c th
biu din bng mt th phn i y K
1,n
. Cc thng bo gi t thit b ny ti
thit b khc u phi qua thit b iu khin trung tm.
Mng cc b cng c th c cu trc vng trn, trong mi thit b ni vi
ng hai thit b khc. Mng cc b kiu ny c th biu din bng mt th vng C
n
.
Thng bo gi t thit b ny ti thit b khc c truyn i theo vng trn cho ti khi
n ni nhn.
v
2

v
3

v
4

v
5

v
1

v
6

v
7

v
8

v
9







Cu trc hnh sao Cu trc vng trn Cu trc hn hp
v
1
v
2
v
8

v
7

v
6
v
5
v
4
v
3
v
9
v
2
v
8
v
7
v
3

v
4
v
6

v
5
v
1

42
Ton ri rc - Nguyn Gia nh


Cui cng, mt s mng cc b dng cu trc hn hp ca hai cu trc trn. Cc
thng bo c truyn vng quanh theo vng trn hoc c th qua thit b trung tm. S
d tha ny c th lm cho mng ng tin cy hn. Mng cc b kiu ny c th biu
din bng mt th bnh xe W
n
.
2) X l song song: Cc thut ton gii cc bi ton c thit k thc hin mt
php ton ti mi thi im l thut ton ni tip. Tuy nhin, nhiu bi ton vi s
lng tnh ton rt ln nh bi ton m phng thi tit, to hnh trong y hc hay phn
tch mt m khng th gii c trong mt khong thi gian hp l nu dng thut ton
ni tip ngay c khi dng cc siu my tnh. Ngoi ra, do nhng gii hn v mt vt l
i vi tc thc hin cc php ton c s, nn thng gp cc bi ton khng th gii
trong khong thi gian hp l bng cc thao tc ni tip. V vy, ngi ta phi ngh n
kiu x l song song.
Khi x l song song, ngi ta dng cc my tnh c nhiu b x l ring bit,
mi b x l c b nh ring, nh c th khc phc c nhng hn ch ca cc my
ni tip. Cc thut ton song song phn chia bi ton chnh thnh mt s bi ton con
sao cho c th gii ng thi c. Do vy, bng cc thut ton song song v nh vic
s dng cc my tnh c b a x l, ngi ta hy vng c th gii nhanh cc bi ton
phc tp. Trong thut ton song song c mt dy cc ch th theo di vic thc hin
thut ton, gi cc bi ton con ti cc b x l khc nhau, chuyn cc thng tin vo,
thng tin ra ti cc b x l thch hp.
Khi dng cch x l song song, mi b x l c th cn cc thng tin ra ca cc
b x l khc. Do chng cn phi c kt ni vi nhau. Ngi ta c th dng loi
th thch hp biu din mng kt ni cc b x l trong mt my tnh c nhiu b
x l. Kiu mng kt ni dng thc hin mt thut ton song song c th ph thuc
vo nhng yu cu vi vic trao i d liu gia cc b x l, ph thuc vo tc
mong mun v tt nhin vo phn cng hin c.
Mng kt ni cc b x l n gin nht v cng t nht l c cc lin kt hai
chiu gia mi cp b x l. Cc mng ny c th m hnh bng th y K
n
, trong
n l s b x l. Tuy nhin, cc mng lin kt kiu ny c s kt ni qu nhiu m
trong thc t s kt ni cn phi c gii hn.
Cc b x l c th kt ni n gin l sp xp chng theo mt mng mt chiu.
u im ca mng mt chiu l mi b x l c nhiu nht 2 ng ni trc tip vi
cc b x l khc. Nhc im l nhiu khi cn c rt nhiu cc kt ni trung gian
cc b x l trao i thng tin vi nhau.

Mng kiu li (hoc mng hai chiu) rt hay c dng cho cc mng lin kt.
Trong mt mng nh th, s cc b x l l mt s chnh phng, n=m
2
. Cc b x l
P
2

P
4
P
5
P
6

P
3
P
1

43
Ton ri rc - Nguyn Gia nh


c gn nhn P(i,j), 0 i, j m1. Cc kt ni hai chiu s ni b x l P(i,j) vi bn
b x l bn cnh, tc l vi P(i,j1) v P(i1,j) chng no cc b x l cn trong
li.
P(0,0) P(0,1) P(0,2) P(0,3)
P(1,0) P(1,1) P(1,2) P(1,3)
P(2,0) P(2,1) P(2,2) P(2,3)
P(3,0) P(3,1) P(3,2) P(3,3)









Mng kt ni quan trng nht l mng kiu siu khi. Vi cc mng loi ny s
cc b x l l lu tha ca 2, n=2
m
. Cc b x l c gn nhn l P
0
, P
1
, ..., P
n-1
. Mi
b x l c lin kt hai chiu vi m b x l khc. B x l P
i
ni vi b x l c ch s
biu din bng dy nh phn khc vi dy nh phn biu din i ti ng mt bit. Mng
kiu siu khi cn bng s cc kt ni trc tip ca mi b x l v s cc kt ni gin
tip sao cho cc b x l c th truyn thng c. Nhiu my tnh ch to theo
mng kiu siu khi v nhiu thut ton c thit k s dng mng kiu siu
khi. th lp phng Q
m
biu din mng kiu siu khi c 2
m
b x l.



3.4. BIU DIN TH BNG MA TRN V S NG CU TH:
P
1

P
2

P
3
P
4
P
5
P
6
P
0

P
7

3.4.1. nh ngha: Cho th G=(V,E) (v hng hoc c hng), vi V={v
1
,v
2
,..., v
n
}.
Ma trn lin k ca G ng vi th t cc nh v
1
,v
2
,..., v
n
l ma trn
A= ) , ( ) (
, 1
Z n M a
n j i ij


,
trong a
ij
l s cnh hoc cung ni t v
i
ti v
j
.
Nh vy, ma trn lin k ca mt th v hng l ma trn i xng, ngha l
, trong khi ma trn lin k ca mt th c hng khng c tnh i xng.
ji ij
a a =
Th d 11: Ma trn lin k vi th t cc nh v
1
, v
2
, v
3
, v
4
l:

v
1
v
2
v
3
v
4

0 2 1 2
2 1 1 0
1 1 0 3
2 0 3 0

44
Ton ri rc - Nguyn Gia nh


Ma trn lin k vi th t cc nh v
1
, v
2
, v
3
, v
4
, v
5
l:

0 1 0 1 1
1 0 2 0 0
0 1 0 0 1
0 1 2 1 0
1 1 0 1 1
v
1

v
2

v
5
v
4 v
3

3.4.2. nh ngha: Cho th v hng G=(V,E), v
1
, v
2
, ..., v
n
l cc nh v e
1
, e
2
, ...,
e
m
l cc cnh ca G. Ma trn lin thuc ca G theo th t trn ca V v E l ma trn
M= ) , ( ) (
1
1
Z m n M m
m j
n i ij



,
ij
m bng 1 nu cnh e
j
ni vi nh v
i
v bng 0 nu cnh e
j
khng ni vi nh v
i
.
Th d 12: Ma trn lin thuc theo th t cc nh v
1
, v
2
, v
3
, v
4
, v
5
v cc cnh e
1
, e
2
, e
3
,
e
4
, e
5
, e
6
l:
v
1
v
2
v
3

v
4
v
5

e
6

e
5

e
4

e
3
e
2
e
1

0 1 1 0 1 0
0 0 0 1 0 1
1 1 0 0 0 0
1 0 1 1 0 0
0 0 0 0 1 1
3.4.3. nh ngha: Cc n th G
1
=(V
1
,E
1
) v G
2
=(V
2
,E
2
) c gi l ng cu nu
tn ti mt song nh f t V
1
ln V
2
sao cho cc nh u v v l lin k trong G
1
khi v ch
khi f(u) v f(v) l lin k trong G
2
vi mi u v v trong V
1
. nh x f nh th gi l mt
php ng cu.
Thng thng, chng t hai n th l khng ng cu, ngi ta ch ra
chng khng c chung mt tnh cht m cc n th ng cu cn phi c. Tnh cht
nh th gi l mt bt bin i vi php ng cu ca cc n th.
Th d 13: 1) Hai n th G
1
v G
2
sau l ng cu qua php ng cu f: aax,
b u, c z, dav, e y: a a a

b
d
e c
a u
x
y
z
v







G
1
G
2
45
Ton ri rc - Nguyn Gia nh


2) Hai th G
1
v G
2
sau u c 5 nh v 6 cnh nhng khng ng cu v trong G
1

c mt nh bc 4 m trong G
2
khng c nh bc 4 no.





3) Hai th G
1
v G
2
sau u c 7 nh, 10 cnh, cng c mt nh bc 4, bn nh
bc 3 v hai nh bc 2. Tuy nhin G
1
v G
2
l khng ng cu v hai nh bc 2 ca G
1

(a v d) l khng k nhau, trong khi hai nh bc 2 ca G
2
(y v z) l k nhau.





G
1
G
2
4) Hy xc nh xem hai th sau c ng cu hay khng?





G
1
G
2
d
c b
g e
h u
v x
y w
t z
u
1

v
3

v
1
u
2
u
4

u
6
u
5

u
3
v
6
v
2
v
4

v
5
a
Hai th G
1
v G
2
l ng cu v hai ma trn lin k ca G
1
theo th t cc nh
u
1
, u
2
, u
3
, u
4
, u
5
, u
6
v ca G
2
theo th t cc nh v
6
, v
3
, v
4
, v
5
, v
1
, v
2
l nh nhau v
bng:

0 1 0 0 1 0
1 0 1 0 0 0
0 1 0 1 0 1
0 0 1 0 1 0
1 0 0 1 0 1
0 0 1 0 1 0


3.5. CC TH MI T TH C.
3.5.1. nh ngha: Cho hai th G
1
=(V
1
,E
1
) v G
2
=(V
2
,E
2
). Ta ni G
2
l th con
ca G
1
nu V
2
V
1
v E
2
E
1
. Trong trng hp V
1
=V
2
th G
2
gi l con bao trm ca
G
1
.
46
Ton ri rc - Nguyn Gia nh


Th d 14:




G G
1
G
2
G
3
a
e
d
c b
a
c
a d
c
e
b
a
c b
d
b




G
4
G
5

G
1
, G
2
, G
3
v G
4
l cc th con ca G, trong G
2
v G
4
l th con bao
trm ca G, cn G
5
khng phi l th con ca G.
3.5.2. nh ngha: Hp ca hai n th G
1
=(V
1
,E
1
) v G
2
=(V
2
,E
2
) l mt n th
c tp cc nh l V
1
V
2
v tp cc cnh l E
1
E
2
, k hiu l G
1
G
2
.
Th d 15:




G
1
G
2
G
1
G
2
a d
b c
e
a d
c b
x y z
u v u
x y z
w
x y z
u v w
3.5.3. nh ngha: n th G=(V,E) c gi l th b ca n th G=(V,E)
nu G v G khng c cnh chung no (E E=) v G Gl th y .
D thy rng nu G l b ca G th G cng l b ca G. Khi ta ni hai th
l b nhau.
Th d 16:




G G G
1
G
1
x
v y
u z u z
y v
x
x y
u v
x
u
y
v
Hai th G v G l b nhau v hai th G
1
v G
1
l b nhau.
3.6. TNH LIN THNG.
3.6.1. nh ngha: ng i di n t nh u n nh v, vi n l mt s nguyn
dng, trong th (gi th v hng hoc a th c hng) G=(V,E) l mt dy
cc cnh (hoc cung) e
1
, e
2
, ..., e
n
ca th sao cho e
1
=(x
0
,x
1
),e
2
=(x
1
,x
2
), ...,e
n
=(x
n-1
,x
n
),
vi x
0
=u v x
n
=v. Khi th khng c cnh (hoc cung) bi, ta k hiu ng i ny
47
Ton ri rc - Nguyn Gia nh


bng dy cc nh x
0
, x
1
, ..., x
n
. ng i c gi l chu trnh nu n bt u v kt
thc ti cng mt nh. ng i hoc chu trnh gi l n nu n khng cha cng mt
cnh (hoc cung) qu mt ln. Mt ng i hoc chu trnh khng i qua nh no qu
mt ln (tr nh u v nh cui ca chu trnh l trng nhau) c gi l ng i
hoc chu trnh s cp. R rng rng mt ng i (t.. chu trnh) s cp l ng i (t..
chu trnh) n.
Th d 17:
x y z
v w u




Trong n th trn, x, y, z, w, v, y l ng i n (khng s cp) di 5; x,
w, v, z, y khng l ng i v (v, z) khng l cnh; y, z, w, x, v, u, y l chu trnh s cp
di 6.
3.6.2. nh ngha: Mt th (v hng) c gi l lin thng nu c ng i gia
mi cp nh phn bit ca th.
Mt th khng lin thng l hp ca hai hay nhiu th con lin thng, mi
cp cc th con ny khng c nh chung. Cc th con lin thng ri nhau nh vy
c gi l cc thnh phn lin thng ca th ang xt. Nh vy, mt th l lin
thng khi v ch khi n ch c mt thnh phn lin thng.
Th d 18:
x
t
u
y
w
z
v
a
d c h
b
i
k
l
g




G G
th G l lin thng, nhng th G khng lin thng v c 3 thnh phn lin thng.
3.6.3. nh ngha: Mt nh trong th G m khi xo i n v tt c cc cnh lin
thuc vi n ta nhn c th con mi c nhiu thnh phn lin thng hn th G
c gi l nh ct hay im khp. Vic xo nh ct khi mt th lin thng s to
ra mt th con khng lin thng. Hon ton tng t, mt cnh m khi ta b n i s
to ra mt th c nhiu thnh phn lin thng hn so vi th xut pht c gi l
cnh ct hay l cu.
x
v
y
w
z
s
u
t
Th d 19:


48
Ton ri rc - Nguyn Gia nh


Trong th trn, cc nh ct l v, w, s v cc cu l (x,v), (w,s).
3.6.4. Mnh : Gia mi cp nh phn bit ca mt th lin thng lun c ng
i s cp.
Chng minh: Gi s u v v l hai nh phn bit ca mt th lin thng G. V G lin
thng nn c t nht mt ng i gia u v v. Gi x
0
, x
1
, ..., x
n
, vi x
0
=u v x
n
=v, l dy
cc nh ca ng i c di ngn nht. y chnh l ng i s cp cn tm. Tht
vy, gi s n khng l ng i n, khi x
i
=x
j
vi 0 i < j. iu ny c ngha l
gia cc nh u v v c ng i ngn hn qua cc nh x
0
, x
1
, ..., x
i-1
, x
j
, ..., x
n
nhn
c bng cch xo i cc cnh tng ng vi dy cc nh x
i
, ..., x
j-1
.
3.6.5. Mnh : Mi n th n nh (n 2) c tng bc ca hai nh tu khng
nh hn n u l th lin thng.
Chng minh: Cho n th G=(V,E) c n nh (n 2) v tho mn yu cu ca bi
ton. Gi s G khng lin thng, tc l tn ti hai nh u v v sao cho khng c ng
i no ni u v v. Khi trong th G tn ti hai thnh phn lin thng l G
1
c n
1

nh v cha u, G
2
cha nh v v c n
2
nh. V G
1
, G
2
l hai trong s cc thnh phn
lin thng ca G nn n
1
+n
2
n. ta c:
deg(u)+deg(v) (n
1
1)+(n
2
1) = n
1
+n
2
2 n2 <n.
iu mu thun trn dn n kt lun l th G phi lin thng.
3.6.6. H qu: n th m bc ca mi nh ca n khng nh hn mt na s nh
l th lin thng.
3.6.7. Mnh : Nu mt th c ng hai nh bc l th hai nh ny phi lin
thng, tc l c mt ng i ni chng.
Chng minh: Cho G=(V,E) l th th c ng hai nh bc l l u v v. Gi s u v v
khng lin thng vi nhau. Khi chng phi thuc hai thnh phn lin thng no
ca th G, G
1
cha u v G
2
cha v.
Bc ca nh u trong G
1
cng chnh l bc ca u trong G, nn trong G
1
nh u vn
c bc l v G
1
c duy nht mt nh bc l. iu ny mu thun. Vy hai nh u v v
phi lin thng.
3.6.8. Mnh : Cho G=(V,E) l mt th lin thng. Khi mt nh ca G l im
khp khi v ch khi trong G tn ti hai nh u v v sao cho mi ng i ni u v v u
phi i qua nh ny.
Chng minh: iu kin cn: Gi s nh x l im khp trong th G. Khi th
con G
1
ca G nhn c bng cch xo x v cc cnh lin thuc vi n l khng lin
thng. Gi s G
2
, G
3
l hai trong cc thnh phn lin thng ca G
1
. Ly u l nh trong
G
2
v v l nh trong G
3
. Do u, v thuc hai thnh phn lin thng khc nhau, nn trong
G
1
cc nh u, v khng lin thng. Nhng trong G cc nh u, v li lin thng, nn mi
ng i ni u, v u phi i qua nh x.
49
Ton ri rc - Nguyn Gia nh


iu kin : Gi s mi ng i ni u, v u i qua nh x, nn nu b nh x v cc
cnh lin thuc vi x th th con G
1
nhn c t G cha hai nh u, v khng lin
thng. Do G
1
l th khng lin thng hay nh x l im khp ca G.
3.6.9. nh l: Cho G l mt n th c n nh, m cnh v k thnh phn lin thng.
Khi
2
) 1 )( ( +

k n k n
m k n .
Chng minh: Bt ng thc m k n c chng minh bng quy np theo m. Nu
m=0 th k=n nn bt ng thc ng. Gi s bt ng thc ng n m1, vi m 1.
Gi G l th con bao trm ca G c s cnh m
0
l nh nht sao cho n c k thnh
phn lin thng. Do vic loi b bt c cnh no trong G cng tng s thnh phn
lin thng ln 1 v khi th thu c s c n nh, k+1 thnh phn lin thng v
m
0
1 cnh. Theo gi thit quy np, ta c m
0
1 n(k+1) hay m
0
nk. Vy m n-k.
B sung cnh vo G nhn c th G c m
1
cnh sao cho k thnh phn
lin thng l nhng th y . Ta c m m
1
nn ch cn chng minh
m
1

2
) 1 )( ( + k n k n
.
Gi s G
i
v G
j
l hai thnh phn lin thng ca G vi n
i
v n
j
nh v n
i
n
j
>1 (*).
Nu ta thay G
i
v G
j
bng th y vi n
i
+1 v n
j
1 nh th tng s nh khng
thay i nhng s cnh tng thm mt lng l:
1
2
) 2 )( 1 (
2
) 1 (
2
) 1 (
2
) 1 (
+ =

+
j i
j j j j
i i i i
n n
n n n n
n n n n
.
Th tc ny c lp li khi hai thnh phn no c s nh tho (*). V vy m
1
l ln
nht (n, k l c nh) khi th gm k-1 nh c lp v mt th y vi n-k+1
nh. T suy ra bt ng thc cn tm.
3.6.10. nh ngha: th c hng G c gi l lin thng mnh nu vi hai nh
phn bit bt k u v v ca G u c ng i t u ti v v ng i t v ti u.
th c hng G c gi l lin thng yu nu th v hng nn ca n l
lin thng.
th c hng G c gi l lin thng mt chiu nu vi hai nh phn bit
bt k u v v ca G u c ng i t u ti v hoc ng i t v ti u.
Th d 20:
u v w
t
x
u v w
s
x
t y s y




G G
50
Ton ri rc - Nguyn Gia nh


th G l lin thng mnh nhng th G l lin thng yu (khng c ng
i t u ti x cng nh t x ti u).
3.6.11. Mnh : Cho G l mt th (v hng hoc c hng) vi ma trn lin k A
theo th t cc nh v
1
, v
2
, ..., v
n
. Khi s cc ng i khc nhau di r t v
i
ti v
j

trong r l mt s nguyn dng, bng gi tr ca phn t dng i ct j ca ma trn A
r
.
Chng minh: Ta chng minh mnh bng quy np theo r. S cc ng i khc nhau
di 1 t v
i
ti v
j
l s cc cnh (hoc cung) t vi ti v
j
, chnh l phn t dng i ct
j ca ma trn A; ngha l, mnh ng khi r=1.
Gi s mnh ng n r; ngha l, phn t dng i ct j ca A
r
l s cc ng
i khc nhau di r t v
i
ti v
j
. V A
r+1
=A
r
.A nn phn t dng i ct j ca A
r+1
bng
b
i1
a
1j
+b
i2
a
2j
+ ... +b
in
a
nj
,
trong b
ik
l phn t dng i ct k ca A
r
. Theo gi thit quy np b
ik
l s ng i
khc nhau di r t v
i
ti v
k
.
ng i di r+1 t v
i
ti v
j
s c to nn t ng i di r t v
i
ti nh
trung gian v
k
no v mt cnh (hoc cung) t v
k
ti v
j
. Theo quy tc nhn s cc
ng i nh th l tch ca s ng i di r t v
i
ti v
k
, tc l b
ik
, v s cc cnh
(hoc cung) t v
k
ti v
j
, tc l a
kj
. Cng cc tch ny li theo tt c cc nh trung gian v
k

ta c mnh ng n r+1.

BI TP CHNG III:

1. Cho G l th c v nh v e cnh, cn M, m tng ng l bc ln nht v nh nht
ca cc nh ca G. Chng t rng
m
2e
v
M.
2. Chng minh rng nu G l n th phn i c v nh v e cnh, khi
e v
2
/4.
3. Trongmt phng n mng kiu li kt ni n=m
2
b x l song song, b x l P(i,j)
c kt ni vi 4 b x l (P(i1) mod m, j), P(i, (j1) mod m), sao cho cc kt ni
bao xung quanh cc cnh ca li. Hy v mng kiu li c 16 b x l theo phng
n ny.
4. Hy v cc th v hng c biu din bi ma trn lin k sau:
a) , b) , c) .
1 2 3
2 0 4
3 4 0

1 2 0 1
2 0 3 0
0 3 1 1
1 0 1 0

0 1 3 0 4
1 2 1 3 0
3 1 1 0 1
0 3 0 0 2
4 0 1 2 3

51
Ton ri rc - Nguyn Gia nh


5. Nu ngha ca tng cc phn t trn mt hng (t.. ct) ca mt ma trn lin k i
vi mt th v hng ? i vi th c hng ?
6. Tm ma trn lin k cho cc th sau:
a) K
n
, b) C
n
, c) W
n
, d) K
m,n
, e) Q
n
.
7. C bao nhiu n th khng ng cu vi n nh khi:
a) n=2, b) n=3, c) n=4.
8. Hai n th vi ma trn lin k sau y c l ng cu khng?

0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
, .

0 1 1 1
1 0 0 1
1 0 0 1
1 1 1 0
9. Hai n th vi ma trn lin k sau y c l ng cu khng?

0 1 1 1 0
1 1 0 0 0
1 0 1 0 1
0 0 0 1 1
, .

1 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 1 0
10. Cc th G v G sau c ng cu vi nhau khng?
a)







b)
u
1

u
2

u
3

u
4

u
5

u
6

v
1
v
2
v
4
v
3
v
5
v
6





11. Cho V={2,3,4,5,6,7,8} v E l tp hp cc cp phn t (u,v) ca V sao cho u<v v
u,v nguyn t cng nhau. Hy v th c hng G=(V,E). Tm s cc ng i phn
bit di 3 t nh 2 ti nh 8.
u
1

u
2

u
3

u
4

u
5

u
6

v
1
v
2
v
6
v
5
v
4
v
3

12. Hy tm s ng i di n gia hai nh lin k (t.. khng lin k) ty trong
K
3,3
vi mi gi tr ca n sau:
a) n=2, b) n=3, c) n=4, d) n=5.
52
Ton ri rc - Nguyn Gia nh


14. Mt cuc hp c t nht ba i biu n d. Mi ngi quen t nht hai i biu
khc. Chng minh rng c th xp c mt s i biu ngi xung quanh mt bn trn,
mi ngi ngi gia hai ngi m i biu quen.
15. Mt lp hc c t nht 4 sinh vin. Mi sinh vin thn vi t nht 3 sinh vin khc.
Chng minh rng c th xp mt s chn sinh vin ngi quanh mt ci bn trn mi
sinh vin ngi gia hai sinh vin m h thn.
16. Trong mt cuc hp c ng hai i biu khng quen nhau v mi i biu ny c
mt s l ngi quen n d. Chng minh rng lun lun c th xp mt s i biu
ngi chen gia hai i biu ni trn, mi ngi ngi gia hai ngi m anh ta quen.
17. Mt thnh ph c n (n 2) nt giao thng v hai nt giao thng bt k u c s
u mi ng ngm ti mt trong cc nt giao thng ny u khng nh hn n. Chng
minh rng t mt nt giao thng tu ta c th i n mt nt giao thng bt k khc
bng ng ngm.
53
Ton ri rc - Nguyn Gia nh


CHNG IV
TH EULER V TH HAMILTON

4.1. NG I EULER V TH EULER.
C th coi nm 1736 l nm khai sinh l thuyt th, vi vic cng b li gii
bi ton v cc cu Konigsberg ca nh ton hc li lc Euler (1707-1783). Thnh
ph Konigsberg thuc Ph (nay gi l Kaliningrad thuc Nga) c chia thnh bn
vng bng cc nhnh sng Pregel, cc vng ny gm hai vng bn b sng, o
Kneiphof v mt min nm gia hai nhnh ca sng Pregel. Vo th k 18, ngi ta xy
by chic cu ni cc vng ny vi nhau.






G
D
A
C
B
C
B
D A
Dn thnh ph tng thc mc: C th no i do qua tt c by cu, mi cu ch
mt ln thi khng?. Nu ta coi mi khu vc A, B, C, D nh mt nh v mi cu qua
li hai khu vc l mt cnh ni hai nh th ta c s ca Konigsberg l mt a th
G nh hnh trn.
Bi ton tm ng i qua tt c cc cu, mi cu ch qua mt ln c th c
pht biu li bng m hnh ny nh sau: C tn ti chu trnh n trong a th G cha
tt c cc cnh?
4.1.1. nh ngha: Chu trnh (t.. ng i) n cha tt c cc cnh (hoc cung) ca
th (v hng hoc c hng) G c gi l chu trnh (t.. ng i) Euler. Mt
th lin thng (lin thng yu i vi th c hng) c cha mt chu trnh (t.. ng
i) Euler c gi l th Euler (t.. na Euler).
Th d 1:





th khng na Euler
th na Euler

th Euler
Ton ri rc - Nguyn Gia nh 54







th Euler th na Euler
iu kin cn v mt th l th Euler c Euler tm ra vo nm 1736
khi ng gii quyt bi ton hc ba ni ting thi v by ci cu Konigsberg v y
l nh l u tin ca l thuyt th.
4.1.2. nh l: th (v hng) lin thng G l th Euler khi v ch khi mi nh
ca G u c bc chn.
Chng minh:
iu kin cn: Gi s G l th Euler, tc l tn ti chu trnh Euler P trong G. Khi
c mi ln chu trnh P i qua mt nh no ca G th bc ca nh tng ln 2. Mt
khc, mi cnh ca th xut hin trong P ng mt ln. Do mi nh ca th
u c bc chn.
4.1.3. B : Nu bc ca mi nh ca th G khng nh hn 2 th G cha chu trnh
n.
Chng minh: Nu G c cnh bi hoc c khuyn th khng nh ca b l hin
nhin. V vy gi s G l mt n th. Gi v l mt nh no ca G. Ta s xy
dng theo quy np ng i

trong v
1
l nh k vi v, cn vi i 1, chn v
i+1
l nh k vi v
i
v v
i+1
v
i-1
(c th
chn nh vy v deg(v
i
) 2), v
0
= v. Do tp nh ca G l hu hn, nn sau mt s hu
hn bc ta phi quay li mt nh xut hin trc . Gi k l s nguyn dng u
tin v
k
=v
i
(0i<k). Khi , ng i v
i
, v
i+1
, ..., v
k-1
, v
k
(= v
i
) l mt chu trnh n cn
tm.
v
2
v
1
v
.....
iu kin : Quy np theo s cnh ca G. Do G lin thng v bc ca mi nh l
chn nn mi nh c bc khng nh hn 2. T theo B 4.1.3, G phi cha mt
chu trnh n C. Nu C i qua tt c cc cnh ca G th n chnh l chu trnh Euler. Gi
s C khng i qua tt c cc cnh ca G. Khi loi b khi G cc cnh thuc C, ta thu
c mt th mi H (khng nht thit l lin thng). S cnh trong H nh hn trong
G v r rng mi nh ca H vn c bc l chn. Theo gi thit quy np, trong mi thnh
phn lin thng ca H u tm c chu trnh Euler. Do G lin thng nn mi thnh
Ton ri rc - Nguyn Gia nh 55
phn trong H c t nht mt nh chung vi chu trnh C. V vy, ta c th xy dng chu
trnh Euler trong G nh sau:
C








Bt u t mt nh no ca chu trnh C, i theo cc cnh ca C chng no cha gp
phi nh khng c lp ca H. Nu gp phi nh nh vy th ta i theo chu trnh Euler
ca thnh phn lin thng ca H cha nh . Sau li tip tc i theo cnh ca C cho
n khi gp phi nh khng c lp ca H th li theo chu trnh Euler ca thnh phn lin
thng tng ng trong H, ... Qu trnh s kt thc khi ta tr v nh xut pht, tc l thu
c chu trnh i qua mi cnh ca th ng mt ln.
4.1.4. H qu: th lin thng G l na Euler (m khng l Euler) khi v ch khi c
ng hai nh bc l trong G.
Chng minh: Nu G l na Euler th tn ti mt ng i Euler trong G t nh u n
nh v. Gi G l th thu c t G bng cch thm vo cnh (u,v). Khi G l
th Euler nn mi nh trong G u c bc chn (k c u v v). V vy u v v l hai nh
duy nht trong G c bc l.
o li, nu c ng hai nh bc l l u v v th gi G l th thu c t G
bng cch thm vo cnh (u,v). Khi mi nh ca G u c bc chn hay G l th
Euler. B cnh (u,v) thm vo ra khi chu trnh Euler trong G ta c c ng i
Euler t u n v trong G hay G l na Euler.
4.1.5. Ch : Ta c th vch c mt chu trnh Euler trong th lin thng G c bc
ca mi nh l chn theo thut ton Fleury sau y.
Xut pht t mt nh bt k ca G v tun theo hai quy tc sau:
1. Mi khi i qua mt cnh no th xo n i; sau xo nh c lp (nu c);
2. Khng bao gi i qua mt cu, tr phi khng cn cch i no khc.

u s v w
x y z t




Ton ri rc - Nguyn Gia nh 56
Xut pht t u, ta c th i theo cnh (u,v) hoc (u,x), gi s l (u,v) (xo (u,v)).
T v c th i qua mt trong cc cnh (v,w), (v,x), (v,t), gi s (v,w) (xo (v,w)). Tip
tc, c th i theo mt trong cc cnh (w,s), (w,y), (w,z), gi s (w,s) (xo (w,s)). i
theo cnh (s,y) (xo (s,y) v s). V (y,x) l cu nn c th i theo mt trong hai cnh
(y,w), (y,z), gi s (y,w) (xo (y,w)). i theo (w,z) (xo (w,z) v w) v theo (z,y) (xo
(z,y) v z). Tip tc i theo cnh (y,x) (xo (y,x) v y). V (x,u) l cu nn i theo cnh
(x,v) hoc (x,t), gi s (x,v) (xo (x,v)). Tip tc i theo cnh (v,t) (xo (v,t) v v), theo
cnh (t,x) (xo cnh (t,x) v t), cui cung i theo cnh (x,u) (xo (x,u), x v u).
4.1.6. Bi ton ngi pht th Trung Hoa:
Mt nhn vin i t S Bu in, qua mt s ng ph pht th, ri quay v
S. Ngi y phi i qua cc ng theo trnh t no ng i l ngn nht?
Bi ton c nh ton hc Trung Hoa Guan nu ln u tin (1960), v vy
thng c gi l bi ton ngi pht th Trung Hoa. Ta xt bi ton mt dng
n gin nh sau.
Cho th lin thng G. Mt chu trnh qua mi cnh ca G gi l mt hnh trnh
trong G. Trong cc hnh trnh , hy tm hnh trnh ngn nht, tc l qua t cnh nht.
R rng rng nu G l th Euler (mi nh u c bc chn) th chu trnh Euler
trong G (qua mi cnh ca G ng mt ln) l hnh trnh ngn nht cn tm.
Ch cn phi xt trng hp G c mt s nh bc l (s nh bc l l mt s
chn). Khi , mi hnh trnh trong G phi i qua t nht hai ln mt s cnh no .
D thy rng mt hnh trnh qua mt cnh (u,v) no qu hai ln th khng phi
l hnh trnh ngn nht trong G. V vy, ta ch cn xt nhng hnh trnh T i qua hai ln
mt s cnh no ca G.
Ta quy c xem mi hnh trnh T trong G l mt hnh trnh trong th Euler
G
T
, c c t G bng cch v thm mt cnh song song i vi nhng cnh m T i
qua hai ln. Bi ton t ra c a v bi ton sau:
Trong cc th Euler G
T
, tm th c s cnh t nht (khi chu trnh Euler
trong th ny l hnh trnh ngn nht).
nh l (Gooodman v Hedetniemi, 1973). Nu G l mt th lin thng c q
cnh th hnh trnh ngn nht trong G c chiu di
q + m(G),
trong m(G) l s cnh m hnh trnh i qua hai ln v c xc nh nh sau:
Gi V
0
(G) l tp hp cc nh bc l (2k nh) ca G. Ta phn 2k phn t ca G
thnh k cp, mi tp hp k cp gi l mt phn hoch cp ca V
0
(G).
Ta gi di ng i ngn nht t u n v l khong cch d(u,v). i vi mi
phn hoch cp P
i
, ta tnh khong cch gia hai nh trong tng cp, ri tnh tng d(P
i
).
S m(G) bng cc tiu ca cc d(P
i
):
Ton ri rc - Nguyn Gia nh 57
m(G)=min d(P
i
).
Th d 2: Gii bi ton ngi pht th Trung Hoa cho trong th sau:








D
C E
F B K J
A I H G
G G
T
Tp hp cc nh bc l V
O
(G)={B, G, H, K} v tp hp cc phn hoch cp l
P={P
1
, P
2
, P
3
}, trong
P
1
= {(B, G), (H, K)} d(P
1
) = d(B, G)+d(H, K) = 4+1 = 5,
P
2
= {(B, H), (G, K)} d(P
2
) = d(B, H)+d(G, K) = 2+1 = 3,
P
3
= {(B, K), (G, H)} d(P
3
) = d(B, K)+d(G, H) = 3+2 = 5.
m(G) = min(d(P
1
), d(P
2
), d(P
3
)) = 3.
Do G
T
c c t G bng cch thm vo 3 cnh: (B, I), (I, H), (G, K) v G
T
l
th Euler. Vy hnh trnh ngn nht cn tm l i theo chu trnh Euler trong G
T
:
A, B, C, D, E, F, K, G, K, E, C, J, K, H, J, I, H, I, B, I, A.
4.1.7. nh l: th c hng lin thng yu G l th Euler khi v ch khi mi
nh ca G u c bc vo bng bc ra.
Chng minh: Chng minh tng t nh chng minh ca nh l 4.1.2 v iu kin
cng cn c b di y tng t nh B 4.1.3.
4.1.8. B : Nu bc vo v bc ra ca mi nh ca th c hng G khng nh
hn 1 th G cha chu trnh n.
4.1.9. H qu: th c hng lin thng yu G l na Euler (m khng l Euler) khi
v ch khi tn ti hai nh x v y sao cho:
deg
o
(x) = deg
t
(x)+1, deg
t
(y) = deg
o
(y)+1, deg
t
(v) = deg
o
(v), vV, v x, v y.
Chng minh: Chng minh tng t nh H qu 4.1.4.
4.2. NG I HAMILTON V TH HAMILTON.
Nm 1857, nh ton hc ngi Ailen l Hamilton(1805-1865) a ra tr chi i
vng quanh th gii nh sau.
Cho mt hnh thp nh din u (a din u c 12 mt, 20 nh v 30 cnh), mi
nh ca hnh mang tn mt thnh ph ni ting, mi cnh ca hnh (ni hai nh) l
ng i li gia hai thnh ph tng ng. Xut pht t mt thnh ph, hy tm ng
i thm tt c cc thnh ph khc, mi thnh ph ch mt ln, ri tr v ch c.
Ton ri rc - Nguyn Gia nh 58
Trc Hamilton, c th l t thi Euler, ngi ta bit n mt cu hc ba
v ng i ca con m trn bn c. Trn bn c, con m ch c th i theo ng
cho ca hnh ch nht 2 x 3 hoc 3 x 2 vung. Gi s bn c c 8 x 8 vung. Hy
tm ng i ca con m qua c tt c cc ca bn c, mi ch mt ln ri tr li
xut pht.
Bi ton ny c nhiu nh ton hc ch , c bit l Euler, De Moivre,
Vandermonde, ...
Hin nay c nhiu li gii v phng php gii cng c rt nhiu, trong c
quy tc: mi ln b tr con m ta chn v tr m ti v tr ny s cha dng ti do n
khng ch l t nht.
Mt phng php khc da trn tnh i xng ca hai na bn c. Ta tm hnh
trnh ca con m trn mt na bn c, ri ly i xng cho na bn c cn li, sau
ni hnh trnh ca hai na tm li vi nhau.
Tr chi v cu trn dn ti vic kho st mt lp th c bit, l th
Hamilton.
4.2.1. nh ngha: Chu trnh (t.. ng i) s cp cha tt c cc nh ca th (v
hng hoc c hng) G c gi l chu trnh (t.. ng i) Hamilton. Mt th c
cha mt chu trnh (t.. ng i) Hamilton c gi l th Hamilton (t.. na
Hamilton).
Th d 3: 1)
C
B D
A E
J
L H
T
K
I
O P
F
M G
S
R
N Q












th Hamilton (hnh thp nh din u biu din trong mt phng) vi chu trnh
Hamilton A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, A (ng t m).
2) Trong mt t thi u bng bn c n (n 2) u th tham gia. Mi u th gp tng
u th khc ng mt ln. Trong thi u bng bn ch c kh nng thng hoc thua.
Ton ri rc - Nguyn Gia nh 59
Chng minh rng sau t thi u c th xp tt c cc u th ng thnh mt hng dc,
ngi ng sau thng ngi ng ngay trc anh (ch) ta.
Xt th c hng G gm n nh sao cho mi nh ng vi mt u th v c
mt cung ni t nh u n nh v nu u th ng vi u thng u th ng vi v. Nh
vy, th G c tnh cht l vi hai nh phn bit bt k u v v, c mt v ch mt
trong hai cung (u,v) hoc (v,u), th nh th c gi l th c hng y . T
Mnh 4.2.2 di y, G l mt th na Hamilton. Khi ng i Hamilton trong
G cho ta s sp xp cn tm.
3) Mt li gii v hnh trnh ca con m trn bn c 8 x 8:
























D
T
ng i Hamilton tng t ng i Euler trong cch pht biu: ng i
Euler qua mi cnh (cung) ca th ng mt ln, ng i Hamilton qua mi nh
ca th ng mt ln. Tuy nhin, nu nh bi ton tm ng i Euler trong mt
th c gii quyt trn vn, du hiu nhn bit mt th Euler l kh n gin v
d s dng, th cc bi ton v tm ng i Hamilton v xc nh th Hamilton li
kh hn rt nhiu. ng i Hamilton v th Hamilton c nhiu ngha thc tin v
c nghin cu nhiu, nhng vn cn nhng kh khn ln cha ai vt qua c.
Ngi ta ch mi tm c mt vi iu kin nhn bit mt lp rt nh cc
th Hamilton v th na Hamilton. Sau y l mt vi kt qu.
4.2.2. nh l (Rdei): Nu G l mt th c hng y th G l th na
Hamilton.
Ton ri rc - Nguyn Gia nh 60
Chng minh: Gi s G=(V,E) l th c hng y v =(v
1
,v
2
, ..., v
k-1
, v
k
) l
ng i s cp bt k trong th G.
-- Nu i qua tt c cc nh ca G th n l mt ng i Hamilton ca G.
-- Nu trong G cn c nh nm ngoi , th ta c th b sung dn cc nh ny vo v
cui cng nhn c ng i Hamilton.
Tht vy, gi s v l nh tu khng nm trn .
a) Nu c cung ni v vi v
1
th b sung v vo u ca ng i c
1
=(v, v
1
, v
2
,
..., v
k-1
, v
k
).
b) Nu tn ti ch s i (1 i k-1) m t v
i
c cung ni ti v v t v c cung ni ti v
i+1

th ta chen v vo gia v
i
v v
i+1
c ng i s cp
2
=(v
1
, v
2
, ..., v
i
, v, v
i+1
, ..., v
k
).
c) Nu c hai kh nng trn u khng xy ra ngha l vi mi i (1 i k) v
i
u c
cung i ti v. Khi b sung v vo cui ca ng i v c ng i
3
=(v
1
, v
2
,
..., v
k-1
, v
k
, v).
Nu th G c n nh th sau n-k b sung ta s nhn c ng i Hamilton.
4.2.3. nh l (Dirac, 1952): Nu G l mt n th c n nh v mi nh ca G
u c bc khng nh hn
2
n
th G l mt th Hamilton.
Chng minh: nh l c chng minh bng phn chng. Gi s G khng c chu trnh
Hamilton. Ta thm vo G mt s nh mi v ni mi nh mi ny vi mi nh ca G,
ta c th G. Gi s k (>0) l s ti thiu cc nh cn thit G cha mt chu
trnh Hamilton. Nh vy, G c n+k nh.
b
a'
b
y
a







Gi P l chu trnh Hamilton ayb ...a trong G, trong a v b l cc nh ca G,
cn y l mt trong cc nh mi. Khi b khng k vi a, v nu tri li th ta c th b
nh y v c chu trnh ab ...a, mu thun vi gi thit v tnh cht nh nht ca k.
Ngoi ra, nu a l mt nh k no ca a (khc vi y) v b l nh ni tip
ngay a trong chu trnh P th b khng th l nh k vi b, v nu tri li th ta c th
thay P bi chu trnh aa ...bb ... a, trong khng c y, mu thun vi gi thit v tnh
cht nh nht ca k.
Nh vy, vi mi nh k vi a, ta c mt nh khng k vi b, tc l s nh
khng k vi b khng th t hn s nh k vi a (s nh k vi a khng nh hn
2
n
+k).
Ton ri rc - Nguyn Gia nh 61
Mt khc, theo gi thit s nh k vi b cng khng nh hn
2
n
+k. V khng c nh
no va k vi b li va khng k vi b, nn s nh ca G khng t hn
2(
2
n
+k)=n+2k, mu thun vi gi thit l s nh ca G bng n+k (k>0). nh l c
chng minh.
4.2.4. H qu: Nu G l n th c n nh v mi nh ca G u c bc khng nh
hn
2
1 n
th G l th na Hamilton.
Chng minh: Thm vo G mt nh x v ni x vi mi nh ca G th ta nhn c
n th G c n+1 nh v mi nh c bc khng nh hn
2
1 + n
. Do theo nh l
4.2.3, trong G c mt chu trnh Hamilton. B x ra khi chu trnh ny, ta nhn c
ng i Hamilton trong G.
4.2.5. nh l (Ore, 1960): Nu G l mt n th c n nh v bt k hai nh no
khng k nhau cng c tng s bc khng nh hn n th G l mt th Hamilton.
4.2.6. nh l: Nu G l th phn i vi hai tp nh l V
1
, V
2
c s nh cng
bng n (n 2) v bc ca mi nh ln hn
2
n
th G l mt th Hamilton.
Th d 4:
e
f
g
h
b a c d
a
e
f
g
b
d
a c









th G ny c 8 nh, nh no cng th G ny c 5 nh bc 4 v 2 nh
c bc 4, nn theo nh l 4.2.3, G l bc 2 k nhau nn tng s bc ca hai nh
th Hamilton. khng k nhau bt k bng 7 hoc 8, nn
theo nh l 4.2.5, G l th Hamilton.

a b b
d e f

th phn i ny c bc ca mi nh bng 2
hoc 3 (> 3/2), nn theo nh l 4.2.6, n l
th Hamilton.


Ton ri rc - Nguyn Gia nh 62
4.2.7. Bi ton sp xp ch ngi:
C n i biu t n nc n d hi ngh quc t. Mi ngy hp mt ln ngi
quanh mt bn trn. Hi phi b tr bao nhiu ngy v b tr nh th no sao cho trong
mi ngy, mi ngi c hai ngi k bn l bn mi. Lu rng n ngi u mun lm
quen vi nhau.
Xt th gm n nh, mi nh ng vi mi ngi d hi ngh, hai nh k nhau
khi hai i biu tng ng mun lm quen vi nhau. Nh vy, ta c th y K
n
.
th ny l Hamilton v r rng mi chu trnh Hamilton l mt cch sp xp nh yu
cu ca bi ton. Bi ton tr thnh tm cc chu trnh Hamilton phn bit ca th y
K
n
(hai chu trnh Hamilton gi l phn bit nu chng khng c cnh chung).
nh l: th y K
n
vi n l v n 3 c ng
2
1 n
chu trnh Hamilton phn bit.
Chng minh: K
n
c
2
) 1 ( n n
cnh v mi chu trnh Hamilton c n cnh, nn s chu
trnh Hamilton phn bit nhiu nht l
2
1 n
.






Gi s cc nh ca K
n
l 1, 2, ..., n. t nh 1 ti tm ca mt ng trn v cc nh
2, ..., n t cch u nhau trn ng trn (mi cung l 360
0
/(n-1) sao cho nh l nm
na ng trn trn v nh chn nm na ng trn di. Ta c ngay chu trnh
Hamilton u tin l 1,2, ..., n,1. Cc nh c gi c nh, xoay khung theo chiu kim
ng h vi cc gc quay:



n
1 2
3
5
4
1
360
0
n
, 2.
1
360
0
n
, 3.
1
360
0
n
, ...,
2
3 n
.
1
360
0
n
,
ta nhn c
2
3 n
khung phn bit vi khung u tin. Do ta c
2
1 n
chu trnh
Hamilton phn bit.
Th d 5: Gii bi ton sp xp ch ngi vi n=11.
C (111)/2=5 cch sp xp ch ngi phn bit nh sau:
1 2 3 4 5 6 7 8 9 10 11 1
1 3 5 2 7 4 9 6 11 8 10 1
1 5 7 3 9 2 11 4 10 6 8 1
1 7 9 5 11 3 10 2 8 4 6 1
Ton ri rc - Nguyn Gia nh 63
1 9 11 7 10 5 8 3 6 2 4 1




1 2
3
7 5
1
9



8 6
4 1


1 2
3
5
7
9
1
4
6 8
1
1 2
3
5 7
9
1
4
6
1
8






2 1
3
1
9
7
5
4
6
8
1
1 1
2
3
5 7
9
4
6 8
1













BI TP CHNG IV:

1. Vi gi tr no ca n cc th sau y c chu trnh Euler ?
a) K
n
, b) C
n
, c) W
n
, d) Q
n
.
2. Vi gi tr no ca m v n cc th phn i y K
m,n
c:
a) chu trnh Euler ? b) ng i Euler ?
3. Vi gi tr no ca m v n cc th phn i y Km
,n
c chu trnh Hamilton ?
4. Chng minh rng th lp phng Q
n
l mt th Hamilton. V cy lit k tt c
cc chu trnh Hamilton ca th lp phng Q
3
.
5. Trong mt cuc hp c 15 ngi mi ngy ngi vi nhau quanh mt bn trn mt
ln. Hi c bao nhiu cch sp xp sao cho mi ln ngi hp, mi ngi c hai ngi
bn cnh l bn mi, v sp xp nh th no ?
6. Hiu trng mi 2n (n 2) sinh vin gii n d tic. Mi sinh vin gii quen t nht
n sinh vin gii khc n d tic. Chng minh rng lun lun c th xp tt c cc sinh
vin gii ngi xung quanh mt bn trn, mi ngi ngi gia hai ngi m sinh vin
quen.
7. Mt ng vua xy dng mt lu i ct bu vt. Ngi ta tm thy s ca lu
i (hnh sau) vi li dn: mun tm bu vt, ch cn t mt trong cc phng bn ngoi
cng (s 1, 2, 6, 10, ...), i qua tt c cc ca phng, mi ca ch mt ln; bu vt c
giu sau ca cui cng.
Hy tm ni giu bu vt

Ton ri rc - Nguyn Gia nh 64
21 20 19
18 17 16
15
14 13 12 11
10 9 8
7
6 5 4
3
1 2










8. th cho trong hnh sau gi l th Peterson P.

a
e
k i
b g
f h
d c
a) Tm mt ng i Hamilton trong P.
b) Chng minh rng P \ {v}, vi v l mt
nh bt k ca P, l mt th Hamilton.





9. Gii bi ton ngi pht th Trung Hoa vi th cho trong hnh sau:









10. Chng minh rng th G cho trong
hnh sau c ng i Hamilton (t s n r)
a
c
b
s
r
f
e
d
g
h
nhng khng c chu trnh Hamilton.



Ton ri rc - Nguyn Gia nh 65
11. Cho th d v:
1) th c mt chu trnh va l chu trnh Euler va l chu trnh Hamilton;
2) th c mt chu trnh Euler v mt chu trnh Hamilton, nhng hai chu trnh
khng trng nhau;
3) th c 6 nh, l th Hamilton, nhng khng phi l th Euler;
4) th c 6 nh, l th Euler, nhng khng phi l th Hamilton.
12. Chng minh rng con m khng th i qua tt c cc ca mt bn c c 4 x 4 hoc
5 x 5 vung, mi ch mt ln, ri tr v ch c.
Ton ri rc - Nguyn Gia nh 66
CHNG V
MT S BI TON TI U TRN TH

5.1. TH C TRNG S V BI TON NG I NGN NHT.
5.1.1. M u:
Trong i sng, chng ta thng gp nhng tnh hung nh sau: i t a
im A n a im B trong thnh ph, c nhiu ng i, nhiu cch i; c lc ta
chn ng i ngn nht (theo ngha c ly), c lc li cn chn ng i nhanh nht
(theo ngha thi gian) v c lc phi cn nhc chn ng i r tin nht (theo ngha
chi ph), v.v...
C th coi s ca ng i t A n B trong thnh ph l mt th, vi nh
l cc giao l (A v B coi nh giao l), cnh l on ng ni hai giao l. Trn mi
cnh ca th ny, ta gn mt s dng, ng vi chiu di ca on ng, thi gian
i on ng hoc cc ph vn chuyn trn on ng , ...
th c trng s l th G=(V,E) m mi cnh (hoc cung) eE c gn bi
mt s thc m(e), gi l trng s ca cnh (hoc cung) e.
Trong phn ny, trng s ca mi cnh c xt l mt s dng v cn gi l
chiu di ca cnh . Mi ng i t nh u n nh v, c chiu di l m(u,v), bng
tng chiu di cc cnh m n i qua. Khong cch d(u,v) gia hai nh u v v l chiu
di ng i ngn nht (theo ngha m(u,v) nh nht) trong cc ng i t u n v.
C th xem mt th G bt k l mt th c trng s m mi cnh u c
chiu di 1. Khi , khong cch d(u,v) gia hai nh u v v l chiu di ca ng i t
u n v ngn nht, tc l ng i qua t cnh nht.
5.1.2. Bi ton tm ng i ngn nht:
Cho n th lin thng, c trng s G=(V,E). Tm khong cch d(u
0
,v) t mt
nh u
0
cho trc n mt nh v bt k ca G v tm ng i ngn nht t u
0
n v.
C mt s thut ton tm ng i ngn nht; y, ta c thut ton do E.
Dijkstra, nh ton hc ngi H Lan, xut nm 1959. Trong phin bn m ta s trnh
by, ngi ta gi s th l v hng, cc trng s l dng. Ch cn thay i i cht
l c th gii c bi ton tm ng i ngn nht trong th c hng.
Phng php ca thut ton Dijkstra l: xc nh tun t nh c khong cch
n u
0
t nh n ln.
Trc tin, nh c khong cch n a nh nht chnh l a, vi d(u
0
,u
0
)=0. Trong
cc nh v u
0
, tm nh c khong cch k
1
n u
0
l nh nht. nh ny phi l mt
trong cc nh k vi u
0
. Gi s l u
1
. Ta c:
d(u
0,
u
1
) = k
1
.
Ton ri rc - Nguyn Gia nh 67
Trong cc nh v u
0
v v u
1
, tm nh c khong cch k
2
n u
0
l nh nht. nh
ny phi l mt trong cc nh k vi u
0
hoc vi u
1
. Gi s l u
2
. Ta c:
d(u
0
,u
2
) = k
2
.
Tip tc nh trn, cho n bao gi tm c khong cch t u
0
n mi nh v ca G.
Nu V={u
0
, u
1
, ..., u
n
} th:
0 = d(u
0
,u
0
) < d(u
0
,u
1
) < d(u
0
,u
2
) < ... < d(u
0
,u
n
).
5.1.3. Thut ton Dijkstra:

procedure Dijkstra (G=(V,E) l n th lin thng, c trng s vi trng s dng)
{G c cc nh a=u
0
, u
1
, ..., u
n
=z v trng s m(u
i
,u
j
), vi m(u
i
,u
j
) =
nu (u
i
,u
j
) khng l mt cnh trong G}
for i := 1 to n
L(u
i
) :=
L(a) := 0
S := V \ {a}
u := a
while S
begin
for tt c cc nh v thuc S
if L(u) +m(u,v) < L(v) then L(v) := L(u)+m(u,v)
u := nh thuc S c nhn L(u) nh nht
{L(u): di ng i ngn nht t a n u}
S := S \ {u}
end

Th d 1: Tm khong cch d(a,v) t a n mi nh v v tm ng i ngn nht t a
n v cho trong th G sau.

n
b
e
d
g
m
c
h
k
3
2
1
3 6
5 5
3
2
6
2
4
2
4
1
2 3
3
1
a









Ton ri rc - Nguyn Gia nh 68
L(a) L(b) L(c) L(d) L(e) L(g) L(h) L(k) L(m) L(n)































3 3 2 1


5 2 2 3

3
2 5

4 6 3

6
6

9
7
6

10

6
4
0









5.1.4. nh l: Thut ton Dijkstra tm c ng i ngn nht t mt nh cho trc
n mt nh tu trong n th v hng lin thng c trng s.
Chng minh: nh l c chng minh bng quy np. Ti bc k ta c gi thit quy
np l:
(i) Nhn ca nh v khng thuc S l di ca ng i ngn nht t nh a ti nh
ny;
(ii) Nhn ca nh v trong S l di ca ng i ngn nht t nh a ti nh ny v
ng i ny ch cha cc nh (ngoi chnh nh ny) khng thuc S.
Khi k=0, tc l khi cha c bc lp no c thc hin, S=V \ {a}, v th di
ca ng i ngn nht t a ti cc nh khc a l v di ca ng i ngn nht t
a ti chnh n bng 0 ( y, chng ta cho php ng i khng c cnh). Do bc
c s l ng.
Gi s gi thit quy np l ng vi bc k. Gi v l nh ly ra khi S bc
lp k+1, v vy v l nh thuc S cui bc k c nhn nh nht (nu c nhiu nh c
nhn nh nht th c th chn mt nh no lm v). T gi thit quy np ta thy rng
Ton ri rc - Nguyn Gia nh 69
trc khi vo vng lp th k+1, cc nh khng thuc S c gn nhn bng di
ca ng i ngn nht t a. nh v cng vy phi c gn nhn bng di ca
ng i ngn nht t a. Nu iu ny khng xy ra th cui bc lp th k s c
ng i vi di nh hn L
k
(v) cha c nh thuc S (v L
k
(v) l di ca ng i
ngn nht t a ti v cha ch cc nh khng thuc S sau bc lp th k). Gi u l nh
u tin ca ng i ny thuc S. l ng i vi di nh hn L
k
(v) t a ti u
cha ch cc nh khng thuc S. iu ny tri vi cch chn v. Do (i) vn cn ng
cui bc lp k+1.
Gi u l nh thuc S sau bc k+1. ng i ngn nht t a ti u cha ch cc
nh khng thuc S s hoc l cha v hoc l khng. Nu n khng cha v th theo gi
thit quy np di ca n l L
k
(v). Nu n cha v th n s to thnh ng i t a ti
v vi di c th ngn nht v cha ch cc nh khng thuc S khc v, kt thc bng
cnh t v ti u. Khi di ca n s l L
k
(v)+m(v,u). iu chng t (ii) l ng v
L
k+1
(u)=min(L
k
(u), L
k
(v)+m(v,u)).
5.1.5. Mnh : Thut ton Dijkstra tm ng i ngn nht t mt nh cho trc n
mt nh tu trong n th v hng lin thng c trng s c phc tp l O(n
2
).
Chng minh: Thut ton dng khng qu n1 bc lp. Trong mi bc lp, dng
khng hn 2(n1) php cng v php so snh sa i nhn ca cc nh. Ngoi ra,
mt nh thuc S
k
c nhn nh nht nh khng qu n1 php so snh. Do thut ton
c phc tp O(n
2
).
5.1.6. Thut ton Floyd:
Cho G=(V,E) l mt th c hng, c trng s. tm ng i ngn nht
gia mi cp nh ca G, ta c th p dng thut ton Dijkstra nhiu ln hoc p dng
thut ton Floyd c trnh by di y.
Gi s V={v
1
, v
2
, ..., v
n
} v c ma trn trng s l W W
0
. Thut ton Floyd xy
dng dy cc ma trn vung cp n l W
k
(0 k n) nh sau:

procedure Xc nh W
n

for i := 1 to n
for j := 1 to n
W[i,j] := m(v
i
,v
j
) {W[i,j] l phn t dng i ct j ca ma trn W
0
}
for k := 1 to n
if W[i,k] +W[k,j] < W[i,j] then W[i,j] := W[i,k] +W[k,j]
{W[i,j] l phn t dng i ct j ca ma trn W
k
}

5.1.7. nh l: Thut ton Floyd cho ta ma trn W*=W
n
l ma trn khong cch nh
nht ca th G.
Ton ri rc - Nguyn Gia nh 70
Chng minh: Ta chng minh bng quy np theo k mnh sau:
W
k
[i,j] l chiu di ng i ngn nht trong nhng ng i ni nh v
i
vi nh
v
j
i qua cc nh trung gian trong {v
1
, v
2
, ..., v
k
}.
Trc ht mnh hin nhin ng vi k=0.
Gi s mnh ng vi k-1.
Xt W
k
[i,j]. C hai trng hp:
1) Trong cc ng i chiu di ngn nht ni v
i
vi v
j
v i qua cc nh trung gian
trong {v
1
, v
2
, ..., v
k
}, c mt ng i sao cho v
k
. Khi cng l ng i ngn
nht ni v
i
vi v
j
i qua cc nh trung gian trong {v
1
, v
2
, ..., v
k-1
}, nn theo gi thit quy
np,
W
k-1
[i,j] = chiu di W
k-1
[i,k]+W
k-1
[k,j].
Do theo nh ngha ca W
k
th W
k
[i,j]=W
k-1
[i,j].
2) Mi ng i chiu di ngn nht ni v
i
vi v
j
v i qua cc nh trung gian trong
{v
1
, v
2
, ..., v
k
}, u cha v
k
. Gi = v
i
... v
k
... v
j
l mt ng i ngn nht nh th th
v
1
... v
k
v v
k
... v
j
cng l nhng ng i ngn nht i qua cc nh trung gian trong
{v
1
, v
2
, ..., v
k-1
} v
W
k-1
[i,k]+W
k-1
[k,j] = chiu di(v
1
... v
k
) + chiu di(v
k
... v
j
)
= chiu di < W
k-1
[i,j].
Do theo nh ngha ca W
k
th ta c:
W
k
[i,j] = W
k-1
[i,k]+W
k-1
[k,j] .
Th d 2: Xt th G sau:

v
1

7
v
2
4
v
3
v
4

v
5
3
v
6
2
1
1
4
2
2



p dng thut ton Floyd, ta tm c (cc trng l )
W = W
0
=

1
2 2
4
3
1 4
2 7



Ton ri rc - Nguyn Gia nh 71
W
1
= , W

1
4 2 9 2
4
3
1 4
2 7
2
=

2 5 1
10 4 2 9 2
5 8 4
3
1 4
8 2 11 7

W
3
= , W

8 2 5 1
5 10 4 2 9 2
11 5 8 4
3
7 1 4
14 8 2 11 7
4
=

8 2 5 1
5 9 4 2 8 2
11 5 8 4
3
7 1 4
13 7 2 10 6

W
5
= , W* = W

7 2 6 4 1 4
5 9 4 2 8 2
10 5 9 7 4 7
3
6 1 5 3 9 3
12 7 2 9 6 9
6
= .

7 2 6 4 1 4
5 7 4 2 6 2
10 5 9 7 4 7
3 5 9 7 4 7
6 1 5 3 7 3
12 7 2 9 6 9
Thut ton Floyd c th p dng cho th v hng cng nh th c hng.
Ta ch cn thay mi cnh v hng (u,v) bng mt cp cnh c hng (u,v) v (v,u) vi
m(u,v)=m(v,u). Tuy nhin, trong trng hp ny, cc phn t trn ng cho ca ma
trn W cn t bng 0.
th c hng G l lin thng mnh khi v ch khi mi phn t nm trn ng
cho trong ma trn trng s ngn nht W* u hu hn.
5.2. BI TON LUNG CC I.
5.2.1. Lung vn ti:
5.2.1.1. nh ngha: Mng vn ti l mt th c hng, khng c khuyn v c
trng s G=(V,E) vi V={v
0
, v
1
, ..., v
n
} tho mn:
1) Mi cung e E c trng s m(e) l mt s nguyn khng m v c gi l kh nng
thng qua ca cung e.
2) C mt v ch mt nh v
0
khng c cung i vo, tc l deg
t
(v
0
)=0. nh v
0
c gi
l li vo hay nh pht ca mng.
3) C mt v ch mt nh v
n
khng c cung i ra, tc l deg
o
(v
n
)=0. nh v
n
c gi l
li ra hay nh thu ca mng.
Ton ri rc - Nguyn Gia nh 72
5.2.1.2. nh ngha: nh lng khai thc, tc l xc nh lng vt cht chuyn
qua mng vn ti G=(V,E), ngi ta a ra khi nim lung vn ti v n c nh
ngha nh sau.
Hm xc nh trn tp cung E v nhn gi tr nguyn c gi l lung vn ti
ca mng vn ti G nu tho mn:
1) (e) 0, e E.
2) = , v V, vv

) (
) (
v e
e

+
) (
) (
v e
e
0
, vv
n
. y,

(v)={eE | e c nh cui l v},


(v)={eE | e c nh u l v}.
+

3) (e) m(e), e E.
Ta xem (e) nh l lng hng chuyn trn cung e=(u,v) t nh u n nh v v
khng vt qu kh nng thng qua ca cung ny. Ngoi ra, t iu kin 2) ta thy rng
nu v khng phi l li vo v
0
hay li ra v
n
, th lng hng chuyn ti v bng lng
hng chuyn khi v.
T quan h 2) suy ra:
4) = =:

+
) (
0
) (
v e
e

) (
) (
n
v e
e
n
v
.
i lng
n
v
(ta cn k hiu l
n
) c gi l lung qua mng, hay cng
lung ti im v
n
hay gi tr ca lung . Bi ton t ra y l tm
n
v
t gi tr
ln nht, tc l tm gi tr ln nht ca lung.
5.2.1.3. nh ngha: Cho mng vn ti G=(V,E) v A V. K hiu

(A)={(u,v)E | vA, uA},


+
(A)={(u,v)E | uA, vA}.
i vi tp cung M tu , i lng (M)=

M e
e) ( c gi l lung ca tp
cung M.
T iu kin 2) d dng suy ra h qu sau.
5.2.1.4. H qu: Cho l lung ca mng vn ti G=(V,E) v A V \{v
0
,v
n
}. Khi :
(

(A))=(
+
(A)).
5.2.2. Bi ton lung cc i:
Cho mng vn ti G=(V,E). Hy tm lung t
n
v
max trn mng G.
Nguyn l ca cc thut ton gii bi ton tm lung cc i l nh sau.
5.2.2.1. nh ngha: Cho A V l tp con tu khng cha li vo v
0
v cha li ra
v
n
. Tp (A) c gi l mt thit din ca mng vn ti G.

i lng m( (A))=

) (
) (
A e
e m c gi l kh nng thng qua ca thit din
(A).

Ton ri rc - Nguyn Gia nh 73


T nh ngha thit din v kh nng thng qua ca n ta nhn thy rng: mi
n v hng ho c chuyn t v
0
n v
n
t nht cng phi mt ln qua mt cung no
ca thit din (A). V vy, d lung v thit din


(A) nh th no i na
cng vn tho mn quan h:

n
m(

(A)).
Do , nu i vi lung v thit din W m c:

n
= m(W)
th chc chn rng lung t gi tr ln nht v thit din W c kh nng thng qua
nh nht.
5.2.2.2. nh ngha: Cung e trong mng vn ti G vi lung vn ti c goi l
cung bo ho nu (e)=m(e).
Lung ca mng vn ti G c gi l lung y nu mi ng i t v
0
n v
n

u cha t nht mt cung bo ho.
T nh ngha trn ta thy rng, nu lung trong mng vn ti G cha y th
nht nh tm c ng i t li vo v
0
n li ra v
n
khng cha cung bo ho. Khi
ta nng lung thnh nh sau:

+
=
. ) (
, 1 ) (
) ( '

e khi e
e khi e
e
Khi cng l mt lung, m gi tr ca n l:

n
=
n
+1 >
n
.
Nh vy, i vi mi lung khng y ta c th nng gi tr ca n v nng cho
ti khi nhn c mt lung y.
Tuy vy, thc t cho thy rng c th c mt lung y, nhng vn cha t ti
gi tr cc i. Bi vy, cn phi dng thut ton Ford-Fulkerson tm gi tr cc i
ca lung.
5.2.2.3. Thut ton Ford-Fulkerson:
tm lung cc i ca mng vn ti G, ta xut pht t lung tu ca G, ri
nng lung ln y, sau p dng thut ton Ford-Fulkerson hoc ta c th p dng
thut ton Ford-Fulkerson trc tip i vi lung .
Thut ton gm 3 bc:
Bc 1 (nh du nh ca mng): Li vo v
0
c nh du bng 0.
1) Nu nh v
i
c nh du th ta dng ch s +i nh du cho mi nh y cha
c nh du m (v
i
,y)E v cung ny cha bo ho ((v
i
,y)<m(v
i
,y)).
2) Nu nh v
i
c nh du th ta dng ch s i nh du cho mi nh z cha
c nh du m (z,v
i
)E v lung ca cung ny dng ((z,v
i
)>0).
Ton ri rc - Nguyn Gia nh 74
Nu vi phng php ny ta nh du c ti li ra v
n
th trong G tn ti gia
v
0
v v
n
mt xch , mi nh u khc nhau v c nh du theo ch s ca nh lin
trc n (ch sai khc nhau v du). Khi chc chn ta nng c gi tr ca lung.
Bc 2 (nng gi tr ca lung): nng gi tr ca lung , ta t:
(e) = (e), nu e,
(e) = (e)+1, nu e c nh hng theo chiu ca xch i t v
o
n v
n
,
(e) = (e)1, nu e c nh hng ngc vi chiu ca xch i t v
o
n v
n
.

y v
j
z
v
i

-j
+i
e
v
0

v
n








0

tho mn cc iu kin v lung, nn l mt lung v ta c:

n
=
n
+1.
Nh vy, ta nng c lung ln mt n v.
Sau lp li mt vng mi. V kh nng thng qua ca cc cung u hu hn,
nn qu trnh phi dng li sau mt s hu hn bc.
Bc 3: Nu vi lung
0
bng phng php trn ta khng th nng gi tr ca lung
ln na, ngha l ta khng th nh du c nh v
n
, th ta ni rng qu trnh nng
lung kt thc v
0
t gi tr cc i, ng thi gi
0
l lung kt thc.
Khi mng vn ti G=(V,E) t ti lung
0
, th bc tip theo ta khng th nh
du c ti li ra v
n
. Trn c s hin trng c nh du ti bc ny, ta s chng
minh rng lung
0
t c gi tr cc i.
5.2.2.4. B : Cho lung ca mng vn ti G=(V,E) v A V, cha li ra v
n
v
khng cha li vo v
0
. Khi :
)) ( ( )) ( ( A A
n
v
+
= .
Chng minh: t A
1
=A \{v
n
}. Theo H qu 5.2.1.4, ta c:
)) ( ( )) ( (
1 1
A A
+
= (1).
t C
1
={(a,v
n
)E | aA}. Khi C =

) ( ) (
1
A A
1
v C

) (
1
A
1
= , nn
+ =

)) ( ( )) ( (
1
A A (C
1
) (2).
t C
2
={(b,v
n
)E | bA
1
}. Khi C
2
={(b,v
n
)E | bA}, C =
+ +
) ( ) (
1
A A
2
v
C
+
) ( A
2
= , nn
=
+ +
)) ( ( )) ( (
1
A A (C
2
) (3).
Ton ri rc - Nguyn Gia nh 75
Ngoi ra, = C ) (
n
v

1
C
2
v C
1
C
2
= , nn
n
v
= = )) ( (
n
v

(C
1
)+ (C
2
) (4).
T (1), (2), (3) v (4), ta c:
)) ( ( )) ( ( A A
n
v
+
= .
5.2.2.5. nh l (Ford-Fulkerson): Trong mng vn ti G=(V,E), gi tr ln nht ca
lung bng kh nng thng qua nh nht ca thit din, ngha l
)) ( ( min max
, ,
0
A m
A v A v V A
v
n
n


=

.
Chng minh: Gi s trong mng vn ti G,
0
l lung cui cng, m sau bng
phng php nh du ca thut ton Ford-Fulkerson khng t ti li ra v
n
. Trn c s
hin trng c nh du ln cui cng ny, ta dng B k hiu tp gm cc nh ca
G khng c nh du. Khi v
0
B, v
n
B. Do

(B) l mt thit din ca mng


vn ti G v theo B 5.2.2.4, ta c:
)) ( ( )) ( (
0 0 0
B B
n
v
+
= (1).
i vi mi cung e=(u,v)

(B) th uB v vB, tc l u c nh du v v
khng c nh du, nn theo nguyn tc nh du th nht, e l cung bo ho:

0
(e) = m(e).
Do , )) ( ( ) ( ) ( )) ( (
) ( ) (
0 0
B m e m e B
B e B e

= = =


(2).
i vi mi cung e=(s,t)
+
(B) th sB v tB, tc l s khng c nh du
v t c nh du, nn theo nguyn tc nh du th hai:

0
(e) = 0.
Do , 0 ) ( )) ( (
) (
0 0
= =

+

+
B e
e B (3).
T (1), (2) v (3) ta suy ra:
)) ( (
0
B m
n
v

= .
V vy, l gi tr ln nht ca lung t c, cn m( (B)) l gi tr nh
nht trong cc kh nng thng qua ca cc thit din thuc mng vn ti G.
0
n
v

Th d 3: Cho mng vn ti nh hnh di y vi kh nng thng qua c t trong


khuyn trn, lung c ghi trn cc cung. Tm lung cc i ca mng ny.
Lung c ng i (v
0
,v
4
), (v
4
,v
6
), (v
6
,v
8
) gm cc cung cha bo ho nn n
cha y. Do c th nng lung ca cc cung ny ln mt n v, c
1
.
Do mi ng xut pht t v
0
n v
8
u cha t nht mt cung bo ho, nn
lung
1
l lung y. Song n cha phi l lung cc i.
p dng thut ton Ford-Fulkerson nng lung
1
.

Ton ri rc - Nguyn Gia nh 76
v
1

v
5
v
2

v
3

v
0

5
8
6
5
5
7
8
5
v
4

v
6
2
3
4
4
4
4
4
2
2
4
4
3
4
4
v
8

6
9
11
12
6
6
v
7
4 3











v
1

v
5
v
2

v
3

v
0

0
5
8
7
5
5
7
8
5
v
4

v
6
2
3
4
4
4
4
v
8

+7
6
9
12
12
6
6
v
7
+4
4
3
2
4
4
3
4
4
4 3






6




1
+0
+3
Xt xch =(v
0
, v
4
, v
6
, v
3
, v
7
, v
8
). Qu trnh nh du t v
0
n v
8
c th nng
lung
1
ln mt n v bng cch bin i lung ti cc cung thuc xch c nh
du. Sau ta c lung
2
.
v
0

v
4

+4
+0
3+1
7+1
31
v
7
v
8

+3
6+1
2+1
v
3
v
6
6





xch 0
+7

Xt xch =(v
0
, v
1
, v
5
, v
2
, v
6
, v
3
, v
7
, v
8
). Qu trnh nh du t v
0
n v
8
c th
nng lung
2
ln mt n v bng cch bin i lung ti cc cung thuc xch c
nh du. Sau ta c lung
3
.
Ton ri rc - Nguyn Gia nh 77

+0
v
1

+1
v
5
5
v
2

v
3

v
0

0
5
8
8
5
5
7
8
5
v
4

v
6
+2
2
3
4
4
4
4
4
4
3
4
4
2
4
4
v
8

+7
7
9
12
12
6
6
v
7
4 3






6




2
+3
v
0

v
1

7+1
3+1
+0
5
31
+1
v
5

2+1
v
3
v
8

+3
v
7

+2
6
7+1
3+1
21
v
6
v
2




xch
0
+7


v
1

v
5
v
2

v
3

v
0

v
0

5
8
8
5
5
8
8
5
v
4

v
6
3
2
4
4
4
4
4
4
4
4
4
1
4
4
v
8

8
9
12
12
6
6
v
7
4 4










3

Tip theo ta ch c th nh du c nh v
0
nn qu trnh nng lung kt thc
v ta c gi tr ca lung cc i l:
3
8
v
= 6+12+8 = 26.
Mt khc, thit din nh nht (B) vi B={v

1
, v
2
, ..., v
8
} l

(B)={(v
0
,v
1
), (v
0
,v
2
), (v
0
,v
3
), (v
0
,v
4
)}.
Ton ri rc - Nguyn Gia nh 78
5.3. BI TON DU LCH.
5.3.1. Gii thiu bi ton:
Mt ngi xut pht t mt thnh ph no mun ti thm n1 thnh ph
khc, mi thnh ph ng mt ln, ri quay v thnh ph ban u. Hi nn i theo trnh
t no di tng cng cc on ng i qua l ngn nht (khong cch gia hai
thnh ph c th hiu l c ly thng thng hoc thi gian cn i hoc chi ph ca hnh
trnh, ... v xem nh cho trc).
Xt th y G=(V,E), vi V={1, 2, ..., n}, c trng s vi trng s m
ij
=
m(i,j) c th khc m
ji
= m(j,i). Nh vy, ta c th xem G nh l mt th c hng y
mnh theo ngha vi mi i, j=1, 2, ..., n, ij, lun c (i,j), (j,i)E. Bi ton tr
thnh tm chu trnh Hamilton c di ngn nht trong G.
Bi ton ni ting ny c li gii bng cch s dng phng php nhnh v
cn.
5.3.2. Phng php nhnh v cn: Gi s trong mt tp hu hn cc phng n ca
bi ton, ta phi chn ra c mt phng n ti u theo mt tiu chun no (th d
lm cho hm mc tiu t gi tr nh nht). Ta s tm cch phn chia tp phng n
ang xt thnh hai tp con khng giao nhau. Vi mi tp ny, ta s tnh cn di
(chn di tt) ca cc gi tr hm mc tiu ng vi cc phng n trong . Mang
so snh hai cn di va tnh c, ta c th phn on xem tp con no c nhiu trin
vng cha phng n ti u v tip tc phn chia tp con thnh hai tp con khc
khng giao nhau, li tnh cc cn di tng ng ... Lp li qu trnh ny th sau mt s
hu hn bc, cui cng s c mt phng n tt, ni chung l ti u. Nu khng th
lp li qu trnh phn chia kim tra v sau mt vi bc, ta s c phng n ti u.
Ngi ta thng m t qu trnh phn chia bng mt cy c gc m gc s
tng trng cho tp ton b cc phng n, cn cc nh pha di ln lt tng
trng cho cc tp con trong qu trnh phn nhnh nh phn. V vy, phng php ny
mang tn nhnh v cn.
5.3.3. C s l lun ca php ton: Nu khng xc nh thnh ph xut pht th c
n! hnh trnh, mi hnh trnh ng vi mt hon v no ca tp {1, 2, ..., n}. Cn nu
cho trc thnh ph xut pht th c tt c l (n1)! hnh trnh.
Gi s h=((1), (2), ..., (n), (1)) ( l mt hon v) l mt hnh trnh qua cc
thnh ph (1), ..., (n) theo th t ri quay v (1) th hm mc tiu
f(h) =

= + + +
h j i
ij n n n
m m m m
) , (
) 1 ( ) ( ) ( ) 1 ( ) 2 ( ) 1 (
L ,
s biu th tng di i theo hnh trnh h, trong (i,j) k hiu mt chng ng
ca hnh trnh, tc l mt cp thnh ph k nhau theo hnh trnh h.
Ton ri rc - Nguyn Gia nh 79
5.3.4. Ma trn rt gn: Qu trnh tnh ton s c thc hin trn cc ma trn suy t
ma trn trng s M=(m
ij
) ban u bng nhng php bin i rt gn cc s liu c
n gin.
Php tr phn t nh nht ca mi dng (t.. ct) vo tt c cc phn t ca dng
(t.. ct) c gi l php rt gn dng (t.. ct). Phn t nh nht c gi l
hng s rt gn dng (t.. ct) ang xt. Ma trn vi cc phn t khng m v c t nht
mt phn t bng 0 trn mi dng v mi ct c gi l ma trn rt gn ca ma trn
ban u.
Th d 4:
M = M = ,

5 10 9
7 2 6
5 3 4

0 5 4
5 0 4
2 0 1

0 5 3
5 0 3
2 0 0 3
2
5
1 0 0
tt nhin c th rt gn cch khc
M = M = .

5 10 9
7 2 6
5 3 4

0 8 5
2 0 2
0 1 0 0
0
0
4 2 5


5.3.5. Mnh : Phng n ti u xt trn ma trn trng s ban u cng l phng n
ti u ca bi ton xt trn ma trn rt gn v o li.
Chng minh: C th xem vic i tm chu trnh Hamilton ca ngi du lch nh l mt
bi ton vn ti c bit di dng bng. Nh vy th trong bng (ma trn trng s hoc
ma trn rt gn) ta phi c ng n chn, mi chn tng trng cho mt cp thnh
ph trn hnh trnh cn tm, trn mi dng v mi ct c ng mt chn. Mi hnh
trnh h s tng ng mtmt vi mt tp n chn xc nh. f(h) chnh l tng cc
trng s ban u ghi trong n chn ang xt.
Vi mi hnh trnh h bt k, nu k hiu f(h)=

h j i
ij
m
) , (
' l gi tr ca hm mc
tiu ng vi ma trn rt gn M v s l tng cc hng s rt gn th ta c:
f(h) = f(h)+s.
Gi X l tp ton b cc phng n ang xt mt giai on no , h
0
l
phng n ti u ca bi ton xt trn ma trn trng s ban u M, ta c:
f(h
0
) f(h), hX
hay f(h
0
)s f(h)s, hX hay f(h
0
) f(h), hX hay h
0
l phng n ti u ca bi
ton xt trn ma trn rt gn M.
Ton ri rc - Nguyn Gia nh 80
5.3.6. Phn nhnh: S phn hoch tp hp tt c cc hnh trnh mt giai on no
thnh hai tp con ri nhau c biu din bng s phn nhnh ca mt cy. Trn
cy, mi nh c biu din thnh mt vng trn v s tng trng cho mt tp hnh
trnh no . nh X u tin l tp ton b cc hnh trnh. nh (i,j) biu din tp cc
hnh trnh c cha cp (i,j) k nhau. nh ) , ( j i biu din tp cc hnh trnh khng cha
cp (i,j) k nhau. Ti nh (i,j) li c s phn nhnh: nh (k,l) biu din tp cc hnh
trnh c cha cp (i,j) v cp (k,l), nh ) , ( l k biu din tp cc hnh trnh c cha cp
(i,j) nhng khng cha cp (k,l) ...
Nu qu trnh din ra ln th cui cng s c nhng nh ch biu din mt
hnh trnh duy nht.
Vn t ra l nn chn cp thnh ph no tin hnh phn nhnh xut pht
t mt nh cho trc trn cy? Mt cch t nhin ta nn chn cp thnh ph no gn
nhau nht phn nhnh trc, trn ma trn rt gn th nhng cp thnh ph (i,j) nh
vy u c =0 v nhng hnh trnh no cha cp (i,j) u c trin vng l tt.
ij
m'
Trn ma trn rt gn thng c nhiu cp thnh ph tho mn iu kin
( =0). quyt nh ta phi tm cch so snh. V thnh ph i nht thit phi ni lin
vi mt thnh ph no nn cc hnh trnh h khng cha (i,j) tc l h
ij
m'
) , ( j i phi ng
vi nhng di hnh trnh t ra c cha phn t nh nht trong dng i khng k =0
v phn t nh nht trong ct j khng k =0 v thnh ph j nht thit phi ni lin
vi mt thnh ph no trc n trn hnh trnh. K hiu tng ca hai phn t nh
nht l
ij
m'
ij
m'
ij
th ta c f(h)
ij
, h ) , ( j i .
V l do trn, s
ij
c th dng lm tiu chun so snh gia cc cp thnh ph
(i,j) cng c =0. Mt cch tng qut, mi giai on ta s chn cp thnh ph (i,j)
c =0 trong ma trn rt gn v c
ij
m'
ij
m'
ij
ln

nht tin hnh phn nhnh t mt nh
trn cy.
5.3.7. Tnh cn: Vi mi nh ca cy phn nhnh, ta phi tnh cn di ca cc gi tr
hm mc tiu ng vi tp phng n m nh biu din. Cn di tnh c s ghi
bn di nh ang xt.
Theo cng thc f(h)=f(h)+s v do f(h) 0 nn f(h) s, hX. V vy tng cc
hng s rt gn ca ma trn ban u c th ly lm cn di ca nh X u tin trn
cy. Mt khc, ta li c f(h)
ij
, h ) , ( j i , do f(h)=f(h)+s
ij
+s, h ) , ( j i . V
vy tng
ij
+s c th ly lm cn di cho nh ) , ( j i . Sau khi chn (i,j) phn nhnh
xut pht t nh X th trn bng c th xo dng i v ct j v trn chn (i,j) l duy
nht. Sau khi b dng i v ct j th ma trn M li c th rt gn thnh ma trn M vi
s l tng cc hng s rt gn, f(h) l gi tr ca hm mc tiu xt trn M. Khi ta
c f(h)=f(h)+s, h(i,j), do f(h)=f(h)+s=f(h)+s+s, h(i,j). Do f(h) 0 nn
Ton ri rc - Nguyn Gia nh 81
f(h) s+s, h(i,j), ngha l tng s+s c th ly lm cn di cho nh (i,j) trong cy
phn nhnh.
Nu tip tc phn nhnh th cn di ca cc nh tip sau c tnh ton tng
t, v y l mt qu trnh lp. Ta ch cn xem nh xut pht ca cc nhnh ging nh
nh X ban u.. tit kim khi lng tnh ton, ngi ta thng chn nh c cn
di nh nht phn nhnh tip tc.
5.3.8. Th tc ngn chn hnh trnh con: Mt ng i hoc chu trnh Hamilton
khng th cha chu trnh con vi s cnh to thnh nh hn n. V vy ta s t m
ii
=
(i=1, ..., n) trnh cc khuyn.
Vi ij v nu (i,j) l chn th phi t ngay m
ji
= trong ma trn rt gn.
Nu chn (i,j) v (j,k) v n>3 th phi t ngay m
ji
=m
kj
=m
ki
=.
Ch rng vic t m
ij
= tng ng vi vic xo (i,j) trong bng hoc xem
(i,j) l cm, ngha l hai thnh ph i v j khng c k nhau trong hnh trnh nh
kin thit. mi giai on ca qu trnh u phi tin hnh th tc ngn chn ny trc
khi tip tc rt gn ma trn.
5.3.9. Tnh cht ti u: Qu trnh phn nhnh, tnh cn, ngn chn hnh trnh con, rt
gn ma trn phi thc hin cho n khi no c n chn kin thit mt hnh trnh
Hamilton, ni cch khc l cho n khi trn cy phn nhnh xut hin mt nh ch
biu din mt hnh trnh duy nht v xo ht c mi dng mi ct trong bng. Cn
di ca nh cui cng ny chnh l di ca hnh trnh va kin thit.
a) Nu cn di ca nh ny khng ln hn cc cn di ca mi nh treo trn cy
phn nhnh th hnh trnh l ti u.
b) Nu tri li th phi xut pht t nh treo no c cn di nh hn phn nhnh
tip tc v kim tra xem iu kin a) c tho mn khng.
Th d 5: Xt bi ton vi 6 thnh ph, cc s liu cho theo bng sau:
M =

5 9 5 5 23
5 48 27 46 12
18 18 25 16 21
0 5 35 13 20
25 30 1 14 7
26 30 16 43 27 16
1
0
16
5
5
5 0 0 0 0 0

Tng cc hng s rt gn bc u l s=48. Trong ma trn rt gn ta c:
m
14
=m
24
=m
36
=m
41
=m
42
=m
56
=m
62
=m
63
=m
65
=0
Ton ri rc - Nguyn Gia nh 82
v
14
=10,
24
=1,
36
=5,
41
=1,
42
=0,
56
=2,
62
=0,
63
=9,
65
=2. Sau khi so snh ta
thy
14
=10 l ln nht nn ta chn (1,4) phn nhnh. Cn di ca nh ) 4 , 1 ( l
s+
14
=58. Xo dng 1 ct 4 ri t m
41
=.

M = .

0 4 0 0 13
0 43 22 41 2
2 2 9 0 0
0 5 35 13 15
24 29 0 13 1
10 14 0 27 11
1 2 3 4 5 6
1
2
3
4
5
6

0 0 0 13
0 22 41 2
2 2 9 0
0 5 13 15
24 29 13 1
M = .

0 0 0 13
0 22 41 2
2 2 9 0
0 5 13 15
23 28 12 0
1 2 3 1 2 3 6 5 6 5
2 2
3
3
4
4
5 5
6 6
Tng hng s rt gn l s=1. Vy cn di ca nh (1,4) l s+s=49. V 49<58 nn tip
tc phn nhnh ti nh (1,4). Trong ma trn cn li, sau khi rt gn ta c
m
21
=m
36
=m
42
=m
56
=m
62
=m
63
=m
65
=0.
giai on ny, sau khi tnh ton ta thy
21
=14 l ln nht nn chn tip (2,1). Cn
di ca nh ) 1 , 2 ( l 49+
21
=63. Xo dng 2 ct 1. t m
42
=. Rt gn ma trn cn
li, ta c:


0 0 0
0 22 41
2 2 9
0 5 13
M= .


0 0 0
0 22 41
0 0 7
0 5 13
2 2 3 3 5 5 6 6
3
3
4
4
5 5
6 6
Tng hng s rt gn l 2. Cn di ca nh (2,1) l 49+2=51.
Tip tc nh vy cui cng ta c 6 chn l:
(1,4), (2,1), (5,6), (3,5), (4,3), (6,2)
v kin thit hnh trnh h
0
=(1 4 3 5 6 2 1) vi f(h
0
)=63 l cn di ca nh cui cng.
cn di ca nh cui cng l 63, trong khi nh treo ) 4 , 1 ( c cn di l 58<63 nn
phi tip tc phn nhnh t kim tra. Sau s phn nhnh ny th mi nh treo u
c cn di khng nh hn 63 nn c th khng nh rng hnh trnh h
0
=(1 4 3 5 6 2 1)
l ti u.
S phn nhnh t nh ) 4 , 1 ( c lm nh sau: trong ma trn rt gn t 1, ta t
m
14
= v xem (1,4) l cm,
63
=9 l ln nht trong cc
ij
, do chn (6,3)
Ton ri rc - Nguyn Gia nh 83
phn nhnh. Cn di ca nh ) 3 , 6 ( l 58+9=67. t m
36
=. Rt gn ma trn vi tng
hng s rt gn l 15. Cn di ca nh (6,3) l 58+15=73.














BI TP CHNG V:
X
) 4 , 1 (
) 3 , 6 (
) 3 , 6 (
) 4 , 1 (
) 1 , 2 (
) 1 , 2 (
) 6 , 5 (
) 6 , 5 (
) 5 , 3 (
) 5 , 3 (
) 2 , 6 (
) 3 , 4 (
) 2 , 6 (
63
63 64
56 73
51
49
67 73 65
58
48

1. Dng thut ton Dijkstra tm ng i ngn nht t nh a n cc nh khc trong
th sau:








2. Dng thut ton Dijkstra tm ng i ngn nht t nh a n cc nh khc trong
th sau:
c
b
d
k
h
a g
5
12
11
7
3
4
5
7
2
1
2
2
3
4
4
e
b f
c
d
e
g
h
i
5
8
2
5
3
5
2
2
4
10
8
6
3
1
4
1
4
3
6
10
1
a k







Ton ri rc - Nguyn Gia nh 84
3. Cho th c trng s nh hnh di y. Hy tm ng i ngn nht t nh A n
nh N.
A
7
B C D
3 8 3
E
1
F
K
G
L
H
M
I
3
2
4
3
2
2
2
5
4
4
5
2
2
2
3
6
4
2
3
7 5 2 9
N J



3




4. Tm ng i ngn nht t B n cc nh khc ca th c ma trn trng s l (cc
trng l ):
F A B C

D E G

4 1 4
4 2 2
1 2 2 4
4 2 1 4
2 4 1 2 6
4 2 3
6 3

A
B
C
D
E
F
G
5. Tm W* bng cch p dng thut ton Floyd vo th sau:

B C
F D
E
1
3
8
6
4
13
5
3
2
20
A
8







6. Gii bi ton mng vn ti sau bng thut ton Ford-Fulkerson vi lung vn ti khi
u bng 0.
v
1

v
5
v
2

6
v
6
v
3
v
4
v
0

4
v
7

8
8
2
6
4
4 2
2
4
3
4







Ton ri rc - Nguyn Gia nh 85
7. Gii bi ton mng vn ti sau bng thut ton Ford-Fulkerson vi lung vn ti khi
u c cho km theo.
v
1
v
0

v
3
v
2
v
4

v
5

v
6
v
7

v
8

v
9
v
10
v
11
10
6
8
8
2
6
8 0
15
6
16
10
20
2
0
20
2
0
2
16
10
0
0
0
2
2
0 6 3 25
30
3
10
6
10
15
8
1
4
7
7
0
6
2
12
15
5
28
4


8










8. Hy gii bi ton ngi du lch vi 6 thnh ph, c s liu cho trong ma trn trng s
sau:

8 7 4 3 25
3 46 29 44 14
21 20 27 14 23
0 7 33 11 22
23 34 2 16 9
24 32 14 45 25
.
Ton ri rc - Nguyn Gia nh 86
CHNG VI
CY

Mt th lin thng v khng c chu trnh c gi l cy. Cy c dng
t nm 1857, khi nh ton hc Anh tn l Arthur Cayley dng cy xc nh nhng
dng khc nhau ca hp cht ho hc. T cy c dng gii nhiu bi ton
trong nhiu lnh vc khc nhau. Cy rt hay c s dng trong tin hc. Chng hn,
ngi ta dng cy xy dng cc thut ton rt c hiu qu nh v cc phn t
trong mt danh sch. Cy cng dng xy dng cc mng my tnh vi chi ph r nht
cho cc ng in thoi ni cc my phn tn. Cy cng c dng to ra cc m
c hiu qu lu tr v truyn d liu. Dng cy c th m hnh cc th tc m thi
hnh n cn dng mt dy cc quyt nh. V vy cy c bit c gi tr khi nghin cu
cc thut ton sp xp.
6.1. NH NGHA V CC TNH CHT C BN.
6.1.1. nh ngha: Cy l mt th v hng lin thng, khng cha chu trnh v c
t nht hai nh.
Mt th v hng khng cha chu trnh v c t nht hai nh gi l mt rng.
Trong mt rng, mi thnh phn lin thng l mt cy.
Th d 1: Rng sau c 3 cy:
a
c f
d
e
g j
i
k
l
n
m
h
b





6.1.2. Mnh : Nu T l mt cy c n nh th T c t nht hai nh treo.
Chng minh: Ly mt cnh (a,b) tu ca cy T. Trong tp hp cc ng i s cp
cha cnh (a,b), ta ly ng i t u n v di nht. V T l mt cy nn u v. Mt
khc, u v v phi l hai nh treo, v nu mt nh, u chng hn, khng phi l nh treo
th u phi l u mt ca mt cnh (u,x), vi x l nh khng thuc ng i t u n v.
Do , ng i s cp t x n v, cha cnh (a,b), di hn ng i t u n v, tri vi
tnh cht ng i t u n v chn.
6.1.3. nh l: Cho T l mt th c n 2 nh. Cc iu sau l tng ng:
1) T l mt cy.
2) T lin thng v c n1 cnh.
3) T khng cha chu trnh v c n1 cnh.
4) T lin thng v mi cnh l cu.
5) Gia hai nh phn bit bt k ca T lun c duy nht mt ng i s cp.
Ton ri rc - Nguyn Gia nh 87
6) T khng cha chu trnh nhng khi thm mt cnh mi th c c mt chu trnh duy
nht.
Chng minh: 1)2) Ch cn chng minh rng mt cy c n nh th c n1 cnh. Ta
chng minh bng quy np. iu ny hin nhin khi n=2. Gi s cy c k nh th c k1
cnh, ta chng minh rng cy T c k+1 nh th c k cnh. Tht vy, trong T nu ta xo
mt nh treo v cnh treo tng ng th th nhn c l mt cy k nh, cy ny c
k1 cnh, theo gi thit quy np. Vy cy T c k cnh.
2)3) Nu T c chu trnh th b i mt cnh trong chu trnh ny th T vn lin thng.
Lm li nh th cho n khi trong T khng cn chu trnh no m vn lin thng, lc
ta c mt cy c n nh nhng c t hn n1 cnh, tri vi 2).
3)4) Nu T c k thnh phn lin thng T
1
, ..., T
k
ln lt c s nh l n
1
, ..., n
k
(vi
n
1
+n
2
+ +n
k
=n) th mi T
i
l mt cy nn n c s cnh l n
i
1. Vy ta c
n1=(n
1
1)+(n
2
1)+ ... +(n
k
1)=(n
1
+n
2
+ +n
k
)k=nk.
Do k=1 hay T lin thng. Hn na, khi b i mt cnh th T ht lin thng, v nu
cn lin thng th T l mt cy n nh vi n2 cnh, tri vi iu chng minh trn.
4)5) V T lin thng nn gia hai nh phn bit bt k ca T lun c mt ng i s
cp, nhng khng th c ni bi hai ng i s cp v nu th, hai ng s to
ra mt chu trnh v khi b mt cnh thuc chu trnh ny, T vn lin thng, tri vi gi
thit.
5)6) Nu T cha mt chu trnh th hai nh bt k trn chu trnh ny s c ni bi
hai ng i s cp. Ngoi ra, khi thm mt cnh mi (u,v), cnh ny s to nn vi
ng i s cp duy nht ni u v v mt chu trnh duy nht.
6)1) Nu T khng lin thng th thm mt cnh ni hai nh hai thnh phn lin
thng khc nhau ta khng nhn c mt chu trnh no. Vy T lin thng, do n l
mt cy.
6.2. CY KHUNG V BI TON TM CY KHUNG NH NHT.
6.2.1. nh ngha: Trong th lin thng G, nu ta loi b cnh nm trn chu trnh
no th ta s c th vn l lin thng. Nu c loi b cc cnh cc chu trnh
khc cho n khi no th khng cn chu trnh (vn lin thng) th ta thu c mt cy
ni cc nh ca G. Cy gi l cy khung hay cy bao trm ca th G.
Tng qut, nu G l th c n nh, m cnh v k thnh phn lin thng th p
dng th tc va m t i vi mi thnh phn lin thng ca G, ta thu c th gi
l rng khung ca G. S cnh b loi b trong th tc ny bng mn+k, s ny k hiu
l (G) v gi l chu s ca th G.
6.2.2. Bi ton tm cy khung nh nht: Bi ton tm cy khung nh nht ca
th l mt trong s nhng bi ton ti u trn th tm c ng dng trong nhiu lnh
Ton ri rc - Nguyn Gia nh 88
vc khc nhau ca i sng. Trong phn ny ta s c hai thut ton c bn gii bi
ton ny. Trc ht, ni dung ca bi ton c pht biu nh sau.
Cho G=(V,E) l th v hng lin thng c trng s, mi cnh eE c trng
s m(e)0. Gi s T=(V
T
,E
T
) l cy khung ca th G (V
T
=V). Ta gi di m(T) ca
cy khung T l tng trng s ca cc cnh ca n:
m(T)=

T
E
) (
e
e m .
Bi ton t ra l trong s tt c cc cy khung ca th G, hy tm cy khung c
di nh nht. Cy khung nh vy c gi l cy khung nh nht ca th v bi ton
t ra c gi l bi ton tm cy khung nh nht.
minh ho cho nhng ng dng ca bi ton cy khung nh nht, di y l
hai m hnh thc t tiu biu cho n.
Bi ton xy dng h thng ng st: Gi s ta mun xy dng mt h thng ng
st ni n thnh ph sao cho hnh khch c th i t bt c mt thnh ph no n bt k
mt trong s cc thnh ph cn li. Mt khc, trn quan im kinh t i hi l chi ph
v xy dng h thng ng phi l nh nht. R rng l th m nh l cc thnh
ph cn cc cnh l cc tuyn ng st ni cc thnh ph tng ng, vi phng n
xy dng ti u phi l cy. V vy, bi ton t ra dn v bi ton tm cy khung nh
nht trn th y n nh, mi nh tng ng vi mt thnh ph vi di trn
cc cnh chnh l chi ph xy dng h thng ng st ni hai thnh ph.
Bi ton ni mng my tnh: Cn ni mng mt h thng gm n my tnh nh s t 1
n n. Bit chi ph ni my i vi my j l m(i,j) (thng thng chi ph ny ph thuc vo
di cp ni cn s dng). Hy tm cch ni mng sao cho tng chi ph l nh nht.
Bi ton ny cng dn v bi ton tm cy khung nh nht.
Bi ton tm cy khung nh nht c nhng thut ton rt hiu qu gii
chng. Ta s xt hai trong s nhng thut ton nh vy: thut ton Kruskal v thut ton
Prim.
6.2.3. Thut ton Kruskal:Thut ton s xy dng tp cnh E
T
ca cy khung nh
nht T=(V
T
, E
T
) theo tng bc. Trc ht sp xp cc cnh ca th G theo th t
khng gim ca trng s. Bt u t E
T
=, mi bc ta s ln lt duyt trong danh
sch cnh sp xp, t cnh c di nh n cnh c di ln hn, tm ra cnh
m vic b sung n vo tp E
T
khng to thnh chu trnh trong tp ny. Thut ton s
kt thc khi ta thu c tp E
T
gm n1 cnh. C th c th m t nh sau:
1. Bt u t th rng T c n nh.
2. Sp xp cc cnh ca G theo th t khng gim ca trng s.
3. Bt u t cnh u tin ca dy ny, ta c thm dn cc cnh ca dy c xp
vo T theo nguyn tc cnh thm vo khng c to thnh chu trnh trong T.
Ton ri rc - Nguyn Gia nh 89
4. Lp li Bc 3 cho n khi no s cnh trong T bng n1, ta thu c cy khung nh
nht cn tm.
Th d 2: Tm cy khung nh nht ca th cho trong hnh di y:

v
2

v
3

v
1

v
4
v
5
v
6
v
1
v
2
v
3
v
4

v
5

20
14
8
9
4
16
18
17
33
v
6





Bt u t th rng T c 6 nh.
Sp xp cc cnh ca th theo th t khng gim ca trng s:
{(v
3
, v
5
), (v
4
, v
6
), (v
4
, v
5
), (v
5
, v
6
), (v
3
, v
4
), (v
1
, v
3
), (v
2
, v
3
), (v
2
, v
4
), (v
1
, v
2
)}.
Thm vo th T cnh (v
3
, v
5
).
Do s cnh ca T l 1<61 nn tip tc thm cnh (v
4
, v
6
) vo T. By gi s cnh
ca T l 2 vn cn nh hn 6, ta tip tc thm cnh tip theo trong dy sp xp
vo T. Sau khi thm cnh (v
4
, v
5
) vo T, nu thm cnh (v
5
, v
6
) th n s to thnh vi 2
cnh (v
4
, v
5
), (v
4
, v
6
) c trong T mt chu trnh. Tnh hung tng t cng xy ra i
vi cnh (v
3
, v
4
) l cnh tip theo trong dy. Tip theo ta b sung cnh (v
1
, v
3
), (v
2
, v
3
)
vo T v thu dc tp E
T
gm 5 cnh:
{(v
3
, v
5
), (v
4
, v
6
), (v
4
, v
5
), (v
1
, v
3
), (v
2
, v
3
)}.
Tnh ng n ca thut ton: R rng th thu c theo thut ton c n1 cnh v
khng c chu trnh. V vy theo nh l 6.1.3, n l cy khung ca th G. Nh vy
ch cn phi ch ra rng T c di nh nht. Gi s tn ti cy khung S ca th m
m(S)<m(T). K hiu e
k
l cnh u tin trong dy cc cnh ca T xy dng theo thut
ton va m t khng thuc S. Khi th con ca G sinh bi cy S c b sung
cnh e
k
s cha mt chu trnh duy nht C i qua e
k
. Do chu trnh C phi cha cnh e
thuc S nhng khng thuc T nn th con thu c t S bng cch thay cnh e ca n
bi e
k
, k hiu th ny l S, s l cy khung. Theo cch xy dng, m(e
k
)m(e), do
m(S)m(S), ng thi s cnh chung ca S v T tng thm mt so vi s cnh
chung ca S v T. Lp li qu trnh trn tng bc mt, ta c th bin i S thnh T v
trong mi bc tng di khng tng, tc l m(T)m(S). Mu thun ny chng t T l
cy khung nh nht ca G.
phc tp ca thut ton Kruskal c nh gi nh sau. Trc tin, ta sp xp
cc cnh ca G theo th t c chiu di tng dn; vic sp xp ny c phc tp O(p
2
),
vi p l s cnh ca G. Ngi ta chng minh c rng vic chn e
i+1
khng to nn
chu trnh vi i cnh chn trc c phc tp l O(n
2
). Do pn(n1)/2, thut ton
Kruskal c phc tp l O(p
2
).
Ton ri rc - Nguyn Gia nh 90
6.2.4. Thut ton Prim: Thut ton Kruskal lm vic km hiu qu i vi nhng
th dy ( th c s cnh m n(n1)/2). Trong trng hp , thut ton Prim t ra
hiu qu hn. Thut ton Prim cn c gi l phng php ln cn gn nht.
1. V
T
:={v
*
}, trong v
*
l nh tu ca th G.
E
T
:=.
2. Vi mi nh v
j
V
T
, tm nh w
j
V
T
sao cho
m(w
j
,v
j
) = min m(x
i
, v
j
)=:
j
x
i
V
T
v gn cho nh v
j
nhn [w
j
,
j
]. Nu khng tm uc w
j
nh vy (tc l khi v
j
khng k
vi bt c nh no trong V
T
) th gn cho v
j
nhn [0, ].
3. Chn nh v
j*
sao cho

j*
= min
j
v
j
V
T
V
T
:= V
T
{v
j*
},
E
T
:= E
T
{(w
j*
, v
j*
)}.
Nu |V
T
| = n th thut ton dng v (V
T
, E
T
) l cy khung nh nht.
Nu |V
T
| < n th chuyn sang Bc 4.
4. i vi tt c cc nh v
j
V
T
m k vi v
j*
, ta thay i nhn ca chng nh sau:
Nu
j
> m(v
j*
, v
j
) th t
j
:=m(v
j*
, v
j
) v nhn ca v
j
l [v
j*
,
j
]. Ngc li, ta
gi nguyn nhn ca v
j
. Sau quay li Bc 3.
Th d 3: Tm cy khung nh nht bng thut ton Prim ca th gm cc nh A, B,
C, D, E, F, H, I c cho bi ma trn trng s sau.

B

.

14 18 21 11 19 12 18
14 17 23 21 20 20 32
18 17 34 30 21 19 20
21 23 34 22 29 34 23
11 21 30 22 13 13 19
19 20 21 29 13 33 16
12 20 19 34 13 33 15
18 32 20 23 19 16 15
D C E H F A
I
I
H
F
E
D
C
B
A

Yu cu vit cc kt qu trung gian trong tng bc lp, kt qu cui cng cn a ra
tp cnh v di ca cy khung nh nht.

Ton ri rc - Nguyn Gia nh 91
V.lp
A B C D E F H I V
T
E
T
K.to
[A,15] [A,16] [A,19] [A,23] [A,20] [A,32] [A,18] A
1

[A,16] [B,13] [A,23] [B,19] [B,20] [B,12] A, B (A,B)
2

[A,16] [I,11] [I,21] [I,18] [I,14]

A, B, I (A,B), (B,I)
3

[D,13]

[I,21] [I,18] [I,14]

A, B, I, D (A,B), (B,I), (I,D)
4

[I,21] [I,18] [I,14]

A, B, I, D, C (A,B), (B,I), (I,D),
(D,C)
5

[I,21] [H,17]

A, B, I, D, C,
H
(A,B), (B,I), (I,D),
(D,C), (I,H)
6

[I,21]

A, B, I, D, C,
H, F
(A,B), (B,I), (I,D),
(D,C), (I,H), (H,F)
7

A, B, I, D, C,
H, F, E
(A,B), (B,I), (I,D),
(D,C), (I,H), (H,F),
(I,E)

Vy di cy khung nh nht l:
15 + 12 + 11 + 13 + 14 + 17 + 21 = 103.
Tnh ng n ca thut ton: chng minh thut ton Prim l ng, ta chng minh
bng quy np rng T(k) (k=1, 2, ...,n), th nhn c trong vng lp th k, l mt
th con ca cy khung nh nht ca G, do T(n) chnh l mt cy khung nh nht ca
G.
T(1) ch gm nh v
*
ca G, do T(1) l th con ca mi cy khung ca G.
Gi s T(i) (1i<n) l mt th con ca mt cy khung nh nht ca G. Ta chng
minh rng T(i+1) cng l th con ca mt cy khung nh nht.
Tht vy, theo thut ton Prim E
T(i+1)
=E
T(i)
{e
i+1
}, vi e
i+1
l cnh ngn nht
trong tt c cc cnh c mt u mt thuc V
T(i)
, u mt kia khng thuc V
T(i)
.
Nu e
i+1
l mt cnh ca T th T
i+1
l th con ca T.
Nu e
i+1
khng phi l mt cnh ca T th T
i+1
l th con T=(V
T
, E
T
{e
i+1
}).
th T cha mt chu trnh s cp duy nht C (theo tnh cht 6 ca nh l v cy). Ta
chn trong C mt cnh e
j
c mt nh thuc T(i) v nh kia khng thuc T(i) v e
j
e
i+1
.
Ta b e
j
trong C. Khi
T=(V
T
, E
T
\ {e
j
})
l mt cy khung ca G v T(i+1) l th con ca T nn cng l th con ca T.
Theo cch chn e
i+1
ca thut ton Prim, ta c
m(e
i+1
) m(e
j
) do m(T) m(T).
Nhng T l mt cy khung ca G, cn T l cy khung nh nht, v vy phi c
m(T)=m(T), tc l T cng l cy khung nh nht ca G.
phc tp ca thut ton Prim l O(n
3
). Tht vy, nu T(k) c k nh th c nk
nh khng thuc T(k), do ta phi chn chiu di nh nht ca nhiu nht l k(nk)
cnh. Do k(nk) < (n1)
2
, nn phc tp ca bc chn e
k+1
l O(n
2
). V phi chn
n1 cnh, nn phc tp ca thut ton Prim l O(n
3
).
Ton ri rc - Nguyn Gia nh 92
6.3. CY C GC.
6.3.1. nh ngha: Cy c hng l th c hng m th v hng nn ca n l
mt cy.
Cy c gc l mt cy c hng, trong c mt nh c bit, gi l gc, t gc
c ng i n mi nh khc ca cy.
Th d 4:
i
h
l
m
j
k
o
p
q n
d
a
c
g
f
b
e
r









Trong cy c gc th gc r c bc vo bng 0, cn tt c cc nh khc u c bc
vo bng 1.
Mt cy c gc thng c v vi gc r trn cng v cy pht trin t trn
xung, gc r gi l nh mc 0. Cc nh k vi r c xp pha di v gi l nh
mc 1. nh ngay di nh mc 1 l nh mc 2, ...
Tng qut, trong mt cy c gc th v l nh mc k khi v ch khi ng i t r
n v c di bng k.
Mc ln nht ca mt nh bt k trong cy gi l chiu cao ca cy.
Cy c gc hnh trn thng c v nh trong hnh di y lm r mc
ca cc nh.
r
a b c d
e g
f h i
l m n
p o q
k
j











Ton ri rc - Nguyn Gia nh 93
Trong cy c gc, mi cung u c hng t trn xung, v vy v mi tn ch
hng i l khng cn thit; do , ngi ta thng v cc cy c gc nh l cy nn
ca n.
6.3.2. nh ngha: Cho cy T c gc r=v
0
. Gi s v
0
, v
1
, ..., v
n-1
, v
n
l mt ng i
trong T. Ta gi:
v
i+1
l con ca v
i
v v
i
l cha ca v
i+1
.
v
0
, v
1
, ..., v
n-1
l cc t tin ca v
n
v v
n
l dng di ca v
0
, v
1
, ..., v
n-1
.
nh treo v
n
l nh khng c con; nh treo cng gi l l hay nh ngoi; mt nh
khng phi l l mt nh trong.
6.3.3. nh ngha: Mt cy c gc T c gi l cy m-phn nu mi nh ca T c
nhiu nht l m con. Vi m=2, ta c mt cy nh phn.
Trong mt cy nh phn, mi con c ch r l con bn tri hay con bn phi;
con bn tri (t.. phi) c v pha di v bn tri (t.. phi) ca cha.
Cy c gc T c gi l mt cy m-phn y nu mi nh trong ca T u
c m con.
6.3.4. Mnh : Mt cy m-phn y c i nh trong th c mi+1 nh v c
(m1)i+1 l.
Chng minh: Mi nh trong ca cy m-phn y u c bc ra l m, cn l c bc
ra l 0, vy s cung ca cy ny l mi v do s nh ca cy l mi+1. Gi l l s l th
ta c l+i=mi+1, nn l=(m1)i+1.
6.3.5. Mnh : 1) Mt cy m-phn c chiu cao h th c nhiu nht l m
h
l.
2) Mt cy m-phn c l l th c chiu cao h [log
m
l].
Chng minh: 1) Mnh c chng minh bng quy np theo h. Mnh hin nhin
ng khi h=1. Gi s mi cy c chiu cao k h1 u c nhiu nht m
k-1
l (vi h2).
Xt cy T c chiu cao h. B gc khi cy ta c mt rng gm khng qu m cy con,
mi cy con ny c chiu cao h1. Do gi thit quy np, mi cy con ny c nhiu
nht l m
h-1
l. Do l ca nhng cy con ny cng l l ca T, nn T c nhiu nht l
m.m
h-1
=m
h
l.
2) l m
h
h [log
m
l].
6.4. DUYT CY NH PHN.
6.4.1. nh ngha: Trong nhiu trng hp, ta cn phi im danh hay thm mt
cch c h thng mi nh ca mt cy nh phn, mi nh ch mt ln. Ta gi l vic
duyt cy nh phn hay c cy nh phn.
C nhiu thut ton duyt cy nh phn, cc thut ton khc nhau ch yu
th t thm cc nh.
Cy nh phn T c gc r c k hiu l T(r). Gi s r c con bn tri l u, con
bn phi l v. Cy c gc u v cc nh khc l mi dng di ca u trong T gi l cy
Ton ri rc - Nguyn Gia nh 94
con bn tri ca T, k hiu T(u). Tng t, ta c cy con bn phi T(v) ca T. Mt cy
T(r) c th khng c cy con bn tri hay bn phi.
Sau y l ba trong cc thut ton duyt cy nh phn T(r). Cc thut ton u
c trnh by quy. Ch rng khi cy T(x) ch l mt nh x th duyt T(x) c
ngha l thm nh x.
Th d 5:
a
b c
d e f
h i j k
q l m n o p s
g









6.4.2. Cc thut ton duyt cy nh phn:
1) Thut ton tin th t:
1. Thm gc r.
2. Duyt cy con bn tri ca T(r) theo tin th t.
3. Duyt cy con bn phi ca T(r) theo tin th t.
Duyt cy nh phn T(a) trong hnh trn theo tin th t:
1. Thm a
2. Duyt T(b)
2.1. Thm b
2.2. Duyt T(d)
2.2.1. Thm d
2.2.2. Duyt T(g)
2.2.2.1. Thm g
2.2.2.3. Duyt T(l): Thm l
2.2.3. Duyt T(h): Thm h
2.3. Duyt T(e)
2.3.1. Thm e
2.3.2. Duyt T(i)
2.3.2.1. Thm i
2.3.2.2. Duyt T(m): Thm m
2.3.2.3. Duyt T(n): Thm n
3. Duyt T(c)
Ton ri rc - Nguyn Gia nh 95
3.1. Thm c
3.3. Duyt T(f)
3.3.1.Thm f
3.3.2. Duyt T(j)
3.3.2.1. Thm j
3.3.2.2. Duyt T(o): Thm o
3.3.2.3. Duyt T(p): Thm p
3.3.3. Duyt T(k)
3.3.3.1. Thm k
3.3.3.2. Duyt T(q): Thm q
3.3.3.3. Duyt T(s): Thm s
Kt qu duyt cy T(a) theo tin th t l:
a, b, d, g, l, h, e, i, m, n, c, f, j, o, p, k, q, s.
2) Thut ton trung th t:
1. Duyt cy con bn tri ca T(r) theo trung th t.
2. Thm gc r.
3. Duyt cy con bn phi ca T(r) theo trung th t.
Duyt cy nh phn T(a) trong hnh trn theo trung th t:
1. Duyt T(b)
1.1. Duyt T(d)
1.1.1. Duyt T(g)
1.1.1.2. Thm g
1.1.1.3. Duyt T(l): thm l
1.1.2. Thm d
1.1.3. Duyt T(h): Thm h
1.2. Thm b
1.3. Duyt T(e)
1.3.1. Duyt T(i)
1.3.1.1. Duyt T(m): Thm m
1.3.1.2. Thm i
1.3.1.3. Duyt T(n): Thm n
1.3.2. Thm e
2. Thm a
3. Duyt T(c)
3.2. Thm c
3.3. Duyt T(f)
3.3.1. Duyt T(j)
Ton ri rc - Nguyn Gia nh 96
3.3.1.1. Duyt T(o): Thm o
3.3.1.2. Thm j
3.3.1.3. Duyt T(p): Thm p
3.3.2. Thm f
3.3.3. Duyt T(k)
3.3.3.1. Duyt T(q): Thm q
3.3.3.2. Thm k
3.3.3.3. Duyt T(s): Thm s
Kt qu duyt cy T(a) theo trung th t l:
g, l, d, h, b, m, i, n, e, a, c, o, j, p, f, q, k, s.
3) Thut ton hu th t:
1. Duyt cy con bn tri ca T(r) theo hu th t.
2. Duyt cy con bn phi ca T(r) theo hu th t.
3. Thm gc r.
Duyt cy nh phn T(a) trong hnh trn theo hu th t:
1. Duyt T(b)
1.1. Duyt T(d)
1.1.1. Duyt T(g)
1.1.1.2. Duyt T(l): thm l
1.1.1.3. Thm g
1.1.2. Duyt T(h): thm h
1.1.3. Thm d
1.2. Duyt T(e)
1.2.1. Duyt T(i)
1.2.1.1. Duyt T(m): Thm m
1.2.1.2. Duyt T(n): Thm n
1.2.1.3. Thm i
1.2.3. Thm e
1.3. Thm b
2. Duyt T(c)
2.2. Duyt T(f)
2.2.1. Duyt T(j)
2.2.1.1. Duyt T(o): Thm o
2.2.1.2. Duyt T(p): Thm p
2.2.1.3. Thm j
2.2.2. Duyt T(k)
2.2.2.1. Duyt T(q): Thm q
Ton ri rc - Nguyn Gia nh 97
2.2.2.2. Duyt T(s): Thm s
2.2.2.3. Thm k
2.2.3. Thm f
2.3. Thm c
3. Thm a
Kt qu duyt cy T(a) theo trung th t l:
l, g, h, d, m, n, i, e, b, o, p, j, q, s, k, f, c, a.
6.4.3. K php Ba Lan:
Xt biu thc i s sau y:
(a+b)(c
2
d
) (1)
Ta v mt cy nh phn nh hnh di y, trong mi nh trong mang du
ca mt php tnh trong (1), gc ca cy mang php tnh sau cng trong (1), y l
du nhn, k hiu l , mi l mang mt s hoc mt ch i din cho s.

+
b c /
d 2
a








Duyt cy nh phn trong hnh trn theo trung th t l:
a + b c d / 2 (2)
v y l biu thc (1) b i cc du ngoc.
Ta ni rng biu thc (1) c biu din bng cy nh phn T() trong hnh trn,
hay cy nh phn T() ny tng ng vi biu thc (1). Ta cng ni: cch vit (k php)
quen thuc trong i s hc nh cch vit biu thc (1) l k php trung th t km theo
cc du ngoc.
Ta bit rng cc du ngoc trong (1) l rt cn thit, v (2) c th hiu theo nhiu
cch khc (1), chng hn l
(a + b c) d / 2 (3)
hoc l a + (b c d) / 2 (4)
Cc biu thc (3) v (4) c th biu din bng cy nh phn trong cc hnh sau.
Hai cy nh phn tng ng l khc nhau, nhng u c duyt theo trung th t l
(2).
Ton ri rc - Nguyn Gia nh 98
+ /

d
c b

2 a









a /
d

c
+
b
2











i vi cy trong hnh th nht, nu duyt theo tin th t, ta c
+ a b c / d 2 (5)
v nu duyt theo hu th t, ta c:
a b + c d 2 / (6)
C th chng minh c rng (5) hoc (6) xc nh duy nht cy nh phn trong
hnh th nht, do xc nh duy nht biu thc (1) m khng cn du ngoc. Chng
hn cy nh phn trn hnh th hai c duyt theo tin th t l
+ a b c / d 2 khc vi (5).
v c duyt theo hu th t l
a b c + d 2 / khc vi (6).
V vy, nu ta vit cc biu thc trong i s, trong lgic bng cch duyt cy
tng ng theo tin th t hoc hu th t th ta khng cn dng cc du ngoc m
khng s hiu nhm.
Ngi ta gi cch vit biu thc theo tin th t l k php Ba Lan, cn cch vit
theo hu th t l k php Ba Lan o, ghi nh ng gp ca nh ton hc v lgic
hc Ba Lan Lukasiewicz (1878-1956) trong vn ny.
Ton ri rc - Nguyn Gia nh 99
Vic chuyn mt biu thc vit theo k php quen thuc (c du ngoc) sang
dng k php Ba Lan hay k php Ba Lan o hoc ngc li, c th thc hin bng
cch v cy nh phn tng ng, nh lm i vi biu thc (1). Nhng thay v v cy
nh phn, ta c th xem xt xc nh dn cc cng thc b phn ca cng thc
cho. Chng hn cho biu thc vit theo k php Ba Lan l

/ a b 5 c 2 3 c d 2 a c d / b 3 d 3 5

Trc ht, ch rng cc php ton +, , *, /, u l cc php ton hai ngi, v
vy trong cy nh phn tng ng, cc nh mang du cc php ton u l nh trong
v c hai con. Cc ch v s u t l. Theo k php Ba Lan (t.. Ba Lan o) th
T a b (t.. a b T) c ngha l a T b, vi T l mt trong cc php ton +, , *, /, .

{ {
5 3 3 * / * 2 3 2 5 * / *
3 5 d
c a d c
c
b a
d b d c a d c c b a

3 2 1 3 2 1 3 2 1


5 3 ) 3 ( / ) ( * 2 ) ( 3 2 5 ) ( / *
3
) (
5
2
43 42 1 43 42 1 43 42 1 43 42 1
d b d c a
d c
c b a
d b d c a d c c b a




5 3 ) 3 ( / ) ( * ) ( 3 2 ) 5 ( / *
3
) 3 (
2
2
5
43 42 1 4 4 3 4 4 2 1
d b
c b a
d b d c a d c c b a




4 43 4 42 1
4 43 4 42 1
5
) 3 (
3 2
2
5
3
3
5 ) 3 ( / ) ( * ) ( 3
2
5
*
d b
c b a
d b d c a d c
c b a






4 4 4 4 3 4 4 4 4 2 1
4 4 4 4 3 4 4 4 4 2 1
5
) 3 (
) (
3
) (
2
5
2
3
3
2
3
5
) 3 (
) ( * ) (
2
5
*
d b
d c a
d c
c b a
d b
d c a d c
c b a




5
) 3 (
) ( ) (
2
5
3
2
3
d b
d c a d c
c b a






Ton ri rc - Nguyn Gia nh 100
BI TP CHNG VI:

1. V tt c cc cy (khng ng cu) c:
a) 4 nh b) 5 nh c) 6 nh
2. Mt cy c n
2
nh bc 2, n
3
nh bc 3, , n
k
nh bc k. Hi c bao nhiu nh bc
1?
3. Tm s ti a cc nh ca mt cy m-phn c chiu cao h.
4. C th tm c mt cy c 8 nh v tho iu kin di y hay khng? Nu c, v
cy ra, nu khng, gii thch ti sao:
a) Mi nh u c bc 1.
b) Mi nh u c bc 2.
c) C 6 nh bc 2 v 2 nh bc 1.
d) C nh bc 7 v 7 nh bc 1.
5. Chng minh hoc bc b cc mnh sau y.
a) Trong mt cy, nh no cng l nh ct.
b) Mt cy c s nh khng nh hn 3 th c nhiu nh ct hn l cu.
6. C bn i bng A, B, C, D lt vo vng bn kt trong gii cc i mnh khu vc.
C my d on xp hng nh sau:
a) i B v ch, i D nh.
b) i B nh, i C ba.
c) i A nh, i C t.
Bit rng mi d on trn ng v mt i. Hy cho bit kt qu xp hng ca
cc i.
7. Cy Fibonacci c gc T
n
uc dnh ngha bng hi quy nh sau. T
1
v T
2
u l cy
c gc ch gm mt nh v vi n=3,4, cy c gc T
n
c xy dng t gc vi T
n-1

nh l cy con bn tri v T
n-2
nh l cy con bn phi.
a) Hy v 7 cy Fibonacci c gc u tin.
b) Cy Fibonacci T
n
c bao nhiu nh, l v bao nhiu nh trong. Chiu cao
ca n bng bao nhiu?
8. Hy tm cy khung ca th sau bng cch xo i cc cnh trong cc chu trnh n.
a)
a b c
e f g
h i j
d






Ton ri rc - Nguyn Gia nh 101
b)









9. Hy tm cy khung cho mi th sau.
a b
c d e
h
f
i
k
g
l
j
a) K
5
b) K
4,4
c) K
1,6
d) Q
3
e) C
5
f) W
5
.
10. th K
n
vi n=3, 4, 5 c bao nhiu cy khung khng ng cu?
11. Tm cy khung nh nht ca th sau theo thut ton Kruskal v Prim.

a b
c
3
4
d e
g
15
h
9
20
7
5
f
3
1 11
10
14
42







12. Tm cy khung nh nht bng thut ton Prim ca th gm cc nh A, B, C, D,
E, F, H, I c cho bi ma trn trng s sau.

D C E F B G A H
.

18 14 21 12 19 11 20
18 17 23 21 20 19 32
14 17 34 30 21 20 18
21 23 34 22 29 24 19
12 21 30 22 13 33 23
19 20 21 29 13 13 15
11 19 20 24 33 13 16
20 32 18 19 23 15 16
B
A
E
D
C
H
G
F
Yu cu vit cc kt qu trung gian trong tng bc lp, kt qu cui cng cn a ra
tp cnh v di ca cy khung nh nht.
Ton ri rc - Nguyn Gia nh 102
13. Duyt cc cy sau y ln lt bng cc thut ton tin th t, trung th t v hu
th t.
a) b)
e d
l
g
b
c
a
f
i
m
p
j
o
q
k
n
h
a
c b
e f
h
j i
g
d











14. Vit cc biu thc sau y theo k php Ba Lan v k php Ba Lan o.
a)
BD C
BD A
D C B A
D C B A

+
+
+
+ +
2
2
) (
) )( (
.
b)
5
) 2 4 3 (
3
5
3
) (
3
4 2
4
d b a d a
d
c
b a
+

.
15. Vit cc biu thc sau y theo k php quen thuc.
a) x y + 2 x y 2 x y * /.
b) / a b 3 c 2 4 c d 5 a c d / b 2 d 4 3.

Ton ri rc - Nguyn Gia nh 103
CHNG VII
TH PHNG V T MU TH

T xa xa lu truyn mt bi ton c Ba nh, ba ging: C ba nh gn ba
ci ging, nhng khng c ng ni thng cc nh vi nhau cng nh khng c ng
ni thng cc ging vi nhau.
C ln bt ho vi nhau, h tm cch lm
cc ng khc n ging sao cho cc ng ny
i mt khng giao nhau. H c thc hin c
nh khng?
Bi ton ny c th c m hnh bng th phn i y K
3,3
. Cu hi ban
u c th din t nh sau: C th v K
3,3
trn mt mt phng sao cho khng c hai
cnh no ct nhau? Trong chng ny chng ta s nghin cu bi ton: c th v mt
th trn mt mt phng khng c cc cnh no ct nhau khng. c bit chng ta s tr
li bi ton ba nh ba ging. Thng c nhiu cch biu din th. Khi no c th tm
c t nht mt cch biu din th khng c cnh ct nhau?
N
1
N
2

N
3
G
2

G
3
G
1
7.1. TH PHNG.
7.1.1. nh ngha: Mt th c gi l phng nu n c th v c trn mt mt
phng m khng c cc cnh no ct nhau ( mt im khng phi l im mt ca cc
cnh). Hnh v nh th gi l mt biu din phng ca th.
Mt th c th l phng ngay c khi n thng c v vi nhng cnh ct
nhau, v c th v n bng cch khc khng c cc cnh ct nhau.
Th d 1: 1) Mt cy, mt chu trnh n l mt th phng.
2) K
4
l th phng bi v c th v li nh hnh bn khng c ng ct nhau





th K
4
K
4
v khng c ng ct nhau
a b
c d
a
d c
b
3) Xt th G nh trong hnh a di y. C th biu din G mt cch khc nh trong
hnh b, trong bt k hai cnh no cng khng ct nhau.
d
b
c
e
a
e
b
c
a
d




Ton ri rc - Nguyn Gia nh 104
4) th y K
5
l mt th d v th khng phng (xem nh l 7.2.2).
7.1.2. nh ngha: Cho G l mt th phng. Mi phn mt phng gii hn bi mt
chu trnh n khng cha bn trong n mt chu trnh n khc, gi l mt min (hu
hn) ca th G. Chu trnh gii hn min l bin ca min. Mi th phng lin
thng c mt min v hn duy nht (l phn mt phng bn ngoi tt c cc min hu
hn). S cnh t nht to thnh bin gi l ai ca G; trng hp nu G khng c chu
trnh th ai chnh l s cnh ca G.
Th d 2: 1) Mt cy ch c mt min, l min v hn.
2) th phng hnh bn c 5 min, M
5
l min v hn, min M
1
c bin abgfa,
min M
2
c bin l bcdhgb, Chu
trnh n abcdhgfa khng gii hn mt
min v cha bn trong n chu trnh n
khc l abgfa.
7.1.3. nh l (Euler, 1752): Nu mt th phng lin thng c n nh, p cnh v d
min th ta c h thc:
c
d
b
g
h
M
2
a
f
e
M
4

M
3
M
1
M
5
n p + d = 2.
Chng minh: Cho G l th phng lin thng c n nh, p cnh v d min.
Ta b mt s cnh ca G c mt cy khung ca G. Mi ln ta b mt cnh
(p gim 1) th s min ca G cng gim 1 (d gim 1), cn s nh ca G khng thay i
(n khng i). Nh vy, gi tr ca biu thc n p + d khng thay i trong sut qu
trnh ta b bt cnh ca G c mt cy. Cy ny c n nh, do c n 1 cnh v
cy ch c mt min, v vy:
n p + d = n (n 1) + 1 = 2.
H thc n p + d = 2 thng gi l h thc Euler cho hnh a din, v c
Euler chng minh u tin cho hnh a din c n nh, p cnh v d mt. Mi hnh a
din c th coi l mt th phng. Chng hn hnh t din ABCD v hnh hp
ABCDABCD c th biu din bng cc th di y.

A
D
B C
B
B C
C
A
A
D
D






7.1.4. H qu: Trong mt th phng lin thng tu , lun tn ti t nht mt nh
c bc khng vt qu 5.
Ton ri rc - Nguyn Gia nh 105
Chng minh: Trong th phng mi min c bao bng t nht 3 cnh. Mt khc,
mi cnh c th nm trn bin ca ti a hai min, nn ta c 3d 2p.
Nu trong th phng m tt c cc nh u c bc khng nh hn 6 th do mi
nh ca th phi l u mt ca t nht 6 cnh m mi cnh li c hai u mt nn ta
c 6n 2p hay 3n p. T suy ra 3d+3n 2p+p hay d+n p, tri vi h thc Euler
d+n=p+2.
7.2. TH KHNG PHNG.
7.2.1. nh l: th phn i y K
3,3
l mt th khng phng.
Chng minh: Gi s K
3,3
l th phng. Khi ta c mt th phng vi 6 nh
(n=6) v 9 cnh (p=9), nn theo nh l Euler th c s min l d=pn+2=5.
y, mi cnh chung cho hai min, m mi min c t nht 4 cnh. Do
4d2p, tc l 4x52x9, v l.
Nh vy nh l ny cho ta li gii ca bi ton Ba nh ba ging, ngha l
khng th thc hin c vic lm cc ng khc n ging sao cho cc ng ny i
mt khng giao nhau.
7.2.2. nh l: th y K
5
l mt th khng phng.
Chng minh: Gi s K
5
l th phng. Khi ta c mt th phng vi 5 nh (n=5)
v 10 cnh (p=10), nn theo nh l Euler th c s min l d=pn+2=7.
Trong K
5
, mi min c t nht 3cnh, mi cnh chung cho hai min, v vy
3d2n, tc l 3x72x10, v l.
7.2.3. Ch : Ta thy K
3,3
v K
5
l khng phng. R rng, mt th l khng
phng nu n cha mt trong hai th ny nh l th con. Hn na, tt c cc th
khng phng cn phi cha th con nhn c t K
3,3
hoc K
5
bng mt s php ton
cho php no .
Cho th G, c cnh (u,v). Nu ta xo cnh (u,v), ri thm nh w cng vi hai
cnh (u,w) v (w,v) th ta ni rng ta thm nh mi w (bc 2) t trn cnh (u,v) ca
G.
th G c gi l ng phi vi th G nu G c c t G bng cch
thm cc nh mi (bc 2) t trn cc cnh ca G.
Th d 3:
a
u v
b c
a
u v w
d
c b






G G
Ton ri rc - Nguyn Gia nh 106
th G l ng phi vi th G.
Nh ton hc Ba Lan, Kuratowski, thit lp nh l sau y vo nm 1930.
nh l ny biu th c im ca cc th phng nh khi nim th ng phi.
7.2.4. nh l (Kuratowski): th l khng phng khi v ch khi n cha mt
th con ng phi vi K
3,3
hoc K
5
.
Th d 4:
a c
b
f
e
d







Hnh 1 Hnh 2 Hnh 3
th trong hnh 1 v 2 l th phng. Cc th ny c 6 nh, nhng khng
cha th con K
3,3
c v c nh bc 2, trong khi tt c cc nh ca K
3,3
u c bc
3; cng khng th cha th con K
5
c v c nhng nh bc nh hn 4, trong khi
tt c cc nh ca K
5
u c bc 4.
th trong hnh 3 l th khng phng v nu xo nh b cng cc cnh (b,a),
(b,c), (b,f) ta c th con l K
5
.
7.3. T MU TH.
7.3.1. T mu bn :
Mi bn c th coi l mt th phng. Trong mt bn , ta coi hai min c
chung nhau mt ng bin l hai min k nhau (hai min ch c chung nhau mt im
bin khng c coi l k nhau). Mt bn thng c t mu, sao cho hai min k
nhau c t hai mu khc nhau. Ta gi mt cch t mu bn nh vy l mt cch t
mu ng.
m bo chc chn hai min k nhau khng bao gi c mu trng nhau,
chng ta t mi min bng mt mu khc nhau. Tuy nhin vic lm ni chung l
khng hp l. Nu bn c nhiu min th s rt kh phn bit nhng mu gn ging
nhau. Do vy ngi ta ch dng mt s mu cn thit t bn . Mt bi ton c
t ra l: xc nh s mu ti thiu cn c t mu ng mt bn .
b
f c
e d
a
M
6 M
5
M
4

M
3
M
2
M
1
a b
c d
f
e
Th d 5: Bn trong hnh bn c 6 min,
nhng ch cn c 3 mu (vng, , xanh)
t ng bn ny. Chng hn, mu vng
c t cho M
1
v M
4
, mu c t cho M
2

v M
6
, mu xanh c t cho M
3
v M
5
.
Ton ri rc - Nguyn Gia nh 107
7.3.2. T mu th:
Mi bn trn mt phng c th biu din bng mt th, trong mi min
ca bn c biu din bng mt nh; cc cnh ni hai nh, nu cc min c
biu din bng hai nh ny l k nhau. th nhn c bng cch ny gi l th i
ngu ca bn ang xt. R rng mi bn trn mt phng u c th i ngu
phng. Bi ton t mu cc min ca bn l tng ng vi bi ton t mu cc
nh ca th i ngu sao cho khng c hai nh lin k nhau c cng mt mu, m ta
gi l t mu ng cc nh ca th.
S mu t nht cn dng t mu ng th G c gi l sc s ca th G
v k hiu l (G).
Th d 6:







Ta thy rng 4 nh b, d, g, e i mt k nhau nn phi c t bng 4 mu khc
nhau. Do (G) 4. Ngoi ra, c th dng 4 mu nh s 1, 2, 3, 4 t mu G nh
sau:
a b c
d e
f g h







Nh vy (G) = 4.
3 1 2
2 4
4 3 1
7.3.3. Mnh : Nu th G cha mt th con ng phi vi th y K
n
th
(G) n.
Chng minh: Gi H l th con ca G ng phi vi K
n
th (H) n. Do (G) n.
7.3.4. Mnh : Nu n th G khng cha chu trnh di l th (G) =2.
Chng minh: Khng mt tnh cht tng qut c th gi s G lin thng. C nh nh u
ca G v t n bng mu 0 trong hai mu 0 v 1. Vi mi nh v ca G, tn ti mt
ng i t u n v, nu ng ny c di chn th t mu 0 cho v, nu ng ny c
di l th t mu 1 cho v. Nu c hai ng i mang tnh chn l khc nhau cng ni
Ton ri rc - Nguyn Gia nh 108
u vi v th d thy rng G phi cha t nht mt chu trnh di l. iu mu thun ny
cho bit hai mu 0 v 1 t ng th G.
7.3.5. Mnh : Vi mi s nguyn dng n, tn ti mt th khng cha K
3
v c
sc s bng n.
Chng minh: Ta chng minh mnh bng quy np theo n.
Trng hp n=1 l hin nhin.
Gi s ta c th G
n
vi k
n
nh, khng cha K
3
v c sc s l n. Ta xy dng
th G
n+1
gm n bn sao ca G
n
v thm k
n
n
nh mi theo cch sau: mi b th t
(v
1
, v
2
, , v
n
), vi v
i
thuc bn sao G
n
th i, s tng ng vi mt nh mi, nh mi
ny c ni bng n cnh mi n cc nh v
1
, v
2
, , v
n
. D thy rng G
n+1
khng cha
K
3
v c sc s l n+1.
7.3.6. nh l (nh l 5 mu ca Kempe-Heawood): Mi th phng u c
th t ng bng 5 mu.
Chng minh: Cho G l mt th phng. Khng mt tnh cht tng qut c th xem G
l lin thng v c s nh n 5. Ta chng minh G c t ng bi 5 mu bng quy
np theo n.
Trng hp n=5 l hin nhin. Gi s nh l ng cho tt c cc th phng c
s nh nh hn n. Xt G l th phng lin thng c n nh.
Theo H qu 7.1.4, trong G tn ti nh a vi deg(a) 5. Xo nh a v cc cnh
lin thuc vi n, ta nhn c th phng G c n1 nh. Theo gi thit quy np, c
th t ng cc nh ca G bng 5 mu. Sau khi t ng G ri, ta tm cch t nh a
bng mt mu khc vi mu ca cc nh k n, nhng vn l mt trong 5 mu dng.
iu ny lun thc hin c khi deg(a) < 5 hoc khi deg(a)=5 nhng 5 nh k a
c t bng 4 mu tr xung.
Ch cn phi xt trng hp deg(a)=5 m 5 nh k a l b, c, d, e ,f c t
bng 5 mu ri. Khi trong 5 nh b, c, d, e ,f phi c 2 nh khng k nhau, v nu 5
nh i mt k nhau th b c d e f l th y K
5
v y l mt th khng
phng, do G khng phng, tri vi gi thit. Gi s b v d khng k nhau (Hnh 1).








Hnh 1 Hnh 2 Hnh 3
a
f
(2) e
d
c
b
m n
(2)
f
a
e
d
c
b
m
n
f
(5)
a
c
e
(3)
m n
(2)
(4)
(2)
(1)
(5)
(1)
(1)
Ton ri rc - Nguyn Gia nh 109
Xo 2 nh b v d v cho k a nhng nh trc k b hoc k d m khng k a (Hnh
2), ta c th mi G c n2 nh. Theo gi thit quy np, ta c th t ng G
bng 5 mu. Sau khi cc nh ca G c t ng ri (Hnh 2), ta dng li 2 nh b v
d, ri t b v d bng mu t cho a (mu 1, Hnh 3), cn a th c t li bng mu
khc vi mu ca b, c, d, e, f. V b v d khng k nhau c t bng cng mu 1, nn
vi 5 nh ny ch mi dng ht nhiu lm 4 mu.. Do G c t ng bng 5 mu.
7.3.7. nh l (nh l 4 mu ca Appel-Haken): Mi th phng u c th t
ng bng 4 mu.
nh l Bn mu u tin c a ra nh mt phng on vo nm 1850 bi
mt sinh vin ngi Anh tn l F. Guthrie v cui cng c hai nh ton hc M l
Kenneth Appel v Wolfgang Haken chng minh vo nm 1976. Trc nm 1976 cng
c nhiu chng minh sai, m thng thng rt kh tm thy ch sai, c cng b.
Hn th na c nhiu c gng mt cch v ch tm phn th d bng cch c v
bn cn hn bn mu t n.
C l mt trong nhng chng minh sai ni ting nht trong ton hc l chng
minh sai bi ton bn mu c cng b nm 1879 bi lut s, nh ton hc nghip
d Lun n tn l Alfred Kempe. Nh cng b li gii ca bi ton bn mu,
Kempe c cng nhn l hi vin Hi Khoa hc Hong gia Anh. Cc nh ton hc
chp nhn cch chng minh ca ng ta cho ti 1890, khi Percy Heawood pht hin ra
sai lm trong chng minh ca Kempe. Mt khc, dng phng php ca Kempe,
Heawood chng minh c bi ton nm mu (tc l mi bn c th t ng
bng 5 mu).
Nh vy, Heawood mi gii c bi ton nm mu, cn bi ton bn mu
vn cn v l mt thch i vi cc nh ton hc trong sut gn mt th k. Vic
tm li gii ca bi ton bn mu nh hng n s pht trin theo chiu hng
khc nhau ca l thuyt th.
Mi n nm 1976, khai thc phng php ca Kempe v nh cng c my tnh
in t, Appel v Haken tm ra li gii ca bi ton bn mu. Chng minh ca h
da trn s phn tch tng trng hp mt cch cn thn nh my tnh. H ch ra
rng nu bi ton bn mu l sai th s c mt phn th d thuc mt trong gn 2000
loi khc nhau v ch ra khng c loi no dn ti phn th d c. Trong chng minh
ca mnh h dng hn 1000 gi my. Cch chng minh ny gy ra nhiu cuc
tranh ci v my tnh ng vai tr quan trng bit bao. Chng hn, liu c th c sai
lm trong chng trnh v iu dn ti kt qu sai khng? L lun ca h c thc s
l mt chng minh hay khng, nu n ph thuc vo thng tin ra t mt my tnh khng
ng tin cy?

Ton ri rc - Nguyn Gia nh 110
7.3.8. Nhng ng dng ca bi ton t mu th:
1) Lp lch thi: Hy lp lch thi trong trng i hc sao cho khng c sinh vin no
c hai mn thi cng mt lc.
C th gii bi ton lp lch thi bng m hnh th, vi cc nh l cc mn thi,
c mt cnh ni hai nh nu c sinh vin phi thi c hai mn c biu din bng hai
nh ny. Thi gian thi ca mi mn c biu th bng cc mu khc nhau. Nh vy
vic lp lch thi s tng ng vi vic t mu th ny.
Chng hn, c 7 mn thi cn xp lch. Gi s cc mn hc uc nh s t 1 ti
7 v cc cp mn thi sau c chung sinh vin: 1 v 2, 1 v 3, 1 v 4, 1 v 7, 2 v 3, 2 v
4, 2 v 5, 2 v 7, 3 v 4, 3 v 6, 3 v 7, 4 v 5, 4 v 6, 5 v 6, 5 v 7, 6 v 7. Hnh di
y biu din th tng ng. Vic lp lch thi chnh l vic t mu th ny. V s
mu ca th ny l 4 nn cn c 4 t thi.

1
7 2
3 6
5 4
Nu
Nu
Vng



Xanh



Vng



2) Phn chia tn s: Cc knh truyn hnh t s 1 ti s 12 c phn chia cho cc
i truyn hnh sao cho khng c i pht no cch nhau khng qu 240 km li dng
cng mt knh. C th chia knh truyn hnh nh th no bng m hnh t mu th.
Ta xy dng th bng cch coi mi i pht l mt nh. Hai nh c ni vi
nhau bng mt cnh nu chng cch nhau khng qu 240 km. Vic phn chia knh
tng ng vi vic t mu th, trong mi mu biu th mt knh.
3) Cc thanh ghi ch s: Trong cc b dch hiu qu cao vic thc hin cc vng lp
c tng tc khi cc bin dng thng xuyn c lu tm thi trong cc thanh ghi ch
s ca b x l trung tm (CPU) m khng phi trong b nh thng thng. Vi mt
vng lp cho trc cn bao nhiu thanh ghi ch s? Bi ton ny c th gii bng m
hnh t mu th. xy dng m hnh ta coi mi nh ca th l mt bin trong
vng lp. Gia hai nh c mt cnh nu cc bin biu th bng cc nh ny phi c
lu trong cc thanh ghi ch s ti cng thi im khi thc hin vng lp. Nh vy s
mu ca th chnh l s thanh ghi cn c v nhng thanh ghi khc nhau c phn
cho cc bin khi cc nh biu th cc bin ny l lin k trong th.

Ton ri rc - Nguyn Gia nh 111
BI TP CHNG VII:

1. Cho G l mt n th phng lin thng c 10 mt, tt c cc nh u c bc 4.
Tm s nh ca th G.
2. Cho G l mt n th phng lin thng c 9 nh, bc cc nh l 2, 2, 2, 3, 3, 3, 4,
4, 5. Tm s cnh v s mt ca G.
3. Tm s nh, s cnh v ai ca:
a) K
n
; b) K
m,n
.
4. Chng minh rng:
a) K
n
l phng khi v ch khi n 4.
b) K
m,n
l phng khi v ch khi m 2 hay n 2.
5. th no trong cc th khng phng sau y c tnh cht: B mt nh bt k v
cc cnh lin thuc ca n to ra mt th phng.
a) K
5
; b) K
6
; c) K
3,3
.
6. Cho G l mt n th phng lin thng c n nh v m cnh, trong n 3. Chng
minh rng:
m 3n 6.
7. Trong cc th hnh di y, th no l phng, th no khng phng? Nu
th l phng th c th k thm t nht l bao nhiu cnh c th khng phng?








G
1
G
2
G
3
a
b
c
d
e
f
g
h
f
d
e
g
b f
c
b
c a
d e
g f
8. Chng minh rng th Peterson ( th trong Bi tp 8, Chng IV) l th khng
phng.
9. Cho G l mt th phng lin thng c n nh, m cnh v ai l g, vi g 3. Chng
minh rng:
m
2 g
g
(n 2).
10. a din li c d mt (d 5), m t mi nh c ng 3 cnh. Hai ngi chi tr
chi nh sau: mi ngi ln lt t mt mt trong cc mt cn li. Ngi thng l
Ton ri rc - Nguyn Gia nh 112
ngi t c 3 mt c chung mt nh. Chng minh rng tn ti cch chi m ngi
c t trc lun lun thng.
11. Chng minh rng:
a) Mt th phng c th t ng cc nh bng hai mu khi v ch khi l th
phn i.
b) Mt th phng c th t ng cc min bng hai mu khi v ch khi l th
Euler.
12. Tm sc s ca cc th cho trong Bi tp 7.
13. Tm sc s ca cc th K
n
, K
m,n
, C
n
, v W
n
.
14. Khoa Ton c 6 hi ng hp mi thng mt ln. Cn c bao nhiu thi im hp
khc nhau m bo rng khng ai b xp lch hp hai hi ng cng mt lc, nu cc
hi ng l:
H
1
= {H, L, P}, H
2
= {L, M, T}, H
3
= {H, T, P}.
15. Mt vn bch th mun xy dng chung t nhin trng by cc con th.
Khng may, mt s loi th s n tht cc con th khc nu c c hi. C th dng m
hnh th v t mu th nh th no xc nh s chung khc nhau cn c v
cch nht cc con th vo cc chung th t nhin ny?
16. Chng minh rng mt n th phng c 8 nh v 13 cnh khng th c t
ng bng hai mu.
17. Chng minh rng nu G l mt n th phng c t hn 12 nh th tn ti trong
G mt nh c bc 4. T hy suy ra rng th G c th t ng bng 4 mu.
Ton ri rc - Nguyn Gia nh 113
CHNG VIII
I S BOOLE

Cc mch in trong my tnh v cc dng c in t khc u c cc u vo,
mi u vo l s 0 hoc s 1, v to ra cc u ra cng l cc s 0 v 1. Cc mch in
u c th c xy dng bng cch dng bt k mt phn t c bn no c hai trng
thi khc nhau. Chng bao gm cc chuyn mch c th hai v tr m hoc ng v
cc dng c quang hc c th l sng hoc ti. Nm 1938 Claude Shannon chng t
rng c th dng cc quy tc c bn ca lgic do George Boole a ra vo nm 1854
trong cun Cc quy lut ca t duy ca ng thit k cc mch in. Cc quy tc
ny to nn c s ca i s Boole. S hot ng ca mt mch in c xc nh
bi mt hm Boole ch r gi tr ca u ra i vi mi tp u vo. Bc u tin trong
vic xy dng mt mch in l biu din hm Boole ca n bng mt biu thc c
lp bng cch dng cc php ton c bn ca i s Boole. Biu thc m ta s nhn
c c th cha nhiu php ton hn mc cn thit biu din hm . cui
chng ny, ta s c cc phng php tm mt biu thc vi s ti thiu cc php tng
v tch c dng biu din mt hm Boole. Cc th tc c m t l bn
Karnaugh v phng php Quine-McCluskey, chng ng vai tr quan trng trong vic
thit k cc mch in c hiu qu cao.
8.1. KHI NIM I S BOOLE.
8.1.1. nh ngha: Tp hp khc rng S cng vi cc php ton k hiu nhn (.), cng
(+), ly b () c gi l mt i s Boole nu cc tin sau y c tho mn vi
mi a, b, c S.
1. Tnh giao hon: a) a.b = b.a,
b) a+b = b+a.
2. Tnh kt hp: a) (a.b).c = a.(b.c),
b) (a+b)+c = a+(b+c).
3. Tnh phn phi: a) a.(b+c) = (a.b)+(a.c),
b) a+(b.c) = (a+b).(a+c).
4. Tn ti phn t trung ho: Tn ti hai phn t khc nhau ca S, k hiu l 1 v 0
sao cho: a) a.1 = 1.a = a,
b) a+0 = 0+a = a.
1 gi l phn t trung ho ca php . v 0 gi l phn t trung ho ca php +.
5. Tn ti phn t b: Vi mi a S, tn ti duy nht phn t aS sao cho:
a) a.a = a.a = 0,
b) a+a = a+a = 1.
114
a gi l phn t b ca a.
Th d 1:
1) i s lgic l mt i s Boole, trong S l tp hp cc mnh , cc php ton
(hi), (tuyn), (ph nh) tng ng vi . , +, , cc hng (ng), s (sai) tng
ng vi cc phn t trung ho 1, 0.

2) i s tp hp l mt i s Boole, trong S l tp hp P(X) gm cc tp con ca


tp khc rng X, cc php ton (giao), (hp), (b) tng ng vi . , +, , cc tp
X, tng ng vi cc phn t trung ho 1, 0.

3) Cho B

= {0,1}, cc php ton . , +, trn B c nh ngha nh sau:
1.1 = 1, 1+1 = 1, 1 = 0,
1.0 = 0, 1+0 = 1, 0 = 1. (1)
0.1 = 0, 0+1 = 1,
0.0 = 0, 0+0 = 0,
Khi B l mt i s Boole. y cng chnh l i s lgic, trong 1, 0 tng ng
vi (ng), s (sai). Mi phn t 0,1 ca B gi l mt bit. Ta thng vit x thay cho x.
Tng qut, gi B
n
l tp hp cc xu n bit (xu nh phn di n). Ta nh ngha
tch, tng ca hai chui v b ca mt chui theo tng bit mt nh trong Bng 1, m
thng c gi l cc php ton AND-bit, OR-bit, NOT-bit. B
n
vi cc php ton ny
to thnh mt i s Boole.
4) Cho M l tp hp cc s thc c cn trn p, cn di q v tm i xng O. Cc php
ton . , +, trn M c nh ngha nh sau:
a.b = min(a, b), a+b = max(a, b), a l im i xng ca a qua O.
Khi M l mt i s Boole, trong q, p tng ng vi cc phn t trung ho 1, 0.
8.1.2. Ch : Trc ht cn lu iu quan trng sau y: cc tin ca i s Boole
c xp theo tng cp a) v b). T mi tin a), nu ta thay . bi +, thay + bi ., thay
1 bi 0 v thay 0 bi 1 th ta c tin b) tng ng.
Ta gi cp tin a), b) l i ngu ca nhau. Do nu ta chng minh c
mt nh l trong i s Boole th ta c ngay mt nh l khc, i ngu ca n, bng
cch thay . v 1 tng ng bi + v 0 (v ngc li). Ta c:
Quy tc i ngu: i ngu ca mt nh l l mt nh l.
8.1.3. nh l:
6. (Tnh nut)
a) a.0 = 0,
b) a+1 = 1
7. (Tnh lu ng)
a) a.a = a,
b) a+a = a.
115
8. (H thc De Morgan)
a) (a.b) = a+b,
b) (a+b) = a.b.
9. (H thc b kp)
(a) = a.
10. a) 1 = 0,
b) 0 = 1.
11. (Tnh ht)
a) a.(a+b) = a,
b) a+(a.b) = a.
Chng minh:
6. 0 = a.a (tin 5a))
= a.(a+0) (tin 4b))
= (a.a)+(a.0) (tin 3a))
= 0+(a.0) (tin 5a))
= a.0 (tin 4b)).
7. a = a.1 (tin 4a))
= a.(a+a) (tin 5b))
= (a.a)+(a.a) (tin 3a))
= (a.a)+0 (tin 5a))
= a.a (tin 4b))
8. Ta chng minh rng a+b l b ca a.b bng cch chng minh rng:
(a.b).(a+b) = 0 (theo 5a)) v (a.b)+(a+b) = 1 (theo 5b)).
Tht vy, (a.b).(a+b) = (a.b.a)+(a.b.b) = (a.a.b)+(a.b.b) = (0.b)+(a.0) = 0+0 = 0,
(a.b)+(a+b) = (a+b)+(a.b) = (a+b+a).(a+b+b) = (1+b).(a+1) = 1.1 = 1.
V a.b ch c mt phn t b duy nht nn (a.b) = a+b.
9. C ngay t tin 5.
10. C t cc h thc 1.0 = 0 v 1+0 = 1.
11. a.(a+b) = (a+0).(a+b) = a+(0.b) = a+0 = a.
8.1.4. Ch : H tin ca i s Boole nu ra y khng phi l mt h ti thiu.
Chng hn, cc tin v tnh kt hp c th suy ra t cc tin khc. Tht vy, vi
A=(a.b).c v B=a.(b.c), ta c: a+A = a+((a.b).c) = (a+(a.b)).(a+c) = a.(a+c) = a, a+B =
a+(a.(b.c)) = (a+a).(a+(b.c)) = a.(a+(b.c)) = a, a+A = a+((a.b).c) = (a+(a.b)).(a+c) =
((a+a).(a+b)).(a+c) = (1.(a+b)).(a+c) = (a+b).(a+c) = a+(b.c), a+B = a+(a.(b.c))
= (a+a).(a+(b.c)) = 1.(a+(b.c)) = a+(b.c).
Do a+A = a+B v a+A = a+B. T suy ra rng:
116
A = A+0 = A+(a.a) = (A+a).(A+a) = (a+A).(a+A) = (a+B).(a+B)=(a.a)+B=0+B= B
hay ta c 2a) v i ngu ta c 2b). Ngoi ra, tnh duy nht ca phn t b cng c
suy ra t cc tin khc.
Tng t trong i s lgic, trong i s Boole ta cng xt cc cng thc, c
thnh lp t cc bin a, b, c, nh cc php ton . , +, . Trong cng thc, ta quy c
thc hin cc php ton theo th t: , ., +; a.b c vit l ab, gi l tch ca a v b cn
a+b gi l tng ca a v b. Ta c th bin i cng thc, rt gn cng thc tng t
trong i s lgic. Ta cng xt cc tch s cp v tng s cp tng t hi s cp v
tuyn s cp. Mi cng thc u c th a v dng tch chun tc hon ton hoc v
dng tng chun tc hon ton tng t dng hi v tuyn chun tc hon ton. Mi
cng thc trong i s Boole cng c gi l biu din mt hm Boole.
8.2. HM BOOLE.
8.2.1. nh ngha: K hiu B = {0, 1} v B
n
= {(x
1
, x
2
, , x
n
) | x
i
B, 1 i n}, y
B v B
n
l cc i s Boole (xem 2) v 3) ca Th d 1). Bin x c gi l mt bin
Boole nu n nhn cc gi tr ch t B. Mt hm t B
n
vo B c gi l mt hm Boole
(hay hm i s lgic) bc n.
Cc hm Boole cng c th c biu din bng cch dng cc biu thc c
to bi cc bin v cc php ton Boole (xem Bng 1 trong Th d 1). Cc biu thc
Boole vi cc bin x
1
, x
2
, , x
n
c nh ngha bng quy nh sau:
- 0, 1, x
1
, x
2
, , x
n
l cc biu thc Boole.
- Nu P v Q l cc biu thc Boole th P, PQ v P+Q cng l cc biu thc Boole.
Mi mt biu thc Boole biu din mt hm Boole. Cc gi tr ca hm ny nhn
c bng cch thay 0 v 1 cho cc bin trong biu thc .
Hai hm n bin F v G c gi l bng nhau nu F(a
1
, a
2
, , a
n
)=G(a
1
, a
2
, ,a
n
)
vi mi a
1
, a
2
, , a
n
B. Hai biu thc Boole khc nhau biu din cng mt hm Boole
c gi l tng ng. Phn b ca hm Boole F l hm F vi F (x
1
, x
2
, , x
n
) =
) ,..., , (
2 1 n
x x x F . Gi s F v G l cc hm Boole bc n. Tng Boole F+G v tch Boole
FG c nh ngha bi:
(F+G)(x
1
, x
2
, , x
n
) = F(x
1
, x
2
, , x
n
)+G(x
1
, x
2
, , x
n
),
(FG)(x
1
, x
2
, , x
n
) = F(x
1
, x
2
, , x
n
)G(x
1
, x
2
, , x
n
).
Th d 2:
Bc S cc hm Boole
1 4
2 16
3 256
4 65.536
5 4.294.967.296
6 18.446.744.073.709.551.616






Theo quy tc nhn ca php m ta suy
ra rng c 2
n
b n phn t khc nhau gm
cc s 0 v 1. V hm Boole l vic gn 0
hoc 1 cho mi b trong s 2
n
b n phn
t , nn li theo quy tc nhn s c
cc hm Boole khc nhau.
n
2
2
117
Bng sau cho gi tr ca 16 hm Boole bc 2 phn bit:
x y F
1
F
2
F
3
F
4
F
5
F
6
F
7
F
8
F
9
F
10
F
11
F
12
F
13
F
14
F
15
F
16
0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 0 1 0
0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 0 1 1
1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0
1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0
trong c mt s hm thng dng nh sau:
- Hm F
1
l hm hng 0,
- Hm F
2
l hm hng 1,
- Hm F
3
l hm hi, F
3
(x,y) c vit l xy (hay xy),
- Hm F
4
l hm tuyn, F
4
(x,y) c vit l x+y (hay x y),
- Hm F
5
l hm tuyn loi, F
5
(x,y) c vit l xy,
- Hm F
6
l hm ko theo, F
6
(x,y) c vit l xy,
- Hm F
7
l hm tng ng, F
7
(x,y) c vit l xy,
- Hm F
8
l hm Vebb, F
8
(x,y) c vit l x y,
- Hm F
9
l hm Sheffer, F
9
(x,y) c vit l xy.
Th d 3: Cc gi tr ca hm Boole bc 3 F(x, y, z) = xy+ z c cho bi bng sau:

x y z xy
z F(x, y, z) = xy+ z
0 0 0 0 1 1
0 0 1 0 0 0
0 1 0 0 1 1
0 1 1 0 0 0
1 0 0 0 1 1
1 0 1 0 0 0
1 1 0 1 1 1
1 1 1 1 0 1








8.2.2. nh ngha: Cho x l mt bin Boole v B. K hiu:

=
=
=
. 0
, 1

khi x
khi x
x
D thy rng . Vi mi hm Boole F bc n, k hiu:

= = x x 1
T
F
= {(x
1
, x
2
, , x
n
)B
n
| F(x
1
, x
2
, , x
n
)=1}
V gi n l tp c trng ca hm F. Khi ta c:
F
F
T T = , T
F+G
= T
F
T
G
, T
FG
= T
F
T
G
.
Cho n bin Boole x
1
, x
2
, , x
n
. Mt biu thc dng:
k
k
i i i
x x x

K
2
2
1
1

118
trong
k
, , ,
2 1
K B, 1 n i i i
k
< < < L
2 1
c gi l mt hi s cp ca n
bin x
1
, x
2
, , x
n
. S cc bin xut hin trong mt hi s cp oc gi l hng ca ca
hi s cp .
Cho F l mt hm Boole bc n. Nu F c biu din di dng tng (tuyn) ca
mt s hi s cp khc nhau ca n bin th biu din c gi l dng tng (tuyn)
chun tc ca F. Dng tng (tuyn) chun tc hon ton l dng chun tc duy nht ca
F m trong cc hi s cp u c hng n.
Th d 4: y x y x + l mt dng tng chun tc ca hm xy.
y x + v y x y x y x + + l cc dng tng chun tc ca hm Sheffer x y.
8.2.3. Mnh : Mi hm Boole F bc n u c th biu din di dng:

+
=
i
n
i
B
n i i
i
n
x x F x x x x x F
) , , (
1 1
1
2 1
1
1
) , , , , , ( ) , , , (



K
K K K K (1),
trong i l s t nhin bt k, 1 i n.
Chng minh: Gi G l hm Boole v phi ca (1). Cho (x
1
, x
2
, , x
n
)T
F
. Khi s
hng ng vi b gi tr
1
= x
1
, ,
i
= x
i
trong tng v phi ca (1) bng 1, do
(x
1
, x
2
, , x
n
)T
G
. o li, nu (x
1
, x
2
, , x
n
)T
G
tc l v phi bng 1 th phi xy ra
bng 1 ti mt s hng no , chng hn ti s hng ng vi b gi tr (
1
, ,
i
),
khi x
1
=
1
, , x
i
=
i
v f(
1
,,
i
, x
i+1
,, x
n
)=1 hay (x
1
, x
2
, , x
n
)T
F
. Vy
T
F
=T
G
hay F=G.
Cho i=1 trong mnh trn v nhn xt rng vai tr ca cc bin x
i
l nh nhau,
ta c h qu sau.
8.2.4. H qu: Mi hm Boole F bc n u c th c khai trin theo mt bin x
i
:
) , , , 1 , , , ( ) , , , 0 , , , ( ) , , (
1 1 1 1 1 1 1 n i i i n i i i n
x x x x F x x x x x F x x x F K K K K K
+ +
+ = .
Cho i=n trong mnh trn v b i cc nhn t bng 1 trong tch, cc s hng
bng 0 trong tng, ta c h qu sau.
8.2.5. H qu: Mi hm Boole F bc n u c th c khai trin di dng:


=
F n
n
T
n n
x x x x F
) , , (
1
1
1
1
) , , (


K
K K .
8.2.6. Ch : T H qu 8.2.5, ta suy ra rng mi hm Boole u c th biu din di
dng tng (tuyn) chun tc hon ton. Nh vy mi hm Boole u c th biu din
bng mt biu thc Boole ch cha ba php tch (hi), tng (tuyn), b (ph nh). Ta
ni rng h {tch, tng, b} l y .
Bng i ngu, ta c th chng minh mt kt qu tng t bng vic thay tch
bi tng v ngc li, t dn ti vic biu din F qua mt tch cc tng. Biu din
ny c gi l dng tch (hi) chun tc hon ton ca F:
119


+ + =
F n
n
T
n n
x x x x F
) , , (
1
1
1
1
) ( ) , , (


K
K K
Th d 5: Dng tng chun tc hon ton ca hm F cho trong Th d 3 l:
xyz z xy z y x z y x z y x z y x F + + + + = ) , , ( ,
v dng tch chun tc hon ton ca n l:
) )( )( ( ) , , ( z y x z y x z y x z y x F + + + + + + = .
8.3. MCH LGIC.
8.3.1. Cng lgic:
x
1
x
2
F(x
1
, x
2
, , x
n
)
M
x
n-1
x
n

Xt mt thit b nh hnh trn, c mt s ng vo (dn tn hiu vo) v ch c
mt ng ra (pht tn hiu ra). Gi s cc tn hiu vo x
1
, x
2
, , x
n
(ta gi l u vo
hay input) cng nh tn hiu ra F (u ra hay output) u ch c hai trng thi khc
nhau, tc l mang mt bit thng tin, m ta k hiu l 0 v 1.
Ta gi mt thit b vi cc u vo v u ra mang gi tr 0, 1 nh vy l mt
mch lgic.
u ra ca mt mch lgic l mt hm Boole F ca cc u vo x
1
, x
2
, , x
n
. Ta
ni mch lgic trong hnh trn thc hin hm F.
Cc mch lgic c to thnh t mt s mch c s, gi l cng lgic. Cc cng
lgic sau y thc hin cc hm ph nh, hi v tuyn.
1. Cng NOT: Cng NOT thc hin hm ph nh. Cng ch c mt u vo. u ra
F(x) l ph nh ca u vo x.

=
=
= =
. 0 1
, 1 0
) (
x khi
khi
x x F
F(x)= x
x
Chng hn, xu bit 100101011 qua cng NOT cho xu bit 011010100.
2. Cng AND: Cng AND thc hin hm hi. u ra F(x,y) l hi (tch) ca cc u
vo.

= =
= =
0
, 1 1
) , (
y x khi
xy y x F
trong cc trng hp khc.

x
y
F(x,y)=xy
x
y
z
F(x,y,z)=xyz


Chng hn, hai xu bit 101001101 v 111010110 qua cng AND cho 101000100.
120
3. Cng OR: Cng OR thc hin hm tuyn (tng). u ra F(x,y) l tuyn (tng) ca
cc u vo.

= =
= =
= + =
. 0 0
, 1 1 1
) , (
y x khi
y hay x khi
y x y x F
x
y
F(x,y)=x+y
x
y
z
t
F=x+y+z+t


Chng hn, hai xu bit 101001101 v 111010100 qua cng OR cho 111011101.
8.3.2. Mch lgic:
1. T hp cc cng: Cc cng lgic c th lp ghp c nhng mch lgic thc
hin cc hm Boole phc tp hn. Nh ta bit rng mt hm Boole bt k c th biu
din bng mt biu thc ch cha cc php , ., +. T suy ra rng c th lp ghp
thch hp cc cng NOT, AND, OR c mt mch lgic thc hin mt hm Boole
bt k.
Th d 6: Xy dng mt mch lgic thc hin hm Boole cho bi bng sau.








Theo bng ny, hm F c dng tng (tuyn) chun tc hon ton l:
x y z F(x,y,z)
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
z y x z xy xyz z y x F + + = ) , , ( .
Hnh di y v mch lgic thc hin hm F cho.
z y x z xy xyz F + + =
x
y
z










121
Biu thc ca F(x, y, z) c th rt gn:
z y x xy z y x z z xy z y x z xy xyz + = + + = + + ) ( .
Hnh di y cho ta mch lgic thc hin hm z y x xy + .







Hai mch lgic trong hai hnh trn thc hin cng mt hm Boole, ta ni l
hai mch lgic tng ng, nhng mch lgic th hai n gin hn.
z y x xy F + =

z
x
y
Vn tm mch lgic n gin thc hin mt hm Boole F cho trc gn lin
vi vn tm biu thc n gin nht biu din hm y. y l vn kh v l th,
tuy ngha thc tin ca n khng cn nh my chc nm v trc.
Ta va xt vic thc hin mt hm Boole bt k bng mt mch lgic ch gm
cc cng NOT, AND, OR.
Da vo ng thc y x y x . = + cng nh y x xy + = , cho ta bit h {., } v h
{+, } cng l cc h y . Do c th thc hin mt hm Boole bt k bng mt
mch lgic ch gm c cc cng NOT, AND hoc NOT, OR.
Xt hm Sheffer Mch lgic thc hin
hm gi l cng NAND, c v nh hnh di y.

= =
= =
= =
. 0 0 1
, 1 0
) , (
y hay x khi
y x khi
y x y x F


O
y x
x

y
Da vo cc ng thc ) ( ) ( ), ( ) ( , y y x x y x y x y x xy x x x = + = = ,
cho ta bit h {} l y , nn bt k mt hm Boole no cng c th thc hin c
bng mt mch lgic ch gm c cng NAND.
Xt hm Vebb Mch lgic thc hin hm
gi l cng NOR, c v nh hnh di y.

= =
= =
= =
. 0 1
, 1 1 0
) , (
y x khi
y hay x khi
y x y x F




Tng t h {} l y nn bt k hm Boole no cng c th thc hin c
bng mt mch lgic ch gm c cng NOR.
Mt php ton lgic quan trng khc l php tuyn loi:
O
y x
x
y
122

=
= =
. 1
, 0
) , (
y x khi
y x khi
y x y x F
Mch lgic ny l mt cng lgic, gi l cng XOR, c v nh hnh di y.

x
y x

y
2. Mch cng: Nhiu bi ton i hi phi xy dng nhng mch lgic c nhiu ng
ra, cho cc u ra F
1
, F
2
, , F
k
l cc hm Boole ca cc u vo x
1
, x
2
, , x
n
.
F
1
(x
1
, x
2
, , x
n
)
F
2
(x
1
, x
2
, , x
n
)
F
k
(x
1
, x
2
, , x
n
)
x
2
x
1
M

M
x
n-1
x
n

Chng hn, ta xt php cng hai s t nhin t cc khai trin nh phn ca chng.
Trc ht, ta s xy dng mt mch c th duc dng tm x+y vi x, y l hai s 1-bit.
u vo mch ny s l x v y. u ra s l mt s 2-bit cs , trong s l bit tng v c
l bit nh.
x y c s
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
0+0 = 00
0+1 = 01
1+0 = 01
1+1 = 10

T bng trn, ta thy ngay xy c y x s = = , . Ta v c mch thc hin hai hm
y x s = v xy c = nh hnh di y. Mch ny gi l mch cng hai s 1-bit hay
mch cng bn phn, k hiu l DA.






Xt php cng hai s 2-bit
1 2
a a v
1 2
b b ,
y x s =

x
y

DA
s x
c y
xy c =

1 2
1 2
b b
a a


Thc hin php cng theo tng ct, ct th nht (t phi sang tri) ta tnh
1 1
b a + c
bit tng s
1
v bit nh c
1
; ct th hai, ta tnh
1 2 2
c b a + + , tc l phi cng ba s 1-bit.
123
Cho x, y, z l ba s 1-bit. Tng x+y+z l mt s 2-bit cs , trong s l bit tng
ca x+y+z v c l bit nh ca x+y+z. Cc hm Boole s v c theo cc bin x, y, z c
xc nh bng bng sau:








T bng ny, d dng thy rng:
x y z c s
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
z y x s = .
Hm c c th vit di dng tng chun tc hon ton l:
xyz z xy z y x yz x c + + + = .
Cng thc ca c c th rt gn:
xy y x z z z xy y x y x z c + = + + + = ) ( ) ( ) ( .
Ta v c mch thc hin hai hm Boole z y x s = v xy y x z c + = ) (
nh hnh di y, mch ny l ghp ni ca hai mch cng bn phn (DA) v mt
cng OR. y l mch cng ba s 1-bit hay mch cng ton phn, k hiu l AD.

x
y
z

DA

DA
x
y
z


s




c



x
y
z

AD

s
s
c
c

124
Tr li php cng hai s 2-bit
1 2
a a v
1 2
b b . Tng
1 2
a a +
1 2
b b l mt s 3-bit
1 2 2
s s c , trong s
1
l bit tng ca a
1
+b
1
:
1 1 1
b a s = , s
2
l bit tng ca a
2
+b
2
+c
1
, vi c
1

l bit nh ca a
1
+b
1
:
1 2 2 2
c b a s = v c
2
l bit nh ca a
2
+b
2
+c
1
.
Ta c c mch thc hin ba hm Boole s
1
, s
2
, c
2
nh hnh di y.

b
2
a
2
b
1
a
1








D dng suy ra mch cng hai s n-bit, vi n l mt s nguyn dng bt k.
Hnh sau cho mt mch cng hai s 4-bit.
c
2

c
1

DA AD
s
2
s
1

b
4

a
4

b
3

a
3
b
2
a
2
b
1
a
1



DA AD
c
4


AD
c
2

AD
c
3






c
1
s
4

s
3
s
2
s
1


8.4. CC TIU HO CC MCH LGIC.
Hiu qu ca mt mch t hp ph thuc vo s cc cng v s b tr cc cng
. Qu trnh thit k mt mch t hp c bt u bng mt bng ch r cc gi tr
u ra i vi mi mt t hp cc gi tr u vo. Ta lun lun c th s dng khai trin
tng cc tch ca mch tm tp cc cng lgic thc hin mch . Tuy nhin,khai
trin tng cc tch c th cha cc s hng nhiu hn mc cn thit. Cc s hng trong
khai trin tng cc tch ch khc nhau mt bin, sao cho trong s hng ny xut hin
bin v trong s hng kia xut hin phn b ca n, u c th c t hp li.
Chng hn, xt mch c u ra bng 1 khi v ch khi x = y = z = 1 hoc x = z = 1 v y =
0. Khai trin tng cc tch ca mch ny l z y x xyz + . Hai tch trong khai trin ny ch
khc nhau mt bin, l bin y. Ta c th t hp li nh sau:
xz xz xz y y z y x xyz = = + = + 1 ) ( .
125
Do xz l biu thc vi t php ton hn biu din mch cho. Mch th hai ch
dng mt cng, trong khi mch th nht phi dng ba cng v mt b o (cng NOT).
8.4.1. Bn Karnaugh:
lm gim s cc s hng trong mt biu thc Boole biu din mt mch, ta
cn phi tm cc s hng t hp li. C mt phng php th, gi l bn
Karnaugh, c dng tm cc s hng t hp c i vi cc hm Boole c s bin
tng i nh. Phng php m ta m t di y c Maurice Karnaugh a ra
vo nm 1953. Phng php ny da trn mt cng trnh trc ca E.W. Veitch. Cc
bn Karnaugh cho ta mt phng php trc quan rt gn cc khai trin tng cc
tch, nhng chng khng thch hp vi vic c kh ho qu trnh ny. Trc ht, ta s
minh ho cch dng cc bn Karnaugh rt gn biu thc ca cc hm Boole hai
bin.
C bn hi s cp khc nhau trong khai trin tng cc tch ca mt hm Boole c
hai bin x v y. Mt bn Karnaugh i vi mt hm
y
xy
y x
y x y x
y
Boole hai bin ny gm bn vung, trong hnh vung
x
biu din hi s cp c mt trong khai trin c ghi s 1.
x
Cc hnh c gi l k nhau nu cc hi s cp m chng
biu din ch khc nhau mt bin.
Th d 7: Tm cc bn Karnaugh cho cc biu thc:
a) y x xy + b) y x y x + c) y x y x y x + +
v rt gn chng.
Ta ghi s 1 vo vung khi hi s cp c biu din bi c mt trong khai
trin tng cc tch. Ba bn Karnaugh c cho trn hnh sau.
x
x
y
1

1



y
x
x 1
1

1
1
1
y



Vic nhm cc hi s cp c ch ra trong hnh trn bng cch s dng bn
Karnaugh cho cc khai trin . Khai trin cc tiu ca tng cc tch ny tng ng l:
a) y, b) y x y x + , c) y x + .
Bn Karnaugh ba bin l mt hnh ch nht c chia thnh tm . Cc
biu din tm hi s cp c c. Hai c
z y z y
z y yz
gi l k nhau nu cc hi s cp m chng
x
x xyz
z xy z y x z y x
yz x z y x z y x z y x
biu din ch khc nhau mt bin. Mt trong
cc cch lp bn Karnaugh ba bin c
cho trong hnh bn.
126
rt gn khai trin tng cc tch ba bin, ta s dng bn Karnaugh nhn
dng cc hi s cp c th t hp li. Cc khi gm hai k nhau biu din cp cc hi
s cp c th c t hp li thnh mt tch ca hai bin; cc khi 2 x 2 v 4 x 1 biu
din cc hi s cp c th t hp li thnh mt bin duy nht; cn khi gm tt c tm
biu din mt tch khng c mt bin no, c th y l biu thc 1.
Th d 8: Dng cc bn Karnaugh ba bin rt gn cc khai trin tng cc tch sau:
a) , z y x yz x z y x z xy + + +
b) z y x z y x yz x z y x z y x + + + + ,
c) z y x z y x yz x z y x z y x z xy xyz + + + + + + .
Bn Karnaugh cho nhng khai trin tng cc tch ny c cho trong hnh
sau:








Vic nhm thnh cc khi cho thy rng cc khai trin cc tiu thnh cc tng Boole
ca cc tch Boole l:
z y z y z y yz
x
x 1 1
1 1

z y z y z y yz
1 1
1 1 1
1 1 1 1
1 1 1
x
x
x
x
yz z y z y z y
a) yz x z y z x + + , b) z x y + , c) z y x + + .
Bn Karnaugh bn bin l mt hnh vung c chia lm 16 . Cc ny biu
din 16 hi s cp c c. Mt trong nhng cch lp bn Karnaugh bn bin c
cho trong hnh di y.







Hai c gi l k nhau nu cc hi s cp m chng biu din ch khc nhau
mt bin. Do , mi mt k vi bn khc. S rt gn mt khai trin tng cc tch
bn bin c thc hin bng cch nhn dng cc khi gm 2, 4, 8 hoc 16 biu din
cc hi s cp c th t hp li c. Mi biu din mt hi s cp hoc c dng
lp mt tch c t bin hn hoc c a vo trong khai trin. Cng nh trong trng
wx
x w
x w
x w
z y z y z y yz
wxyz
z wxy z y wx z y wx
yz x w z y x w z y x w z y wx
yz x w z y x w z y x w z y x w
xyz w z xy w z y x w z y x w
127
hp bn Karnaugh hai v ba bin, mc tiu l cn phi nhn dng cc khi ln nht
c cha cc s 1 bng cch dng mt s t nht cc khi, m trc ht l cc khi ln
nht.
8.4.2. Phng php Quine-McCluskey:
8.4.2.1. M u: Ta thy rng cc bn Karnaugh c th c dng to biu
thc cc tiu ca cc hm Boole nh tng ca cc tch Boole. Tuy nhin, cc bn
Karnaugh s rt kh dng khi s bin ln hn bn. Hn na, vic dng cc bn
Karnaugh li da trn vic r sot trc quan nhn dng cc s hng cn c nhm
li. V nhng nguyn nhn , cn phi c mt th tc rt gn nhng khai trin tng cc
tch c th c kh ho c. Phng php Quine-McCluskey l mt th tc nh vy. N
c th c dng cho cc hm Boole c s bin bt k. Phng php ny c W.V.
Quine v E.J. McCluskey pht trin vo nhng nm 1950. V c bn, phng php
Quine-McCluskey c hai phn. Phn u l tm cc s hng l ng vin a vo khai
trin cc tiu nh mt tng cc tch Boole m ta gi l cc nguyn nhn nguyn t. Phn
th hai l xc nh xem trong s cc ng vin , cc s hng no l thc s dng c.
8.4.2.2. nh ngha: Cho hai hm Boole F v G bc n. Ta ni G l mt nguyn nhn
ca F nu T
G
T
F
, ngha l GF l mt hng ng.
D thy rng mi hi s cp trong mt dng tng chun tc ca F l mt nguyn
nhn ca F. Hi s cp A ca F c gi l mt nguyn nhn nguyn t ca F nu trong
A xo i mt bin th hi nhn uc khng cn l nguyn nhn ca F.
Nu F
1
, , F
k
l cc nguyn nhn ca F th , . Khi
. Do

l mt nguyn nhn ca F.
F F
T T
i
k i 1
U
k
i
F F
F
T T T
i
k
i
i
1
1
=
=

=
=
k
i
i
F
1
Cho S l mt h cc nguyn nhn ca F. Ta ni rng h S l y i vi F nu
, ngha l .

=
S G
G F
U
S G
G F
T T

=
8.4.2.3. Mnh : H cc nguyn nhn nguyn t ca hm F l mt h y .
Chng minh: Gi S l h cc nguyn nhn nguyn t ca F. Ta c S g T T
F G
, ,
Nn Gi s dng tng chun tc hon ton ca F l .
F
S G
G G
T T T
S G
=

=
' '
'
S G
G F
nn .
U
' '
'
S G
G F
T T

=
Xt ' ' S G , nu G khng phi l nguyn nhn nguyn t ca F th bng cch
xo bt mt s bin trong G ta thu c nguyn nhn nguyn t G ca F. Khi
v hay . V vy hay
G G
T T
' U U
S G
G
S G
G
T T


' '
' U
S G
G F
T T

U
S G
G F
T T

=
S G
G F .
128
Dng tng chun tc

=
S G
G F c gi l dng tng chun tc thu gn ca F.
8.4.2.4. Phng php Quine-McCluskey tm dng tng chun tc thu gn:
Gi s F l mt hm Boole n bin x
1
, x
2
, , x
n
. Mi hi s cp ca n bin
c biu din bng mt dy n k hiu trong bng {0, 1, } theo quy c: k t th i l
1 hay 0 nu x
i
c mt trong hi s cp l bnh thng hay vi du ph nh, cn nu x
i

khng c mt th k t ny l . Chng hn, hi s cp ca 6 bin x
1
, , x
6
l
6 4 3 1
x x x x
c biu din bi 0110. Hai hi s cp c gi l k nhau nu cc biu din ni
trn ca chng ch khc nhau mt v tr 0, 1. R rng cc hi s cp ch c th dn
c vi nhau bng php dn A x = + A Ax nu chng l k nhau.
Thut ton c tin hnh nh sau: Lp mt bng gm nhiu ct ghi cc kt
qu dn. Sau ln lt thc hin cc bc sau:
Bc 1: Vit vo ct th nht cc biu din ca cc nguyn nhn hng n ca hm Boole
F. Cc biu din c chia thnh tng nhm, cc biu din trong mi nhm c s cc k
hiu 1 bng nhau v cc nhm xp theo th t s cc k hiu 1 tng dn.
Bc 2: Ln lt thc hin tt c cc php dn cc biu din trong nhm i vi cc biu
din trong nhm i+1 (i=1, 2, ). Biu din no tham gia t nht mt php dn s c
ghi nhn mt du * bn cnh. Kt qu dn c ghi vo ct tip theo.
Bc 3: Lp li Bc 2 cho ct k tip cho n khi khng thu thm c ct no mi.
Khi tt c cc biu din khng c du * s cho ta tt c cc nguyn nhn nguyn t
ca F.
Th d 9: Tm dng tng chun tc thu gn ca cc hm Boole:
wxyz xyz w yz x w z y x w yz x w z y x w z y x w F + + + + + + =
1
,
wxyz z wxy z y wx z y wx yz x w yz x w z y x w F + + + + + + =
2
.









T cc bng trn ta c dng tng chun tc thu gn ca F
1
v F
2
l:
0 0 0 1 *
0 1 0 1 *
0 0 1 1 *
1 0 0 1 *
1 0 1 1 *
0 1 1 1 *
1 1 1 1 *


0 0 1 *
0 0 1 *
0 0 1 *
0 1 1 *
1 0 1 *
0 1 1 *
0 1 1 *
1 1 1 *
1 1 1 *
0 1
0 1
1 1






0 0 1 0 *
0 0 1 1 *
1 1 0 0 *
1 0 1 1 *
1 1 0 1 *
1 1 1 0 *
1 1 1 1 *

0 0 1
0 1 1
1 1 0 *
1 1 0 *
1 1 1
1 1 1 *
1 1 1 *

1 1








yz z x z w F + + =
1
,
.
2
wx wyz yz x y x w F + + + =

129
8.4.2.5. Phng php Quine-McCluskey tm dng tng chun tc ti thiu:
Sau khi tm c dng tng chun tc thu gn ca hm Boole F, ngha l tm
c tt c cc nguyn nhn nguyn t ca n, ta tip tc phng php Quine-
McCluskey tm dng tng chun tc ti thiu (cc tiu) ca F nh sau.
Lp mt bng ch nht, mi ct ng vi mt cu to n v ca F (mi cu to
n v l mt hi s cp hng n trong dng tng chun tc hon ton ca F) v mi dng
ng vi mt nguyn nhn nguyn t ca F. Ti (i, j), ta nh du cng (+) nu nguyn
nhn nguyn t dng i l mt phn con ca cu to n v ct j. Ta cng ni rng
khi nguyn nhn nguyn t i l ph cu to n v j. Mt h S cc nguyn nhn
nguyn t ca F c gi l ph hm F nu mi cu to n v ca F u c ph t
nht bi mt thnh vin ca h. D thy rng nu h S l ph hm F th n l y ,
ngha l tng ca cc thnh vin trong S l bng F.
Mt nguyn nhn nguyn t c gi l ct yu nu thiu n th mt h cc
nguyn nhn nguyn t khng th ph hm F. Cc nguyn nhn nguyn t ct yu c
tm nh sau: ti nhng ct ch c duy nht mt du +, xem du + thuc dng no th
dng ng vi mt nguyn nhn nguyn t ct yu.
Vic la chn cc nguyn nhn nguyn t trn bng nh du, c mt
dng tng chun tc ti thiu, c th tin hnh theo cc bc sau.
Bc 1: Pht hin tt c cc nguyn nhn nguyn t ct yu.
Bc 2: Xo tt c cc ct c ph bi cc nguyn nhn nguyn t ct yu.
Bc 3: Trong bng cn li, xo nt nhng dng khng cn du + v sau nu c hai
ct ging nhau th xo bt mt ct.
Bc 4: Sau cc bc trn, tm mt h S cc nguyn nhn nguyn t vi s bin t nht
ph cc ct cn li.
Tng ca cc nguyn nhn nguyn t ct yu v cc nguyn nhn nguyn t
trong h S s l dng tng chun tc ti thiu ca hm F.
Cc bc 1, 2, 3 c tc dng rt gn bng trc khi la chn. phc tp ch
yu nm Bc 4. Tnh hung tt nht l mi nguyn nhn nguyn t u l ct yu.
Trng hp ny khng phi la chn g v hm F c duy nht mt dng tng chun tc
ti thiu cng chnh l dng tng chun tc thu gn. Tnh hung xu nht l khng c
nguyn nhn nguyn t no l ct yu. Trng hp ny ta phi la chn ton b bng.
Th d 10: Tm dng tng chun tc ti thiu ca cc hm Boole cho trong Th d 9.

z y x w z y x w yz x w z y x w yz x w xyz w wxyz
z w + + +
z x + + + +
yz + + + +
130
Cc nguyn nhn nguyn t u l ct yu nn dng tng chun tc ti thiu ca F
1
l:
yz z x z w F + + =
1


z y x w yz x w yz x w z y wx z y wx z wxy wxyz
wx + + + +
y x w + +
yz x + +
wyz + +

Cc nguyn nhn nguyn t ct yu nm dng 1 v 2. Sau khi rt gn, bng
cn dng 3, 4 v mt ct 3. Vic chn S kh n gin: c th chn mt trong hai nguyn
nhn nguyn t cn li. V vy ta c hai dng tng chun tc ti thiu l:
yz x y x w wx F + + =
2
,
wyz y x w wx F + + =
2
.























131
BI TP CHNG VIII:

1. Cho S l tp hp cc c nguyn dng ca 70, vi cc php ton , + v c nh
ngha trn S nh sau:
a b = UCLN(a, b), a + b = BCNN(a, b), a = 70/a.
Chng t rng S cng vi cc php ton , + v lp thnh mt i s Boole.
2. Chng minh trc tip cc nh l 6b, 7b, 8b (khng dng i ngu suy ra t 6a,
7a, 8a).
3. Chng minh rng:
a) (a+b).(a+b) = a;
b) (a.b)+(a.c) = (a+c).(a+b).
4. Cho cc hm Boole F
1
, F
2
, F
3
xc nh bi bng sau:

x y z F
1
F
2
F
3
0 0 0 1 1 0
0 0 1 1 0 1
0 1 0 0 1 1
0 1 1 1 1 0
1 0 0 1 0 1
1 0 1 0 0 1
1 1 0 0 1 1
1 1 1 1 1 1

V mch thc hin cc hm Boole ny.
5. Hy dng cc cng NAND xy dng cc mch vi cc u ra nh sau:
a) x b) xy c) x+y d) x y.
6. Hy dng cc cng NOR xy dng cc mch vi cc u ra c cho trong Bi
tp 5.
7. Hy dng cc cng NAND dng mch cng bn phn.
8. Hy dng cc cng NOR dng mch cng bn phn.
9. Dng cc bn Karnaugh, tm dng tng chun tc ti thiu (khai trin cc tiu) ca
cc hm Boole ba bin sau:
a) z y x yz x F + = .
b) z y x yz x z xy xyz F + + + + = .
c) z y x yz x z y x z y x z xy F + + + + + = .
d) z y x z y x yz x z y x z y x xyz F + + + + + = .

132
10. Dng cc bn Karnaugh, tm dng tng chun tc ti thiu ca cc hm Boole
bn bin sau:
a) z y x w z y x w z y wx z y wx wxyz F + + + + = .
b) z y x w z y x w z y x w yz x w z y wx z wxy F + + + + + = .
c) z y x w z y x w z y x w z y x w z y x w z y wx z wxy wxyz F + + + + + + + = .
d) z y x w z y x w yz x w xyz w z y x w yz x w z y wx z wxy wxyz F + + + + + + + + = .
11. Dng phng php Quine-McCluskey, tm dng tng chun tc ti thiu ca cc
hm Boole ba bin cho trong Bi tp 9 v hy v mch thc hin cc dng ti thiu tm
c.
12. Dng phng php Quine-McCluskey, tm dng tng chun tc ti thiu ca cc
hm Boole bn bin cho trong Bi tp 9 v hy v mch thc hin cc dng ti thiu tm
c.
13. Hy gii thch lm th no c th dng cc bn Karnaugh rt gn dng tch
chun tc (tch cc tng) hon ton ca mt hm Boole ba bin. (Gi : nh du bng
s 0 tt c cc tuyn s cp trong biu din v t hp cc khi ca cc tuyn s cp.)
14. Dng phng php Bi tp 13, hy rt gn dng tch chun tc hon ton:
) )( )( )( ( z y x z y x z y x z y x F + + + + + + + + = .




















133

TI LIU THAM KHO

[1] Nguyn Cam-Chu c Khnh, L thuyt th, NXB Thnh ph H Ch
Minh, 1999.
[2] Hong Chng, i cng v ton hc hu hn, NXB Gio dc, 1997.
[3] Phan nh Diu, L thuyt -t-mat v thut ton, NXB i hc v THCN,
1977.
[4] c Gio, Ton ri rc, NXB i hc Quc Gia H Ni, 2000.
[5] Nguyn Xun Qunh, C s ton ri rc v ng dng, NXB Gio dc, 1995.
[6] ng Huy Run, L thuyt th v ng dng, NXB Khoa hc v K thut,
2000.
[7] Nguyn T Thnh-Nguyn c Ngha, Ton ri rc, NXB Gio dc, 1997.
[8] Claude Berge, Thorie des graphes et ses applications, Dunod, Paris 1963.
[9] Richard Johnsonbaugh, Discrete Mathematics, Macmillan Publishing
Company, New york 1992.
134
PHN PH LC
Ph lc 1

Unit cha khai bo cc cu trc d liu cho th
v ci t th tc tm ng i ngn nht theo thut ton

unit Func_DoThi;

interface
type
TypeToaDo=record
x,y:integer;
end;
TypeChiPhi=record
VoCung:boolean;//Neu VoCung=True thi co nghia la chi phi bang Vo Cung,
nguoc lai thi chi phi bang Gia
Gia:real;
end;
TypeDinh=record
Ten:String;
ToaDo:TypeToaDo;
MucKichHoat:Byte;
end;
TypeDanhSachDinh=array of TypeDinh;
TypeCanh=record
DinhDau,DinhCuoi:Integer;//Tham chieu trong danh sach Dinh
TrongSo:TypeChiphi;
end;
TypeDanhSachCanh=Array of TypeCanh;
TypeDoThi=Record
SoDinh:Integer;
DSDinh:TypeDanhSachDinh;
SoCanh:Integer;
DSCanh:TypeDanhSachCanh;
end;

TypeCost=Array of Array of TypeChiPhi;
TypeDist=Array of TypeChiPhi;
TypeDuongDi=Array of Integer;

Function DuongDiNganNhat(G:TypeDoThi;X,Y:Integer;Var
DuongDiTuXdenY:TypeDuongDi;Var ChiPhi:real):Boolean;
Procedure DeleteGraph(VAR G:TypeDoThi);
var G:TypeDoThi;

135
implementation

Function DuongDiNganNhat(G:TypeDoThi;X,Y:Integer;Var
DuongDiTuXdenY:TypeDuongDi;var ChiPhi:real):Boolean;
Var s:Array of byte;{S[i]=0 hoac S[i]=1}
Cost:TypeCost;Dist:TypeDist;MocXich:Array of Integer;
M,i,j,K,u,w:Integer;
Min:TypeChiPhi;
begin
M:=G.SoDinh; {Thuc ra M=N, ma tran vuong kich thuoc MxM}

Setlength(Cost,M,M);
Setlength(Dist,M);
Setlength(MocXich,M);
Setlength(S,M);
for i:=0 to M-1 do
for j:=0 to M-1 do
Cost[i,j].VoCung:=True;

for k:=0 to G.SoCanh-1 do
begin
i:=G.DSCanh[K].DinhDau;j:=G.DSCanh[K].DinhCuoi;
Cost[i,j]:=G.DSCanh[K].TrongSo;
end;

for i:=0 to M-1 do
begin S[i]:=0;Dist[i]:=Cost[X,i];MocXich[i]:=X;end;
S[X]:=1;Dist[X].VoCung:=False;Dist[X].Gia:=0;K:=2; {Dua X vao S}
while k<M do {Xac dinh M-1 duong di}
begin
u:=0;
While S[u]<>0 do u:=u+1;
Min:=Dist[u];i:=u+1;
While i<M do
begin
If S[i]=0 then
If ((Min.VoCung)and(not Dist[i].VoCung))or
((Not min.VoCung)and((not Dist[i].VoCung)and(min.Gia>Dist[i].Gia)))
then
begin Min:=Dist[i];u:=i;end;
i:=i+1;
end;
S[u]:=1;k:=k+1;{Dua u vao tap S}
For w:=0 to M-1 do
if S[w]=0 then
begin
If (not Dist[u].VoCung)and(not Cost[u,w].VoCung)and
((Dist[w].VoCung)or(Dist[w].Gia>(Dist[u].Gia+Cost[u,w].Gia)))
136
then
begin
Dist[w].VoCung:=false;
Dist[w].Gia:=Dist[u].Gia+Cost[u,w].Gia;
MocXich[w]:=u;{Duong di ngan nhat den W thi phai di qua U}
end;
end;
end;
{Tim duong di tu X den Y}
Setlength(DuongDiTuXdenY,M);
If not Dist[Y].VoCung then
begin
DuongDiNganNhat:=true;
ChiPhi:=Dist[Y].gia;
{Xac dinh cac dinh phai di qua (theo day chuyen nguoc)}
{k:=0;DuongDiTuXdenY[k]:=Y;k:=k+1;
i:=MocXich[Y];DuongDiTuXdenY[k]:=i;}
K:=0;i:=Y;DuongDiTuXdenY[k]:=i;
while i<>X do
begin
i:=MocXich[i];k:=k+1;DuongDiTuXdenY[k]:=i;
end;
{Vi chuoi chua trong DuongDiTuXdenY la mot chuoi nguoc nen ta se dao lai}
for i:=0 to (k div 2) do
begin
j:=DuongDiTuXdenY[i];
DuongDiTuXdenY[i]:=DuongDiTuXdenY[K-i];
DuongDiTuXdenY[K-i]:=j;
end;
{Dat lai kich thuoc cua mang DuongDiTuXdenY bang so dinh phai di qua}
Setlength(DuongDiTuXdenY,K+1);
end
else DuongDiNganNhat:=false;

Setlength(Cost,0,0);
Setlength(Dist,0);
Setlength(MocXich,0);
Setlength(S,0);
end;
Procedure DeleteGraph(VAR G:TypeDoThi);
begin
G.SoDinh:=0;
G.SoCanh:=0;
Setlength(G.DSDinh,0);
Setlength(G.DSCanh,0);
end;
BEGIN
G.SoDinh :=0;G.SoCanh:=0;
137
END.
Thit k giao din cho chng trnh (Form 2)



Vi cc i tng c gm:


Cc khai bo v ci t cho chng form2:


138
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, Buttons, ExtCtrls,Func_Dothi,Func_Graph,
Menus,IdGlobal, ImgList,Jpeg;
const BanKinh=20;
RMuiTen=10;

type
TForm2 = class(TForm)
Panel1: TPanel;
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
StaticText1: TStaticText;
StaticText2: TStaticText;
MainMenu1: TMainMenu;
imduongdingannhat1: TMenuItem;
imduongdingannhat2: TMenuItem;
Caykhungbenhat1: TMenuItem;
Image1: TImage;
PopupMenu1: TPopupMenu;
Rename1: TMenuItem;
Delete1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
ImageList1: TImageList;
File1: TMenuItem;
New1: TMenuItem;
Open1: TMenuItem;
Save1: TMenuItem;
N3: TMenuItem;
Exit1: TMenuItem;
ScrollBox1: TScrollBox;
PaintBox1: TPaintBox;
Save2: TMenuItem;
N6: TMenuItem;
ExportPicturefile1: TMenuItem;
DeleteAll1: TMenuItem;
SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog;
ImageList2: TImageList;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
ExportPicturefile2: TMenuItem;
139
N4: TMenuItem;
procedure PaintBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure PaintBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
Procedure DrawPaint(PaintBox:TPaintBox;Bitmap:TBitmap);
procedure FormResize(Sender: TObject);
procedure FormCreate(Sender: TObject);
function DownDinh(x,y:integer;G:TypeDothi):integer;
procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure HienThamSoCung(G:TypeDoThi);
procedure MaskEdit1Change(Sender: TObject);
procedure MaskEdit2Change(Sender: TObject);
procedure PaintBox1Paint(Sender: TObject);
procedure imduongdingannhat2Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormDestroy(Sender: TObject);
procedure Rename1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure Delete1Click(Sender: TObject);
procedure DeleteAll1Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure New1Click(Sender: TObject);
procedure ExportPicturefile2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;
Pic:Tbitmap;
Mouse_Down:Boolean;
Dx,Dy,DinhDown:Integer;
TextSizeTrongSo:Integer=10;
Filename:String; FileChanged:Boolean;

procedure
Vecung(Pic:Tbitmap;T1,T2:TypeToaDo;Gia:Real;Line:Boolean;LineColor,TextColor:
Tcolor);
140
Procedure VeDoThi(G:TypeDothi;Pic:Tbitmap;Imagelist:Timagelist);
Function Delen(x,y,Width,Height:integer;DinhDown:integer):boolean;
Procedure
Veline(T1,T2:TypeToaDo;Gia:real;Pic:Tbitmap;LineColor:Tcolor;TimeDelay:TdateTi
me);
implementation

{$R *.dfm}

Function MidPoint(T1,T2:TypeToaDo;PhanTram:Integer):TypeToaDo;
Var Dx,Dy:integer;
begin
Dx:=T2.x -T1.x ;Dy:=T2.y -T1.y ;
MidPoint.x:=T1.x +Round(Dx*PhanTram/100);
MidPoint.y:=T1.y +Round(Dy*PhanTram/100);
end;
Procedure
Veline(T1,T2:TypeToaDo;Gia:real;Pic:Tbitmap;LineColor:Tcolor;TimeDelay:TdateTi
me);
var i:integer;T3:TypeToaDo;TimeNow:TDateTime;
TempPic:Tbitmap;
begin
TempPic:=Tbitmap.Create;

For i:=1 to 100 do
begin
TempPic.Assign(Pic);
TimeNow:=Time;
T3:=MidPoint(T1,T2,i);
Vecung(TempPic,T1,T3,Gia,True,RGB(255,0,0),RGB(0,0,255));
Form2.DrawPaint(Form2.PaintBox1,TempPic);
repeat
Application.ProcessMessages;
until (TimeNow+TimeDelay)>Time;
end;
TempPic.Free;
end;

Procedure TForm2.DrawPaint(PaintBox:TPaintBox;Bitmap:TBitmap);
begin
Paintbox.Canvas.Draw(0,0,Bitmap);
end;
procedure CatZeroThua(var St:string);
var i,P,L:integer;
begin
L:=length(st);
If St[L]=' ' then begin delete(st,1,L);L:=length(st);end;
P:=pos('.',st);i:=L;
141
If P=0 then exit;
while (i>P)and(st[i]='0') do i:=i-1;
If st[i]='.' then i:=i-1;
delete(St,i+1,L-i);
end;
Function Quay(P,Tam:TypeToaDo;Goc:Real):TypeToaDo;
Var Q:TypeToaDo;
begin
Goc:=Goc*Pi/180;
P.x:=P.x-Tam.x;
P.y:=P.y-Tam.y;
Q.x:=Round(P.x*Cos(goc)-P.y*Sin(goc));
Q.y:=Round(P.x*Sin(goc)+P.y*Cos(goc));
Q.x:=Q.x+Tam.x;
Q.y:=Q.y+Tam.y;
Quay:=Q;
end;
procedure
Vecung(Pic:Tbitmap;T1,T2:TypeToaDo;Gia:Real;Line:Boolean;LineColor,TextColor:
Tcolor);
var DX,DY,X,Y:Integer;P,Q1,Q2:TypeToaDo;L,TL:real;St:String;
begin

DX:=T2.x-T1.x;DY:=T2.y-T1.y;
L:=sqrt(DX*DX+DY*DY);
if L<=2*Bankinh then exit;
TL:=BanKinh/L;
Q1.X:=round(T1.x+DX*TL);
Q1.Y:=round(T1.y+DY*TL);
Q2.X:=round(T2.x-DX*TL);
Q2.Y:=round(T2.y-DY*TL);
T1:=Q1;T2:=Q2;
DX:=T2.x-T1.x;DY:=T2.y-T1.y;
L:=sqrt(DX*DX+DY*DY);
If L=0 then exit;
TL:=RMuiTen/L;
P.X:=round(T2.x-DX*TL);
P.Y:=round(T2.y-DY*TL);
Q1:=Quay(P,T2,-35);
Q2:=Quay(P,T2,35);
pic.Canvas.Brush.Style:=bsSolid;
pic.Canvas.Brush.Color:=LineColor;
pic.Canvas.Pen.Color:=LineColor;

If Line then
begin pic.Canvas.MoveTo(T1.x,T1.y); pic.Canvas.LineTo(T2.x,T2.y) end;

142
Pic.Canvas.Polygon([point(T2.x,T2.y),point(Q1.x,Q1.y),point((T2.x+P.x) div
2,(T2.y+P.y) div 2),point(Q2.x,Q2.y)]);
str(Gia:0:10,st);CatZeroThua(st);
Pic.Canvas.Font.Color:=TextColor;
Pic.Canvas.Font.Size:=TextSizeTrongSo;
Pic.Canvas.Brush.Style:=bsclear;
Pic.Canvas.TextOut(T2.x-((T2.x-T1.x) div 3),T2.y -((T2.y-T1.y)div 3),St);
end;

Function Delen(x,y,Width,Height:integer;DinhDown:integer):boolean;
Var i,W,H:integer;
begin
for i:=0 to G.SoDinh-1 do
begin
If (i<>DinhDown)and((G.DSDinh[i].ToaDo.x-
Width<x)and(x<G.DSDinh[i].ToaDo.x+Width))
and((G.DSDinh[i].ToaDo.y-
Height<y)and(y<G.DSDinh[i].ToaDo.y+Height)) then
begin
Delen:=true;exit;
end;
end;
Delen:=false;
end;
Procedure VeDoThi(G:TypeDothi;Pic:Tbitmap;Imagelist:Timagelist);
Var i,j:integer;R:Trect;W,H:Integer; T1,T2:TypeToaDo;LineColor,TextColor:Tcolor;
Bitmap:Tbitmap;
begin
Pic.Canvas.Brush.Style:=bsSolid;
Pic.Canvas.Pen.Style:=psSolid;
Pic.Canvas.Brush.Color:=rgb(255,255,255);
Pic.Canvas.Pen.Color:=rgb(255,255,255);
Pic.Canvas.FillRect(Rect(0,0,Pic.Width,Pic.Height));
Bitmap:=Tbitmap.Create;
Bitmap.PixelFormat:=Pf24bit;
For i:=0 to G.SoDinh-1 do
with G.DSDinh[i] do
begin
W:=Imagelist.Width; H:=Imagelist.Height;
Imagelist.GetBitmap(MucKichHoat,Bitmap);
R:=Rect(Toado.x-(W div 2),ToaDo.y-(H div 2),Toado.x+(W div
2),ToaDo.y+(H div 2));
//Pic.Canvas.Draw(Toado.x-(W div 2),ToaDo.y-(H div 2),Bitmap);
Pic.Canvas.Brush.Style:=bsClear;
Pic.Canvas.BrushCopy(R,Bitmap,Rect(0,0,Bitmap.Width-1,Bitmap.Height-
1),RGB(255,255,255));
Bitmap.FreeImage;

143
Pic.Canvas.Font.Color:=rgb(0,255,0);
Pic.Canvas.Brush.Style:=bsClear;
W:=Pic.Canvas.TextWidth(ten);
H:=Pic.Canvas.TextHeight(ten);
If W<Imagelist.Width then
Pic.Canvas.TextRect(R,Toado.x-(W div 2),ToaDo.y-(H div 2),ten )
else
Pic.Canvas.TextRect(R,R.Left,ToaDo.y-(H div 2),ten );
end;
Bitmap.Free;
LineColor:=RGB(0,0,255);
TextColor:=RGB(255,0,0);
for i:=0 to G.SoCanh -1 do
with G.DSCanh[i] do
begin
T1:=G.DsDinh[DinhDau].ToaDo;
T2:=G.DsDinh[DinhCuoi].ToaDo;
Vecung(Pic,T1,T2,Trongso.Gia,true,LineColor,TextColor);
end;
end;

procedure KhuKichHoatThua(Var G:TypeDothi);
var i,count:integer;
begin
count:=0;
for i:=0 to G.SoDinh-1 do
begin
if (G.DSDinh[i].MucKichHoat>0)and(count<2) then
begin count:=count+1;
If count=2 then break;
end;
end;
if count>0 then
for i:=0 to G.SoDinh-1 do
if G.DSDinh[i].MucKichHoat=1 then
G.DSDinh[i].MucKichHoat:=2
else
if G.DSDinh[i].MucKichHoat=2 then
if count=2 then G.DSDinh[i].MucKichHoat:=0
end;
Function TimCacDinhKichHoat(G:TypeDoThi;Var D1,D2:integer):Integer;
var i,count:integer;
begin
count:=0; i:=0;
while i<=G.SoDinh -1 do
begin
if G.DSDinh[i].MucKichHoat>0 then
begin
144
count:=count+1;
If G.DSDinh[i].MucKichHoat=1 then D1:=i else D2:=i;
If count=2 then i:=G.SoDinh
end;
i:=i+1;
end;
TimCacDinhKichHoat:=count;
end;
function TimCung(G:TypeDoThi;D1,D2:integer; var Chiso:integer):Boolean;
var i:integer;
begin
Timcung:=false;
for i:=0 to G.SoCanh -1 do
If (G.DSCanh[i].DinhDau=D1)and(G.DSCanh[i].DinhCuoi=D2) then
begin
ChiSo:=i;
TimCung:=true;
exit;
end;
end;
procedure Tform2.HienThamSoCung(G:TypeDoThi);
var i,D1,D2,count,loi:integer;St:string;
begin
maskedit1.Enabled:=False;maskedit1.Text:='';
maskedit2.Enabled:=False;maskedit2.Text:='';
statictext1.Caption:='';
statictext2.Caption:='';
If TimCacDinhKichHoat(G,D1,D2)=2 then
begin count:=0;
maskedit1.Enabled:=False;maskedit1.Text:='';
maskedit2.Enabled:=False;maskedit2.Text:='';
statictext1.Caption:='';
statictext2.Caption:='';
SpeedButton1.Down:=False;
SpeedButton2.Down:=False;
i:=0;
while i<=(G.SoCanh-1) do
begin
if (G.DSCanh[i].DinhDau=D2)and(G.DSCanh[i].DinhCuoi=D1) then
begin
statictext1.Caption:=G.DSDinh[D2].Ten + '--->' + G.DSDinh[D1].Ten;
str(G.DSCanh[i].TrongSo.Gia:0:10,st);
catzerothua(st);
maskedit1.Text:=(st);
maskedit1.Enabled:=true;
SpeedButton1.Down:=True;
Count:=count+1;
If count=2 then i:=G.SoCanh;
145
end
else
if (G.DSCanh[i].DinhDau=D1)and(G.DSCanh[i].DinhCuoi=D2) then
begin
statictext2.Caption:=G.DSDinh[D2].Ten + '<---' + G.DSDinh[D1].Ten;
str(G.DSCanh[i].TrongSo.Gia:0:0,st);
catzerothua(st);
maskedit2.Text:=st;
maskedit2.Enabled:=true;
SpeedButton2.Down:=True;
Count:=count+1;
If count=2 then i:=G.SoCanh;
end;
i:=i+1;
end;
//bitbtn2.Enabled:=True;
//bitbtn3.Enabled:=True;
SpeedButton1.Enabled:=True;
SpeedButton2.Enabled:=True;
end
else
begin
//bitbtn2.Enabled:=False;
//bitbtn3.Enabled:=False;
SpeedButton1.Enabled:=False;
SpeedButton2.Enabled:=False;
end;

end;
procedure TForm2.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var i:integer;T:Tpoint;
begin
i:=DownDinh(x,y,G);

If (button=mbRight)and(i<>-1) then
begin
DinhDown:=i;
T:=PaintBox1.ClientToScreen(Point(x,y));
PopupMenu1.Popup(T.X,T.Y);
exit;
end;
If i<>-1 then
begin
Mouse_Down:=true;
DinhDown:=i;
if G.DSDinh[i].MucKichHoat=0 then
begin
146
KhuKichHoatThua(G);
G.DSDinh[i].MucKichHoat:=1;
Dx:=x-G.DSDinh[i].ToaDo.x;
Dy:=y-G.DSDinh[i].ToaDo.y;
end
else
G.DSDinh[i].MucKichHoat:=0;
HienThamSoCung(G);
end;
end;

procedure TForm2.PaintBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
Var H:Integer;
begin
if {(Sender is TListBox) and} (Source is Timage) then
If Timage(Source).Name ='Image1' then
begin
G.SoDinh:=G.SoDinh+1;
Setlength(G.DSDinh,G.SoDinh);
G.DSDinh[G.SoDinh-1].ToaDo.X:=x;
G.DSDinh[G.SoDinh-1].ToaDo.Y:=y;
G.DSDinh[G.SoDinh-1].Ten:='T' + InttoStr(G.SoDinh);
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
FileChanged:=true;
end;
end;

procedure TForm2.PaintBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
Var i:integer;
begin
Accept:=true;
i:=0;
While i<=(G.SoDinh-1) do
if not Delen(x,y,imagelist1.Width,imagelist1.Height,i) then
i:=i+1
else
begin
Accept:=False;
i:=G.SoDinh;
end;
If Accept then
begin
VeDoThi(G,Pic,imagelist1);
Pic.Canvas.Draw(x+20,y,Image1.Picture.Bitmap);
DrawPaint(PaintBox1,Pic);
end
147
else
begin
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
end;
end;

procedure TForm2.FormResize(Sender: TObject);
begin
If (self.WindowState<>wsMinimized)and((pic is Tbitmap)) then
begin
Pic.Width:=Paintbox1.Width;
Pic.Height:=Paintbox1.Height;
end;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Pic:=Tbitmap.Create;
Pic.PixelFormat:=Pf24bit;
Pic.Width:=Paintbox1.Width;
Pic.Height:=Paintbox1.Height;
FileChanged:=false;
Filename:='';
Self.Caption:='Graph Algorithm - New documents'
end;

function TForm2.DownDinh(x,y:integer;G:TypeDothi):integer;
var i:integer;
begin
For i:=0 to G.Sodinh-1 do
with G.DSDinh[i] do
If Sqrt(sqr(Toado.x-x)+sqr(Toado.y-y))<20 then
begin
DownDinh:=i; exit;
end;
DownDinh:=-1;
end;

procedure TForm2.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
If mouse_Down then
begin
if (not Delen(x,y,imagelist1.Width,imagelist1.Height,DinhDown))
and((0<x)and(x<Pic.Width)and(0<y)and(y<Pic.Height)) then
begin
G.DSDinh[DinhDown].ToaDo.x:=x-Dx;
148
G.DSDinh[DinhDown].ToaDo.y:=y-Dy;
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
end
end
else
begin
end;
end;

procedure TForm2.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
If mouse_Down then
if (not Delen(x,y,imagelist1.Width,imagelist1.Height,DinhDown))
and((0<x)and(x<Pic.Width)and(0<y)and(y<Pic.Height)) then
begin
G.DSDinh[DinhDown].ToaDo.x:=x-Dx;
G.DSDinh[DinhDown].ToaDo.y:=y-Dy;
mouse_Down:=false;
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
FileChanged:=True;
end
else
begin
mouse_Down:=false;
end
end;

procedure TForm2.MaskEdit1Change(Sender: TObject);
var D1,D2,ChiSo,Loi:integer; X:real;
begin
if not maskedit1.Focused then exit;
val(maskedit1.Text,X,Loi);
If TimCacDinhKichHoat(G,D1,D2)=2 then
if Timcung(G,D2,D1,ChiSo) then
begin G.DSCanh[ChiSo].TrongSo.Gia:=X;
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
end;
end;

procedure TForm2.MaskEdit2Change(Sender: TObject);
var D1,D2,ChiSo,Loi:integer; X:real;
begin
if not maskedit2.Focused then exit;
val(maskedit2.Text,X,Loi);
149
If TimCacDinhKichHoat(G,D1,D2)=2 then
if Timcung(G,D1,D2,ChiSo) then
begin
G.DSCanh[ChiSo].TrongSo.Gia:=X;
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
end;
end;

procedure TForm2.PaintBox1Paint(Sender: TObject);
begin
//VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
end;
Function TrongSo(DinhDau,DinhCuoi:Integer):TypeChiPhi;
Var i:integer;
begin
Trongso.VoCung:=true;
i:=0;
While (i<=(G.SoCanh-1)) do
If (G.DSCanh[i].DinhDau=DinhDau)and(G.DSCanh[i].DinhCuoi=DinhCuoi) then
begin
TrongSo:=G.DSCanh[i].TrongSo;
i:=G.SoCanh;
end
else i:=i+1;
end;
procedure TForm2.imduongdingannhat2Click(Sender: TObject);
Var D1,D2,i,x,y:integer;ChiPhi:real;DuongDi:TypeDuongDi;St,So:string;
TimeNow:TDateTime;

SubPic:Tbitmap;
begin
If TimCacDinhKichHoat(G,D1,D2)=2 then
begin
If DuongDiNganNhat(G,D2,D1,DuongDi,ChiPhi) then
begin
SubPic:=Tbitmap.Create;
Imagelist2.GetBitmap(0,SubPic);

x:=G.DSDinh[DuongDi[0]].ToaDo.x;
y:=G.DSDinh[DuongDi[0]].ToaDo.y;
Pic.Canvas.Brush.Style:=BSclear;
Pic.Canvas.BrushCopy(rect(x,y-
SubPic.Height,x+Subpic.Width,y),SubPic,Rect(0,0,SubPic.Width-1,SubPic.Height-
1),RGB(255,255,255));
for i:=0 to high(DuongDi)-1 do
begin
150

Veline(G.DSDinh[DuongDi[i]].ToaDo,G.DSDinh[DuongDi[i+1]].ToaDo,

TrongSo(DuongDi[i],DuongDi[i+1]).Gia,Pic,RGB(255,0,0),100000);
TimeNow:=Time;
repeat
Application.ProcessMessages;
until (TimeNow+100000)>Time;
end;
St:='Duong di Tu ' + G.DSDinh[D1].Ten + ' Den ' + G.DSDinh[D2].Ten +'
la:' + Cr + Lf;
for i:=0 to high(DuongDi)-1 do
begin
st:=st+G.DsDinh[DuongDi[i]].Ten +' --> ';

Vecung(Pic,G.DSDinh[DuongDi[i]].ToaDo,G.DSDinh[DuongDi[i+1]].ToaDo,

TrongSo(DuongDi[i],DuongDi[i+1]).Gia,True,RGB(255,0,0),RGB(0,0,255))

//Veline(G.DSDinh[DuongDi[i]].ToaDo,G.DSDinh[DuongDi[i+1]].ToaDo,
//
TrongSo(DuongDi[i],DuongDi[i+1]).Gia,Pic,RGB(255,0,0),10000)

end;

st:=st+G.DsDinh[DuongDi[high(DuongDi)]].Ten+ cr+lf;
Str(ChiPhi:0:10,So);Catzerothua(So);
St:=St+ 'Voi chi phi la: ' + So;

Pic.Canvas.BrushCopy(rect(x,y-
SubPic.Height,x+Subpic.Width,y),SubPic,Rect(0,0,SubPic.Width-1,SubPic.Height-
1),RGB(255,255,255));
x:=G.DSDinh[DuongDi[high(DuongDi)]].ToaDo.x;
y:=G.DSDinh[DuongDi[high(DuongDi)]].ToaDo.y;
Pic.Canvas.Brush.Style:=BSclear;
Imagelist2.GetBitmap(1,SubPic);
Pic.Canvas.BrushCopy(rect(x,y-
SubPic.Height,x+Subpic.Width,y),SubPic,Rect(0,0,SubPic.Width-1,SubPic.Height-
1),RGB(255,255,255));
SubPic.Free;

DrawPaint(PaintBox1,Pic);
showmessage(st);
end
else
begin
Showmessage('Khong co duong di Tu ' + G.DSDinh[D1].Ten + ' Den ' +
G.DSDinh[D2].Ten);
151
end;
end;

end;

procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var TraLoi:Word;
begin
If FileChanged then
begin
TraLoi:=MessageDlg('File changed. Do you want to save?',mtConfirmation
,[mbYes,mbNo,mbCancel],0);
If TraLoi=mrYes then
Form2.Save1Click(Sender)
else
If TraLoi=mrCancel then
begin CanClose:=false; exit;end;
end;

pic.FreeImage;
DeleteGraph(G);
end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
pic.FreeImage;
end;

procedure TForm2.Rename1Click(Sender: TObject);
begin
G.DSDinh[DinhDown].Ten:=inputbox('Rename','Name:',G.DSDinh[DinhDown].Ten);
HienThamSoCung(G);
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
FileChanged:=True;
end;

procedure TForm2.Exit1Click(Sender: TObject);
begin
close;
end;

procedure TForm2.Delete1Click(Sender: TObject);
Var i,N,Start:integer;
Index:Array of integer;
begin
For i:=DinhDown to G.SoDinh-2 do
G.DSDinh[i]:=G.DSDinh[i+1];
152
G.SoDinh:=G.SoDinh-1;
Setlength(G.DSDinh,G.SoDinh);

Setlength(Index,G.SoCanh);
N:=0;Start:=-1;
For i:=0 to G.SoCanh-1 do
If (G.DSCanh[i].DinhDau=DinhDown)or(G.DSCanh[i].DinhCuoi=DinhDown) then
begin
If Start=-1 then Start:=N;
end
else
begin
Index[N]:=i;
N:=N+1;
end;

If Start<>-1 then
begin
G.SoCanh:=N;
For i:=Start to G.SoCanh-1 do
G.DSCanh[i]:=G.DSCanh[Index[i]];
For i:=0 to G.SoCanh-1 do
With G.DSCanh[i] do
begin
If DinhDau>DinhDown then DinhDau:=DinhDau-1;
If DinhCuoi>DinhDown then DinhCuoi:=DinhCuoi-1;
end;
Setlength(G.DSCanh,G.SoCanh);
end;
Setlength(Index,0);
HienThamSoCung(G);
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
FileChanged:=True;
end;

procedure TForm2.DeleteAll1Click(Sender: TObject);
begin
G.SoDinh:=0;G.SoCanh:=0;
Setlength(G.DSDinh,0);Setlength(G.DSCanh,0);
Pic.Canvas.Brush.Style:=bsSolid;
Pic.Canvas.Pen.Style:=psSolid;
Pic.Canvas.Brush.Color:=rgb(255,255,255);
Pic.Canvas.Pen.Color:=rgb(255,255,255);
Pic.Canvas.FillRect(Rect(0,0,Pic.Width,Pic.Height));
DrawPaint(PaintBox1,Pic);
FileChanged:=true;
end;
153

procedure TForm2.Save1Click(Sender: TObject);
var F:textfile;
i:integer;
begin
SaveDialog1.DefaultExt:='*.GRD';
SaveDialog1.Filter:='Graph data file (*.GRD)|*.GRD';
If not SaveDialog1.Execute then exit;

AssignFile(F,SaveDialog1.FileName);
Rewrite(F);
Try
Writeln(f,G.Sodinh,' ',G.Socanh);
For i:=0 to G.SoDinh-1 do
Writeln(F,G.DSDinh[i].ToaDo.x,' ',G.DSDinh[i].ToaDo.y,' ',G.DSDinh[i].Ten);

For i:=0 to G.SoCanh-1 do
Writeln(F,G.DSCanh[i].DinhDau,' ',G.DSCanh[i].DinhCuoi,'
',G.DSCanh[i].TrongSo.Gia);
except
Showmessage('Writting error');
end;
CloseFile(F);
FileChanged:=false;
end;

procedure TForm2.Open1Click(Sender: TObject);
Var F:TextFile;
i:integer;
begin
OpenDialog1.DefaultExt:='*.GRD';
OpenDialog1.Filter:='Graph data file (*.GRD)|*.GRD';
If not OpenDialog1.Execute then exit;
AssignFile(F,OpenDialog1.FileName);

ReSet(F);
Try
Readln(f,G.Sodinh,G.Socanh);
Setlength(G.DSDinh,G.SoDinh);
Setlength(G.DSCanh,G.SoCanh);

For i:=0 to G.SoDinh-1 do
begin
Readln(F,G.DSDinh[i].ToaDo.x,G.DSDinh[i].ToaDo.y,G.DSDinh[i].Ten);
G.DSDinh[i].Ten:=trimleft(G.DSDinh[i].Ten);
G.DSDinh[i].MucKichHoat:=0;
end;

154
For i:=0 to G.SoCanh-1 do

Readln(F,G.DSCanh[i].DinhDau,G.DSCanh[i].DinhCuoi,G.DSCanh[i].TrongSo.Gia);

except
DeleteGraph(G);
showmessage('Error struct file');
CloseFile(F);
Self.Caption:='Graph Algorithm - New document';
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
exit;
end;
CloseFile(F);
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
Filename:=OpenDialog1.FileName;
Self.Caption:='Graph Algorithm - ' + Filename;
FileChanged:=False;
end;

procedure TForm2.SpeedButton1Click(Sender: TObject);
var D1,D2,ChiSo,i:integer;
begin
TimCacDinhKichHoat(G,D1,D2);
If Not SpeedButton1.Down then
begin
Timcung(G,D2,D1,ChiSo);
for i:=Chiso to G.SoCanh-2 do
G.DSCanh[i]:=G.DSCanh[i+1];
G.SoCanh:=G.SoCanh-1;
Setlength(G.DSCanh,G.SoCanh);
end
else
begin
G.SoCanh:=G.SoCanh+1;
Setlength(G.DSCanh,G.SoCanh);
With G.DSCanh[G.SoCanh-1] do
begin
DinhDau:=D2;
DinhCuoi:=D1;
TrongSo.VoCung:=false;
TrongSo.Gia:=0;
end;

end;
HienThamSoCung(G);
VeDoThi(G,Pic,imagelist1);
155
DrawPaint(PaintBox1,Pic);
end;

procedure TForm2.SpeedButton2Click(Sender: TObject);
var D1,D2,ChiSo,i:integer;
begin
TimCacDinhKichHoat(G,D1,D2);

If not SpeedButton2.Down then
begin
Timcung(G,D1,D2,ChiSo);
for i:=Chiso to G.SoCanh-2 do
G.DSCanh[i]:=G.DSCanh[i+1];
G.SoCanh:=G.SoCanh-1;
Setlength(G.DSCanh,G.SoCanh);
end
else
begin
G.SoCanh:=G.SoCanh+1;
Setlength(G.DSCanh,G.SoCanh);
With G.DSCanh[G.SoCanh-1] do
begin
DinhDau:=D1;
DinhCuoi:=D2;
TrongSo.VoCung:=false;
TrongSo.Gia:=0;
end;

end;
HienThamSoCung(G);
VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);

end;

procedure TForm2.New1Click(Sender: TObject);
begin
Filename:='';

FileChanged:=false;
DeleteGraph(G);

VeDoThi(G,Pic,imagelist1);
DrawPaint(PaintBox1,Pic);
end;

procedure TForm2.ExportPicturefile2Click(Sender: TObject);
Var T:TJpegimage;
156
begin
SaveDialog1.DefaultExt:='*.JPG';
SaveDialog1.Filter:='Bitmap image (*.BMP)|*.BMP|Jpeg image
(*.JPG)|*.JPG';
SaveDialog1.FilterIndex:=2;
If not SaveDialog1.Execute then exit;
case SaveDialog1.FilterIndex of
1:{BMP}
Pic.SaveToFile(SaveDialog1.FileName);
2:{Jpeg}
begin
T:=TJpegimage.Create;
T.Assign(Pic);
try
T.SaveToFile(SaveDialog1.FileName);
finally
T.Free
end;
end;
end

end;

end.

Chng trnh chnh ci t nh sau:

program Project1;

uses
Forms,
Func_DoThi in 'Func_DoThi.pas',
Unit2 in 'Unit2.pas' {Form2},

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
157
PHN PH LC
Ph lc 2

Bi ton lung cc i

Cho mng G=(V,E). Hy tm lung f* trong mng vi gi tr lung val(f*) l
ln nht. Lung nh vy ta s gi l lung cc i trong mng.
Bi ton nh vy c th xut hin trong rt nhiu ng dng thc t. Chng hn
khi cn xc nh cng ln nht ca dng vn ti gia hai nt ca mt bn giao
thng. Trong th d ny li gii ca bi ton lung cc i s ch cho ta cc on
ng xe ng nht v chng to thnh ch hp tng ng ca dng giao thng xt
theo hai nt chn. Mt th d khc l nu xt th tng ng vi mt h thng
ng ng dn du, trong cc ng tng ng vi cc cung, im pht c th coi l
tu ch du, im thu l b cha, cn cc im ni gia cc ng l cc nt ca th,
kh nng thng qua ca cc cung tng ng vi tit din cc ng. Cn phi tm lung
du ln nht c th bm du t tu ch du vo b cha.
nh l: Cc mnh di y l tng ng:
(i) f l lung cc i trong mng.
(ii) Khng tm c ng tng lung f.
(iii) Val(f)=c(X,X*) vi mt lt ct (X,X*) no .
(Ta gi lt ct (X,X*) l mt cch phn hoch tp nh V ca mng ra thnh hai tp X
v X*=V\X, trong sX v t X*.)
nh l trn l c s xy dng thut ton lp sau y tm lung cc i
trong mng: Bt u t lung trn tt c cc cung bng 0 (ta s gi lung nh vy l
lung khng), v lp li bc lp sau y cho n khi thu c lung m i vi n
khng cn ng tng:
Bc lp tng lung (Ford Fulkerson): Tm ng tng P i vi lung hin c, tng
lung dc theo ng P.
Khi c lung cc i, lt ct hp nht c th tm theo th tc m t trong
vic chng minh nh l trn. Thut ton Ford-Fulkerson c m t trong th tc sau
y:
Procedure Luongcucdai;
Begin
Stop := false;
While not Stop do
If < Tm ng tng lung P> then
< Tng lung dc theo P>
Else Stop := true;
End;
158
tm ng tng lung trong G(f) c th s dng thut ton tm kim theo
chiu rng (hay tm kim theo chiu su), bt u t nh s trong khng cn xy
dng tng minh th G(f). Ford-Fulkerson ngh thut ton gn nhn chi tit sau
y gii bi ton lung cc i trong mng. Thut ton bt u t lung chp nhn
c no trong mng (c th bt u t lung khng) , sau ta s tng lung bng
cch tm cc ng tng lung. tm ng tng lung ta s p dng phng php
gn nhn cho cc nh. Mi nh trong qu trnh thc hin thut ton s mt trong ba
trng thi: cha c nhn, c nhn cha xt, c nhn xt. Nhn ca mt nh v gm
hai phn v c mt trong hai dng sau : [ ( ) p v + , ( ) v ] hoc [ ( ), ( ) p v v ]. Phn th nht
+p(v) (-p(v)) ch ra l cn tng gim lung theo cung (p(v),v)( cung (v,p(v)) cn phn
th hai ( ) v ch ra lng ln nht c th tng hoc gim lung theo cung ny. u tin
ch c nh s c khi to nhn v nhn ca n l cha xt, cn tt c cc nh cn li
u cha c nhn. T s ta gn nhn cho tt c cc nh k vi n v nhn ca nh s s
tr thnh xt. Tip theo, t mt nh v c nhn cha xt ta li gn nhn cho tt c
cc nh cha c nhn k vi n v nhn ca nh v tr thnh xt. Qu trnh s
c lp li cho n khi hoc l nh t tr thnh c nhn hoc l nhn ca tt c cc
nh c nhn u l xt nhng nh t vn khng c nhn. Trong trng hp th nht
ta tm c ng tng lung, cn trong trng hp th hai i vi lung ang xt
khng tn ti ng tng lung (tc l lung cc i). Mi khi tm c ng
tng lung, ta li tng lung theo ng tm c, sau xo tt c cc nhn v i
vi lung mi thu c li s dng php gn nhn cc nh tm ng tng lung.
Thut ton s kt thc khi no i vi lung ang c trong mng khng tm c
ng tng lung.
Hai th tc tm ng tng lung c th m t nh sau :
Procedure Find-path;
{
Th tc gn nhn ng tng lung
p[v], [v] l nhn ca nh v;
V
T
l danh sch cc nh c nhn cha xt ;
c[u,v] l kh nng thng qua ca cung (u,v),u,v V;
f[u,v] l lung trn cung (u,v), (u,v V);
}
BEGIN
p[s] := s ;
[s] := ; +
V
T
:= {s};
Pathfound := true;
While V
T
<> {} do

159
BEGIN
u V
T
;( * ly u t V
T
*)
For vV do
If (v cha c nhn) then
Begin
If (c[u,v] >0) and (f[u,v] < c[u,v] ) then
Begin
P[v] := u ;
[v] := min { [u],c[u,v]-f[u,v] };
V
T
:=V
T
{v};(* np v vo danh sch cc nh c nhn *)
If v = t then exit;
End
Else
If (c[v,u] > 0) and (f[v,u] < 0) then
Begin
P[v] := u ;
[v] := min { [u] , f[u,v] };
V
T
:=V
T
{v};(* np v vo danh sch cc nh c nhn *)
If v = t then exit;
End;
End;
End;
PathFound :=false;
End;
Procedure Inc_flow ;
{ thut ton tng lung theo ng tng }
Begin
v := t ;
u := t ;
tang := [t];
while u <> s do
begin
v := p[u];
if v > 0 then f[v,u] := f[v,u] + tang
else
begin
v := -v;
f[u,v] :=f[u,v] tang;
end;
u := v ;
160
end;

Procedure FF;
{ th tc th hin thut ton Ford_fulkerson }
Begin
(* khi to bt u t lung vi gi tr 0 *)
For u V do
For v V do f[u,v] :=0;
Stop := false;
While not Stop do
begin
find_path;
If pathfound then
Inc_flow
Else
Stop:=true;
End;
< Lung cc i trong mng l f[u,v], u,v V >
< Lt ct hp nht l (V
T
, V\ V
T
) >
End;

Chng trnh sau l chng trnh phc v cho vic hc tp v ging dy v bi
ton tm lung cc i trong mng. Chng trnh sau c xy dng bng cng c lp
trnh Delphi.
Cc chc nng ca chng trnh: Ta xy dng chng trnh bao gm nhng chc
nng sau:
* Tm tt thut ton Ford Fulkeson.
* Hin th cc bc thc hin ng vi tng v d c th.
Tm tt thut ton Ford Fulkerson :
Chc nng ny c mc ch gip cho ngi s dng nm vng c thut ton
trc khi i vo cc th d c th.
Hin th cc bc thc hin ca bi ton:
Do chng trnh nhm mc ch phc v cho vic dy v hc mn Ton ri rc
nn chc nng vic hin th chi tit cc bc gii bi ton ng vi tng th d c th
gip cho ngi s dng hiu r hn v thut ton.
Cu trc d liu v ci t thut ton:
Cu trc d liu:
th c lu gi di dng tp nh v tp cnh. Mi nh c lu theo
cu trc ca mt Record nh sau:
161
L_TypeDi nh = r ecor d
Ten: St r i ng;
ToaDo: L_TypeToaDo;
MucKi chHoat : Byt e;
end;
Trong :
- Bin Ten c kiu String , lu gi tn nh (mt nh l V
0
,V
1
,)
- Bin ToaDo c kiu L_TypeToaDo, lu gi to x, y ca mi nh c cu
trc ca mt Record nh sau :
L_TypeToaDo = record
x,y:integer;
end;
Bin Muckichhoat c kiu Byte lu gi mc kch hot ca nh (mi nh c
4 mc kch hot khc nhau), bin ny dng xc nh nh u, nh cui, nh
hp.
Tp cnh ca th cng c lu theo cu trc ca Record, cu trc ca mi
cnh c lu tr nh sau:
L_TypeCanh = record
DinhDau,DinhCuoi:Integer;
TrongSo:L_TypeChiphi;
end;
trong :
- Bin DinhDau c kiu Integer, lu gi ch s nh u ca cnh .
- Bin DinhCuoi c kiu Integer, lu gi ch s nh cui ca cnh .
- Bin TrongSo c kiu L_TypeChiPhi, lu gi gi v kh nng thng qua ca
cnh ang xt. Kiu L_TypeChiPhi l mt Record c dng nh sau :
L_TypeChiPhi = record
Gia:real;
kntq:real;
end;

Ci t thut ton:
Nh trnh by phn trn , thut ton Ford Fulkerson c ci t bng
cch kt hp 2 th tc Find-Path (th tc gn nhn tm ng tng lung) v Inc-Flow
(th tc tng lung theo ng tng).
y l phn ci t chi tit ca thut ton Ford Fulkerson (vit theo ngn ng
lp trnh Delphi):
162
procedure L_find_path(var L_G1:L_typedothi);
{
thu tuc gan nhan tim duong tang luong:
L_p[v],L_nhan,L_e[v] la nhan cua dinh v;
L_v la danh sach cac dinh co nhan nhung chua xet;
}
VAR x,y:integer;
ok:boolean;
a1,b1,k1,l1:real;
t,t1,i:integer;
BEGIN
for i:=0 to L_G1.sodinh-1 do
L_p1[i]:=-1;
L_p1[0]:=0;
L_nhan[0]:=true;
L_e[0]:=vocung;
L_v:=[0] ; L_v1:=[0];
L_pathfound:=true;
While L_v<>[] do
Begin
ok:=true;
x:=0;
While (x<=L_G1.sodinh-1) and (ok=true) do
Begin
If x in L_v then ok:=false
Else
x:=x+1;
End;
L_v:=L_v-[x];
For y:=0 to L_G1.sodinh-1 do
If L_p1[y]=-1 then
Begin
L_giatri(L_G1,x,y,t,a1,b1); {a:=c[x,y],b:=f[x,y]}
L_giatri(L_G1,y,x,t1,k1,l1); {k:=c[y,x],l:=f[y,x]}
If (a1>0) and (b1<a1) then
Begin
L_p1[y]:=x;
L_nhan[y]:=true;
L_e[y]:=L_min(L_e[x],a1-b1);
L_v:=L_v+[y];
163
L_v1:=L_v1+[y];
If y=L_G1.sodinh-1 then
Begin

exit;
End;
End
Else
If (k1>0) and (l1>0) then
Begin
L_p1[y]:=x;
L_nhan[y]:=false;
L_e[y]:=L_min(L_e[x],l1);
L_v:=L_v+[y];
L_v1:=L_v1+[y];
If y=L_G1.sodinh-1 then
Begin
exit;
End;
End;
End;
End;
L_pathfound:=false;
end;
procedure L_Inc_flow(var L_G1:L_typedothi);
{
tang luong theo duong tang
}
var x,y,t,t1:integer;
tang,a,k:real;
s,s1,s2,s3,s4:string;
ok:boolean;
begin
x:=L_G1.sodinh-1;
y:=L_G1.sodinh-1;
tang:=L_e[L_G1.sodinh-1];
ok:=false;
while x<>0 do
begin
y:=L_p1[x];
164
L_giatri(L_G1,x,y,t,a,L_b); {a:=c[x,y],b:=f[x,y]}
L_giatri(L_G1,y,x,t1,k,L_l); {k:=c[y,x],l:=f[y,x]}
if L_nhan[x] then
L_G1.dscanh[t1].trongso.gia:=L_G1.dscanh[t1].trongso.gia+tang
else
begin
L_G1.dscanh[t].trongso.gia:=L_G1.dscanh[t].trongso.gia-tang;
ok:=true;
end;
x:=y;
end;
end;
procedure L_luongcucdai(L_G:L_typedothi; var L_G1:L_typedothi;var gt:real);
{
thu tuc the hien thuat toan Ford_fulkerson
}
var x,y,z,t,i,j,t1,t2:integer;
a1,b1,f:real;
ok1,stop:boolean;
s,s1,ch,ch1,a:string;
begin
L_G1.SoDinh:=L_G.SoDinh ;
L_G1.socanh:=L_G.socanh;
setlength(L_p1,L_G1.SoDinh);
setlength(L_nhan,L_G1.SoDinh );
setlength(L_e,L_G1.SoDinh );
setlength(L_G1.DSdinh,L_G1.SoDinh );
Setlength(L_G1.dscanh,L_G1.SoCanh );
for j:=0 to L_G.SoDinh -1 do
L_G1.DSDinh[j]:=L_G.DSDinh[j];
for j:=0 to L_G.SoCanh -1 do
L_G1.DSCanh[j]:=L_G.DSCanh[j];
stop:=false;
while not stop do
begin
L_find_path(L_G1);
if L_pathfound then
begin
tam:=tam+1;
if tam>1 then
165
L_inc_flow(L_G1)
else
stop:=true;
end;
f:=0;
for y:= 0 to L_G1.sodinh-1 do
begin
L_giatri(L_G1,0,y,t1,a1,b1);
f:=f+b1;
end;
for y:=0 to L_G1.Socanh -1 do
if L_G1.DSCanh[y].DinhCuoi =L_G1.SoDinh -1 then
begin
break;
end;
tam:=0;
t2:=1;
while (t2<=L_G1.sodinh-2) do
begin
if t2 in L_v1 then
L_G1.dsdinh[t2].MucKichHoat :=3
else
L_G1.dsdinh[t2].MucKichHoat :=0;
end;
t2:=t2+1;
end;
L_G1.dsdinh[0].MucKichHoat :=3;
L_G1.dsdinh[L_G1.SoDinh -1].MucKichHoat :=0;
end;
Giao din chng trnh :
Hnh di y l form chnh ca chng trnh, ngi s dng c th t v
th kim tra thut ton ( th c v s nm phn th ngun). Sau khi c
th ngun, mun bit kt qu ca bi ton th ta nhn nt Run trn thanh cng c
ca form, ta s c th kt qu (nm phn th ch).
Cc bc gii ng vi tng bi ton c th c trnh by khi ta nhn Notes.
y l phn gip cho ngi s dng hiu r hn v thut ton, n trnh by cch lm
bi ton theo tng bc tng ng vi thut ton nu.
Ngoi ra, ngi s dng c th xem li thut ton bng cch click i vo phn
di ca form. Phn ny gip ngi s dng lun nm vng c thut ton.

166



thun
tin
cho
ngi
s
dng, chng trnh ny lu sn mt s th d c th m t thut ton, ngi s
dng ch cn vo file open, sau chn mt v d cn xem.
Chng trnh cn c chc nng gip cho ngi s dng to ra cc th d mi
v lu li cc v d va to.
Tn ca cc nh th c mt nh l V
0
,V
1
,. Tuy
nhin chng trnh c chc nng i tn cho nh, ngi
s dng c th i tn nh bng cch vo Edit
rename sau nh tn mi vo (xem hnh bn).

cch trn, hoc click phi vo nh cn xt ri chn cc


Vic i tn nh v xo nh c th thc hin theo hai
cch, ngi s dng c th chn nh ri chn Edit nh

167

You might also like