Lý thuyết đồ thị PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 113

L thuyt th

Bin tp bi:
Khoa CNTT HSP KT Hng Yn

L thuyt th
Bin tp bi:
Khoa CNTT HSP KT Hng Yn
Cc tc gi:
Khoa CNTT HSP KT Hng Yn

Phin bn trc tuyn:


http://voer.edu.vn/c/cad51e6d

MC LC
1. M u
2. Bi 1: Cc khi nim c bn ca L thuyt th.
3. Bi 2: Cc khi nim c bn ca l thuyt th. th Euler
3.1. Cc khi nim c bn ca L thuyt th. th Euler (phan 1)
3.2. Cc khi nim c bn ca L thuyt th. th Euler (phan 2)
4. Bi 3: th hamilton
5. Bi 4: Cy v cy khung ca th
6. Bi 5: Bi ton cy khung nh nht
7. Bi 6: Bi ton tm ng i ngn nht
7.1. Bi ton tm ng i ngn nht
7.2. Bi ton tm ng i ngn nht ( Tip )
8. Bi 7: Bi ton lung cc i trong mng
9. Bi 8: Mt s ng dng ca th
9.1. Mt s ng dng ca th(phn 1)
9.2. Mt s ng dng ca th(phn 2)
10. Ti liu tham kho
Tham gia ng gp

1/111

M u
L thuyt th l mt lnh vc c t lu v c nhiu ng dng hin i. Nhng t
tng c bn ca l thuyt th c xut vo nhng nm u ca th k 18 bi
nh ton hc li lc ngi Thy S Lenhard Eurler. Chnh ng l ngi s dng
th gii bi ton ni ting v cc ci cu thnh ph Konigsberg.
th c s dng gii cc bi ton trong nhiu lnh vc khc nhau. Chng hn,
th c th s dng xc nh cc mch vng trong vn gii tch mch in. Chng
ta c th phn bit cc hp cht ha hc hu c khc nhau vi cng cng thc phn t
nhng khc nhau v cu trc phn t nh th. Chng ta c th xc nh hai my tnh
trong mng c th trao i thng tin c vi nhau hay khng nh m hnh th ca
mng my tnh. th c trng s trn cc cnh c th s dng gii cc bi ton nh:
Tm ng i ngn nht gia hai thnh ph trong mng giao thng. Chng ta cng cn
s dng th gii cc bi ton v lp lch, thi kha biu, v phn b tn s cho cc
trm pht thanh v truyn hnh.

2/111

Bi 1: Cc khi nim c bn ca L thuyt


th.
Cc khi nim c bn ca L thuyt th.

nh ngha c bn v th
th l mt cu trc ri rc bao gm cc nh v cc cnh ni cc nh ny. Chng ta
phn bit cc loi th khc nhau bi kiu v s lng cnh ni hai nh no ca
th. c th hnh dung c ti sao li cn n cc loi th khc nhau, chng ta s
nu v d s dng chng m t mt mng my tnh. Gi s ta c mt mng gm cc
my tnh v cc knh in thoi (gi tt l knh thoi) ni cc my tnh ny. Chng ta
c th biu din cc v tr t ny tnh bi cc im v cc knh thoi ni chng bi cc
on ni, xem hnh 1.

Hnh 1S mng my tnh.


Nhn thy rng trong mng hnh 1, gia hai my bt k ch c nhiu nht l mt knh
thoi ni chng, knh thoi na cho php lin lc c hai chiu v khng c my tnh no
li c ni vi chnh n. S mng my cho trong hnh 1 c gi l n th v
hng. Ta i n nh ngha sau
nh ngha 1
n th v hng G = (V,E) bao gm V l tp cc nh, v E l tp cc cp khng c
th t gm hai phn t khc nhau ca V gi l cc cnh.

3/111

Trong trng hp gia hai my tnh no thng xuyn phi truyn ti nhiu thng
tin ngi ta phi ni hai my nu bi nhiu knh thoi. Mng vi a knh thoi gia cc
my c cho trong hnh 2

Hnh 2 S mng my tnh vi a knh thoi.


nh ngha 2
a th v hng G= (V, E) bao gm V l tp cc nh, v E l tp cc cp khng c
th t gm hai phn t khc nhau ca V gi l cc cnh. Hai cnh e 1 v e 2 c gi
l cnh lp nu chng cng tng ng vi mt cp nh.

Hnh 3 S mng my tnh vi knh thoi thng bo.


R rng mi n th u l a th, nhng khng phi a th no cng l n
th, v trong a th c th c hai (hoc nhiu hn) cnh ni mt cp nh no .
Trong mng my tnh c th c nhng knh thoi ni mt ny no vi chnh n
(chng hn vi mc nh thng bo). Mng nh vy c cho trong hnh 3. Khi a
th khng th m t c mng nh vy, bi v c nhng khuyn (cnh ni mt nh

4/111

vi chnh n). Trong trng hp nychng ta cn s dng n khi nim gi th v


hng, c nh ngha nh sau:
nh ngha 3
Gi th v hng G = (V, E) bao gm V l tp cc nh v E l tp cc cp khng
c th t gm hai phn t (khng nht thit phi khc nhau) ca V gi l cnh. Cnh e
c gi l khuyn nu n c dng e = (u, u).

Hnh 4 Mng my tnh vi knh thoi mt chiu.


Cc knh thoi trong mng my tnh c th ch cho php truyn tin theo mt chiu.
Chng hn, trong hnh 4 my ch H Ni ch c th nhn tin t cc my a phng,
c mt s my ch c th gi tin i, cn cc knh thoi cho php truyn tin theo c hai
chiu c thay th bi hai cnh c hng ngc chiu nhau.
Ta i n nh ngha sau.
nh ngha 4
n th c hng G = (V, E) bao gm V l tp cc nh v E l tp cc cp c th t
gm hai phn t khc nhau ca V gi l cc cung.
Nu trong mng c th c a knh thoi mt chiu, ta s phi s dng n khi nim a
th c hng:
nh ngha 5
a th c hng G = (V, E) bao gm V l tp cc nh v E l tp cc cp c th
t gm hai phn t khc nhau ca V gi l cc cung. Hai cung e 1 , e 2 tng ng vi
cng mt cp nh c gi l cung lp.

5/111

Trong cc phn tip theo ch yu chng ta s lm vic v?i n th v hng v n


th c hng. V vy, cho ngn gn, ta s b qua tnh t n khi nhc n chng.

ng i. chu trnh. th lin thng


nh ngha 6
ng i di n t nh u n nh v, trong n l s nguyn dng, trn th v
hng G = (V, E) l dy x 0 , x 1 ,, x n-1 , x n
trong u = x 0 , v = x n , (x i , x i+1 ) E, i = 0, 1, 2,, n-1.
ng i ni trn cn c th biu din di dng dy cc cnh:
(x 0 , x 1 ), (x 1 , x 2 ), , (x n-1 , x n )
nh u gi l nh u, cn nh v gi l nh cui ca ng i. ng i c nh u
trng vi nh cui (tc l u = v) c gi l chu trnh . ng i hay chu trnh c
gi l n nu nh khng c cnh no b lp li.
V d 1 Trn th v hng cho trong hnh 5: a, d, c, f, e l ng i n di 4.
Cn d, e, c, a khng l ng i, do (c,e) khng phi l cnh ca th. Dy b, c, f, e, b
l chu trnh di 5. ng i a, b, e, d, a, b c di l 5 khng phi l ng i n,
do cnh (a, b) c mt trong n 2 ln.

Hnh 5 ng i trn th
Khi nim ng i v chu trnh trn th c hng c nh ngha hon ton tng
t nh trong trng hp th v hng, ch khc l ta c ch n hng trn cc
cung.
nh ngha 7.
ng i di n t nh u n nh v, trong , n l s nguyn dng, trn th c
hng G = (V, A) l dy x 0 , x 1 ,, x n-1 , x n

6/111

trong u = x 0 , v = x n , (xi, x i+1 ) E, i = 0, 1, 2,, n-1.


ng i ni trn cn c th biu din di dng dy cc cung:
(x 0 , x 1 ), (x 1 , x 2 ), , (x n-1 , x n )
nh u gi l nh u, cn nh v gi l nh cui ca ng i. ng i c nh u
trng vi nh cui (tc l u = v) c gi l chu trnh . ng i hay chu trnh c
gi l n nu nh khng c cnh no b lp li.
V d 2 Trn th c hng cho trong hnh 1.6: a, d, c, f, e l ng i n di 4.
Cn d, e, c, a khng l ng i, do (c,e) khng phi l cnh ca th. Dy b, c, f, e, b
l chu trnh di 4. ng i a, b, e, d, a, b c di l 5 khng phi l ng i n,
do cnh (a, b) c mt trong n 2 ln.
Xt mt mng my tnh. Mt cu hi t ra l hai my tnh bt k trong mng ny c th
trao i thng tin c vi nhau hoc l trc tip qua knh ni chng hoc thng qua
mt hoc vi my tnh trung gian trong mng? Nu s dng th biu din mng
my tnh ny (trong cc nh ca th tng ng vi cc my tnh, cn cc cnh
tng ng vi cc knh ni) cu hi c pht biu trong ngn ng th nh sau:
Tn ti hay khng ng i gia mi cp nh ca th.
nh ngha 8
th v hng G = (V, E) c gi l lin thng nu lun tm c ng i gia hai
nh bt k ca n.
Nh vy hai my tnh bt k trong mng c th trao i thng tin c vi nhau khi v
ch khi th tng ng vi mng ny l th lin thng.
V d 3 Trong hnh 6: th G l lin thng, cn th H l khng lin thng.

Hnh 6 th G v H.

7/111

nh ngha 9.
Ta gi th con ca th G = (V, E) l th H = (W, F), trong W V v F E.
Trong trng hp th l khng lin thng, n s r ra thnh mt s th con lin
thng i mt khng c nh chung. Nhng th con lin thng nh vy ta s gi l
cc thnh phn lin thng ca th.
V d 4. th H trong hnh 2 gm 3 thnh phn lin thng H1, H2, H3.
Trong mng my tnh c th c nhng my (Nhng knh ni) m s hng hc ca n
s nh hng n vic trao i thng tin trong mng. Cc khi nim tng ng vi tnh
hung ny c a ra trong nh ngha sau.
nh ngha 10.
nh v c gi l nh r nhnh nu vic loi b v cng vi cc cnh lin thuc vi n
khi th lm tng s thnh phn lin thng ca th. Cnh e c gi l cu nu
vic loi b n khi th lm tng s thnh phn lin thng ca th.
V d 5 Trong th G hnh2, nh d v e l nh r nhnh, cn cc cnh (d, g) v (e,
f) l cu.
i vi th c hng c hai khi nim lin thng ph thuc vo vic ta c xt n
hng trn cc cung hay khng.
nh ngha 11
th c hng G = (V, A) c gi l lin thng mnh nu lun tm c ng i
gia hai nh bt k ca n.
nh ngha 12
th c hng G = (V, A) c gi l lin thng yu nu th v hng tng ng
vi n l v hng lin thng.
R rng nu th l lin thng mnh th n cng l lin thng yu, nhng iu ngc
li l khng lun ng, nh ch ra trong v dn di y.
V d 6 Trong hnh 7 th G l lin thng mnh, cn H l lin thng yu nhng khng
l lin thng mnh.

8/111

Hnh 8 th lin thng mnh G v th lin thng yu H.


Mt cu hi t ra l khi no c th nh hng cc cnh ca mt th v hng lin
thng c th thu c th c hng lin thng mnh? Ta s gi th nh vy l
th nh hng c. nh l di y cho ta tiu chun nhn bit mt th c l
nh hng c hay khng.
nh l 1
th v hng lin thng l nh hng c khi v ch khi mi cnh ca n nm trn
t nht mt chu trnh.
Chng minh.
iu kin cn. Gi s (u,v) l mt cnh ca mt th. T s tn ti ng i c hng
t u n v v ngc li suy ra (u, v) phi nm trn t nht mt chu trnh.
iu kin . Th tc sau y cho php nh hng cc cnh ca th thu c
th c hng lin thng mnh. Gi s C l mt chu trnh no trong th. nh hng
cc cnh trn chu trnh ny theo mt hng i vng theo n. Nu tt c cc cnh ca
th l c nh hng th kt thc th tc. Ngc li, chn e l mt cnh cha nh
hng c chung nh vi t nht mt trong s cc cnh nh hng. Theo gi thit tm
c chu trnh C cha cnh e. nh hng cc cnh cha c nh hng ca C theo
mt hng dc theo chu trnh ny (khng nh hng li cc cnh c nh hng).
Th tc trn s c lp li cho n khi tt c cc cnh ca th c nh hng. Khi
ta thu c th c hng lin thng mnh.

th v hng lin thng


Trong mc ny chng ta s trnh by mt s thut ng c bn ca l thuyt th. Trc
tin, ta xt cc thut ng m t cc nh v cnh ca th v hng.
nh ngha 13

9/111

Hai nh u v v ca th v hng G c gi l k nhau nu (u,v) l cnh ca th


G. Nu e = (u, v) l cnh ca th ta ni cnh ny l lin thuc vi hai nh u v v,
hoc cng ni l ni nh u v nh v, ng thi cc nh u v v s c gi l cc nh
u ca cnh (u, v).
c th bit c vao nhiu cnh lin thuc vi mt nh, ta a vo nh ngha sau
nh ngha 14
Ta gi bc ca nh v trong th v hng l s cnh lin thuc vi n v s k hiu
l deg(v).

Hnh 8 th v hng.
V d 7 Xt th cho trong hnh 8, ta c
deg(a) = 1, deg(b) = 4, deg(c) = 4, deg(f) = 3,
deg(d) = 1, deg(e) = 3, deg(g) = 0
nh bc 0 gi l nh c lp. nh bc 1 c gi l nh treo. Trong v d trn nh g
l nh c lp, a v d l cc nh treo. Bc ca nh c tnh cht sau:
nh l 2 Gi s G = (V, E) l th v hng vi m cnh. Khi tng bc ca tt c
cc nh bng hai ln s cung.
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.
V d 8 th vi n nh c bc l 6 c bao nhiu cnh?
Gii: Theo nh l 2 ta c 2m = 6n. T suy ra tng cc cnh ca th l 3n.
H qu 3 Trong th v hng, s nh bc l (ngha l c bc l s l) l mt s
chn.

10/111

Chng minh. Thc vy, gi O v U tng ng l tp nh bc l v tp nh bc chn


ca th. Ta c
2m = v U deg(v) + v O deg(v)

Do deg(v) l chn vi v l nh trong U nn tng th nht trn l s chn. T suy


ra tng th hai (chnh l tng bc ca cc nh bc l) cng phi l s chn, do tt c cc
s hng ca n l s l, nn tng ny phi gm mt s chn cc s hng. V vy, s nh
bc l phi l s chn.
Ta xt cc thut ng tng t cho th v hng.

th c hng lin thng


nh ngha 15
Nu e = (u, v) l cung ca th c hng G th ta ni hai nh u v v l k nhau, v
ni cung (u, v) ni nh u vi nh v hoc cng ni cung ny l i ra khi nh u v vo
nh v. nh u(v) s c g l nh u (cui) ca cung (u,v).
Tng t nh khi nim bc, i vi th c hng ta c khi nim bn bc ra v bn
bc vo ca mt nh.
nh ngha 16
Ta gi bn bc ra (bn bc vo) ca nh v trong th c hng l s cung ca th
i ra khi n (i vo n) v k hiu l deg + (v) (deg - (v))

Hnh 9 th c hng.
V d 9 Xt th cho trong hnh 9. Ta c
deg - (a)=1, deg - (b)=2, deg - (c)=2, deg - (d)=2, deg - (e) = 2.
deg + (a)=3, deg + (b)=1, deg + (c)=1, deg + (d)=2, deg + (e)=2.
11/111

Do mi cung (u, v) s c tnh mt ln trong bn bc vo ca nh v v mt ln trong


bn bc ra ca nh u nn ta c:
nh l 4. Gi s G = (V, E) l th c hng. Khi
2m =
Rt nhiu tnh cht ca th c hng khng ph thuc vo hng trn cc cung ca
n. V vy, trong nhiu trng hp s thun tin hn nu ta b qua hng trn cc cung
ca th. th v hng thu c bng cch b qua hng trn cc cung c gi l
th v hng tng ng vi th c hng cho.

12/111

Bi 2: Cc khi nim c bn ca l thuyt


th. th Euler
Cc khi nim c bn ca L thuyt th. th Euler
(phan 1)
Cc khi nim c bn ca L thuyt th. th Euler

Cc loi th c bit
Trong mc ny ta xt mt s n th v hng dng c bit xut hin trong nhiu
vn ng dng thc t.
th y .
th y n nh, k hiu bi Kn, l n th v hngm gia hai nh bt k ca
n lun c cnh ni.
Cc th K3, K4, K5 cho trong hnh di y.

Hnh 1 th y .
th y Kn c tt c n(n-1)/2 cnh, n l n th c nhiu cnh nht.
th vng.
th vng Cn, n3. gm n nh v1, v2,. . . .vn v cc cnh (v1,v2), (v2,v3) . . . (vn-1,vn),
(vn,v1).

13/111

th vng C3, C4, C5, C6 cho trong hnh 2

Hnh 2 th vng C 3 , C 4 , C 5 , C 6 .
th bnh xe.
th Wn thu c t Cn bng cch b sung vo mt nh mi ni vi tt c cc nh
ca Cn (xem hnh 3).

Hnh 3 th bnh xe W 3 , W 4 , W 5 , W 6 .
th lp phng.
th lp phng n nh Qn l th vi cc nh biu din 2n xu nh phn di n.
Hai nh ca n gi l k nhau nu nh hai xu nh phn tng ng ch khc nhau 1 bit.
Hnh 4 cho thy Qn vi n=1,2,3.

Hnh 4 th lp phng Q 1 , Q 2 , Q 3 .
14/111

