Professional Documents
Culture Documents
GVHD: on Vn Thng
LI NI U
L thuyt th l mt lnh vc nghin cu c t lu iv c nhiu ng
dng hin i.Nhng t tng c bn ca l thuyt th c xut t nhng
nm u ca th k 18 bi nh ton hc li lc ngi Thy S Leonhard
Euler.Chnh ng l ngi s dng th gii bi ton ni ting v cc ci cu
thng ph Konigsberg.
th c s dng gii quyt 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 ho 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 xem 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 cng mt mng giao thng . Chng ta cn s dng th gii
cc bi ton v lp lch,thi kho biu,v phn b tn s cho cc trm pht thanh v
truyn hnh....
Mc ch ta tm hiu l nhm gii thiu cc khi nim c bn,cc bi ton
ng dng quan trng ca l thuyt th nh bi ton cy khung nh nht , bi
ton tm ng i ngn nht... v nhng thut ton gii quyt chng c
trnh by chi tit cng vi vic phn tch v hng dn ci t chng trnh trn
my tnh.
Cng c v rn luyn k nng lp trnh, nh li cc thut ton m c bit l
thut ton Dijkstra.
Chng 1 : L thuyt v thut ton tm ng i ngn nht.
Chng 2 : Xy dng thut ton.
Chng 3 : Ci t thut ton.
- Trang 1 -
n c s
GVHD: on Vn Thng
NHT
I.1
TPHCM
Bnh nh
Qung Ngi
Ph Yn
Khnh Ha
- Trang 2 -
n c s
GVHD: on Vn Thng
H Ty
ng Nai
H Ni
Hu
HCM
An Giang
Bnh nh
Qung Ngi
Ph Yn
Khnh Ha
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 h
cc cp khng c th t gm hai phn t khc nhau ca V gi l cc cnh .Hai
cnh e1 va e2 c gi l cnh lpnu chng cng tng ng vi mt cp nh.
H Ty
ng Nai
H Ni
Qung Ngi
Hu
TPHCM
An Giang
Bnh nh
Ph Yn
Khnh Ha
Hnh 3. S mng my tnh vi knh thng bo.
- Trang 3 -
n c s
GVHD: on Vn Thng
H Ni
ng Nai
TPHCM
Hu
An Giang
Bnh nh
Ph Yn
Khnh Ha
Hnh 4. Mng my tnh vi cc knh thoi mt chiu
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 hngG=(V,E) bao gm V l tp cc nh,v E l h
cc cp c th t gm hai phn t khc nhau ca V gi l cc cung.Hai cung e1 va
e2 tng ng vi cng mt cp nh c gi l cung lp.
Trong cc phn tip theo ch yu chng ta s lm vic vi n th v hng v
n th c hng.V vy, cho ngn gn , ta s b qua tnh t n mi khi
nhc n chng.
I.1.2. Cc thut ng c bn
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.
- Trang 4 -
n c s
GVHD: on Vn Thng
Hnh 1. th v hng
Th d . Xt th cho trong hnh 1, 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 1. Gi s G=(V,E) l th v hng vi m cnh . Khi
2m= deg(v)
vV
Chng minh. R rng trong 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
Th d 2. th vi n nh v mi nh c bc l 6 c bao nhiu cnh ?
Gii: Theo nh l 1,ta c 2m=6n.T suy ra s cnh ca th l 3n.
- Trang 5 -
n c s
GVHD: on Vn Thng
vO
vU
d
Hnh 2. th c hng G
vV
- Trang 6 -
n c s
GVHD: on Vn Thng
c a
f d
e
Hnh 1. ng i trn th
- Trang 7 -
n c s
GVHD: on Vn Thng
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 cung no b lp li.
Th d 2. Trn th c hng cho trong hnh 1: a,d,c,f,e l ng i n di 4.
Cn d,e,c,a khng l ng i do (e,c) khng phi l cung 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 cung (a,b) c mt trong n hai ln.
Xt mt mng my tnh .Mt cu hi t ra l hai my tnh bt k trong
mng ny c th trao i c thng tin vi nhau hoc trc tip qua knh ni
chng hc 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 chng ng i gia mi cp nh ca
th ?
ng ngha 3. 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 cvi nhau khi
v ch khi th tng ng vi mng ny l th lin thng.
Th d 3. Trong hnh 2: th G l lin thng, th H l khng lin thng
a
b
H1
c
d
e
H2
f
H3
G
- Trang 8 -
n c s
GVHD: on Vn Thng
b
a
e
e
c
d
c
- Trang 9 -
n c s
GVHD: on Vn Thng
a(vi-1, vi)
i=1
- Trang 10 -
n c s
GVHD: on Vn Thng
- Trang 11 -
n c s
GVHD: on Vn Thng
- Trang 12 -
n c s
GVHD: on Vn Thng
6
(5)
(1)
(1)
(2)
(1)
(1)
(4)
(2)
(3)
- Trang 13 -
n c s
GVHD: on Vn Thng
nh 5
,1
, 1
7, 4
7, 4
6, 6 *
nh 6
,1
8, 2
8, 2
5, 3 *
-
t=9
(1)
s=1
(2)
(1)
(5)
(7)
(4)
6
(10)
(5)
2 (2)
3
Hnh . th khng c chu trnh
chng minh nh l ta m t thut ton sau, cho php tm ra cch nh s tha
mn iu kink nh l.
Procedure 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
SVTH : Nguyn Cng Hiu_SBD 0041
- Trang 14 -
n c s
GVHD: on Vn Thng
For v V do Vao[v]:=0;
(* tinh 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 rang 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 v3 i vo v2, th ta chuyn sang xt v3... Do
th l 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 ng s chng theo mt 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 li vi th mi ny. Qu
trnh s c tip tc cho n khi tt c cc inh ca th c nh s.
Ch :
1) R rng trong bc khi to ta 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 cua th . Tip theo mi ln nh s mt
nh, thc hin vicv loi b nh c nh s cng vi cc cung
i ra khi n , chng ta s phi duyt qua tt c cc cung ny. Suy ra
nh s all cc nh c th chng ta s ph duyt tt c cc cung ca
th mt ln na. Vy phc tp thut ton la O(m).
2) Thut ton c th 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.
SVTH : Nguyn Cng Hiu_SBD 0041
- Trang 15 -
n c s
GVHD: on Vn Thng
- Trang 16 -
n c s
GVHD: on Vn Thng
*)
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
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 ca thut ton l O(n3).
Chng II : GII THUT_LU THUT TON DIJKSTRA
II.1 Phn tch.
Dng ma trn k biu din th C= (cij), cij = trng s ca cung (i,j), cij =+
nu khng c cung (i,j). Mt mng d[] ghi cc di ng i ngn nht t s ti
nh i ang c . Xut pht d[s] =0 v d[i] =c si nu i k s, d[j] =+ nu j khng k
s.
II.2 Gii thut tm ng i ngn nht gia mt cp nh.
nh ngha 1.0.
Xt th c trng s cnh G = (V,E,w), vi hm trng s w:E R l
nh x t tp cc cnh E n tp s thc R.
nh ngha 1.1. ng i p t nh u n nh v l dy cc cnh ni
tip nhau bt u t nh u kt thc ti nh v. ng i p t u n v c biu din
nh sau: p=(u=v0,v1,vk=v)
nh ngha 1.2. di ca ng i p = ( v0,v1,...,vk ), k hiu (p),
l tng cc trng s ca cc cnh trn ng i:
SVTH : Nguyn Cng Hiu_SBD 0041
- Trang 17 -
n c s
GVHD: on Vn Thng
k
(p) =
w(v
i =1
i 1
, vi )
B2.
- Trang 18 -
n c s
GVHD: on Vn Thng
Nu dv = th kt thc, khng tn ti ng i t a n b.
B3.
nh du nh v, kv:= true.
B4.
- Trang 19 -
n c s
GVHD: on Vn Thng
Begin
n, C = (cij), a, z
L(a) = 0
L(v) = v a
T(i) = 1 i n
S
zT
S
x T & k v
End
- Trang 20 -
n c s
GVHD: on Vn Thng
4 2 0 0 0
0 1 5 0 0
1 0 8 10 0
5 8 0 2 6
0 10 2 0 3
0 0 6 3 0
Ta c th nh sau
b
d
1
2
10
Bng chy th
V
a
e
b
c
f
d
bcdef
bcfd
cfd
fd
d
a
0
*
4
3*
*
2*
*
10
8*
*
12
12
12*
*
14
15
*
di t af l 15
- Trang 21 -
n c s
GVHD: on Vn Thng
Chng III :
CI T CHNG TRNH
- Trang 22 -
n c s
GVHD: on Vn Thng
{
for(int i=1;i<=n;i++)
{
L[i]=1000;
T[i]=1;
DD[i]=0;
}
L[a]=0;
while(T[z]==1)
{
for(int v=1;v<=n;v++)
if(T[v]==1 && L[v]!=1000) break;
for(int j=v+1;j<=n;j++)
if(T[j]==1 && L[j]<L[v]) v=j;
T[v]=0;
for(int x=1;x<=n;x++)
if(T[x]==1 && C[v][x]!=0)
if(L[x]> (L[v]+C[v][x]))
{
L[x]=L[v]+C[v][x];
DD[x]=v;
}
}
}
void duongdi(int a,int z)
{
cout<<"\n\n\tDo dai duong di ngan nhat : "<<L[z];
cout<<"\n\n\tDuong di: ";
while(DD[z]!=0)
{
printf("%d <-- ",z);
z=DD[z];
}
cout<<a;
}
void main()
{
clrscr();
docfile("d:\\ok\\dacs\\matran.dnc");
//ch ng dn ca ma trn
cout<<"\n\n*** TIM minPath() BANG THUAT TOAN DIJKSTRA. ***";
Dijkstra(a,z);
// thay 1 gi tr c th
duongdi(a,z);
// thay 1 gi tr c th
SVTH : Nguyn Cng Hiu_SBD 0041
- Trang 23 -
n c s
GVHD: on Vn Thng
getch();
}
*****Kt lun******
Tm li, thng qua mn hc ny gip em nm bt tt hn v bi ton tm ng i
ngn nht gia hai nh thng qua thut ton Dijkstra.
Tun theo cc nguyn tc m thy hng dn ra, tuy nhin vn cn nhiu sai st
trong qu trnh hon thnh n c s ny,mong thy gip nhiu hn....
******Ti liu tham kho*****
Ton ri rc_tc gi: Nguyn c Ngha, Nguyn T Thnh_NXB Gio Dc
***Nhn xt, hng pht trin, kin nh gi ca thy hng dn***
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
SVTH : Nguyn Cng Hiu_SBD 0041
- Trang 24 -
n c s
GVHD: on Vn Thng
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
- Trang 25 -