Professional Documents
Culture Documents
Lý thuyết đồ thị PDF
Lý thuyết đồ thị PDF
Lý thuyết đồ thị PDF
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
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
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.
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
4/111
5/111
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
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
9/111
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
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
12/111
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
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.
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.
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
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
Dau Cuoi
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.
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
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
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.
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
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
34/111
35/111
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:
37/111
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.
41/111
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
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)
45/111
46/111
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).
48/111
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
49/111
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
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
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)
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.
55/111
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
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
58/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
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
63/111
15
Khng c
30
80
Khng c
45
2, 3
124 4
15
2, 3
15
5, 6
19
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.
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:
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
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
1000
1000
Xe but
70
100
Tu thy
30
50
75/111
76/111
77/111
78/111
vX
w X*
79/111
80/111
cn
81/111
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*
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.
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
85/111
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
88/111
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
91/111
92/111
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
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.
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
96/111
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:
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:
(1)
k = 1 M, p = 0 N (2)
k=1M
(3)
k=1M
(4)
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
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
103/111
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
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
TKB.DAT
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
106/111
107/111
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
110/111
111/111