th hai pha.
n th G = (V, E) c gi l hai pha nu nh tp nh V ca n c th phn hoch
thnh hai tp X v Y sao cho mi cnh ca th ch ni mt nh no trong X vi
mt nh no trong Y. Khi ta s s dng k hiu G = (X?Y, E) ch th hai
pha vi tp nh X?Y.
nh l sau y cho php nhn bit mt n th c phi l hai pha hay khng.
nh l 1 n th l th hai pha khi v ch khi n khng cha chu trnh di l.
kim tra xem mt th lin thng c phi l hai pha hay khng c th p dng th
tc sau. Cho v l mt nh bt k ca th. t X={v}, cn Y l tp cc nh k ca v.
Khi cc nh k ca cc nh trong Y phi thuc vo X. K hiu tp cc nh nh vy
l T. V th nu pht hin T ? Y th th khng phi l hai pha, kt thc. ngc
li, t X = X ? T. Tip tc xt nh vy i vi T l tp cc nh k ca T,. ..
th hai pha G=(X ? Y, E) vi |X|= m, |Y| = n c gi l th hai pha y v
k hiu l K2,3, K3,3, K3,4 c cho trong hnh 5.

Hnh 5 : th hai pha.


th phng.
th c gi l th phng nu ta c th v n trn mt phng sao cho cc cnh ca
n khng ct nhau ngoi nh. Cch v nh vy s c gi l biu din phng ca
th.
V d th K4 l phng, v c th v n trn mt phng sao cho cc cnh ca n khng
ct nhau ngoi nh (xem hnh 6).

15/111

Hnh 6: th K 4 l th phng.
Mt iu ng lu nu th l phng th lun c th v n trn mt phng vi cc
cnh ni l cc on thng khng ct nhau ngoi nh (v d xem cch v K4 trong
hnh 6).
nhn bit xem mt th c phi l th phng c th s dng nh l Kuratovski,
m pht biu n ta cn mt s khi nim sau: Ta gi mt php chia cnh (u,v) ca
th l vic loi b cnh ny khi th v thm vo th mt nh mi w cng vi hai
cnh (u,w), (w, u) . Hai th G(V,E) v H=(W,F) c gi l ng cu nu chng c
th thu c t cng mt th no nh php chia cnh.
nh l 2 (Kuratovski). th l phng khi v ch khi n khng cha th con ng
cu vi K 3,3 hoc K 5 .
Trong trng hp ring, th K3,3 hoc K5 khng phi l th phng. Bi ton v
tnh phng ca th K3,3 l bi ton ni ting v ba cn h v ba h thng cung cp
nng lng cho chng: Cn xy dng h thng ng cung cp nng lng vi mi mt
cn h ni trn sao cho chng khng ct nhau.
th phng cn tm c nhng ng dng quan trng trong cng ngh ch to mch
in.
Biu din phng ca th s chia mt phng ra thnh cc min, trong c th c c
min khng b chng. V d, biu din phng ca th cho trong hnh 7 chia mt phng
ra thnh 6 min R1, R2,. . . .R6.

Hnh 7: Cc min tng ng vi biu din phng ca th.

16/111

Euler chng minh c rng cc cch biu din phng khc nhau ca mt th u
chia mt phng ra thnh cng mt s min. chng minh iu , Euler tm c
mi lin h gia s min, s nh ca th v s cnh ca th phng sau y.
nh l 3 (Cng thc Euler). Gi s G l th phng lin thng vi n nh, m cnh.
Gi r l s min ca mt phng b chia bi biu din phng ca G. Khi
r = m-n + 2
C th chng minh nh l bng qui np. Xt V d minh ho cho p dng cng thc
Euler.
V d 1 Cho G l th phng lin thng vi 20 nh, mi nh u c bc l 3. Hi mt
phng b chia lm bao nhiu phn bi biu din phng ca th G?
Gii. Do mi nh ca th u c bc l 3, nn tng bc ca cc nh l 3x20=60. T
suy ra s cnh ca th m=60/20=30. V vy, theo cng thc Euler, s min cn tm
l
r = 30-20+2=12.

Cc phng php lu tr th
lu tr th v thc hin cc thut ton khc nhau vi th trn my tnh cn phi
tm nhng cu trc d liu thch hp m t th. Vic chn cu trc d liu no
biu din th c tc ng rt ln n hiu qu ca thut ton. V vy, vic chn
la cu trc d liu biu din th ph thuc vo tng tnh hung c th (bi ton
v thut ton c th). Trong mc ny chng ta s xt mt s phng php c bn c
s dng biu din th trn my tnh, ng thi cng phn tch mt cch ngn gn
nhng u im cng nh nhng nhc im ca chng.
Ma trn k. Ma trn trng s
Xt n th v hng G =(V,E), vi tp nh V={1, 2,. . . ,n} , tp cnh E= {e1, e2, .
. . ,em }. Ta gi ma trn k ca th G l ma trn.
A=( ai,j : i, j = 1, 2, . . . ,n)
Vi cc phn t c xc nh theo qui tc sau y:
ai, j = 0, nu (i, j) E v
ai,j = 1 , nu (i, j) E, i, j =1, 2,. . ., n.

17/111

V d 2 Ma trn trn k ca th v hng G cho trong hnh 2.8 l:


1 2 3 4 5 6
1 0 1 1 0 1 0
2 1 0 1 0 1 0
3 1 1 0 1 0 0
4 0 0 1 0 1 1
5 1 1 0 1 0 1
6 0 0 0 1 1 0

Hnh 2.8 th v hng G v th c hng G 1 .


Cc tnh cht ca ma trn k:
1) R rng ma trn k ca th v hng l ma trn i xng, tc l
a[i,j]=a[j,i], i,j =1,2,. . .,n. Ngc li, mi (0,1)-ma trn i xng cp n s tng ng,
chnh xc n cch nh s nh (cn ni l: chnh xc n ng cu), vi mt n
th v hng n nh.
2) Tng cc phn t trn dng i (ct j) ca ma trn k chnh bng bc ca nh i (nh j).
3) nu k hiu ajp , i,j=1, 2,. . . ,n l phn t ca ma trn Ap =A.A. . .A p tha s. Khi
ajp , i,j=1, 2,. . . ,n cho ta s ng i khc nhau t nh i n nh j qua p-1 nh
trung gian.
Ma trn k ca th c hng c nh ngha mt cch hon ton tng t.
V d 3 th c hng G1 cho trong hnh 8 c ma trn k l ma trn sau:
1 2 3 4 5 6

18/111

1 0 1 1 0 0 0
2 0 0 0 0 0 0
3 0 1 0 1 0 0
4 0 0 0 0 0 0
5 0 0 0 1 0 1
6 0 0 0 0 1 0
Lu rng ma trn k ca th c hng khng phi l ma trn i xng.
Ch : Trn y chng ta ch xt n th. Ma trn k ca a th c th xy dng
hon ton tng t, ch khc l thay v ghi 1 vo v tr a[i,j] nu (i,j) l cnh ca th,
chng ta s ghi k l s cnh ni hai nh i, j.
Trong rt nhiu vn ng dng ca l thuyt th, mi cnh e=(u,v) ca th c
gn vi mt con s c(e) (cn vit l c(u,v) gi l trng s ca cnh e. th trong trng
hp nh vy c gi l th c trng s. Trong trng hp th c trng s, thay v
m trn k, biu din th ta s dng ma trn trng s.
C= {c[i,j], i, j = 1, 2,. . ., n}
vi c[i,j]=c(i,j) nu (i,j) E v c[i,j]= nu (i, j) E
trong s , tu tng trng hp c th, c th c t bng mt trong cc gi tr sau
: 0, + , -.
u im ln nht ca phng php biu din th bng ma trn k (hoc ma trn trng
s) l tr li cu hi: Hai nh u, v c k nhau trn th hay khng, chng ta ch
phi thc hin mt php so snh. nhc im ln nht ca phng php ny l : khng
ph thuc vo s cnh ca th, ta lun phi s dng n2 n v b nh lu tr ma
trn k ca n.
Danh sch cnh (cung)
Trong trng hp th tha ( th c s cnh m tho mn bt dng thc: m < 6n)
ngi ta thng dng cch biu din th di dng danh sch cnh.
Trong cch biu din th bi danh sch cnh (cung) chng ta s lu tr danh sch tt
c cc cnh (cung) ca th v hng (c hng). Mt cnh (cung) e = (x,y) ca
th s tng ng vi hai bin Dau[e], Cuoi[e]. nh vy, lu tr th ta cn s dng
2m n v b nh. Nhc im ca cch biu din ny l xc nh nhng nh no
19/111

ca th l k vi mt nh cho trc chng ta phi lm c m php so snh (khi duyt


qua danh sch tt c cc cnh ca th).
Ch : Trong trng hp th c trng s ta cn thm m n v b nh lu tr trng
s ca cc cnh.
V d 2.4 Danh sch cnh (cung) ca th G (G1) cho trong hnh 2.8 l:
Dau Cuoi

Dau Cuoi

Danh sch cnh ca G

Danh snh cung ca G1

Danh sch k
Trong rt nhiu vn ng dng ca l thuyt th, cch biu din th di dng
danh sch k l cch biu din thch hp nht c s dng.
Trong cch biu din ny, vi mi nh v ca th chng ta lu tr danh sch cc nh
k vi n, m ta s k hiu l
Ke(v)= { u V: (v,u) E }
Khi vng lp thc hin vi mi mt phn t trong danh sch ny theo th t cc phn
t c sp xp trong n s c vit nh sau:
for u Ke(v) do. . .
Chng hn, trn PASCAL c th m t danh sch ny nh sau (Gi l cu trc Forward
Star):
20/111

Const
m=1000; {m-so canh}
n= 100; {n-so dinh}
var
Ke: array[1..m] of integer;
Tro: array[1..n+1] of integer;
Trong Tro[i] ghi nhn v tr bt u ca danh sch k ca nh i, i=1, 2,. . .,n,
Tro[n+1]=2m+1.
Khi dng lnh qui c
for u Ke(v) do
begin . . . end.
C th thay th bi cu trc lnh c th trn PASCAL nh sau
For i:=Tro[v] to Tro[v+1]-1 do
Begin
U:=Ke[i];
....
End;
Trong rt nhiu thut ton lm vic vi th chng ta thng xuyn phi thc hin cc
thao tc: Thm hoc bt mt s cnh. Trong trng hp ny cu trc d liu dng
trn l khng thun tin. Khi nn chuyn sang s dng danh sch k lin kt (Linked
Adjancency List) nh m t trong chng trnh nhp danh sch k ca th t bn
phm v a danh sch ra mn hnh sau y:
Program AdjList;
Const
maxV=100;

21/111

Type
link=^node;
node=record
v:integer;
next:link;
End;
Var
j,x,y,m,n,u,v:integer;
t:link;
Ke:array[1. .Vmax] of link;
Begin
Write(Cho so canh va dinh cua do thi:); readln(m,n);
(*Khoi tao*)
for j:=1 to n do Ke[j]:=nil;
for j:=1 to m do
begin
write(Cho dinh dau va cuoi cua canh ,j,:);
readln(x,y);
new(t); t^.v:=x, t^.next:=Ke[y]; Ke[y]:=t;
new(t); t^.v:=y, t^.next:=Ke[x]; Ke[x]:=t;
end;
writeln(Danh sach ke cua cac dinh cua do thi:);

22/111

for J:=1 to m do
begin
writeln(Danh sachcac dinh ke cua dinh ,j,:);
t:=Ke[j];
while t^.next<>nil do
begin
write(t^.v:4);
t:=t^.next;
end;
end;
readln;
End.

V d 5 Danh sch k ca cc th trong hnh 2.8 c m t trong hnh sau:


nh u

23/111

nh u

Hnh 2.9 Danh sch k ca th v hng G v c hng G 1 cho trong hnh 2.8.
rng trong cch biu din ny chng ta cn phi s dng c m+n n v b nh.
Trong cc thut ton m t cc phn tip theo hai cu trc danh sch k v ma trn
trng s c s dng thng xuyn.

24/111

Cc khi nim c bn ca L thuyt th. th Euler


(phan 2)
Cc khi nim c bn ca L thuyt th. th Euler

th eule
nh ngha.
Chu trnh n trong th G i qua mi cnh ca n mt ln c gi l chu trnh Euler.
ng i n trong G i qua mi cnh ca n mt ln c gi l ng i Euler.
th c gi l th Euler nu n c chu trnh Euler, v gi l th na Euler nu n
c ng i Euler.
R rng mi th Euler lun l na Euler, nhng iu ngc li khng lun ng.
Cac thi du
V d 6 th G1 trong hnh 1 l th Euler v n c chu trnh Euler a, e, c, d, e, b, a.
th G3 khng c chu trnh Euler nhng n c ng i Euler a, c, d, e, b, d, a, b, v
th G3 l th ca Euler. th G2 khng c chu trnh cng nh ng i Euler.

Hnh 1 : th G 1 , G 2 , G 3 .
V d 7 : th H2 trong hnh 1 l th Euler v n c chu trnh Euler a, b, c, d, e, a.
th H3 khng c chu trnh Euler nhng n c ng i Euler c, a, b, c, d, b v th H3
l th na Euler. th H1 khng c chu trnh cng nh ng i Euler.

25/111

Hnh 1: th H 1 , H 2 , H 3 .
iu kin cn v mt th l mt th Euler c Euler tm ra vo nm 1736
khi ng gii quyt bi ton hc ba ni ting th gii thi v by ci cu thnh ph
Konigsberg v y l nh l u tin ca l thuyt th.
inh ly Euler va thut ton Flor
nh l 4 (Euler). th v hng lin thng G l th Euler khi v ch khi mi nh
ca G u c bc chn.
chng minh nh l trc ht ta chng minh b :
B 5 Nu bc ca mi nh ca th G khng nh hn 2 th G cha chu trnh.
Chng minh.
Nu G c cnh lp th khng nh ca b l hin nhin. V vy gi s G l n th.
Gi v l mt nh no ca G. Ta s xy dng theo qui np ng i
v v1 v2 . . .
trong v1 l nh k vi v, cn vi i 1 chn vi+1 vi-l (c th chn vi+1 nh vy l
v deg(vi) 2). 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 nh u tin nh th l vk. Khi , on ca
ng i xy dng nm gia hai nh vk l 1 chu trnh cn tm.
Chng minh nh l:
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 bc ca nh tng ln 2. mt khc mi cnh
ca th xut hin trong P ng mt ln, suy ra mi nh ca th iu c bc chn.

26/111

.Quy np theo s nh v s cnh ca G. Do G lin thng v deg(v) l s chn nn


bc ca mi nh ca n khng nh hn 2. T theo b G phi cha chu trnh 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 tt c cc cnh thuc C ta thu c
mt th mi H vn c bc l chn. Theo gi thit qui np, trong mi thnh phn lin
thng ca H iu tm c chu trnh Euler. Do G l lin thng nn trong mi thnh phn
ca 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: 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 ta s
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 v.v (xem hnh 12). 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.

Hnh 12 Minh ho cho chng minh nh l 4.


H qu 6 th v hng lin thng G l na Euler khi v ch khi n c khng qu 2
nh bc l.
Chng minh. Thc vy , nu G c khng qu 2 nh bc l th s nh bc l ca n ch
c th l 0 hoc 2. Nu G khng c nh bc l th theo nh l 4, n l th Euler. Gi
s G c 2 nh bc l l u v v. Gi H l th thu c t G bng cch thm vo G mt
nh mi w v hai cnh (w,u) v(w,v). Khi tt c cc nh ca H iu c bc chn,
v th theo nh l 4, n c chu trnh Euler C. Xo b khi chu trnh ny nh w v hai
cnh k n ta thu c ng i Euler trong th G.
Gi s G l th Euler, t chng minh nh l ta c th tc sau tm chu trnh Euler
trong G.

27/111

Procedure Euler_Cycle;
Begin
STACK:= ; CE:= ;
Chon u la mot dinh nao do cua do thi;
STACK ? u;
While STACK<> do
Begin
X:=top(STACK); (* x la phan tu dau STACK)
If Ke(x)<> then
Begin
Y:=dinh dau tien trong danh sach Ke(x);
STACK ? y;
(* loai bo canh (x,y) khoi do thi *)
Ke(x):=Ke(x)\ { y} ;
Ke(y):=Ke(y)\{ x} ;
End
Else
Begin
x STACK; CE x;
End;
End;
End;

28/111

Gi s G l th Euler, thut ton n gin sau y cho php xc nh chu trnh Euler
khi lm bng tay.
Thut ton Flor
Xut pht t mt nh u no ca G ta i theo cc cnh ca n mt cch tu ch cn
tun th 2 qui tc sau:
(1) Xo b cnh i qua ng thi xo b c nhng nh c lp to thnh.
(2) mi bc ta ch i qua cu khi khng cn cch la chon no khc.
Chng minh tnh ng n ca thut ton.
Trc tin ta ch ra rng th tc trn c th thc hin mi bc. Gi s ta i n mt
nh v no , khi nu v u th th con cn li H l lin thng v cha ng hai
nh bc l l v v u. Theo h qu trong H c ng i Euler P t v ti u. Do vic xo
b cnh u tin ca ng i P khng lm mt tnh lin thng ca H, t suy ra th
tc c th thc hin mi bc. Nu v=u th lp lun trn s vn ng chng no vn
cn cnh k vi u.
Nh vy ch cn phi ch ra th tc trn dn n ng i Euler. Thc vy trong G
khng th cn cnh cha i qua khi m ta s dng cnh cui cng k vi u (trong trng
hp ngc li, vic loi b mt cnh no k vi mt trong s nhng cnh cn li
cha i qua s dn n mt th khng lin thng, v iu l mu thun vi gi
thit ii).
Chng minh tng t nh trong nh l 1 ta thu c kt qu sau y cho th c
hng.
nh l 7 th c hng lin thng mnh l th Euler khi v ch khi
Deg+(v) = deg- (v), v V.

29/111

Bi 3: th hamilton
th hamilton

inh nghia
ng i qua tt c cc nh ca th mi nh ng mt ln c gi l ng i
Hamilton. Chu trnh bt u t mt nh v no qua tt c cc nh cn li mi nh
ng mt ln ri quay tr v v c gi l chu trnh Hamilton. th G c gi l
th Hamilton nu n cha chu trnh Hamilton v gi l th na Hamilton nu n c
ng i Hamilton.
R rng th Hamilton l na Hamilton, nhng iu ngc li khng cn ng.
V d 1. Trong hnh 1: G3 l Hamilton, G2 l na Hamilton cn G1 khng l na
Hamilton.

Hnh 1 th Hamilton G 3 , na Hamilton G 2 , v G 1 .


Cho n nay vic tm mt tiu chun nhn bit th Hamilton vn cn l m, mc d
y l mt vn trung tm ca l thuyt th. Hn th na, cho n nay cng cha
c thut ton hiu qu kim tra mt th c l Hamilton hay khng. Cc kt qu thu
c phn ln l iu kin mt th l th Hamilton. Phn ln chng iu c
dng "nu G c s cnh ln th G l Hamilton". Mt kt qu nh vy c pht biu
trong nh l sau y.

nh l v thut ton lit k tt c cc chu trnh Hamilton.


nh l 1 (Dirak 1952)
n th v hng G vi n>2 nh, mi nh c bc khng nh hn n/2 l th
Hamilton.
Chng minh:

30/111

Thm vo th G k nh mi v ni chng vi tt c cc nh ca G. gi s k l s nh
nht cc nh cn thm vo cho th thu c G l th Hamilton. Ta s ch ra
rng k=0. Thc vy, gi s ngc li l k >0. K hiu
v, p, w, . . ., v l chu trnh Hamilton trong G, trong v, w l nh ca G cn p l mt
trong s cc nh mi. Khi w khng k vi v v nu ngc li, ta khng cn s dng
p v iu l mu thun vi gi thit k nh nht. Hn th na nh (w chng hn) k
vi w khng th i lin sau nh v (k vi v) v rng khi c th thay
v p w . . . v w . . . v
bi v v . . . w w . . . v bng cch o ngc on ca chu trnh nm
gia w v v. T suy ra l s nh ca th G khng k vi w l khng nh hn s
nh k vi v (tc l t nht cng l bng n/2+k), ng thi s nh ca G k vi w t ra
l phi bng n/2+k. Do khng c nh no ca G va khng k, li va k vi w, cho
nn tng s nh ca th G (G c n+k nh) khng t hn n+2k. Mu thun thu c
chng minh nh l.
nh l sau l tng qut ho ca nh l Dirak cho th c hng:
nh l 2 Gi s G l c hng lin thng vi n nh.
Nu deg+ (v) n/2, deg (v) n/2, v th G l Hamilton.
C mt s dng th m ta c th bit khi no l th Hamilton. Mt v d nh vy
l th u loi. th u loi l th c hng m trong hai nh bt k ca n
c ni vi nhau bi ng mt cung. Tn u loi xut hin nh vy v th nh vy
c th dng biu din kt qu thi u bng chuyn, bng bn hay bt c mt tr chi
no m khng cho php ho. Ta c nh l sau:
nh l 3
i) Mi th u loi l na Hamilton.
ii) Mi th u loi lin thng mnh l Hamilton.
V d 2 th u loi D5, D6 c cho trong hnh 3.2

31/111

Hnh 2 th u loi D 5 , u loi lin thng mnh D 6 .


Thut ton lit k tt c cc chu trnh Hamilton ca th
Thut ton sau y c xy dng da trn c s thut ton quay lui cho php lit k tt
c cc chu trnh Hamilton ca th.
Procedure Hamilton(k);
(* liet ke cac chu trinh Hamilton thu duoc bang viec phat trien day dinh (X[1],. . . ,
X[k-1]) cua do thi G=(V,E) cho boi danh sach ke: Ke(v), v V *)
begin
for y Ke(X[k-1]) do
if (k =N+1) and (y=v 0 ) then Ghinhan(X[1],. . . , X[n], v 0 )
else
if Chuaxet[y] then
begin
X[k]:=y;
Chuaxet[y]:=false;
Hamilton(k+1);
Chuaxet[y]:=true;
end;
32/111

end;
(* Main program*)
begin
for v V do Chuaxet[v]:=true;
X[1]:=0; (* v0 la mot dinh nao do cua do thi *)
Chuaxet[v0]:=false;
Hamilton(2);
end.
V d 3 : Hnh 3 di y m t cy tm kim theo thut ton va m t.

Hnh 3: th v cy lit k chu trnh Hamilton ca n theo thut ton quay lui.
Trong trng hp th c khng qu nhiu cnh thut ton trn c th s dng kim
tra th c phi l Hamilton hay khng.

Bi tp
Bi tp 1: Hi ngh bn trn
Tng th k i hi ng Lin hp quc triu tp mt cuc hp c N nh ngoi giao
ca N t chc tham gia. Cc i din ngoi giao c b tr ngi quanh mt bn trn.
Gia mt s t chc c quan h cng thng, v vy khng th xp h ngi cnh nhau
c. Thng tin v quan h gia cc t chc c cho di dng cp s nguyn i, j nu
gia 2 t chc ny c quan h cng thng.
33/111

Hy lp trnh gip Tng th k Lin hp quc b tr ch ngi quanh bn hp. Cc t


chc c nh s t 1 ti N, 0 < N <= 500.
D liu vo: t file CONF.INP, dng u tin cha s nguyn N, cc dng sau, mi
dng mt cp s i, j cho bit cc i din i v j khng ngi cnh nhau c. Kt thc l
mt dng cha 2 s 0.
Kt qu: a ra file CONF.OUT. Nu khng c cch b tr tha mn yu cu th a ra
thng bo KHONG CO, trong trng hp ngc li a ra dy N s nguyn xc nh
v tr ai ngi cnh ai quanh bn trn.
V d:
CONF.INP CONF.OUT
11 1 9 7 4 11 5 8 2 10 3 6
14
17
57
10 7
10 8
10 9
34
00
Bi tp 2: Domino
Cho trc N con c domino, hy vit chng trnh cho bit rng c cch sp N con c
theo ng lut domino sao cho cc con c hnh thnh vng trn hay khng, nu c
hy ch ra mt cch sp.
D liu vo: file DOMINO.INP
Dng u cha s N

34/111

N dng tip theo, mi dng cha 2 s t 0 n 6 mang gi tr i din cho 2 u ca


domino.
D liu ra: file DOMINO.OUT
Dng u cha s 1 hoc 0 tng ng vi sp c qun domino thnh vng trn v
khng sp c.
Nu dng u l 1 (tng ng vi sp c) th dng th hai lit k ra N ch s ca N
con c domino theo th t sp thnh vng trn. Nu dng u l 0 th khng c dng
th hai.
V d:
DOMINO.INP
4
53
56
23
62
DOMINO.OUT
1
1342
Bi tp 3: Kim tra ng
Mt trm qung ng giao thng phi chu trch nhim v tnh trng ca mt mng
li giao thng ni gia cc im dn c. Hng thng, h phi c mt i i kim tra
mt vng qua khp mng li xem xt tnh trng hin thi ca cc ng giao thng
nhm bo sa cha kp thi nu c nhu cu. Hy vit chng trnh nhp vo mng li
giao thng v gip trm quyt nh l trnh ca i kim tra sao cho c th thm tt c
cc con ng m tng chiu di on ng i qua l nh nht.
Bi tp 4: M i tun

35/111

Hy ci t chng trnh xc nh l trnh ca con m trn bn c 8x8 bt u t (i,


j) i qua tt c cc ca bn c vmi ch 1 ln duy nht.
M rng vi trng hp bn c kch thc NxN.
Bi tp 5: Hi ngh bn trn
C 12 ngi ngi chung 1 bn tic trn. Mi ngi c t nht 6 ngi quen. Hy ch ra
cch sp xp sao cho mi ngi u ngi cnh ngi mnh quen . Tng qut, hy sp
N ngi ngi chung quanh bn trn sao cho mi ngi u ngi cnh ngi mnh quen.
Bit mi ngi c t nht (N + 1)/2 ngi quen.

36/111

Bi 4: Cy v cy khung ca th
Cy v cy khung ca th

Cy v cc tnh cht c bn ca cy
nh ngha 1 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.
V d 1 Rng sau c 3 cy:

Mnh 1 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.
nh l 2: 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 n?1 cnh.
3) T khng cha chu trnh v c n?1 cnh.
4) T lin thng v mi cnh l cu.

37/111

5) Gia hai nh phn bit bt k ca T lun c duy nht mt ng i s cp.


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 n?1 cnh. Ta
chng minh bng quy np. iu ny hin nhin khi n=2. Gi s cy c k nh th c k?1
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
k?1 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 n?1 cnh, tri vi 2).
3)
4) Nu T c k thnh phn lin thng T1, ..., Tk ln lt c s nh l n1, ..., nk (vi
n1+n2+ +nk=n) th mi Ti l mt cy nn n c s cnh l ni?1. Vy ta c

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 n?2 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.

Cy khung ca th
nh ngha 2. Gi s G = (V, E) l th v hng lin thng. Cy T = (V, F) vi F
E c gi l cy khung ca th G.
V d 2 th G v cy khung ca n c cho trong hnh 2
38/111

Hnh 2 th v cc cy khung ca n.
nh l sau y cho bit s lng cy khung ca th y Kn:
nh l 3 (Cayley). S lng cy khung ca th K n l n n-2 .
nh l 3 cho thy s lng cy khung ca th l mt s rt ln. By gi ta xt
p dng ca thut ton tm kim theo chiu su v theo chiu rng trn th xy
dng cy khung ca th v hng lin thng. Trong c hai trng hp mi khi ta n
c nh mi u (tc Chuaxet[u]=true) t nh v th cnh (v, u) s c kt np vo cy
khung. Hai thut ton tng ng c trnh by trong hai th tc sau y.
Procedure stree_DFS(v);
(* tim kiem theo chieu sau ap dung vao tim tap canh cua cay khung T cua do thi vo
huong lien thong G cho boi danh sach ke. Cac bien Chuaxet, Ke, T la toan cuc*)
begin
Chuaxet[v]:=false;
For u Ke(v) do
If Chuaxet[u] then
Begin
T:=T ? (u,v);
STREE_DFS(u);
End;
end;
(* Main Program *)

39/111

begin
(* Initialition *)
for u V do Chuaxet[u]:=true;
T := ; (* T la tap canh cua cay khung *)
STREE_DFS(root); ( root la dinh nao do cua do thi *)
end.

Procedure Stree_BFS(v);
(* tim kiem theo chieu rong ap dung tim tap canh cua cau khung T cua do thi vo huong
lien thong G cho boi danh sach Ke *)
begin
Queue:= ;
Queue r;
Chuaxet[r]:=false;
While queue <> do
Begin
V queue;
For r Ke(v) do
If Chuaxet[u] then
Begin
Queue u;
Chuaxet[u]:=false;
T:= T ? (u,v);

40/111

End;
End;
end;
(* Main Program *);
begin
for u V do Chuaxet[u]:=true;
T := ; (* T la tap canh cua cay khung *)
Stree_BFS(root); (* root la mot dinh tuy y cua do thi *)
end.
Ch :
1. Lp lun tng t nh trong phn trc c th ch ra c rng cc thut ton m t
trn c phc tp tnh ton O(m+n).
2. Cy khung tm c theo th tc Stree_BFS() l cy ng i ngn nht t gc r n
tt c cc nh cn li ca th.

Xy dng tp cc chu trnh c bn ca th


Bi ton xy dng cy khung ca th lin quan cht ch n mt s bi ton ng dng
khc ca l thuyt th: bi ton xy dng tp cc chu trnh c bn ca th m ta s
xt trong mc ny.
Gi s G=(V, E) l n th v hng lin thng, H=(V, T) l cy khung ca n. Cc
cnh ca th thuc cy khung ta s gi l cc cnh trong, cn cc cnh cn li s gi
l cnh ngoi.
nh ngha 3 Nu thm mt cnh ngoi e E\T vo cy khung H chng ta s thu c
ng mt chu trnh trong H, k hiu chu trnh ny l Ce. Tp cc chu trnh ? = { Ce : e
E\T } c gi l tp cc chu trnh c bn ca th G.
Gi s A v B l hai tp hp, ta a vo php ton sau
A ? B = ( A ?B) \ ( A ? B).

41/111

Tp A ? B c gi l hiu i xng ca hai tp A v B.


Tn gi chu trnh c bn gn lin vi s kin l mi chu trnh ca th u c th thu
c t cc chu trnh c bn nh ch ra trong nh l sau y:
nh l 3 Gi s G=(V,E) l th v hng lin thng, H=(V,T) l cy khung ca n.
Khi mi chu trnh ca th G iu c th biu din nh l hiu i xng ca mt s
cc chu trnh c bn.
Vic tm tp hp chu trnh c bn gi mt vai tr quan trng trong vn gii tch mng
in. C th hn, theo mi chu trnh c bn ca th tng ng vi mng in cn
phn tch ta s thit lp c mt phng trnh tuyn tnh theo nh lut Kirchoff: tng
hiu in th dc theo mt mch vng l bng khng. H thng phng trnh tuyn tnh
thu c cho php tnh ton hiu in th trn mi ng dy ca li in.
Ta s xy dng thut ton xy dng cc chu trnh c bn da trn th tc tm kim theo
chiu su trn th. Thut ton c cu trc tng t nh thut ton xy dng cy khung
theo th tc tm kim theo chiu su m t trong mc trc.
Thut ton xy dng tp cc chu trnh c bn.
Gi thit rng th G=(V,E) c m t bng danh sch Ke(v),v V.
Procedure Cycle(v);
(* tim kiem cac chu trinh co ban cua thanh phan lien thong chua dinh v; cac bien d, num
, stack, index la bien toan cuc *)
begin
d:=d+1; stack[d]:=v; num:=num+1;index[v]:=num;
for u Ke(v) do
if index[u]=0 then cycle(u)
else
if (u <> stack[d-1]) and (index[v]>index[u]) then
<Ghi nhan chu trinh voi cac dinh:
stack[d], stack[d-1],. . ., stack[c], voi stack[c]=u>

42/111

d:=d-1;
end;
(* Main Program *)
begin
for v V do Index[v]:=0;
num:=0; d:=0; stack[0]:=0;
for v V do
if Index[v]=0 then cycle(v);
end.
Ch : phc tp tnh ton ca thut ton va m t l O(|E| |V| ).

43/111

Bi 5: Bi ton cy khung nh nht


Bi ton tm ng i ngn nht
Trong cc ng dng thc t, vi ton tm ng i ngn nht gia hai nh ca mt
th lin thng c mt ngha to ln. C th dn v bi ton nh vy nhiu bi ton thc
t quan trng. V d, bi ton chn mt hnh trnh tit kim nht (theo tiu chun hoc
khong cch hoc thi gian hoc chi ph) trn mt mng giao thng ng b, ng
thy hoc ng khng; bi ton chn mt phng php tit kim nht a ra mt
h thng ng lc t trng thi xut pht n trng mt trng thi ch, bi ton lp lch
thi cng cc cng cc cng on trong mt cng trnh thi cng ln, bi ton la chn
ng truyn tin vi chi ph nh nht trong mng thng tin, v.v Hin nay c rt nhiu
phng php gii cc bi ton nh vy. Th nhng, thng thng, cc thut ton
c xy dng da trn c s l thuyt th t ra l cc thut ton c hiu qu cao
nht. Trong chng ny chng ta s xt mt s thut ton nh vy.

Cc khi nim m u
Trong bi ny chng ta ch xt th c hng G =(V,E), |V|=n, |E|=m vi cc cung
c gn trng s, ngha l, mi cung (u,v) E ca n c t tng ng vi mt s
thc a(u,v) gi l trng s ca n. Chng ta s t a(u,v) = , nu (u,v) E. Nu dy
v0, v1, . . ., vp l mt ng i trn G, th di ca n c nh ngha l tng sau
pi = 1 a(vi 1,vi)

tc l, di ca ng i chnh l tng ca cc trng s trn cc cung ca n. (Ch


rng nu chng ta gn trng s cho tt c cung u bng 1, th ta thu c nh ngha
di ca ng i nh l s cung ca ng i ging nh trong cc chng trc
xt).
Bi ton tm ng i ngn nht trn th di dng tng qut c th pht biu nh
sau: tm ng i c di nh nht t mt nh xut pht s V n nh cui (ch) t
V. ng i nh vy ta s gi l ng i ngn nht t s n t cn di ca n ta s
k hiu l d(s,t) v cn gi l khong cch t s n t (khong cch nh ngha nh vy
c th l s m). Nu nh khng tn ti ng i t s n t th ta s t d(s,t) = . R
rng, nu nh mi chu trnh trong th u c di dng, trong ng i ngn nht
khng c nh no b lp li (ng i khng c nh lp li s gi l ng i c bn).
Mt khc nu trong th c chu trnh vi di m (chu trnh nh vy gi ngn gn
ta gi l chu trnh m) th khong cch gia mt s cp nh no ca th c th l
khng xc nh, bi v, bng cch i vng theo chu trnh ny mt s ln ln, ta c th
ch ra ng i gia cc nh ny c di nh hn bt c s thc cho trc no. Trong
44/111

nhng trng hp nh vy, c th t vn tm ng i c bn ngn nht, tuy nhin


bi ton t ra s tr nn phc tp hn rt nhiu, bi v n cha bi ton xt s tn ti
ng i Hamilton trong th nh l mt trng hp ring.
Trc ht cn ch rng nu bit khong cch t s n t, th ng i ngn nht t s
n t, trong trng hp trng s khng m, c th tm c mt cch d dng. tm
ng i, ch cn l i vi cp nh s, t V tu (s <> t) lun tm c nh v
sao cho

Thc vy, nh v nh vy chnh l nh i trc nh t trong ng i ngn nht t s


n t. Tip theo ta li c th tm c nh u sao cho d(s,v) = d(s,u) + a(u,v), . . . T gi
thit v tnh khng m ca cc trng s d dng suy ra rng dy t, v, u, . . . khng cha
nh lp li v kt thc nh s. R rng dy thu c xc nh (nu lt ngc th t
cc nh trong n) ng i ngn nht t s n t. T ta c thut ton sau y tm
ng i ngn nht t s n t khi bit di ca n.
Procedure Find_Path;
(* u vo:
D[v] - khong cch t nh s n tt c cc nh cn li v V;
- nh ch;
a[u,v], u, v V ma trn trng s trn cc cung.
u ra:
Mng Stack cha dy nh xc nh ng i ngn nht t s n t
*)
begin
stack:= ; stack t; v:=t;
while v <> s do
begin

45/111

u:=nh tho mn d[v]=d[u]+a[u,v];


stack u;
v:=u;
end;
end;
Ch rng phc tp tnh ton ca thut ton l O(n2), do tm nh u ta phi xt qua
tt c cc nh ca th. Tt nhin, ta cng c th s dng k thut ghi nhn ng i
trnh by trong chng 3: dng bin mng Truoc[v], v V, ghi nh nh i trc
v trong ng i tm kim.
Cng cn lu thm l trong trng hp trng s trn cc cnh l khng m, bi ton
tm ng i ngn nht trn th v hng c th dn v bi ton trn th c hng,
bng cch thay i mi cnh ca n bi n bi hai cung c hng ngc chiu nhau vi
cng trng s l trng s ca cc cnh tng ng. Tuy nhin, trong trng hp c trng
s m, vic thay nh vy c th dn n chu trnh m.

ng i ngn nht xut pht t mt nh. Thut ton ford-bellman


Phn ln cc thut ton tm khong cch gia hai nh s v t c xy dng nh k thut
tnh ton m ta c th m t i th nh sau: t ma trn trng s a[u,v], u,v V, ta tnh
cn trn d[v] ca khong cch t s n tt c cc nh v V. Mi khi pht hin
d[u] + a[u,v] < d[v] (1)
cn trn d[v] s c lm tt ln: d[v] + a[u,v].
Qu trnh s kt thc khi no chng ta khng lm tt thm c bt k cn trn no.
Khi , r rng gi tr ca mi d[v] s cho khong cch t nh s n nh v. Khi th
hin k thut tnh ton ny trn my tnh, cn trn d[v] s c gi l nhn ca nh v,
cn vic tnh li cc cn ny s c gi l th tc gn. Nhn thy rng tnh khong
cch t s n t, y, ta phi tnh khong cch t s n tt c cc nh cn li ca th.
Hin nay vn cha bit thut ton no cho php tm ng i ngn nht gia hai nh
lm vic thc s hiu qu hn nhng thut ton tm ng i ngn nht t mt nh n
tt c cc nh cn li.
S tnh ton m ta va m t cn cha xc nh, bi v cn phi ch ra th t cc nh
u v v kim tra iu kin (1). Th t chn ny c nh hng rt ln n hiu qu ca
thut ton.

46/111

By gi ta s m t thut ton Ford-Bellman tm ng i ngn nht t nh s n tt c


cc nh cn li ca th. Thut ton lm vic trong trng hp trng s ca cc cung
l tu , nhng gi thit rng trong th khng c chu trnh m.
Procedure Ford_Bellman
(* u vo:
th c hng G=(V,E) vi n nh,
s V l nh xut pht, A[u,v], u, v V, ma trn trng s;
Gi thit: th khng c chu trnh m.
u ra:
Khong cch t nh s n tt c cc nh cn li d[v], v V.
Trc[v], v V, ghi nhn nh i trc v trong ng i ngn nht t s n v.*)
begin
(* Khi to *)
for v V do
begin
d[v]:=a[s,v];
Truoc[v]:=s;
end;
d[s]:=0;
for k:=1 to n-2 do
for v V\{ s} do
for u V do
if d[v] > d[u] +a[u,v] then

47/111

begin
d[v]:=d[u]+a[u,v];
Truoc[v]:=u;
end;
end;
Tnh ng n ca thut ton c th chng minh trn c s trn nguyn l ti u ca quy
hoch ng. R rng l phc tp tnh ton ca thut ton l O(n3). Lu rng chng
ta c th chm dt vng lp theo k khi pht hin trong qu trnh thc hin hai vng lp
trong khng c bin d[v] no b i gi tr. Vic ny c th xy ra i vi k<n-2, v iu
lm tng hiu qu ca thut ton trong vic gii cc bi ton thc t. Tuy nhin, ci
tin khng thc s ci thin c nh gi phc tp ca bn thn thut ton. i
vi th tha tt hn l s dng danh sch k Ke(v), v V, biu din th, khi
vng lp theo u cn vit li di dng
For u Ke(v) do
If d[v] > d[u] + a[u,v] thenBegin
D[v]:=d[u]+a[u,v];Truoc[v]:=u;
End;
Trong trng hp ny ta thu c thut ton vi phc tp O(n,m).

V d 1 xt th trong hnh 1. Cc kt qu tnh ton theo thut ton c m t trong


bng di y

48/111

Hnh 1. Minh ha thut ton Ford_Bellman.


k d[1] Truoc[1] d[2] Truoc[2] d[3] Truoc[3] d[4] Truoc[4] d[5] Truoc[5]
0, 1

1, 1

, 1

, 1

3, 1

1 0, 1

1, 1

4, 2

4, 2

-1, 3

2 0, 1

1, 1

4, 2

3, 5

-1, 3

3 0, 1

1, 1

4, 2

3, 5

-1, 3

Bng kt qu tnh ton theo thut ton Ford_Bellman


Trong cc mc tip theo chng ta s xt mt s trng hp ring ca bi ton tm ng
i ngn nht m gii chng c th xy dng nhng thut ton hiu qu hn thut ton
Ford_Bellman. l khi trng s ca tt c cc cung l cc s khng m hoc l khi
th khng c chu trnh.

Trng hp ma trn trng s khng m. Thut ton dijkstra


Trong trng hp trng s trn cc cung l khng m thut ton do Dijkstra ngh lm
vic hu hiu hn rt nhiu so vi thut ton trnh by trong mc trc. Thut ton c
xy dng da trn c s gn cho cc nh cc nhn tm thi. Nhn ca mi nh cho
bit cn ca di ng i ngn nht t s n n. Cc nhn ny s c bin i theo
mt th tc lp, m mi bc lp c mt nhn tm thi tr thnh nhn c nh. Nu
nhn ca mt nh no tr thnh mt nhn c nh th n s cho ta khng phi l cn
trn m l di ca ng i ngn nht t nh s n n. Thut ton c m t c th
nh sau.
Procedure Dijstra;
(* u vo:
th c hng G=(v,E) vi n nh,

49/111

s V l nh xut pht, a[u,v], u,v V, ma trn trng s;


Gi thit: a[u,v]0, u,v V.
u ra:
Khong cch t nh s n tt c cc nh cn li d[v], v V.
Truoc[v], v V, ghi nhn nh i trc v trong ng i ngn nht t s n v *)
Begin
(* Khi to *)
for v V do
begin
d[v]:=a[s,v];
Truoc[v]:=s;
end;
d[s]:=0; T:=V\{ s} ; (* T l tp cc nh c nhn tm thi *)
(* Bc lp *)
while T <> do
begin
tm nh u T tho mn d[u]=min{ d[z]:z T} ;
T:=T\{u} ; (* C nh nhn ca nh u*)
For v T do
If d[v]>d[u]+a[u,v] then
Begin
d[v]:=d[u]+a[u,v];

50/111

Truoc[v]:=u;
End;
end;
End;
nh l 1 Thut ton Dijkstra tm c ng i ngn nht trn th sau thi gian c
O(n2).
Chng minh.
Trc ht ta chng minh l thut ton tm c ng i ngn nht t nh s n cc
nh cn li ca th. Gi s mt bc lp no cc nhn c nh cho ta di cc
ng i ngn nht t s n cc nh c nhn c nh, ta s chng minh rng ln gp
tip theo nu nh u* thu c nhn c nh d(u*) chnh l di ng i ngn nht t
s n u*.
K hiu S1 l tp hp cc nh c nhn c nh cn S2 l tp cc nh c nhn tm thi
bc lp ang xt. Kt thc mi bc lp nhn tm thi d(u*) cho ta di ca ng
i ngn nht t s n u* khng nm trng trong tp S1, tc l n i qua t nht mt nh
ca tp S2. Gi z S2 l nh u tin nh vy trn ng i ny. Do trng s trn cc
cung l khng m, nn on ng t z n u* c di L > 0 v
d(z) < d(u*) L < d(u*).
Bt ng thc ny l mu thun vi cch xc nh nh u* l nh c nhn tm thi nh
nht. Vy ng i ngn nht t s n u* phi nm trn trong S1, v v th, d[u*] l
di ca n. Do ln lp u tin S1 = {s} v sau mi ln lp ta ch thm vo mt nh
u* nn gi thit l d(v) cho di ng i ngn nht t s n v vi mi v S1 l ng
vi bc lp u tin. Theo qui np suy ra thut ton cho ta ng i ngn nht t s n
mi nh ca th.
By gi ta s nh gi s php ton cn thc hin theo thut ton. mi bc lp
tm ra nh u cn phi thc hin O(n) php ton, v gn nhn li cng cn thc hin
mt s lng php ton cng l O(n). thut ton phi thc hin n-1 bc lp, v vy thi
gian tnh ton ca thun ton c O(n2).
nh l c chng minh.
Khi tm c di ca ng i ngn nht d[v] th ng i ny c th tm da vo
nhn Truoc[v], v V, theo qui tc ging nh chng ta xt.
51/111

V d 2 Tm ng i ngn nht t 1 n cc nh cn li ca th hnh 2.

Hnh 2 Minh ha thut ton Dijkstra.


Kt qu tnh ton theo thut ton c trnh by theo bng di y. Qui c vit hai
thnh phn ca nhn theo th t: d[v]. nh c nh du * l nh c chn c
nh nhn bc lp ang xt, nhn ca n khng bin i cc bc tip theo, v th
ta nh du -.
Bc lp nh 1 nh 2 nh 3 nh 4 nh 5 nh 6
Khi to 0,1

1,1*

,1

,1

,1

,1

6,2

3,2*

,1

8,2

4,4*

7,4

8,2

7,4

5,3*

6,6*

Ch :
1) Nu ch cn tm ng i ngn nht t s n mt nh t no th c th kt thc
thut ton khi nh t tr thnh c nhn c nh.
2) Tng t nh trong mc 2, d dng m t thut ton trong trng hp th cho bi
danh sch k. c th gim bt khi lng tnh ton trong vic xc nh nh u mi
bc lp, c th s dng thut ton Heasort (tng t nh trong bi 5 khi th hin thut
ton Kruskal). Khi c th thu c thut ton vi phc tp tnh ton l O(m log
n).
52/111

Bi 6: Bi ton tm ng i ngn nht


Bi ton tm ng i ngn nht
Bi ton tm ng i ngn nht
Trong cc ng dng thc t, vi ton tm ng i ngn nht gia hai nh ca mt
th lin thng c mt ngha to ln. C th dn v bi ton nh vy nhiu bi ton thc
t quan trng. V d, bi ton chn mt hnh trnh tit kim nht (theo tiu chun hoc
khong cch hoc thi gian hoc chi ph) trn mt mng giao thng ng b, ng
thy hoc ng khng; bi ton chn mt phng php tit kim nht a ra mt
h thng ng lc t trng thi xut pht n trng mt trng thi ch, bi ton lp lch
thi cng cc cng cc cng on trong mt cng trnh thi cng ln, bi ton la chn
ng truyn tin vi chi ph nh nht trong mng thng tin, v.v Hin nay c rt nhiu
phng php gii cc bi ton nh vy. Th nhng, thng thng, cc thut ton
c xy dng da trn c s l thuyt th t ra l cc thut ton c hiu qu cao
nht. Trong chng ny chng ta s xt mt s thut ton nh vy.

Cc khi nim m u
Trong bi ny chng ta ch xt th c hng G =(V,E), |V|=n, |E|=m vi cc cung
c gn trng s, ngha l, mi cung (u,v) E ca n c t tng ng vi mt s
thc a(u,v) gi l trng s ca n. Chng ta s t a(u,v) = , nu (u,v) E. Nu dy
v0, v1, . . ., vp l mt ng i trn G, th di ca n c nh ngha l tng sau
pi = 1 a(vi 1,vi)

tc l, di ca ng i chnh l tng ca cc trng s trn cc cung ca n. (Ch


rng nu chng ta gn trng s cho tt c cung u bng 1, th ta thu c nh ngha
di ca ng i nh l s cung ca ng i ging nh trong cc chng trc
xt).
Bi ton tm ng i ngn nht trn th di dng tng qut c th pht biu nh
sau: tm ng i c di nh nht t mt nh xut pht s V n nh cui (ch) t
V. ng i nh vy ta s gi l ng i ngn nht t s n t cn di ca n ta s
k hiu l d(s,t) v cn gi l khong cch t s n t (khong cch nh ngha nh vy
c th l s m). Nu nh khng tn ti ng i t s n t th ta s t d(s,t) = . R
rng, nu nh mi chu trnh trong th u c di dng, trong ng i ngn nht
khng c nh no b lp li (ng i khng c nh lp li s gi l ng i c bn).
Mt khc nu trong th c chu trnh vi di m (chu trnh nh vy gi ngn gn
ta gi l chu trnh m) th khong cch gia mt s cp nh no ca th c th l
53/111

khng xc nh, bi v, bng cch i vng theo chu trnh ny mt s ln ln, ta c th


ch ra ng i gia cc nh ny c di nh hn bt c s thc cho trc no. Trong
nhng trng hp nh vy, c th t vn tm ng i c bn ngn nht, tuy nhin
bi ton t ra s tr nn phc tp hn rt nhiu, bi v n cha bi ton xt s tn ti
ng i Hamilton trong th nh l mt trng hp ring.
Trc ht cn ch rng nu bit khong cch t s n t, th ng i ngn nht t s
n t, trong trng hp trng s khng m, c th tm c mt cch d dng. tm
ng i, ch cn l i vi cp nh s, t V tu (s <> t) lun tm c nh v
sao cho

Thc vy, nh v nh vy chnh l nh i trc nh t trong ng i ngn nht t s


n t. Tip theo ta li c th tm c nh u sao cho d(s,v) = d(s,u) + a(u,v), . . . T gi
thit v tnh khng m ca cc trng s d dng suy ra rng dy t, v, u, . . . khng cha
nh lp li v kt thc nh s. R rng dy thu c xc nh (nu lt ngc th t
cc nh trong n) ng i ngn nht t s n t. T ta c thut ton sau y tm
ng i ngn nht t s n t khi bit di ca n.
Procedure Find_Path;
(* u vo:
D[v] - khong cch t nh s n tt c cc nh cn li v V;
- nh ch;
a[u,v], u, v V ma trn trng s trn cc cung.
u ra:
Mng Stack cha dy nh xc nh ng i ngn nht t s n t
*)
begin
stack:= ; stack t; v:=t;
while v <> s do

54/111

begin
u:=nh tho mn d[v]=d[u]+a[u,v];
stack u;
v:=u;
end;
end;
Ch rng phc tp tnh ton ca thut ton l O(n2), do tm nh u ta phi xt qua
tt c cc nh ca th. Tt nhin, ta cng c th s dng k thut ghi nhn ng i
trnh by trong chng 3: dng bin mng Truoc[v], v V, ghi nh nh i trc
v trong ng i tm kim.
Cng cn lu thm l trong trng hp trng s trn cc cnh l khng m, bi ton
tm ng i ngn nht trn th v hng c th dn v bi ton trn th c hng,
bng cch thay i mi cnh ca n bi n bi hai cung c hng ngc chiu nhau vi
cng trng s l trng s ca cc cnh tng ng. Tuy nhin, trong trng hp c trng
s m, vic thay nh vy c th dn n chu trnh m.

ng i ngn nht xut pht t mt nh. Thut ton ford-bellman


Phn ln cc thut ton tm khong cch gia hai nh s v t c xy dng nh k thut
tnh ton m ta c th m t i th nh sau: t ma trn trng s a[u,v], u,v V, ta tnh
cn trn d[v] ca khong cch t s n tt c cc nh v V. Mi khi pht hin
d[u] + a[u,v] < d[v] (1)
cn trn d[v] s c lm tt ln: d[v] + a[u,v].
Qu trnh s kt thc khi no chng ta khng lm tt thm c bt k cn trn no.
Khi , r rng gi tr ca mi d[v] s cho khong cch t nh s n nh v. Khi th
hin k thut tnh ton ny trn my tnh, cn trn d[v] s c gi l nhn ca nh v,
cn vic tnh li cc cn ny s c gi l th tc gn. Nhn thy rng tnh khong
cch t s n t, y, ta phi tnh khong cch t s n tt c cc nh cn li ca th.
Hin nay vn cha bit thut ton no cho php tm ng i ngn nht gia hai nh
lm vic thc s hiu qu hn nhng thut ton tm ng i ngn nht t mt nh n
tt c cc nh cn li.

55/111

S tnh ton m ta va m t cn cha xc nh, bi v cn phi ch ra th t cc nh


u v v kim tra iu kin (1). Th t chn ny c nh hng rt ln n hiu qu ca
thut ton.
By gi ta s m t thut ton Ford-Bellman tm ng i ngn nht t nh s n tt c
cc nh cn li ca th. Thut ton lm vic trong trng hp trng s ca cc cung
l tu , nhng gi thit rng trong th khng c chu trnh m.
Procedure Ford_Bellman
(* u vo:
th c hng G=(V,E) vi n nh,
s V l nh xut pht, A[u,v], u, v V, ma trn trng s;
Gi thit: th khng c chu trnh m.
u ra:
Khong cch t nh s n tt c cc nh cn li d[v], v V.
Trc[v], v V, ghi nhn nh i trc v trong ng i ngn nht t s n v.*)
begin
(* Khi to *)
for v V do
begin
d[v]:=a[s,v];
Truoc[v]:=s;
end;
d[s]:=0;
for k:=1 to n-2 do
for v V\{ s} do

56/111

for u V do
if d[v] > d[u] +a[u,v] then
begin
d[v]:=d[u]+a[u,v];
Truoc[v]:=u;
end;
end;
Tnh ng n ca thut ton c th chng minh trn c s trn nguyn l ti u ca quy
hoch ng. R rng l phc tp tnh ton ca thut ton l O(n3). Lu rng chng
ta c th chm dt vng lp theo k khi pht hin trong qu trnh thc hin hai vng lp
trong khng c bin d[v] no b i gi tr. Vic ny c th xy ra i vi k<n-2, v iu
lm tng hiu qu ca thut ton trong vic gii cc bi ton thc t. Tuy nhin, ci
tin khng thc s ci thin c nh gi phc tp ca bn thn thut ton. i
vi th tha tt hn l s dng danh sch k Ke(v), v V, biu din th, khi
vng lp theo u cn vit li di dng
For u Ke(v) do
If d[v] > d[u] + a[u,v] thenBegin
D[v]:=d[u]+a[u,v];Truoc[v]:=u;
End;
Trong trng hp ny ta thu c thut ton vi phc tp O(n,m).

57/111

V d 1 xt th trong hnh 1. Cc kt qu tnh ton theo thut ton c m t trong


bng di y

Hnh 1. Minh ha thut ton Ford_Bellman.


k d[1] Truoc[1] d[2] Truoc[2] d[3] Truoc[3] d[4] Truoc[4] d[5] Truoc[5]
0, 1

1, 1

, 1

, 1

3, 1

1 0, 1

1, 1

4, 2

4, 2

-1, 3

2 0, 1

1, 1

4, 2

3, 5

-1, 3

3 0, 1

1, 1

4, 2

3, 5

-1, 3

Bng kt qu tnh ton theo thut ton Ford_Bellman


Trong cc mc tip theo chng ta s xt mt s trng hp ring ca bi ton tm ng
i ngn nht m gii chng c th xy dng nhng thut ton hiu qu hn thut ton
Ford_Bellman. l khi trng s ca tt c cc cung l cc s khng m hoc l khi
th khng c chu trnh.

58/111

Trng hp ma trn trng s khng m. Thut ton dijkstra


Trong trng hp trng s trn cc cung l khng m thut ton do Dijkstra ngh lm
vic hu hiu hn rt nhiu so vi thut ton trnh by trong mc trc. Thut ton c
xy dng da trn c s gn cho cc nh cc nhn tm thi. Nhn ca mi nh cho
bit cn ca di ng i ngn nht t s n n. Cc nhn ny s c bin i theo
mt th tc lp, m mi bc lp c mt nhn tm thi tr thnh nhn c nh. Nu
nhn ca mt nh no tr thnh mt nhn c nh th n s cho ta khng phi l cn
trn m l di ca ng i ngn nht t nh s n n. Thut ton c m t c th
nh sau.
Procedure Dijstra;
(* u vo:
th c hng G=(v,E) vi n nh,
s V l nh xut pht, a[u,v], u,v V, ma trn trng s;
Gi thit: a[u,v]0, u,v V.
u ra:
Khong cch t nh s n tt c cc nh cn li d[v], v V.
Truoc[v], v V, ghi nhn nh i trc v trong ng i ngn nht t s n v *)
Begin
(* Khi to *)
for v V do
begin
d[v]:=a[s,v];
Truoc[v]:=s;
end;
d[s]:=0; T:=V\{ s} ; (* T l tp cc nh c nhn tm thi *)
(* Bc lp *)
59/111

while T <> do
begin
tm nh u T tho mn d[u]=min{ d[z]:z T} ;
T:=T\{u} ; (* C nh nhn ca nh u*)
For v T do
If d[v]>d[u]+a[u,v] then
Begin
d[v]:=d[u]+a[u,v];
Truoc[v]:=u;
End;
end;
End;
nh l 1 Thut ton Dijkstra tm c ng i ngn nht trn th sau thi gian c
O(n2).
Chng minh.
Trc ht ta chng minh l thut ton tm c ng i ngn nht t nh s n cc
nh cn li ca th. Gi s mt bc lp no cc nhn c nh cho ta di cc
ng i ngn nht t s n cc nh c nhn c nh, ta s chng minh rng ln gp
tip theo nu nh u* thu c nhn c nh d(u*) chnh l di ng i ngn nht t
s n u*.
K hiu S1 l tp hp cc nh c nhn c nh cn S2 l tp cc nh c nhn tm thi
bc lp ang xt. Kt thc mi bc lp nhn tm thi d(u*) cho ta di ca ng
i ngn nht t s n u* khng nm trng trong tp S1, tc l n i qua t nht mt nh
ca tp S2. Gi z S2 l nh u tin nh vy trn ng i ny. Do trng s trn cc
cung l khng m, nn on ng t z n u* c di L > 0 v
d(z) < d(u*) L < d(u*).

60/111

Bt ng thc ny l mu thun vi cch xc nh nh u* l nh c nhn tm thi nh


nht. Vy ng i ngn nht t s n u* phi nm trn trong S1, v v th, d[u*] l
di ca n. Do ln lp u tin S1 = {s} v sau mi ln lp ta ch thm vo mt nh
u* nn gi thit l d(v) cho di ng i ngn nht t s n v vi mi v S1 l ng
vi bc lp u tin. Theo qui np suy ra thut ton cho ta ng i ngn nht t s n
mi nh ca th.
By gi ta s nh gi s php ton cn thc hin theo thut ton. mi bc lp
tm ra nh u cn phi thc hin O(n) php ton, v gn nhn li cng cn thc hin
mt s lng php ton cng l O(n). thut ton phi thc hin n-1 bc lp, v vy thi
gian tnh ton ca thun ton c O(n2).
nh l c chng minh.
Khi tm c di ca ng i ngn nht d[v] th ng i ny c th tm da vo
nhn Truoc[v], v V, theo qui tc ging nh chng ta xt.
V d 2 Tm ng i ngn nht t 1 n cc nh cn li ca th hnh 2.

Hnh 2 Minh ha thut ton Dijkstra.


Kt qu tnh ton theo thut ton c trnh by theo bng di y. Qui c vit hai
thnh phn ca nhn theo th t: d[v]. nh c nh du * l nh c chn c
nh nhn bc lp ang xt, nhn ca n khng bin i cc bc tip theo, v th
ta nh du -.
Bc lp nh 1 nh 2 nh 3 nh 4 nh 5 nh 6

61/111

Khi to 0,1

1,1*

,1

,1

,1

,1

6,2

3,2*

,1

8,2

4,4*

7,4

8,2

7,4

5,3*

6,6*

Ch :
1) Nu ch cn tm ng i ngn nht t s n mt nh t no th c th kt thc
thut ton khi nh t tr thnh c nhn c nh.
2) Tng t nh trong mc 2, d dng m t thut ton trong trng hp th cho bi
danh sch k. c th gim bt khi lng tnh ton trong vic xc nh nh u mi
bc lp, c th s dng thut ton Heasort (tng t nh trong bi 5 khi th hin thut
ton Kruskal). Khi c th thu c thut ton vi phc tp tnh ton l O(m log
n).

62/111

Bi ton tm ng i ngn nht ( Tip )


Bi ton tm ng i ngn nht (tip)

ng i trong th khng c chu trnh


By gi ta xt trng hp ring th hai ca bi ton ng i ngn nht, m gii n
c th xy dng thut ton vi phc tp tnh ton O(n2), l khi th khng c
chu trnh (cn trng s trn cc cung c th l cc s thc tu ). Trc ht ta chng
minh nh l sau.
nh l 1. Gi s G l th khng c chu trnh. Khi cc nh ca n c th nh s
sao cho mi cung ca th ch hng t nh c ch s nh hn n nh c ch s ln
hn, ngha l mi cung ca n c s biu din di dng (v[i], v[j]), trong i < j.
V d 1. th trong hnh 1 c cc nh s tho mn iu kin nu trong nh l.

Hnh 1 th khng c chu trnh.


chng minh nh l ta m t thut ton sau y, cho php tm ra cch nh s tho
mn iu kin nh l.
Procudure Numbering;
(* u vo: th c hng G=(V,E) vi n nh khng cha chu trnh c cho bi
danh sch k Ke(v), v V.
u ra:
Vi mi nh v V ch s NR [v] tho mn:

63/111

Vi mi cung (u,v) ca th ta u c NR [u] < NR [v] *)


Begin
For v V do Vao[v]:=0; (* Tnh Vao[v]=deg - (v) *)
for u V do
for v Ke(u) do Vao[v]:=Vao[v]+1;
Queue:= ;
For v V do
if Vao[v]=0 then Queue v;
num:=0;
while queue <> do
begin
u queue; num:=num+1; NR[u]:=num;
for v Ke(u) do
begin
Vao[v]:=Vao[v]-1;
If Vao[v]=0 then queue v;
end;
end;
End;
Thut ton c xy dng da trn tng rt n gin sau: r rng trong th khng
c chu trnh bao gi cng tm c nh c bn bc vo bng 0 (khng c cung i vo).
Thc vy, bt u t nh v1 nu c cung i vo n t v2 th ta li chuyn sang xt nh
v2 . Nu c cung t v3 i vo v2, th ta li chuyn sang xt nh v3. . .Do th khng c
chu trnh nn sau mt s hu hn ln chuyn nh vy ta phi i n nh khng c cung
i vo. Thot tin, tm cc nh nh vy ca th. R rng ta c th nh s chng
64/111

theo th t tu bt u t 1. Tip theo, loi b khi th nhng nh c nh


s cng cc cung i ra khi chng, ta thu c th mi cng khng c chu trnh, v
th tc c lp vi th mi ny. Qu trnh s c tip tc cho n khi tt c cc
nh ca th c nh s.
Ch :
1) R rng trong bc khi to ra phi duyt qua tt c cc cung ca th khi tnh bn
bc vo ca cc nh, v vy ta tn c O(m) php ton, trong m l s cung ca
th. Tip theo, mi ln nh s mt nh, thc hin vic loi b nh nh s
cng vi cc cung i ra khi n, chng ta li duyt qua tt c cc cung ny. Suy ra
nh s tt c cc nh ca th chng ta s phi duyt qua tt c cc cung ca th
mt ln na. Vy phc tp ca thut ton l O(m).
2) Thut ton c th p dng kim tra xem th c cha chu trnh hay khng? Thc
vy, nu kt thc thut ton vn cn c nh cha c nh s (num<n) th iu c
ngha l th cha chu trnh.
Do c thut ton nh s trn, nn khi xt th khng c chu trnh ta c th gi thit l
cc nh ca n c nh s sao cho mi cung ch i t nh c ch s nh n nh c
ch s ln hn. Thut ton tm ng i ngn nht trn th khng c chu trnh c
m t trong s sau y.
Procedure Critical_Path;
(* Tm ng i ngn nht t nh ngun n tt c cc nh cn li trn th khng
c chu trnh *)
u vo:
th G=(V,E), trong V={ v[1], v[2], . . . , v[n]} .
i vi mi cung (v[i], v[j]) E, ta c i<j.
th c cho bi danh sch k Ke(v), v V.
u ra:
Khong cch t v[1] n tt c cc nh cn li c ghi trong mng d[v[i]], i= 2, 3, . .
.,n *)
Begin
dv[1]]:=0;
65/111

for j:=2 to n do d[v[j]]:=a[v[1], v[j]];


for j:=2 to n do
for v Ke[v[j]] do d[v]:=min(d[v], d[v[j]]+a[v[j], v]);
End;
phc tp tnh ton ca thut ton l O(m), do mi cung ca th phi xt qua ng
mt ln.
Cc thut ton c m t trn thng c ng dng vo vic xy dng nhng
phng php gii bi ton iu khin vic thc hin nhng d n ln, gi tt l PERT
(Project Evaluation and Review Technique) hay CDM (Critical path Method). Mt v
d n gin cho ng dng ny c m t trong v d di y.
Cng on t[i] Cc cng on phi c hon thnh trc n
1

15

Khng c

30

80

Khng c

45

2, 3

124 4

15

2, 3

15

5, 6

19

V d 2 Vic thi cng mt cng trnh ln c chia thnh n cng on, nh s t 1 n


n. C mt s cng on m vic thc hin n ch c tin hnh sau khi mt s cng
on no hon thnh. i vi mi cong on i bit t[i]] l thi gian cn thit
hon thnh n (i=1, 2,. . .,n). D liu vi n=8 c cho trong bng di y
Gi s thi im bt u tin hnh thi cng cng trnh l 0. Hy tm tin thi cng
cng trnh (ch r mi cng on phi c bt u thc hin vo thi im no) cho
cng trnh c hon thnh xong trong thi im sm nht c th c.
Ta c th xy dng th c hng n nh biu din hn ch v trnh t thc hin cc
cng vic nh sau: Mi nh ca th tng ng vi mt cng vic, nu cng vic i
66/111

phi c thc hin trc cng on j th trn th c cung (i,j), trng s trn cung ny
c gn bng t[i], xem hnh 2 di y.

Hnh 2 th minh ho PERT.


Thm vo th hai nh 0 v n+1 tng ng vi hai s kin c bit: nh 0 tng ng
vi cng on l khi cng, n phi c thc hin trc tt c cc cng on khc, v
nh n+1 tng ng vi cng on ct bng khnh thnh cng trnh, n phi c thc
hin sau cc cng on, vi t[0]=t[n+1]=0 (trn thc t ch cn ni nh 0 vi tt c cc
nh c bn bc bng 0 v ni tt c cc nh c bn bc ra bng 0 vi nh n+1). Gi
th thu c l G. R rng bi ton t ra dn v bi ton tm ng i ngn nht t nh
0 n tt c cc nh cn li trn th G. Do th G r rng l khng cha chu trnh,
nn gii bi ton t ra c th p dng cc thut ton m t trn, ch cn i du tt
c cc trng s trn cc cung thnh du ngc li, hoc n gin hn ch cn i ton t
Min trong thut ton Critcal_Path thnh ton t Max. Kt thc thut ton, chng ta thu
c d[v] l di ng i di nht t nh 0 n nh v. Khi d[v] cho ta thi im
sm nht c th bt u thc hin cng on v, ni ring d[n+1] l thi im sm nht
c th ct bng khnh thnh, tc l thi im sm nht c th hon thnh ton b cng
trnh.
Cy ng i di nht ca bi ton trong v d 2 tm c theo thut ton c ch ra
trong hnh 2.

ng i ngn nht gia tt c cc cp nh


R rng ta c th gii bi ton tm ng i ngn nht gia tt c cc cp nh ca th
bng cch s dng n ln thut ton m t mc trc, trong ta s chn s ln lt l
cc nh ca th. R rng, khi ta thu c thut ton vi phc tp O(n4) (nu s
dng thut ton Ford_Bellman) hoc O(n3) i vi trng hp trng s khng m hoc
th khng c chu trnh. Trong trng hp tng qut, s dng thut ton Ford_Bellman
n ln khng phi l cch lm tt nht. y ta s m t mt thut ton gii bi ton trn
67/111

vi phc tp tnh ton O(n3): thut ton Floyd. Thut ton c m t trong th tc
sau y.
Procedure Floyd;
(* Tm ng i ngn nht gia tt c cc cp nh
u vo: th cho bi ma trn trng s a[i,j], i, j =1, 2,. . ,n.
u ra:
Ma trn ng i ngn nht gia cc cp nh
d[i,j]=, i,j = 1, 2. . .,n,
trong d[i,j] cho di ng i ngn nht t nh i n nh j.
Ma trn ghi nhn ng i
p[i,j], i, j = 1, 2.. . , n,
trong p[i,j] ghi nhn nh i trc nh j trong ng i ngn nht t i n j. *)
begin
(* Khi to *)
for i:=1 to n do
for j:=1 to n do
begin
d[i,j]:=a[i.j];
p[i.j]:=i;
end;
(* Bc lp *)
for k:=1 to n do
for i:=1 to n do

68/111

for j:=1 to n do
if d[i,j]>d[i,k]+d[k,j] then
begin
d[i,j]+d[i,k]+d[k,j];
p[i,j]>p[k,j];
end;
end;
R rng phc tp tnh ton ca thut ton l O(n3).
Kt thc phn ny chng ra trnh by mt cch th hin thut ton Dijkstra trn ngn
ng Pascal:

(* CHNG TRNH TM NG I NGN NHT T NH S N NH T


THEO THUT TON DIJKSTRA *)
uses crt;
const max=50;
var
n, s, t:integer;
chon:char;
Truoc:array[1..max] of byte;
d: array[1..max] of integer;
a: array[1..max,1..max] of integer;
final: array[1..max] of boolean;
procedure Nhapsolieu;

69/111

var
f:text;
fname:string;
i,j:integer;
begin
write(Vao ten file du lieu can doc:);
readln(fname);
assign(f,fname);
reset(f);
readln(f,n);
for i:=1 to n do
for j:=1 to n do read(f, a[i,j];
close(f);
end;
procedure Insolieu;
var
i,j:integer;
begin
writeln(So dinh cua do thi:,n);
writeln(Ma tran khoang cach:);
for i:=1 to n do
begin

70/111

for j:=1 to n do write(a[i,j]:3, );


writeln;
end;
end;
Procedure Inketqua;
Var
i,j:integer;
begin
writeln(Duong di ngan nhat tu ,s, den ,t);
write(t, );
while i<> s do
begin
i:=Truoc[i];
write(i, );
end;
end;
Procedure Dijkstra;
Var
U,v,minp:integer;
Begin
Write(Tim duon di tu s=);Readln(s);Write( den t=);Readln(t);
For v:=1 to n doBegin

71/111

d[v]:=a[s,v];
Truoc[v]:=s;
Filal[v]:=false;
End;
Truoc[s]:=0;D[s]:=0;Final[s]:=true;
While not final[t] do (* Buoc lap *)Begin
{ Tim u la dinh co nhan tam thoi nho nhat }
minp:=maxint;
for v:=1 to n do
if (not final[v]) ans minp>d[v]) then
begin
u:=v; minp:=d[v];
end;
final[u]:=true;
if not final[t] then
for v:=1 to n do
if (not final[v]) and (d[u]+a[u,v]<d[v]) then
begin
d[v]:=d[u]+a[u,v];
Truoc[v]:=u;
end;
End;

72/111

end;
Procedure Menu;
Begin
Clrscr;
Writeln(1. Nhap du lieu tu file);
Writeln(2. Giai bai toan);
Writeln(3. Ket thuc);
Writeln(---------------------);
Write(Hay chon chuc nang:):
End;
(* Chuong trinh chinhs *)
Begin
Repeat
Menu;
Chon:=readkey;
Writeln(chon);
Case chon of
1:Nhapsolieu;
2: begin
Insolieu;
Dijkstra;
Inketqua;

73/111

3:exit;
end;
Until false;
End.

Bi tp
Bi tp 1: Di chuyn trn cc hnh trn
Cho N hnh trn (nh s t 1 n N). Mt ngi mun i t hnh trn ny sang hnh
trn khc cn tun theo qui c:
- Nu khong cch gia 2 im gn nht ca 2 hnh trn khng qu 50 cm th c th
bc sang.
- Nu khong cch ny hn 50cm v khng qu 80cm th c th nhy sang.
- Cc trng hp khc khng th sang c.
Mt ng i t hnh trn ny sang hnh trn khc uc gi l cng "tt" nu s ln phi
nhy l cng t. Hai ng i c s ln nhy bng nhau th ng i no c s hnh trn
i qua t hn th ng i "tt" hn.
Cc hnh trn c cho trong mt file vn bn, trong dng th i m t hnh trn s
hiu i (i = 1, 2,..., N) bao gm 3 s thc: honh tm, tung tm, ln bn knh
(n v o bng mt).
Lp trnh c cc hnh trn t mt file vn bn (tn file vo t bn phm), sau c mi
ln c s hiu hnh trn xut pht S v hnh trn kt thc T t bn phm, chng trnh
s a ra ng i t S n T l "tt nht" theo ngha nu (hoc thng bo l khng
c).
Yu cu ng i c vit di dng mt dy cc s hiu hnh trn ln lt cn c
i qua trong ni r tng s cc bc nhy, tng s cc hnh trn i qua v nhng
bc no cn phi nhy.
Gii hn s hnh trn khng qu 100.
Bi tp 2: Tm hnh trnh tn t xng nht

74/111

Trn mt mng li giao thng, mt ngi mun i t im A n im B bng xe my.


Xe cha c ti a 3 lt xng v chy 100km ht 2,5 lt. Cc trm xng ch c t
cc im dn c, khng t gia ng v ngi ny khng mang theo bt k thng
cha xng no khc. Hy vit chng trnh nhp vo mng li giao thng v xc nh
gip ngi ny tuyn ng i t A n B sao cho t tn xng nht.
Bi tp 3: Di chuyn gia cc o
Trn mt o quc, c N hn o. Gi s tt c cc o u c hnh dng l hnh ch
nht nm ngang. Trn mi hn o c th c sn bay nm trung tm o, c th c
cng nm 4 gc o. Trn mi o u c tuyn ng xe but ni 4 gc o vi nhau
v vi trung tm o. Gia 2 o c th i li bng my bay nu c 2 o u c sn bay
v c th i li bng tu nu c 2 o u c cng.
Gi s rng:
- Cc tuyn ng (b, khng, thy) u l ng thng.
- Chi ph cho mi km v tc ca mi loi phng tin l:
Phng tin Tc (km/h) Chi ph (/km)
My bay

1000

1000

Xe but

70

100

Tu thy

30

50

Hy vit chng trnh xc nh tuyn ng v cch di chuyn gia 2 hn o trong o


quc sao cho:
- Thi gian di chuyn t nht.
- Chi ph di chuyn t nht.
- Thi gian di chuyn t nht nhng vi mt s tin chi ph khng qu ng.
- Chi ph di chuyn t nht nhng vi thi gian di chuyn khng vt qu T gi.
Bi tp 4: Hnh trinh ti y
Cc t i t cc thnh ph khc nhau x1, x2,., xn v cng ti mt a im thng
nht y. Nu tn ti ng i t xi n xj th ta k hiu tij l thi gian cn thit i t
xi n xj, cij l lng t c th i trn con ng trong mt n v thi gian (cij =

75/111

0 nu khng c ng i), cii l lng t c th ngh ng thi thnh ph xi, ai l s


lng xe ban u c xi. Hy t chc hnh trnh sao cho trong khong thi gian t s
t ti y l nhiu nht.
Bi tp 5: Tm ng ngn nht
Gi s X l tp cc khu dn c, U l tp cc ng s ni lin cc khu . Ta gi s mi
ch giao nhau ca cc con ng u thuc X. Vi con ng u, s l(u) l di ca u
tnh bng km. Hy ch ra tuyn ng i t mt khu i sang khu j sao cho tng chiu di
l nh nht.
Bi tp 6: ng i trn li
Cho 1 ma trn A[M, N], mi phn t ca n cha 1 s t nhin. T 1 (i, j) ta c th i
sang k n (c chung 1 cnh) nu gi tr ca k ny nh hn gi tr lu trong (i, j).
Hy tm 1 ng i t (i, j) ti (k, l) trn ma trn sao cho phi i qua t nht. Hy
tm 1 ng i t (i, j) ti (k, l) trn ma trn sao cho tng gi tr cc phi i qua
nh nht.
Bi tp 7 : Tm ng vi chi ph phi tr cho php
C N thnh ph c nh s t 1..N ni vi nhau bng cc on ng mt chiu. Mi
on ng bao gm 2 thng s : di v chi ph i ca on ng.
A sng ti thnh ph 1 v A mun di chuyn n thnh ph N nhanh nht c th.
Bn hy gip A tm ra ng i ngn nht t thnh ph 1 n thnh ph N m A c kh
nng chi tr tin.D liu vo: ROADS.IN
- Dng u tin cha s nguyn K, 0 <= K <= 10000, s tin m A c.
- Dng th 2 cha s nguyn N, 2 <= N <= 100, s thnh ph.
- Dng th 3 cha s nguyn R, 1 <= R <= 10000, tng s on ng.
- Mi dng trong s R dng tip theo m t mt on ng bng cc s S, D, L v T
cch nhau bi t nht mt khong trng.
+ S l thnh ph khi hnh, 1 <= S <= N.
+ D l thnh ph n, 1 <= D <= N.
+ L l di ca on ng, 1 <= L <= 100.

76/111

+ T l l ph, 0 <= T <= 100.


Ch rng gia 2 thnh ph c th c nhiu on ng ni 2 thnh ph ny.
D liu ra: ROADS.OUT
Ch c duy nht 1 dng cha tng di ca ng i ngn nht t 1->N v nh hn K.
ROADS.IN5671 2 2 32 4 3 33 4 2 41 3 4 14 6 2 ROADS.IN0441 4 5 21 2 1 02 3 1
13 5 2 05 4 3 2ROADS.OUT11
13 4 1 0ROADS.OUT-1

77/111

Bi 7: Bi ton lung cc i trong mng


Bi ton lung cc i trong mng
Bi ton lung cc i trong mng l mt trong s bi ton ti u trn th tm c
nhng ng dng rng ri trong thc t cng nh nhng ng dng th v trong l thuyt
t hp. Bi ton c xut vo u nm 1950, v gn lin vi tn tui ca hai nh
ton hc M l Ford v Fulkerson. Trong chng ny chng ra s trnh by thut ton
Ford v Fulkerson gii bi ton t ra v nu mt s ng dng ca bi ton.

Mng. Lung trong mng. Bi ton lung cc i


nh ngha 1 Ta gi mng l th c hng G = (V,E), trong duy nht mt nh s
khng c cung i vo gi l nh pht, duy nht mt nh t khng c cung i ra gi l
im thu v mi cung e=(v,w) E c gn vi mt s khng m c(e) =c(v,w) gi l
kh nng thng qua ca cung e.
thun tin cho vic trnh by ta s qui c rng nu khng c cung (v,w) th kh nng
thng qua c(v,w) c gn bng 0.
nh ngha 2 Gi s cho mng G=(V,E). Ta gi mng f trong mng G=(V,E) ;l nh
x f: ER+ gn cho mi cung e =(v,w) E mt s thc khng m f(e)=f(v,w), gi l
lung trn cung e, tho mn cc iu kin sau:
- Lung trn cung e E khng vt qu kh nng thng qua ca n:

- iu kin cn bng lung trn mi nh ca mng: Tng lung trn cc cung i vo


nh v bng tng lung trn cc cung i ra khi nh v, nu v s, t:

78/111

trong N-(v) tp cc nh ca mng m t c cung n v, N+(v) - tp cc nh


ca mng m t v c cung n n:
Gi tr ca lung f l s
Bi ton lung cc i trong mng:
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 v d ny li gii ca bi ton lung cc i s ch cho ta cc on ng ng xe
nht v chng to thnh "ch hp" tng ng vi dng giao thng xt theo hai nt c
chn. Mt v 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 nhng im ni gia cc ng l cc nt ca th. Kh nng thng qua
ca cc cung tng ng vi tit din ca cc ng. Cn phi tm lung du ln nht c
th bm t tu ch du vo b cha

Lt ct. ng tng lung. nh l ford_fulkerson


nh ngha 3.
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 s X, t X* . Kh nng thng qua ca lt ct (X, X*) l s
c(X,X*) = ?c(v,w)

vX

w X*

Lt ct vi kh nng thng qua nh nht c gi l lt ct hp nht.

79/111

B 1. Gi tr ca lung f trong mng lun nh hn hoc bng kh nng thng qua ca


lt ct (X, X*) bt k trong n: val(f) c(X, X*).
Chng minh. Cng cc iu kin cn bng lung Divf(v)=0 vi mi v X. Khi ta
c

tng ny s gm cc s hng dng f(u,v) vi du cng hoc du tr m trong c t


nht mt trong hai nh u,v phi thuc tp X. Nu c hai nh u,v u trong tp X, th
f(u,v) xut hin vi du cng trong Divf(v) v vi du tr trong Divf(u), v th, chng
trit tiu ln nhau. Do , sau khi gin c cc s hng nh vy v tri, ta thu c
hay l
Mt khc, t iu kin 1 r rng l

80/111

cn

suy ra val(f)c(X, X*). B c chng minh.


H qu 2. Gi tr lung cc i trong mng khng vt qu kh nng thng qua ca lt
ct hp nht trong mng.
Ford v Fulkerson chng minh rng gi tr lung cc i trong mng ng bng kh
nng thng qua ca lt ct hp nht. c th pht biu v chng minh kt qu ny
chng ra s cn thm mt s khi nim.
Gi s f l mt lung trong mng G = (V, E). T mng G =(V, E) ta xy dng th c
trng s trn cung Gf = (V, Ef), vi tp cung Ef v trng s trn cc cung c xc nh
theo qui tc sau :
- Nu e = (v,w) E vi f(v,w) = 0, th (v,w) Ef vi trng s c(v,w);
- Nu e = (v,w) E vi f(v,w) =c(v,w), th (w,v) Ef vi trng s f(v,w);
- Nu e = (v,w) E vi 0 < f(v,w) < c(v,w), th (v,w) Ef vi trng s c(v,w) - f (v,w)
v (w,v) Ef vi trng s f(v,w).
Cc cung ca Gf ng thi cng l cung ca G c gi l cung thun, cc cung cn li
c gi l cung nghch. th Gf c gi l th tng lung.
V d 1: Cc s vit cnh cc cung ca G hnh 9.1 theo th t l kh nng thng qua
v lung trn cung.

81/111

Hnh 9.1 Mng G v lung f. th c trng s G f tng ng.


Gi s P = (s = v0, v1, . . . , vk = t) l mt ng i t s n t trn th tng lung Gf.
Gi l gi tr nh nht ca cc trng s ca cc cung trn ng i P. Xy dng lung
f trn mng theo qui tc sau:
f(u,v) + , nu (u,v) P l cung thun
f(u,v) = f(u,v) - , nu (v,u) P l cung nghch
f(u,v), nu (u,v) P
D dng kim tra c rng f c xy dng nh trn l lung trong mng v val(f) =
val(f) + . Ta s gi th tc bin i lung va nu l tng lung dc theo ng P.
nh ngha 4. Ta gi ng tng lung f l mi ng i t s n t trn th tng
lung G(f).
nh l 3 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 .

82/111

Chng minh.
(i) (ii). Gi s ngc li, tm c ng tng lung P. Khi ta c th tng gi tr
lung bng cch tng lung dc theo ng P. iu mu thun vi tnh cc i ca
lung f.
(ii) (iii). Gi s khng tm c ng tng lung. K hiu X l tp tt c cc nh
c th n c t nh s trong th Gf, v t X*=V\X. Khi (X, X*) l lt ct, v
f(v,w) = 0 vi mi v X*, w X nn
val(f) = ? f(v,w) - ? f(v,w) = ? f(v,w)
X*

w X

vX

v X*

v X

w X*

Vi v X, w X*, do (v,w) Gf, nn f(v,w) = c(v,w). Vy


val(f) = ? f(v,w) = ? c(v,w) = c(X,X*)

vX

vX

w X*

X*
(iii) (i). Theo b 9.1, val(f) c(X,X*) vi mi lung f v vi mi lt ct (X,X*).
V vy, t ng thc val(f) = c(X,X*) suy ra lung f l lung cc i trong mng.

Thut ton tm lung cc i


nh l 3 l c s xy dng thut ton lp sau y tm lung cc i trong mng:
Bt u t lung vi 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 theo th tc m t trong chng minh
nh l 3. S ca thut ton Ford-Fulkerson c th m t trong th tc sau y:
Procedure Max_Flow;
(* Thut ton Ford-Fulkerson *)
Begin
(* Khi to: Bt u t lung vi gi tr 0 *)

83/111

for u V do
for v V do f(u,v) := 0;
stop := false;
while not stop do
if <Tm c ng tng lung P> then <Tng lung dc theo P>
else stop:=true;
End;
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 : [,] hoc []. 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 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;
84/111

VT 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] :=; VT := {s};
Pathfound := true;
While VT <> {} do
BEGIN
u VT ; ( * ly u t VT *)
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] };
VT:=VT{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 ;

85/111

[v] := min {[u] , f[u,v] };


VT:=VT{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 ;

86/111

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 (VT , V\ VT) >
End;
Gi s l kh nng thng qua ca tt c cc khung ca th l cc s nguyn. Khi
sau mi ln tng lung, gi tr lung s tng ln t nht l 1. T suy ra thut ton
Ford_Fulkerson s dng sau khng qu val(f*) ln tng lung v cho ta lung cc i
trong mng. ng thi, r rng f*(u,v) s l s nguyn i vi mi cung (u,v) E. T
ra c cc kt qu sau:
nh l 4 (nh l v lung cc i trong mng v lt ct hp nht). Lung cc i trong
mng bng kh nng thng qua ca lt ct hp nht.
87/111

nh l 5 (nh l v tnh nguyn). Nu tt c cc kh nng thng qua l cc s nguyn


th lung tm c cc i vi lung trn cc cung l cc s nguyn.
Tuy nhin, nu cc kh nng thng qua l cc s rt ln th gi tr ca lung cc i
cng c th l rt ln v khi thut ton m t trn s i hi thc hin rt nhiu
bc tng lung. V d trong hnh 2 s minh ho cho iu ny. Hnh 2(a) m t mng
cn xt vi cc kh nng thng qua trn cc cung. Hnh 2(b) m t lung trn cc cung
(s th hai bn cnh cung) sau khi thc hin tng lung dc theo ng tng lung (s, a,
b, t). Hnh 2(c) m t lung trn cc cung sau khi thc hin tng lung dc theo ng
tng lung (s, b, a, t). R rng, sau 2.106 ln tng lung theo ng (s, a, b, t) v (s, b,
a, t) mt cch lun phin ta thu c lung cc i.

Hnh 2 V d ti t i vi thut ton Ford_Fulkerson.


Hn th na, nu cc kh nng thng qua l cc s v t, ngi ta cn xy dng c
v d cho thut ton khng dng, v t hn nu dy cc gi tr lung xy dng theo
thut ton hi t th n cn khng hi t n gi tr lung cc i. Nh vy, mun thut
ton lm vic hiu qu, vic la chn ng tng lung cn c tin hnh ht sc cn
thn.
Edmonds v Karp ch ra rng nu ng tng lung c chn l ng ngn nht
t s n t trn th Gf. iu c th thc hin, nu trong th tc tm ng tng
Find_Path m t trn, danh sch VT c t chc di dng QUEUE (ngha l ta thc
hin tm ng tng bi th tc tm kim theo chiu rng) th thut ton s kt thc sau
khng qu mn/2 ln s dng ng tng lung. Nu rng, tm kim theo chiu rng
trn th i hi thi gian O(m+n), th thut ton thu c s c phc tp tnh ton
l O(nm2).

88/111

Nh cch t chc tm ng tng kho lo hn, ngi ta xy dng c thut ton


vi phc tp tnh ton tt hn nh: O(n2m) (Dinic, 1970). O(n3) (Karzanov, 1974),
O(n2m2), (Cherkasky, 1977), O(nm log n) (Sleator, - Tarrjan, 1980).
Ta kt thc mc ny bi v d minh ho cho thut ton Ford_Fulkerson sau y. Hnh
3(a) cho mng G cng vi thng qua ca tt c cc cung v lung gi tr 10 trong n.
Hai s vit bn cnh mi cung l kh nng thng qua ca cung (s trong ngoc) v lung
trn cung. ng tng lung c dng (s, v3, v2, v6, v7, t). Ta tnh c (t) = 1, gi tr
lung tng t 10 ln 1. Hnh 3 (b) cho lung thu c sau khi tng lung theo ng
tng tm c.

Hnh 3 Tng lung dc theo ng tng.

Lung trong hnh 3(b) l cc i. Lt ct hp nht


X = { s, v2, v3, v5}, X* = { v4, v6, v7, t} .

89/111

Gi tr lung cc i l 11.

90/111

Bi 8: Mt s ng dng ca th
Mt s ng dng ca th(phn 1)
Mt s ng dng trong th
Bi ton lung cc i c rt nhiu ng dng trong vic gii bi ton t hp. Kh khn
chnh y l phi xy dng mng tng ng sao cho vic tm lung cc i trong n
s tng ng vi vic gii bi ton t hp t ra. Mc ny s gii thiu mt s bi
ton nh vy.

Bi ton m ci vng qu
C m chng trai mt vng qu n. i vi mi chng trai ta bit cc c gi m anh ta
va . Hi khi no th c th t chc cc m ci trong chng trai no cng snh
duyn vi cc c gi m mnh va .
Ta c th xy dng th vi cc nh biu th cc chng trai v cc c gi, cn cc
cung biu th s va ca cc chng trai vi cc c gi. Khi ta thu c mt th
hai pha.
V d. C 4 chng trai { T1, T2, T3,T4}v 5 c gi { G1, G2, G3,G4, G5}. S va cho
trong bng sau
Chng trai Cc c gi m chng trai ng
T1

G1, G4, G5

T2

G2

T3

G2, G3,G4

T4

G2, G4

th tng ng c cho trong hnh 1.

91/111

Hnh 1 Mng tng ng vi bi ton m ci vng qu.


a vo im pht s v im thu t. Ni s vi tt c cc nh biu th cc chng trai, v
ni t vi tt c cc nh biu th cc c gi. Tt c cc cung ca th u c kh nng
thng qua bng 1. Bt u t lung 0, ta tm lung cc i trong mng xy dng c
theo thut ton Ford-Fulkerson. T nh l v tnh nguyn, lung trn cc cung l cc s
hoc 1. R rng l nu lung cc i trong th c gi tr Vmax = m, th bi ton c li
gii, v cc cung vi lung bng 1 s ch ra cch t chc m ci tho mn iu kin
t ra. Ngc li, nu bi ton c li gii th Vmax = m. Bi ton v m ci vng qu
l mt trng hp ring ca bi ton v cp ghp trn th hai pha m gii n c
th xy dng thut ton hiu qu hn.

Bi ton v h thng i din chung


Cho tp m phn t X={ z1, z2, . . . ,zm}. Gi s <A1, A2, . . ., An> v <B1, B2, . . ., Bn>
l hai dy cc tp con ca X. Dy gm n phn t khc nhau ca X: <a1, a2, . . . ,an> c
gi l h thng cc i din chung ca hai dy cho nu nh tm c mt hon v s
ca tp {1, 2,. . .,n} sao cho < a1, a2, . . . ,an> l h thng cc i din phn bit ca hai
dy <A1, A2, . . ., An> v <Bs(1), Bs(2), . . ., Bs(n)>, tc l iu kin sau c tho mn:
ai Ai ? Bs (i), i = 1, 2, . . ,n. Xy dng mng G = (V, E) vi tp nh
V = { s, t} ? { x1, x2, . . . ,xn}? {u1, u2, . . . ,un}? { v1, v2, . . . ,vn}? { y1, y2, . . . ,yn}.

trong nh xi tng ng vi tp Ai, nh yi tng ng vi tp Bi, cc phn t uj, yj


tng ng vi phn t zj. Tp cc cung ca mng G c xc nh nh sau

92/111

Kh nng thng qua ca tt c cc cung c t bng 1. D dng thy rng h thng


i din chung ca hai dy v tn ti khi v ch khi trong mng G=(V,E) tm c lung
vi gi tr n. xt s tn ti ca lung nh vy c th s dng thut ton tm lung
cc i t s n t trong mng G=(V, E).

Bi ton ti u ri rc
Trong mc ny ta s trnh by thut ton c xy dng da trn thut ton tm lung
cc i gii mt bi ton ti u ri rc l m hnh ton hc cho mt s bi ton ti
u t hp.
Xt bi ton ti u ri rc:

vi iu kin

trong aij { 0,1} , i = 1, 2, . . . , m; j=1, 2, . . . n, pi nguyn dng, i = 1, 2, . . .,m.


Bi ton (1)-(3) l m hnh ton hc cho nhiu bi ton ti u t hp thc t. Di y
ta dn ra mt vi v d in hnh.
Bi ton phn nhm sinh hot. C m sinh vin v n nhm sinh hot chuyn . Vi mi
sinh vin i, bit
+ aij =1, nu sinh vin i c nguyn vng tham gia vo nhm j,
+ aij =0, nu ngc li,
+ v pij l s lng nhm chuyn m sinh vin i phi tham d,
i = 1, 2, . . . ,m; j=1, 2,. . . ,n.

93/111

Trong s cc cch phn cc sinh vin vo nhm chuyn m h c nguyn vng tham
gia v m bo mi sinh vin i phi tham gia ng pi nhm, hy tm cch phn phi vi
s ngi trong nhm c nhiu sinh vin tham gia nht l nh nht c th c.
a vo bin s
xij = 1, nu sinh vin i tham gia vo nhm j,
xij = 0, nu ngc li,
i = 1, 2, . . .,m, j=1, 2,. . .,n, khi d thy m hnh ton hc cho bi ton t ra chnh l
bi ton (1)-(3).
Bi ton lp lch cho hi ngh. Mt hi ngh c m tiu ban, mi tiu ban cn sinh hot
trong mt ngy ti phng hp ph hp vi n. C n phng hp dnh cho vic sinh hot
ca cc tiu ban. Bit
aij = 1, nu phng hp i l thch hp vi tiu ban j,
aij=0, nu ngc li,
i = 1, 2, . . .,m, j =1, 2,. . .,n. Hy b tr cc phng hp cho cc tiu ban sao cho hi ngh
kt thc sau t ngy lm vic nht.
a vo bin s
xij = 1, nu b tr tiu ban i lm vic phng j,
xij =0, nu ngc li,
i =1, 2, . . .,m, j =1, 2,. . .,n, khi d thy m hnh ton hc cho bi ton t ra chnh l
bi ton (1)-(3), trong pi=1, i =1, 2, . . .,m.

Mt s bi ton lin quan n vic t chc mng vn chuyn bu chnh.


Cc bi ton ti u trn mng, mt phn ca l thuyt th hu hn l mt l thuyt
ton hc c ng dng rng ri trong kinh t, qun s.
Ngi t nn mng u tin cho l thuyt th l nh ton hc Euler, vi bi ton
by ci cu ni ting vo nm 1736.

94/111

Trong qu trnh khai thc cc kha cnh khc nhau ca bi ton, cc nh ton hc dn
dn t c s l lun cho mt l thuyt ton hc mi ra i, l l thuyt th hu
hn (l thuyt Graph).
n nay l thuyt th hu hn c nghin cu ng dng trong hu ht cc lnh
vc ca hot ng kinh t x hi, l cng c ton hc sc bn trong nghin cu cc h
thng k thut -cng ngh, h thng kinh t -x hi, h thng qun s, h thng bu
chnh vin thng v.v...
Trong nhng nm gn y nh s h tr ca cng ngh thng tin v my tnh in t, l
thuyt graph cng tr thnh cng c hiu qu, nng ng gii quyt nhiu bi ton lin
quan n nghin cu phn tch h thng.
M hnh nh tuyn mng ng th cp 1
Mng ng th cp mt thc cht l mt th c cc nh l cc nt trung tm Bu
chnh v cc Bu in trung tm. Vn chuyn gia cc nt mng c th qua ng trc
tip hoc qua cc nt trung gian. Do vy xut hin bi ton la chn tuyn ng vn
chuyn. Tc l phi ch ra cch vn chuyn t mt nt bt k ti mt nt bt k khc
cn phi qua nt trung gian no. Gia 2 nh s c cung lin kt nu chng c ng
vn chuyn trc tip vi nhau.
gii bi ton xc nh ng vn chuyn bu chnh cn c cc khi nim sau:
1. Lu lng (lung) vn chuyn bu gi: S lng bu gi xut hin ti mt nt mng
bt k cn phi chuyn ti mt nt mng khc. i lng ny tnh trong mt n v thi
gian (gi, ngy, tun, thng), c gi l ti trng. Do c im khng ng u ca ti
trng theo ngy trong tun v thng trong nm nn ta ch xt ti trng trung bnh ngy
lp k hoch vn chuyn (thng k mt thng tiu biu v chia trung bnh cho mt
ngy). Trong m hnh, ti trng gia cc nt mng c biu din di dng ma trn
m phn t (ij) c hiu l ti trng trong mt ngy t nt mng i ti nt mng j.
2. Kh nng lu thot ca nt mng l s lng bu gi c th c khai thc ti mt
nt mng trong mt ngy. Kh nng lu thot ph thuc vo nhiu yu t nh din tch
mt bng, mc c gii ho, t ng ho, t chc sn xut, mc khng ng u
ca ti trng, tn s v thi gian khi hnh ca cc phng tin vn chuyn...
3. Gi tr ca cc cung (chiu di cc cung) l gi thnh vn chuyn mt n v sn
phm theo tng cung lin kt, hoc thi gian vn chuyn gia cc nt mng. n v sn
phm c th l mt ti th, mt container hoc mt bu kin tu vo bi ton c th.
Gi thnh vn chuyn mt n v sn phm c biu din qua chiu di cung hoc thi
gian vn chuyn gia cc nt mng.

95/111

Bi ton lp k hoch vn chuyn bu gi


Trc tin, xt hai nt mng cn trao i bu gi, mt nt mng l ngun ws, mt nt
l ch wt, lung ti trng t ngun ti ch s l: (x1 ,...,xj ,...,xn)
cc cung dj vi xj> 0 to thnh tuyn vn chuyn ti trng xjt ngun wsti ch wt ,
tuyn vn chuyn ny c xc nh l mt tp hp cc nt mng (hay tp hp cc cung)
tham gia vo tuyn vn chuyn ny.
Nh vy, bi ton nh tuyn mng vn chuyn bu gi l cn xc nh lung bu gi
t mt nt mng ti mt nt mng khc cn phi qua cc nt trung gian no ti thiu
ho chi ph vn chuyn ca ton b mng, ng thi vic la chn tuyn ng cn tho
mn cc iu kin rng buc v thi gian ton trnh v kh nng lu thot ca tng nt
mng.
Trong mng vn chuyn bu chnh, trn mng ng thi thc hin nhiu lung trao i,
mi mt lung c nt khi u v nt kt thc. Do vy, cn a vo k hiu tng lung
l vc t xq:
xq =(xq1,..., xqj,...,xqn)
Xqcn tho mn iu kin khng m v iu kin bo ton lung ngha l:
AXq =Vq
Xq 0Trong :Vq: vct tt c cc phn t u bng 0, ngoi tr hai
phn t tng ng vi nt mng khi u v nt kt thc c gi tr l -vqv Vq(vRl lu
lng cn vn chuyn ca mi lung);
A: Ma trn lin kt cung nt cha m dng v n ct trong m l s nt mng v n l s
cung. Ma trn A chnh l m hnh nh tuyn mng vn chuyn ca tng lung cn xc
nh.
Ma trn lin kt cung nt ca graph G = (W,D), k hiu A=[aij] c kch thc m x n vi
cc phn t c xc nh nh sau:

Ngoi ra lung Xqcn phi tho mn iu kin rng buc khng c vt qu kh


nng khai thc ca tng nt mng wi.

96/111

Xt vc t Pi(Pi1, Pi2, ... Pin) trong Pi= l nu djhng ti nh wiv Pi = 0 nu ngc


li. Vc t Pichnh l dng i ca ma trn lin kt cung nt A m trong tt c cc phn
t -l c thay bng 0.
Nh vy, iu kin rng buc v kh nng lu thot ca cc nt mng l:

Trong :
hi: Kh nng Lu thot ca nt mng W
r: S i nt mng trong mng c trao i bu gi
Tiu ch ti u ca bi ton vn chuyn bu gi nh sau:
Gi s C (C1,C2,... Cn) l Vct chi ph vn chuyn trong Cj l cc vn chuyn l
n v sn phm qua cung dj(chiu di cung dj). Khi chi ph vn chuyn s l:
Z = CX1 + ... + CXq+ ... + CXr
= C(X1 + ... + Xq+ ... + Xr) min
Vy m hnh vn chuyn ti u l:

Trong trng hp khng c iu kin hn ch v kh nng lu thot ca cc nt mng,


bi ton nh tuyn mng bu chnh ch n gin l bi ton tm ng i ngn nht

97/111

gia tng i nt mng. Bi ton tm ng ngn nht c gii bng thut ton dn
nhn ca Dijkstra.
M hnh mng ng th trong thnh ph
Mng ng th trong thnh ph l mt th nh ca n l cc bu cc. Hai nh ca
th s c ni kt vi nhau bng cung lin kt nu gia chng c tuyn ng i.
Trong thnh ph gia cc bu cc bao gi cng c cc ng th, nn th c kt
ni theo kiu im ni im. th mng ng th trong thnh ph l mt th c
hng v khong cch i ti j v j ti i c th khng trng nhau (ng mt chiu). Gi
tr ca cung c biu din bng khong cch hoc thi gian vn chuyn gia cc nt
mng hoc chi ph vn chuyn gia cc nt mng.
Ta c chi ph vn chuyn gia cc nt mng l:
cj = krij
rij : Khong cch gia cc nt i v nt j (cn c xc nh theo khong cch thc t v
phi la chn rij l ng ngn nht, tc l phi tho mn iu kin rij rik + rkj do mt
cnh tam gic nh hn tng 2 cnh cn li).
k: Chi ph vn chuyn l km bng t.
Thi gian vn chuyn trn cung ij

Vij : Vn tc vn chuyn t t nt i ti nt j.
t0j : Thi gian trao i ti nt mng j.
Khi t chc mng ng th c th s dng phng thc ng thng, ng vng
hoc hn hp.
Mng ng vng c u im l s dng cc phng tin vn chuyn hiu qu hn. Do
vy trong thnh ph thng s dng ng vng do tnh kinh t ca n.
Bi ton
Bi ton t chc mng ng th trong thnh ph l xc nh hnh trnh ca tng chic
t phi qua cc nt mng no, theo trnh t no m bo chi ph vn chuyn ton
mng l nh nht (hoc tng qung ng hay tng thi gian vn chuyn nh nht) ng
98/111

thi tho mn cc rng buc v thi gian vn chuyn ca tng t v dung lng vn
chuyn ca tng t.
Trong h thng khai thc tp trung tn ti mt Bu in trung tm duy nht. Nu chia
cc nt mng ra lm hai loi ngun v ch, nt mng trung tm s l ngun, cc nt
mng cn li s l ch hoc ngc li.
Trong m hnh vn chuyn bu gi trong thnh ph, cc nh th c c trng bi
s lng bu gi m n cn nhn c t qi hoc ngc li cn gi i ri.

Trong :
0: nt ngun.
i = l N : ch
Trong h thng khai thc phn tn khi th s c chia thnh cc th con, mi
mt th ch c mt nt mng ngun duy nht v vic gii bi ton thc t l gii tng
bi ton con.
Nu mng vn chuyn trong thnh ph ch yu bng t, ta gi s:
M: s t ton mng
Qj - dung lng ca j t, ph thuc vo loi t
T - thi gian vn chuyn ti a cho php trn mt ng th.
T c xc nh da trn cc nh mc (T = 2 gi).
Qj = min (Pj / b, Vj / d)
Trong Pj : ti trng ca t;
Vj : th tch vn chuyn ca t;
b: Khi lng trung bnh ca ti th;
d: th tch trung bnh ca ti th.

99/111

M hnh ton hc
Gi s gi xijk l n cn tm, xijk = 1 nu trong tuyn vng k, nh j s c ti ngay
sau nh i, Xijk = 0 trong trng hp ngc li, khi m hnh ton hc ca bi ton
mng ng th trong thnh ph l:

Bin Xijk cn tho mn cc rng buc sau:


j=0N

(1)

k = 1 M, p = 0 N (2)

k=1M

(3)

k=1M

(4)

Trong t0i : thi gian trao i ti nt mng i.


(l): Do mi nh th ch thuc mt tuyn ng vng;
(2): i vi mi mt nh, s lng cc cung i vo v i ra phi bng nhau ti mt
nh;
(3): Rng buc v dung lng ca t;
(4): Rng buc v thi hn vn chuyn ca tng t.
y l bi ton tng qut v mng vn chuyn th trong thnh ph. Bi ton tm hnh
trnh ca bu t qua n im l trng hp ring khi ch c 1 tuyn ng vng qua n
im (M=1), cn bi ton ny cn xc nh M tuyn ng cho M t v cn tho mn
cc hn ch (rng buc) v ch tiu thi gian v dung lng vn chuyn ca t.

100/111

Mt s ng dng ca th(phn 2)
Mt s ng dng trong th

Bi tp
Bi tp 1 :Cho G=(V,E) th c hng trong khng c cung (s,t). Chng minh rng
s ng i c bn ni hai nh s v t l bng s t nht cc nh ca th cn loi b
trong th khng cn ng i ni s vi t.
Bi tp 2 :Xy dng thut ton tm tp E1 tt c cc cung ca th m vic tng kh
nng thng qua ca bt k cung no trong E u dn n tng gi tr ca lung cc i
trong mng.
Bi tp 3 :Cho hai dy s nguyn dng {pi, i=1,2,,m} v {qj, j=1,2,,n}. Hy xy
dng ma trn A={aij : i=1,2,,m; j=1,2,n} vi cc phn tai j {0,1} c tng cc
phn t trn dng i l pi , tng cc phn t trn ct j l qj.
Bi tp 4 :C m chng trai, n c gi v k b mi, mi b mi p (p=1,2,,k) c mt danh
sch Lp mt s chng trai v c gi trong s cc chng trai v c gi ni trn l khch
hng ca b ta. B mi p c th se duyn cho bt c cp trai gi no l khch hng ca
b ta, nhng khng sc t chc qu dp m ci. Hy xy dng thut ton cn c
vo danh sch Lp, dp, p=1,2,,k; a ra cch t chc nhiu nht cc m ci gia m
chng trai v n c gi vi s gip ca cc b mi.
Bi tp 5 : Chuyn bi
Cu b v N (N<=100) vng trn, nh s t 1 ti N v t mu cc vng trn (c
th c cc vng trn c mu ging nhau), sau ni tng cp cc cung nh hng, mi
cung c mt mu nht nh. Cc mu (ca cung v vng trn) c nh s t 1 n
100.
Cu b chn 3 s nguyn khc nhau L, K v Q nm trong phm vi t 1 ti N, t vo
trong cc vng trn s L v K mi vng mt hn bi, sau bt u di chuyn bi theo
nguyn tc sau:
- Bi ch c chuyn theo cung c mu trng vi mu ca vng trn cha vin bi th 2.
- Bi ch c chuyn theo chiu cung
- Hai vin bi khng c ng thi cng mt vng trn;

101/111

- Khng nht thit phi di chuyn ln lt cc vin bi,


- Qu trnh di chuyn kt thc, khi mt trong hai vin bi ti vng trn Q.
Hy lp trnh xc nh cch di chuyn chm dt qu trnh sau mt s t nht cc bc
chuyn.
D liu vo t file BL.INP:
- Dng u: 4 s nguyn N L K Q
- Dng th 2: N s nguyn C1, C2,,Cn; Ci l mu vng trn i
- Dng th 3: s nguyn M (0 < M < 10000)
- M dng sau: mi dng 3 s nguyn Ai Bi Di; xc nh cung mu Di t vng trn Ai ti
vng trn Bi.
Cc s trn mt dng cch nhau mt du cch.
Kt qu a ra file BL.OUT:
- Dng u: CO hoc KHONG, cho bit qu trnh c kt thc c hay khng,
- Nu dng u l CO th dng 2 cha s nguyn xc nh s bc chuyn ti thiu .
BL.INP

BL.OUT

5 3 4 12 3 2 1 482 1 24 1 54 5 24 5 25 1 33 2 22 3 45 3 13 5 1 CO3
Bi tp 6 : Bng in
Mt li vung c ph trn mt bng in hnh vung. V tr nm trn giao ca 2
ng k ca li s c gi l nt. Tt c c nxn nt trn li.

102/111

C mt s nt cha tip im. Nhim v ca bn l cn ni cc tip im vi cc nt


trn bin ca bng bi cc on dy dn (gi l cc mch). Cc mch ch c chy
dc theo cc ng k ca li (ngha l khng c chy theo ng cho). Hai mch
khng c php c im chung, v vy hai mch bt k khng c php cng chy
qua cng mt on ng k ca li cng nh khng c chy qua cng mt nt ca
li. Cc mch cng khng c chy dc theo cc on k ca li trn bin (mch
phi kt thc khi n gp bin) v cng khng c chy qua nt cha tip im khc.
V d: Bng in v cc tip im c cho trong hnh 2a. Nt t m trong hnh v th
hin v tr cc tip im.
Yu cu: Vit chng trnh cho php ni c mt s nhiu nht cc tip im vi bin.
Cc tip im trn bin tha mn i hi t ra, v th khng nht thit phi thc
hin mch ni chng. Nu nh c nhiu li gii th chi cn a ra mt trong s chng.
D liu vo: file vn bn ELE.INP:
- Dng u tin cha s nguyn n (3 <= n <= 15).
- Mi dng trong s n dng tip theo cha n k t phn cch nhau bi mt du cch.
Mi k t ch l 0 hoc 1. K t 1 th hin tip im, k t 0 th hin nt khng c tip
im trn v tr tng ng ca li. Cc nt c nh s t 1 n n*n theo th t t tri
sang phi, t trn xung di. Ch s ca nt cha tip im s l ch s ca tip im.
Kt qu: ghi ra file ELE.OUT:
- Dng u tin cha k l s tip im ln nht c th ni vi bin bi cc mch.
- Mi dng trong s k dng tip theo m t mt mch ni mt trong s k tip im vi
bin theo qui cch sau: u tin l ch s ca tip im c ni, tip n l dy cc k
t m t hng ca mch ni: E: ng, W: ty, N: bc, S: nam. Gia ch s v dy k t
phi c ng mt du cch, cn gia cc k t trong dy k t khng c c du cch.

103/111

Kt qu phi c a ra theo th t tng dn ca ch s tip im.


V d:
ELE.IN

ELE.OUT

60 0 0 1 1 10 0 0 0 1 00 0 0 1 1 10 0 0 0 0 00 0 1 1
1 10 0 0 1 0 1

11 E16 NWN17 SE27 S28


NWWSS29 S

Bi tp 7:
Mt kha hc gm N mn hc, mn hc i phi hc trong ti ngy. Gia cc mn hc c
mi quan h trc/sau: c mn hc ch hc c sau khi hc mt s mn hc khc.
Mi quan h c th hin bi mt mng hai chiu A[i, j]; i, j = 1, , N trong
A[i, j] = 1/0 v A[i, i] bng 0 vi mi i, A[i, j] = 1 khi v ch khi mn hc i phi c
dy xong trc khi hc mn j (ngy kt thc mn i phi trc ngy bt u mn j). Mn
hc i phi dy trc mn hc j nu c mt dy mn hc i1, i2, , ik sao cho a[it, it+1]
= 1, 1 <= t <= k-1, i1=i v ik=j. Nu c mt nhm cc mn hc tng i mt khng
c quan h trc/sau th trong mi ngy, v nguyn tc, ta c th hc ng thi tt c
nhng mn hc ny (nu khng vi phm quan h vi cc mn hc khc). Mng A[i, j]
c gi l b tc nu c mt dy cc mn hc i1, i2,, ik, k > 1, m mn i1 phi dy
trc mn i2, mn i2 phi dy trc mn i3, , mn ik-1 phi dy trc mn ik, mn ik
phi dy trc mn i1.
Hy vit chng trnh lm cc vic sau:
1. Hy xt xem mng A c b tc hay khng.
2. Nu mng A khng b tc, hy tnh xem kha hc c th kt thc trong thi gian
nhanh nht l bao nhiu ngy.
3. Theo cc hc bo m thi gian hon thnh ngn nht cu 2, hy tnh xem mt hc
sinh trong qu trnh hc phi hc ng thi trong mt ngy nhiu nht bao nhiu mn.
D liu vo c cho bi file text c tn MH.DAT trong s N ghi dng th nht,
trong nhm N dng tip theo, dng th i ghi N s A[i, 1], , A[i, N] dng cui cng
ghi N s nguyn dng ti khng ln hn 30, 1 <= i <= N; N <= 30.
Kt qu ghi ra file TKB.DAT nh sau: dng th nht ghi s 1/0 ty theo mng A b tc
/ khng b tc. Nu dng th nht ghi s 0, ta mi ghi tip kt qu cu 2 v 3.
Kt qu cu 2 ghi tip vo file TKB.DAT N+1 dng nh sau: dng du ghi s T l s
ngy ti thiu c th hon thnh kha hc, tip theo l N dng trong dng th i ghi 2

104/111

s X, Y vi ngha mn hc th i hc t ngy th X n ngy th Y (ch rng Y X


= ti 1).
Kt qu cu 3 ghi tip vo file TKB.DAT nh sau: dng th nht ghi 2 s Z, W vi
ngha trong ngy Z phi hc W mn (W l s nhiu nht cc mn hc phi hc ng thi
trong mt ngy), tip theo l mt dng ghi tn cc mn hc phi hc ng thi trong
ngy Z.
Trong cc cu 2 v 3, c th c nhiu li gii tng ng ch cn a ra mt li gii.
V d 1
MH.DAT

TKB.DAT

4 0100 0010 0001 1000 1111 1

V d 2
MH.DAT

TKB.DAT

7 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 22 1
2 3
4 1
8
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 2 12 13 22 13 14 15 17
8 4 10 2 3
1
2 1
3
Bi tp 8: Gim c mt cng ty quyt nh t chc bui tic tr gp g ton th nhn
vin trong cng ty. Cng ty c t chc theo m hnh phn cp lnh o v mi quan
h th trng nhn vin to thnh cy c gc l gim c. m bo khng kh t
nhin, gim c quyt nh khng th trng v nhn vin di quyn ngi cng mt
bn. P gi l th trng ca Q, nu P l th trng trc tip ca Q hoc tn ti dy P1,
P2, , Pk (1 < k), sao cho P = P1, Q = Pk v Pi l th trng trc tip ca Pi+1 (i = 1, 2,
, k -1). Tt c mi ngi trong cng ty c nh s t 1 n N (N l tng s ngi
trong cng ty vi gim c bt u t 1).
+ Yu cu: tnh s lng bn t nht cn thit c th b tr cho mi ngi ngi theo
yu cu nu trn v cho mt phng n b tr ngi mi bn.
+ D liu vo: file text COMPANY.INP, dng u tin l s nguyn m s gh ti a
cho mt bn, dng th 2 s nguyn N s ngi trong cng ty, dng th ba (v cc
dng sau nu cn) l dy s nguyn, cc s cch nhau t nht mt du cch hoc nhm
k t xung dng, s nguyn th i trong dy cho bit ai l th trng trc tip ca nhn
vin i. Gim c khng c th trng nn s ny bng 0. 2 <= m <= 10, 1 <= N <= 200.

105/111

+ Kt qu: a ra file text COMPANY.OUT, dng u tin l s bn t nht cn thit,


cc dng sau mi dng tng ng vi mt bn v cha dy s nguyn xc nh ai c
b tr ngi sau bn .
V d:
COMPANY.INP
4
13
0 1 9 9 9 2 2 1 1 7 8 8 10
File kt qu COMPANY.OUT c th c ni dung:
5
13 3 4 5
10 6 8
7 9 11 12
2
1
Bi tp 9: Trn bn c NxN, hy tm cch sp xp s lng ti a cc con hu sao cho
khng con no c th n con no.
Bi tp 10: Cho 1 th c hng G, hy tm mt tp hp X0 t nht cc nh ca G sao
cho mi nh i ca G hoc thuc X0 hoc i ni trc tip vi nh j thuc X0.
Bi tp 11: Trn bn c NxN, hy tm cch sp xp s lng ti thiu cc con hu sao
cho mi c trn bn c b chiu bi t nht 1 con.
Bi tp 12: Mt k tc x c 15 c gi. Hng ngy cc c i chi vi nhau theo b 3.
Hi c th a cc c i chi trong ti a bao nhiu ngy khng c 2 c no i chung
trong mt b 3 qu 1 ln.
Hy tng qut ha bi ton.

106/111

Bi tp 13: Mt s hi cng x1, x2, x3 c cc mt hng m cc hi cng y1, y2,


y3cn n. Lng hng c xi l si v yu cu hng ha ca yi l di. Nu c tu i t
xi ti yj th ta k hiu cij l tng lng hng m cc tu c th vn chuyn t xi ti yj.
Vy c th tha mn mi yu cu khng? T chc vn chuyn ra sao? Hy vit chng
trnh gii quyt bi ton trn.
Bi tp 14: Trong mt cuc du lch, m gia nh phn nhau i trn n xe. Cc gia nh
tng ng c r1, r2, , rm ngi v cc xe tng ng c s1, s2, , sn ch ngi. Hy tm
cch phn phi sao cho 2 ngi cng gia nh khng ngi chung mt xe hoc cho bit
khng th lm nh vy.
Bi tp15: Trong mt trng trung hc, mi hc sinh n c m bn nam v mi hc sinh
nam c m bn n. Hy ch ra cch sp xp mi c gi c th ln lt khiu v vi cc
bn trai ca mnh v cc chng trai c th ln lt khiu v vi cc bn gi ca mnh.
Bi 16: Mt nh in phi sn xut n cun sch bng 2 my: mt in, mt ng sch.
Gi ak l thi gian cn cho vic in cun th k v bk l thi gian cn cho vic ng cun
. Tt nhin l sch phi in xong mi ng, do my ng c th phi ch i lu
hay chng. Vy tin hnh theo th t no c th xong vic sm nht.
Bi tp 17: n nh
Trong mt lp c N dy bn v mi dy c M ch ngi. Trong lp c K cn s lp. Mi
mt cn s cm mt bi tp. Cc cn s ny c nhim v chuyn bi tp n cc
hc sinh khc ngi k mnh pha trc, sau, tri v phi. Sau khi cc cn s lm xong
cng vic ca mnh, mi hc sinh thng bo s lng bi tp mnh nhn c.
Da trn thng tin ny hy xc nh v tr ca cc cn s trong lp.
Bi tp 18: C mt my thu v mt my pht tn hiu. Gi s my pht c th pht i 5
loi tn hiu khc nhau a, b, c, d, e. my thu mi tn hiu c th c hiu theo 2 cch
khc nhau: tn hiu a c th hiu p hay q, tn hiu b c th hiu q hay r, ... S cc i cc
tn hiu m ta c th s dng l bao nhiu cho my thu khng xy ra nhm ln gia
cc tn hiu c s dng.

107/111

Ti liu tham kho


TI LIU THAM KHO

Sch gio trnh


[1]. Ton ri rc 2:L thuyt th v ng dng, Khoa CNTT, trng HSPKT Hng
Yn, 2008.

Sch tham kho


[1]. L thuyt t hp v th, Ng c Tn, Vin Ton Hc, NXB i hc Quc Gia
H Ni, 2003.
[2]. Ton ri rc, Nguyn c Ngha, NguynT Thnh, NXB Gio dc, H ni 1997.
[3]. Discrete Mathematics and Its Applications, 6th Edition, Kenneth H. Rosen,
McGraw Hill, 2007.
[4]. Handbook of Discrete and Combinatorial Mathematics, Kenneth H.Rosen (chief of
editor), CRC Press, 2000.

108/111

Tham gia ng gp
Ti liu: L thuyt th
Bin tp bi: Khoa CNTT HSP KT Hng Yn
URL: http://voer.edu.vn/c/cad51e6d
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: M u
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/8607420a
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi 1: Cc khi nim c bn ca L thuyt th.
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/6687aa1e
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Cc khi nim c bn ca L thuyt th. th Euler (phan 1)
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/e8e422d5
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Cc khi nim c bn ca L thuyt th. th Euler (phan 2)
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/d9962958
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi 3: th hamilton
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/cd42b631
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi 4: Cy v cy khung ca th
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/09902196

109/111

Giy php: http://creativecommons.org/licenses/by/3.0/


Module: Bi 5: Bi ton cy khung nh nht
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/92b6ca71
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi ton tm ng i ngn nht
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/257dc760
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi ton tm ng i ngn nht ( Tip )
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/809c6969
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bi 7: Bi ton lung cc i trong mng
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/1ea96ed5
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Mt s ng dng ca th(phn 1)
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/d7d2dc5a
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Mt s ng dng ca th(phn 2)
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/8fd871a0
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Ti liu tham kho
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/84d50ee5
Giy php: http://creativecommons.org/licenses/by/3.0/

110/111

Chng trnh Th vin Hc liu M Vit Nam


Chng trnh Th vin Hc liu M Vit Nam (Vietnam Open Educational Resources
VOER) c h tr bi Qu Vit Nam. Mc tiu ca chng trnh l xy dng kho
Ti nguyn gio dc M min ph ca ngi Vit v cho ngi Vit, c ni dung phong
ph. Cc ni dung u tun th Giy php Creative Commons Attribution (CC-by) 4.0
do cc ni dung u c th c s dng, ti s dng v truy nhp min ph trc
ht trong trong mi trng ging dy, hc tp v nghin cu sau cho ton x hi.
Vi s h tr ca Qu Vit Nam, Th vin Hc liu M Vit Nam (VOER) tr thnh
mt cng thng tin chnh cho cc sinh vin v ging vin trong v ngoi Vit Nam. Mi
ngy c hng chc nghn lt truy cp VOER (www.voer.edu.vn) nghin cu, hc
tp v ti ti liu ging dy v. Vi hng chc nghn module kin thc t hng nghn
tc gi khc nhau ng gp, Th Vin Hc liu M Vit Nam l mt kho tng ti liu
khng l, ni dung phong ph phc v cho tt c cc nhu cu hc tp, nghin cu ca
c gi.
Ngun ti liu m phong ph c trn VOER c c l do s chia s t nguyn ca cc
tc gi trong v ngoi nc. Qu trnh chia s ti liu trn VOER tr ln d dng nh
m 1, 2, 3 nh vo sc mnh ca nn tng Hanoi Spring.
Hanoi Spring l mt nn tng cng ngh tin tin c thit k cho php cng chng d
dng chia s ti liu ging dy, hc tp cng nh ch ng pht trin chng trnh ging
dy da trn khi nim v hc liu m (OCW) v ti nguyn gio dc m (OER) . Khi
nim chia s tri thc c tnh cch mng c khi xng v pht trin tin phong
bi i hc MIT v i hc Rice Hoa K trong vng mt thp k qua. K t , phong
tro Ti nguyn Gio dc M pht trin nhanh chng, c UNESCO h tr v c
chp nhn nh mt chng trnh chnh thc nhiu nc trn th gii.

111/111

You might also like