LiJi gidi thi?u LOI GIOI THItu nha quan ly giao thong do thi, nganh canh sat giao thong ..,Voi ban d6 giao thong va cac thong tin d~c trung g~n voi no se giup xac dinh m?t dQ giaothong c
Trang 1THANH PHO HO CHi MINH
QUAN L Y BAN DO GIAO THONG
Sinh vien tht;ic hi~n: Trudng Quang Blnh Long
THVVlEN rwmr,ljr; -.I TNo\(\ 0 J 1? -(\
TPHCM - 2000
rf
Trang 2LiJi gidi thi?u
LOI GIOI THItu
nha quan ly giao thong do thi, nganh canh sat giao thong ,Voi ban d6 giao
thong va cac thong tin d~c trung g~n voi no se giup xac dinh m?t dQ giaothong clla cac con duang, cac nut giao thong, nhung kha nang kyt xe, unt~c giao thong co th~ xay ra , cling nhl( xac dinh cac con duang di t6i l(Uvoi chi phf t6i thi~u co th~ d~ di chuy~n de"n noi rnong mu6n Cac co quanc5p ClYUnhu phong chay ch[(a chay , cffn bie"t con dl(ang ng~n va t6i uunh5t d~ de'n dl(<;5cdia di~n chay va ca'p CL(Ukip thai Do v~y ban d6 giaothong ra't huu feh cho nhi~u nganh chLrc nang
Tuy nhien, voi ban d6 giao thong, lU<;5ngthong tin tren ban d6thl(ang ra't nhi~u d~c bi~t la voi cac ban d6 co kfeh thl(oc Ion, do do vi~ctruy c~p va tIm kie'm thll cong thong tin tren no th?t kho khan va khonghi~u qua Ngoai ra voi ban d6 giao thong gi5y, vi~c Sl(U t~p, rna hoa va slrdl:ll1g thong tin tren ban d6 dong vai tro ra't quan tr9ng Dffu tien du li~u
Trang 3dl,lng may tfnh d~ trQ giup cho cac thao tac ban d6 la vi~c he't serc cjn thie't
va hi~u qua, d?c bi~t la d6i vdi nhf(ng bai toan tren ban d6 giao thong rna
ta khong th~ th~(c hi~n dl(QC b~ng tay Trudc nhu cju buc xuc nay, tac giadff rnC;lnh dC;lnchQn d~ tai "Xay d~(ng nhung cong Cl,l d~ quan ly ban d6giao thong" nh~rn cung ca'p cho ngl(ai Sl( d~lng nhung cong ql t6t nhatnhl(ng d~ dung d~ hQ c6 th~ Sl( dl,lng ban d6 rnQt cach c6 hi~u qua
Lu~n van nay dl(QC chia thanh 4 phjn nhl( sau:
+ Phjn rnQt: Trinh bay rnQt so khai ni~rn co ban v~ ly thuye't
d6 thi.
+ Phjn hai: Trinh bay v~ cac bai toan h6 trQ
+ Phjn ba: Trinh bay rnQt s6 van d~ hO';1tdQng tren rn~lng
+Phjn b6n: Gidi thi~u Chl(Ong trinh RNMS
Tac gia xin chan thanh cam on quy truang hQc, quy thjy co va d?cbi~t la thjy Nguy~n Minh Narn dff t~n tinh giup dB tac gia hoan thanh lu~nvan nay
Trang 4CHVdNG 3 THUAT ToAN KRUSKAL TIM CA Y BAa TRUM NGAN
II G.,. 101 t I~llh' A b"aI toan / 36)
Trang 5II Cac d~ng co sa dfT 1i~u hOC;ltdong tren mC;lng 49
CHUaNG 7: CODEBASE - He QUAN TR~ co Sd 00 LI~U 56
Trang 6I
5
T fd A? T-f A
Trang 8CHUdNG 1: MOT SO KHAI NI~M cd BAN
- MQt d6 thi co huang G la mQt bQ: G = (Y,U), trong do
V la t~p huu h~n cac dinh Clla d6 thi,
7
ula t~p cac cung: U = {(x,y) / (x E Y) /\ (y E V)}
- MQt d6 thi YO huang G g6m t~p huu h~n cac dlnh ya t~p he(u h~tncae eanh:
G = (V,E) yai: E = {(u,Y) / (u E Y) /\ (Y E V) /\ ((U,Y) = (Y,u))}
Ne'u e = (u,y), ta noi: u,y k~ nhau
- Cho d6 thi G yai x,y la hai dinh thuQc d6 thi. MQt can duong P di tu
x de'n y yai c1Qdai k la mQt day k c~nh phan bi~t el, ez, " ek sao cho:
II TINH LIEN THONG:
- MQt d6 thi G dl(<;fCg9i la lien thong ne'u m9i e~p di~m (x,y) ella nod~u dl(<;fenoi yai nhau bdi mQt can dl(ong
- Xet mQt 06 thi G mQt thanh phgn lien thong C clla G, yai C ch((a
x (yai x la mQt oinh trong G) g6m mQt t~p nut ya mQt t~p qwh trong Gc1L(<;fec1inh nghla nhl( sau:
Trang 9• M(3t so khdi ni?In cO ban va diy baa tnlln ngdn n/ul't 8
Yoi: X E Yc
YccYEccE
\:jy E Yc, luon ::I mC)t dlTang di Px ~ Y tu X ~ Y sao cho:
- Cay la mC)t d6 thi lien thong va khong co chu trinh
- Rung la mC)t d6 thi khong co chu trinh
+ Xet cay T co Y dinh GQi e = (x,y) la cC;lnhn~m trong cay
+ Ne'u v(tt bo cC;lnhe ra khoi diy, d6 thi ke't qua se la mC)t rungoli<!c tC;lobdi hai cay: mC)t cay chCta dinh X va mC)t cay chCta dinh y
Trang 10Mi)t so'khdi ni~m COban va ciiy baa trum ngdn nh(1't 9
11
+ GQi: T' la diy chua dlnh x
T" la diy chua dlnh y
+ Gia st1:So dlnh trong T' la V' va so c:;lllh trong T' la E'
So dlnh trong T" la V" va so qlllh trong T" la E",+ VI ca T' va T" d~u la cac diy co so dlnh it han so drnh clladiy T nen thea gia thi€t quy nC;lp,ta co:
E' = V' - 1E" = V" - 1+ VI e E T nen so cC;lnh trong T nhi~u han E'+E" mQt cC;lnh,trong khi do sodrnh trong T l~li b~ng V'+V", do do:
Trang 11VI m6i thanh phgn clla Ti la mQt diy, nen ta co:
Vi =Ei + I (thea dinh ly III I)
Vi G la mQt d6 thi khong co chu trlnh => G la mQt rung
GQi C la s6diy bQ ph~n clla rung
Khi do, ta co:
Chang minh:
Ne'u G la mQt d6 thi khong co chu trlnh => G la mQt rung
Trang 12M(}t srI khdi ni?In cO bdn va cay baa truIn ngdn nha't 1 1
Thea h~ qua III.l.a ta c6:
E =V - C voi C la sf) thanh ph~n lien thong cua G
Va E la sf) cC;lnhella G
~ C = V - E = V - (V - 1) = 1Yay G phai la cay
Dinh I)' 111.3:
Ch(tng minh:
Gia Slt e la mQt cC;lnhnao d6 cua chu trInh C
Xet hai dlnh z, w ba't ky: z, W E V(G)
VI G lien thong, t6n tC;limQt can duang P = P(z, w) til z de'n w
- Ne'u P khong chua e:
~ T6n tC;limQt can dltang til z de'n w trong G - e (do G lienthong)
~ G - e lien thong
~ Di~u pha i ch(tng minh
- NgLtQCI~li P ch(ta e, tltc la: e E P n C.
GQi u la dlnh d~u tien tren can dltang P va E C, u E P n C
v la dlnh cuf)i cung tren can dLtang P va E C, v E P n C.Khi d6 P dUQc chi a lam ba dOC;ln:
P(z, u) la can duang til z c1e'nu
P(u, v) la can dltang til u de'n v
Trang 13MQI sf/ khdi I1Nm cO ban va diy baa trum ngdn nh!tt 12
P(v, w) la can clltdng til v de'n w
+ Ne'u u = v, ta xay dVng mQt can (1L(dngmoi P':
P' =P(z, u) +P(u, w)
=> P' la mQt can du'dng til z de'n w trong G - e
=> G - e lien thong
+Ngl(9C l~i, u khac v:
=> Ben trong C co mQt can du'dng P*
P* lien ke't u voi v nhu'ng khong chua c~nh e
Khi do, ta xay d~(ng P' g6m P(z, u) + P* + P(v, w).
P' la mQt can dl(dng til z de'n w trong G - e
Huy b6 c~nh e tiX G => G - e lien thong
Tie'p tl;lc huy b6 cac c~nh trong elm trlnh cho de'n khi d6 thi
con IC;!i la lien thong va khong co chu trlnh
VI mQt d6 thi nhl( v~y co s6 c(;lnh bang v - I (thea dinh I;'III I), tuy nhien d6 thi G eua ta chi co V - 1 c~nh nen qua trlnh huy c(;lnhkhong x'lY ra
Trang 14Mf)t sf I khdi ni?m co ban va eei)' haa trum ngdn nhi{t
Do do G khong co ehu trinh
Thea dinh nghIa ~ G la rnQt diy
13
,.
Gia Sl, V(G) va E(G) la t~p cae dlnh va t~p cae eC;lnhella d6 thi G
GQi H la rnQt d6 thi thoa cae tinh eha't:
1 V(H) c V(G)
2 E(H) c E(G)
3 V eC;lnhe(x, y) E E(H), thl x E V(G), y E V(G)
Khi do, H du<!e gQi la d6 thi can ella G.
Ne'u V(H) = V(G) thl H dl(<!e gQi la 06 thi can baa trum ella G
Ngoai cae tfnh eha't tren, ne'u H la rnQt diy, thl H dl(<!e gQi la diy baatrurn ella G
Dinh 12 IV:
Ch((ng rninh:
Xet d6 thi can rna cae eC;lnhella no la cae eC;lnhella T2 va e
VI T2 la diy baa trurn eua G ~ (T2 + c) la mQt d6 thi can baa trLlm,lien thong va co VeC;lnh
Do do, (T2 +c) phai eh((a ehu trlnh C
Trang 15Xet T2 + e - d, day la mot d6 thi can co V-I eC;lnh.
VI d la mot qmh trang ehu trlnh Cella T2 + e, nen thea dinh ly III.3
ta co: (T2 + e - d) la d6 thi can lien thong voi (V - I) eC;lnh.
Til h~ qua III.3 ::::}(T2 + e - d) la mot cay baa trum ella G
- £)~t ky hi~u R+ la t~p cae sa th~(e> O
- Mot d6 thi G di kem voi mot ham W: E(G) ~ R+ dl(<je gQi la mot
d6 thi trQng sa.
- Ne'u e E E(G), ta noi Wee) la trQng sa ella e
- Ne'u F c E(G), ta noi W(F) la trQng sa ella F va khi do ta co:
W(F) = I W(ei)
e; E F
- Ne'u H la diy baa trum ella d6 thi trQng sa G sao eha trQng sa ella
t~p cae e~lnh ella H la tai thi€u, khi do H du<je gQi la cay baa trLlm trQng satai thi~u (cay baa trum ng~n nha't) ella G
VI KIEM TRA TINH LIEN THONG CUA DO THl:
Trang th~(e te' m(;lng giaa thong la mot mC;lng len thong, do d6 sallqua trinh t~lO, hi~u ehinh ban d6 ta efin e6 cae thaa tae ki€m tra tlnh lien
Trang 16Mi)t srI khdi ni?m C(J ban va cay baa trum ngdn nha't 15
cQnh e = (x, y) vo'i x E V(C j) va y E V(C 2) thi C, va C2phdi cling I11Qtthanh ph6n lien thong".
Ky hieu:
- pCn[i] Hi chi s6 thanh philn lien thong cua dinh i, co nghla la
i thuQc thanh philn lien thong thl( pCn[i]
- nTotalOfCns la t6ng s6 cac thanh philn lien thong trong d6
{ Thlfc hi<%nvi<%cdanh s61(;li cac thanh philnlien thong}
nBigCn = Max(pCnlxj.l,pCnlyj]);
nSmallCn = Min(pCn[xj],pCn[yjl);
for k := 1 to nNum Vertices do
if (pCn[k.l =nBigCn) then
Trang 18PHANHAI:
17
Trang 19Hai toan eluong eli ngdn nh({t va duong eli nhanh nh({t 18
I •
DUdNG DI NHANH NHAT
1.1. Y nghia tht;ic ti~n:
Bai tmin nay thltang dlt<;jCd~t cho cac trung tam phong chay chetachay, trung tam ca'p cuu, VI cgn xU'19 thai gian th~tc(nhanh chong va cohi~u qml) N€u m~lng giao thong la nha, bhng kinh nghi~m thong thltang ta
co th€ tim ra can dltang ngan nha't mong mu6n Tuy nhien n€u mC;lng lLtoiduang xa tuong d6i phuc tC;lP,thi va'n d~ tim dltang di ngan nha't se khongcan don gi~ln
1.2 Gioi thi~u bai toan:
eho mQt don d6 thi co hltong lien thong co trQng sO' G = (Y, E)
TrQng sO' ella m6i cC;lnhC5day dlt<;jCxem nhlt chi~u dai ella c(;lnh a'y
Bai toan d~t ra la di tim can dltang ngan nha't n6i hai dlnh cho truoccua d6 thi.
Xet hai dlnh u, V E Y N€u co cC;lnhe = uv E E n6i u voi V thl ta d~t:
c(u, v) = c(e) = chi~u dai c(;lnh e
N€u khong co c(;lnh nao n6i u voi v thi ta d~ t:
c(u, v) = 00
Luu 9 rhng c(u, u) = 00voi mQi u E Y
D~ t c*(u, v) = chi~u da icon dltang ngan nha't (g6m it nhf{t mQt c(;lnh)n6iuvoiv
Nh~n xet ding:
Trang 20Bai loan du'Clng di ngdn nh(tl va du'Clng eli nhanh n!ul'l
c*(u, u) <00 Q co mQt chu trlnh trong G chua u
c*(u, u) = 00 VUE V Q G khong co chu trinh
19
11.1 ChQn heuristic trong bai tmln tim dtiO'ng di ng~n nha't:
Cho tntoc mQt d8 thi cac con dltong TIm dltong di ngiln nha't tu Aden B, bie't tntoc chi~u dai clla m6i con dl(Ong n6i gi[ta 2 nut co cung lienke't tr~(c tie'p
Ne'u nhin V~lOban d8, ngay l~p t(tc ta co th~ IO~lingay nhltng hL(ong
di xa dich Vi d1;1,nhin vao hinh ve tren, ta tha'y C n~m xa d6i voi hLtong til
A de'n B; ngLtQc I~i, D n~m trong hltong til A de'n B Va vi trf cac condltong di qua D se dUQc xem xet tntoc khi xem xet C Tuy nhien, thay VI
dltQC cho tntoc ban d8 d8 thi duong di, chung ta chI cho mQt bang khoang
cach d(i,j) gi[ta cac nut lien tie'p, luc do noi D uu tien han C la khong r6rang V~y bang khmlng cach khong co dUQc cac thong tin tr~(c quan, trong
Trang 21Hai taein du'iJng di ngdn nhtit va duiJng di nhanh nh(1't 20
Tnioc khi trlnh bay thu~t toan A*, thu~t to<:lntIm dliang di t6i Liu mac6 sli dl}ng thong tin Heuristic, ta qui uoc sU'dl,ll1g mQt so' ky hi~u va thu~tng[i sau day d€ ti~n cho vi~c trlnh bay:
Xet mQt d6 thi G:
- Nut dff dltl/c phtit sinh la nut dff dliQC xet k€ til thai di€mnay
MlJ r{)ng IUlt la phat sinh ta't ca cac con cua mQt nut cha cho tnioc
Nut cha khi a'y dliQc g9i la nut dff dliQc mes rQng
- Cac COil tra dliQc xay d~ng til m6i nut con dff dLiQc phat sinhd€n nut eha ella n6 Cac con tro thuang giup cho d~ dang l~n theo da'u v€ttil mQt nut n cho tnioc d€n nut ban d~ll s hay Wi mQt vai nut t6 tien nao d6
? /
Clla no
Trang 22Hai toan el~(Clngeli ngdn nht{t va eluClng eli nhanh nh(1't 21
- T~p cac nut trong d6 thi co th~ du<;1cchi a thanh 4 t~p can rainhau a bfrt ky mot thai di~rn cho tn(dc nao do trong qua trlnh thljc hi~nthll~t toan A *:
+ Cac nut da du<;1crna rong
+ Cac nut da dl(QC khao sat nhung chl(a rna rong
+ Cac nut da dl(QC phat sinh nhl(ng chl(a khao sat
+ Cac nut chua dUQc phclt sinh
dang cha dUQCrna rong
- Nut rna la nUt thliOC danh sach rna
- Nut dong la nut thliOC danh sach dong
- s: nut bat d~u (nut xufrt phat)
- y : nut dich (nut rnl}c tieu)
-r:t~p tfrt ca cac nut dich
- C(ni,nj): chi phi cua cung vdi ni va nj la 2 nut dl(QC n6i vdinhall trljc tie'p bai mot cung
- n' E SCS(n): n' la can tr\(c tie'p clia n
- Pni_nj: T~p tfrt ca can dl(ang di ttYni de'n nj
- Pn_i: T~p tfrt ca cac can duang di til nut n de'n r.
- Pn_y: la mot can duang bfrt ky di til n de'n y, Pn_y E Pn r
- P*ni_nj: T~p tfrt ca can dl(ang di til ni c1e'n nj ma co gia trj t6ithi~ll (Cac can duang t6i Ull)
- K(ni,nj): chi phi t6i thi~u cua can dl(ang t6i Ull tt( ni de'n nj
Trang 23Hai roan dUClngdi ngdn nhflr va dUClngdi nhanh nhf[r 22
- g*(n): chi phi t6i thi€u trong so' cac chi phi Clla cac can dl10ng
di til nut xua't pha t s de'n nut n
va g*(n) = k(s,n)
- h*(n): chi phi t6i thi€u trong so' CclCchi phi clla cac can dltong
di ttt nut n de'n dieh f
va h*(n) =min ken, y) (\iYE f)
- C*: chi phi clla can dltong t6i lIDtil s de'n f
va C* = h*(s)
- f* : t?P cac nut dieh t6i ltu - nghTa la t?P can Clla CclCnutdieh co th€ tai dltc;5ctil s bdi mQt can dl10ng hay bdi cac can dltong rna cocling gicl phi C*
- MQt can dltong nghi~m (ke't qull) tim dl1c;5cla can dltong E
- Chi phi clla 1 can dltong la t6ng chi phi clla ta't ca cac cungd9C thea can dl10ng do
11.2 Thu~ t tmln A* - thu~ t tmln tim con dliO'ng t6i u'u khi chi phi tai
dich co th~ dliQ'cliac lliQ'ng:
Thu?t toan A* - Day la mQt thu?t toan t6ng quat d€ tim kie'm dltong
di trong mQt d6 thi cho trl1ac co sU'dVng tri thli'c lien quan de'n bai toano
Trang 24- _- - -
-Bai todn elu'ifng eli ngdn nht{t va du'ifng eli nhanh nhf{t 23
Tl( tl(ang clla thu?t toan nay nhl( sau: L~y mQt nut tily y n tren d6 thi,
chi phi f*(n) clla con duang di qua n dl(<;jCcho bai f*(n) = g*(n) + h*(n) vabai toan d~t ra la phai tim dl(ang di to'i uu til nut b:lt dgu de'n nut dich Ne'uf*(n) dl(<;jCbie't chinh xac, cach gicli c6 th~ c6 du<;jc b~ng cach xu~t pha t til
S va Ign theo cac nut sao cho c6 f*(n) to'i thi~u Tuy nhien trong thVc te',
ca h*(n) va g*(n) d~u khong du<;jc bie't chinh xac Do V?y f* dl(<;jCx~p Xlb~ng mQt ham c6 th~ tinh toan f vCJif = g + h trong d6 hen) la l(CJCIlf<;jngclla h*(n) vCJihen) la chi phi lfCJcIl(<;jngtil n tCJiml;)c tieu (dich), g(n) la uCJclu<;jng clla g*(n) vCJig(n) la chi phi uCJc 1L(<;jngto'i thi~u trong so cac chi phiclla cac con dl(ang til nut xu~t phat s va chI di qua mQt sO' nut de dl(<;jCphatsinh nao d6 de'n n k~ til thai di~m nay Gia trj'l(CJc 1L(<;jngfen) Clla chi phIcon dlfang to'i l(U di qua n du<;jccho bai bi~u th((c sau:
fen) = g(n) +hen)Thu~t toan tim kie'm tren d6 thj sa dl;)ng phuong trinh tren nhu mQtham danh gia dl(<;jCg<)i la thu~t toan A*
N6idungthuattoan:
Rude 1:
RUde 2:
RUde 3:
£)~t nut xu~t phat s vao danh sach rna OPEN
Ne'u danh sach md OPEN = r6ngThoat: khong tim du<;jcdl(ang di til s de'n m~lc tieu
Ch<)n trong danh sach rna OPEN phgn tlf n sao cho fen)c~(c ti~u Bua n vao danh sach d6ng CLOSED
Thoat: thanh cong vCJi duang di tim dl(<;jCb~ng cach dotheo cac con tro tt( n de'n s
Trang 25Beli lOan duong di ngdn nha't vel duong di nhanh nha't 24
Ma rQng n, phat sinh cac nLlt can Clla n va gan cac cantro til chung de'n n Voi rn6i nut can n' clla n, th~ichi~n:
CE
OPEN) va (n' khong n[lrn trong danh sach dongCLOSED) thl lioc hiQng hen') va oLta n' vao danhsach rna:
f(n,n') =g(n,n') + hen')g(n,n') = g(n) + c(n,n')
so sanh fen') va f(n,n'):
Ne'u fen') >f(n,n') thlfC hi~n:
Gan can tro til n' de'n n
Gan fen') = f(n,n')
- Buoc 5.c: Ne'u (n' n~rn trong danh sach dongCLOSED), so sanh fen') va f(n,n'):
Ne'u fen') > f(n,n') thlfC hi~n:
Gan can tro til n' de'n n
Trang 26Bai toan du'iJng di ngdn nhi{t va duong di nhanh nhi{t
?
Tn(dc h~t ta c~n chu y d~n mot tinh cha't ra't quan tn;mg cua candu'ang ng~n nha't neu trong dinh 1y sau:
Chang minh: Dinh 1y hi€n nhien dung
Bay gia gia Sl( ta mu6n tim can du'ang ng~n nha't n6i dinh va E V vdicac dinh con l~li Giai thu?t sau day se xay d~(ng mot cay L va cac ham 8:
2 N~Ll mQi dinh ella G d~u thuoc L thl dl(ng
3 N~Ll khong, chQn v ~ L sao cho 8(v) nho nha't
D~t v* = v DL(a them dinh v* va c~nh n(v*)v* vao L
4 Vdi mQi W E V \ L, n~u 8(w) > 8(v*) + c(v*, w)
thl d~t 8(w) = 8(v*) + c(v*, w)
va new) = V*
Trd v~ bu'dc 2
Trang 27I •
Bai wan el~(iJngeli ngdn nha't va eluiJng eli nhanh nhdt
Sod6 kh6i ella giai thuat Dijkstra:
Trang 28xac djnh hiJi ham Jr*: dlnh dL(ng tru6'e I11qtdlnh v tren duang ng6.n nlui't ndy
fa Jr*(v).
Ch((ng minh:
Hi~n nhien giai thu~ t Iuon Iuon dung
Tn(oc he't nh~n xet ding voi mQi dinh W E V va t~li mQi thdi di~mth~(c hi~n giai thu~t ta luon luon co:
c*(vo, w) :S 8(w)
=> c*(vo, w) :S 8*(w)Giii SL( th(( tV chQn cac dlnh d~ t V~lOL Ia Yo, v" , Vn•
Ta ch((ng minh dng 8*(vj) :S 8*(Vj+l), Vi
d yang I~p th(( i (chQn dlnh Vi d~t vao L) thl Vi+l ~ L nen
8*(Vi) = 8i(Vi) :S 8j(Vi+l)(8i la ham 8 a yang I~p th(( i)
d yang I~p th(( i+ 1 ta co:
{U; (v j +l)
- O*(vJ+c(vj,vj+l)8*(Vi+l) = 8i+1(Vi+l)
ne'u OJ(v i-I) :S0 * (Vi) + c( Vj, Vi+l)neu C j (Vi+l) > 0 * (Vi) + c(Vj, Vj+l)
do do 8*(Vi) :S 8*(Vi+')'NhLrthe' ne'u dlnh V dL(QC chQn d~t vao L tn(oc w thl 8*(v) :S 8*(w)
Trang 29Bai toan du'ong eli ngdn nh(tt va daong di nhanh nha't 28
Bay gia gia sU' co Glnh W sao cho c*(vo, w) < 8*(w) G9i YOWl." WpW
la Guang ngan nha't n6i Vo vai w, thl c*(wp, w) = c(wp, w) va co th~ gia Sl(
ding c*(vo, Wi) = 8*(Wi) 'Vi = 1, ", p
Ta co:
8*(wp) :s;8*(wp) + c*(wp, w) =c*(vc), wp) + c*(wp, w)
=c*(v(), w) < 8*(w)
v~y Glnh wp Gu<;jcG~t VaG L truac Ginh w
d thai Gi~m ch9n wp G~t VaG L thl:
c*(v 0,w)pc(vo, w)
28*(w)
1 8~ tlm con Gl(ang ngan nha't n6i Ginh Vo vai mQt Ginh w, ta
ap d\lllg giai thu~t Dijkstra vai Gi~u ki~n dung thay G6i nhl(sau: "Ne'u w E L thl giai thu~t dung"
2 Giai thu~t Dijkstra cling ap dl;}ng Gl(<;jCcho tntOng h<;jp G6thi va huang
111.4.Ap d\lng cac lu~t giao thong:
Bai toan Gl(ang Gi ngan nha't chi c1L(c;:Jcgiai quye't mQt cach tn;>n v~nkhi ap d\lllg cac quy dc lu?t giao thong nhl( sau:
- Quy dc Gl(ang mQt chi~u
Trang 30Bai toan elu'ong eli ngdn nh({t va elu'ong eli nhanh nh[{t
- Quy tilc ca'm re
111.4.1 Quy t~c du'dng mQt chi~u:
29
Trang th~(c te', b,ln a6 giao thong Ia mQt a6 thi co hL(dng va co trQngs6 Do ao ne'u aL(<!c1L(utru a~y au thl va'n a~ Xl( ly aL(ang mQt chi~u sekhong con nua,
Hlnh: Mot 06 thj au'<;ic lULl tru afty aLl (dc c<;tnh
ali<;ic lull tru la AC, AD, BC, CA, DA, DB)
Tuy nhien vdi nh~n xet ding tit ca cac can duang tren th~(c te' da s6a~u la aL(ang hai chi~u va chi co mQt s6 It aL(ang mQt chi~u, ta se co mQt
cach tie'p c~n khac d~ luu trf( df( li~u Vdi cach tie'p c~n nay, c16 thi tren chi
c1L(<!ClL(u cac c~tnh sau: AD, AC, BC, DB, va khi nay va'n c1~ c1L(ang mQtchi~u dln phJi c1L(<!CgiJi quye't
VI giai thu~t Dijkstra lam vi~c d~a tren trQng s6 cua cac qtnh nenham c(u, v) se la h?t nhan cua giai thu~t nay
Trang 31Hai tocin el~(angeli ngdn nhi{t va eluang eli nhanh nhttt
Thuat tmin xu 19 dUdng mot chi~u:
Lfty mQt arc til hai nut u, v
N€u arc co chi~u cung chi~u vcJi hL(cJngdi
30
return dQ dai(arc);
N€u arc co chi~u ngL(QCchi~u vcJi hL(cJng di va dL(dng Ia haichi~u:
return dQ ciai( arc);
N€u khong thoa cac trudng hQp tren:
return 00;
111.4.2 Quy Hie eftm re:
Quy tlc dlm re la mQt quy uk quan trQng nhftt trong lu~t giao thong.Quy tc1c nay co th~ dUQc phat bi~u nhl( sau: "((ng vcJi mQt tuy€n dL(dng chotn(cJc va mQt chi~u cho trucJc, phL((jng ti~n giao thong se bi cft m re vao cacdO~ln dL(dng nao do"
Trang 32BiIi toan eluong eli ngrin nhitt va elu'ong eli nhanh nh{{t 31
Nhln v~lO hlnh tren ta tha'y hU'ong di til Thi Nghe v~lO ChQ Lon trentuye'n dl(ang Nguy~n Thi Minh Khai se bi ca'm re sang dl(ang CO'ng Quynh
va dO'i voi huong di nguQc l'.li se bi cfrm re sang dl(ang Nguy~n Thi~n
* Thuat toan giai quyet:
£)~ giai quye't dl(QC vfrn d~ nay, thu~t to(ln Dijkstra cftn co mQtsO'caitie'n nhl( sau:
- Truoc khi thtfc hi~n thu(t t toc1n Dijkstra, co mQt bie'nPrey Arc d~ It(u l'.li dinh danh ella tuye'n dl(ang da dl(QC xettn(oc do
- Trang qua trlnh xet tIm nut hQp l~ v* CJ bl(OC 3:
+ Ne'u c'.lnh n(v*)v* thuQc danh sach C<:,ll1hbi c1'm cLlac'.lnh Prey Arc, 10?i bi) v* va th~(c hi~n l'.li qua trlnh timkie'm
+ Ne'u khong, d~t v* v~lO L, tlnh l?i gia tri PrevAIT(Prev Arc =n(v*)v*) va sang bl(OC ke'tie'p
111.5 Dijkstra tren cung:
Thu(tt toan Dijkstra dl(QC xet cho de'n thai di~m nay chi hO'.lt dQngtren nut (til nut giao thong nay tIm dl(ang di ng5n nh1't de'n nut giao thongkhac) Tuy nhien d~ chl(Ong trlnh co th~ ap d~ll1g dl(QC vao th~(c te' th1 v1'nd~ tim dl(ang di ng5n nhfrt tren cung cftn phai dL(QCgi~li quye't
Co hai phuong phap tim dl(ang di ng5n nhfrt tren cung nhu sau:
+ Sl'( d~ng nut gia:
Trang 331- - Hai toan duang eli ngdn nht{t va duang di nhanh nh({t 32
Giel Slt c~n tIm dltang di ng5n nha"t gilta hai v~ tri nhltsau:
Start va End va ap d~lng giai thu~t Dijkstra nguyen thuy len hai nut vttat(;lO Phuong phap nay tho(;lt nhln kha don gian (vI v~n dung l(;li gi,li thu~tDijkstra cli) nhung th~tc cha"t l(;li ra"t phltc t~IP VI pheli xU' ly va"n d~ them vaxoa nelt ao tren mQt co sa dltli~u tllOng doi IOn., do d6 chllOng trlnh kh6ngSlt d~lng phlWng phap nay
+Slt d~ng tinh cha"t cua gieli thu~t Dijkstra:
Giel Slt c~n tIm duang di ng5n nha"t tren d6 thi nhlf phfintren
Nhu dil trlnh bay a ph~n tnfoc, giai thu~ t Dijkstra la gi~iithu~t duy~t theo chi~u rQng d€ tIm kie'm dlnh m~lc tieu do d6 ta dVa vaotinh cha"t nay d€ cai thi~n gieli thu~t Dijkstra cho phu h<;5pvoi nhu c~u baitoano
Xet d6 thi G nhu hlnh tren, dlnh xua"t pha t va Glnh m~lctieu lfin Ilf<;5tGlt<;5Cky hi~u la Start va End Ttf vi tri Start rna rQng ra hai
Trang 34Bai roan elu'ong eli ngdn nh[{r va duong di nhanh nhflt 33
hltong tIm Olt<;5Chai nut A va B tlt hai nut tren tie'n hanh hai phep duy~tDijkstra song song og tim ra Olt<;5CmQt nut C ho~c E N6i nut vua tIm Olt<;5Coe'n olnh m~lc tieu se Olt<;5CmQt oltong oi tlt Start oe'n End
Bay gio ta ch((ng minh oltong oi vua tim Olt<;5Cla oltong
oi ngftn nhftt Do dung Dijkstra og duy~t cac olnh con l~i sau khi OU oltaOlt<;5CA va B vao danh sach nen chac chan rhng giai thu~t se dung l~i saukhi tIm Olt<;5Cd1nh C hay E va khi nay dltong di toi C hay E phai 1a oltong oingan nhftt => oltong oi oe'n vi tri End cling 1a oltong oi ngan nhftt (oi~u phaichang minh)
Nhlt OUtrlnh bay (j tren, og tIm c1Ltongoi ngftn nhftt giO'a hai oia oigmbftt ky ta c6 nhi~lI thll~t toano TlIY nhien tac giil chQn thll~t toan Dijkstra oggiai quye't bai toan 10~i nay VI cac vftn sau day:
- Dijkstra la mQt giili thu~t 1'6 rang va d~ higll
- Dung giai thu~t Dijkstra, chung ta se gi,li quye't Olt<;5Cbaitoan oltong oi ngftn nhftt mQt cach trQn vt;n (c6 ap dl;}ng 111~tgiao thong)
- Tuy Dijkstra la mQt giai thu~t duy~t theo chi~u rQng (trangtntong h<;5pt~ nhftt se la thll~t toan vet c~n), nhltng so voi cac the'h~ mayt1nh moi bay gio thl thoi gian giai toan khong con la mQt vftn o~ quantrQng
V DUaNG DI NHANH NHAT:
Trang th~tc te' mQt oltong oi ngan nhftt khong phai 1uc nao cling laGltong oi nhanh nh51 Do 06 og cho phu h<;5pvoi th~tc te' thl chl((jng tr1nhcon h6 tr<;5them bai toan oltong oi nhanh nh51
Trang 35Ba i todn elu'ong {li ngdn nh{{t va elLCongeli nhanh nhdt 34
Th~t kh6 khan d~ xac dinh dltQC mQt tuy€n dltang di nhanh nha't bdi
VI ph~1 thuQc V~lOr3't nhi~u y€u to' khac nhau nhlt l11~t dQ htu thong cua xe
cQ tren tuy€n dltang, tInh tr~lng hi~n t~i ciia tuy€n dL(ang (dL(ang xa'u, t6t), Tuy nhien d~ giai quy€t bai toan nay I11Qtcach gan dung, chltdng trlnhd~ nghi I11QtphLtdng phap tIm duang d~a tren thu~t toan Dijkstra va v~nt6c ciIa cac do~n dltang
* Thu~t tmin tim dtidng di nhanh nha't:
- Di~m I113'Uch6t cua thu~t to<:lnchinh la v~n t6c cua cac do~ndl(ang va cac v~n t6c nay dl(QC tinh nhl( sau: Gia slt rang t~i 1116ithai di~111cach nhau la 1 gia nha VaG bi~n phap th6ng ke, cac do~n dL(ang se c6 111Qtv~n t6c n~lO c16 (v~n t6c se Idn n€u d6 la I11Qtdo~n dl(ang t6t, it k~t xe;ngL(Qc l~i v~n t6c se nh6, )
- Luc nay trong giai thu~t Dijkstra khi can h(Qng gia trc.mgIUQng clla I11Qtc~nh ta can Il(Qng gia theo thai gian di h€t qll1h d6, C~Ith~nhlt sau:
La'y I11Qtarc til hai nut u, v
N€u arc c6 chi~u cung chi~u vdi hl(dng di
return dQ dai(arc)/v~n t6c(arc);
N€u arc c6 chi~u ngl(Qc chi~u vdi hltdng di va chtang la haichi~u:
return dQ dai(arc)/v~n t6c(arc);
N€u khong thoa cac tntang hQp tren:
return 00;
Trang 36Hili tOcln (lu'ong eli ngdn nht{t vii (lu'ong di nhanh nh{{t 35
I
I
Trang qua trinh, giai v~n t6c cua cac dOC;lndlfdng phai dlf<;jc
xac dinh dQng theo thdi gian Vi dl,l: L6c 3hSO ta din tim dlfdng di nhanh
nhat til di€m A de'n di€m C, trang qua trinh tim dlfdng theo thu~t toan giaslf Chltdng trinh tim dlf<;jCdi€m B v{ji thai gian di til A de'n B la 10 phut Khinay d€ tie'p t~ICtim dlf<;jcdlfang di nhanh nhat til B de'n C clllfong trinh c~ nph~li slf d~lI1gv~n t6c (j khoang thai gian til 4hOO - ShOO.
Trang 37Thu(it toan Kruskal tim cay bao t/"Llmngdn nhift
CHUONG 3: THU~ T TOAN KRUSKAL
36
Bai to<:1ntIm diy bao trum ng~n nha't la nhhm xay d~(ng mQt d6 thi
d~ng cay sao cho qua ba't ky hai di'nh luon luon co mQt con dl(Ong n6i haidi'nh nay M~t khac, t6ng chi phi cho cac con dl(Ong phai nh6 nha't
Vi d9, khi thie't ke' mQt m~ng dit%n n6i li~n gifi'a cac nut giao thong,din thie't ke' mQt cach m~c sao cho it t6n chi phi ma mang 1~1i hit%u qua.TlWng t~(, c16i voi vit%cxay d~(ng mQt m~ng dit%n tho~i n6i li~n n di~m dan
cu sao cho gifi'a hai di€m ba't ky co th€ lien l(;lc tr~(c tie'p voi nhau bhngdit%n thO~li nhl(ng ta phai thie't ke' sao cho cach m~c it t6n day nha't Ngoai
ra con co cac bai toan chuyen Chd, v~n t{li ma ta din biet lQ trlnh di d~tie't kit%m nha't
II GIOI THI)tU BAI TOAN:
Bai toan nay co th~ dltQC phat bi~u dltoi d(;lng ngon ng[( ly thuyet d6
thi nhl( sau: "Cha mQt dJ thi trQng s6' G Tim 111Qt cay baa tnim co trqng 5()'
III THUA.T TOAN KRUSKAL:
Thu~t toan lam vit%c d~(a tren y tl(dng mQt cay bao trum co trQng so't6i thi~u se chua cac c(;lnh co trQng so' nh6 VI the d m6i bltoc trong khi xayd~(ng cay se su d9ng cac c~nh co trQng so' nh6 nha't co th~ dl(QC Thu~ t giii isau lam vit%c tren d6 thi G voi gia thie't rhng danh sach cac c~nh ella G dadUQc s~p theo thu t~ tang drtn va m6i l~n b6 sung mQt c(;lnh vao cay phaiki€m tra qll1h d6 co t(;lOchu trlnh voi t~p c~nh truoc d6 hay khong
Trang 38Thuq,r roan Kruskal tim diy bao tntm ngdn nlult
Thuat tmin Kruskal:
37
I
I
sach cac cC;lnhClla G dL(c;ics~p thea thlt t~( tang clla trQng sf)
8~t T := 0; {T chlta cac cC;lnhclla diy baa trum trQng sf) tf)ithi~u }
8~t k:= 0; { k la sf) cC;lnhclla cay baa trum }
SUO'c 3: {8anh sf) thanh phjn lien thong dinh i }
for i := 1 to V dopCn[i] := i;
BU()'e 4: {Duy~t va chQn cac cC;lnh }
Repeat{ Gia sa ej = (xj, yj) }
if (pCn[xj] != pCn[yj]) then {ej khong t~lO chu trlnh vdicay T }
begin
T := T +ej; {B6 sung ej vao cay T }k:= k + 1; { Tang sf) qlnh cay baa trlltn }{ 8anh sf)lC;li thanh phjn lien thong ch((a xj, yj }nBigCn = Max(pCn[xjl,pCn[yj]);
nSmallCn = Max(pCn[xj],pCn[yj]);
for i := to V do
if (pCn[i] = nbigCn) then
pCn[il = nSmallCn;
Trang 39Thu(it toan Kruskal tim diy bao trion ngdn nhat
Trong bLfoc 4, so lfin l~p khong qua Elfin Thao tac ki~m tra (T +ej)
co t~o chu trInh hay khong dL(<;jCth~fc hi~n trong m6i I~n I~p N€u (T + ej)khong t~lOthanh chu trlnh va ej dLf<;jcthem vao T thl ta phai c~p nh~t chI socac thanh phfin lien thong clla T cho phil h<;jpVI vi~c b6 sung ej gay ra haithanh phfin lien thong OL(<;jCnh~p thanh mot Yi~c c~p nh~t nay doi hoi toi
da Y bL(OCso sanh Do do a bL(oc nay th~(c hi~n toi da O(YxE) Ijn so sanh
Y~y so buoc so sanh t6ng cong la O(E Iog2E) +O(YxE)
Dinh 19 III:
Ch((ng minh:
Trang 40Thw;'ittoan Kruskal tim ciiy bao trion ngdn nht{t 39
Phfrn thuan:
Gia Slt thu~t tmin Kruskal tim dlt<;5ccay baa trum trQng s6 t6i thi~ll
Ta chang minh G lien thong
Do dinh nghla cay baa trum, ta co:
Thea thu~t toan Kruskal (j bLtc;c5 co hai tntdng h<;5p:
+ N€u thanh cong (k = V-I):
Khi do T la mQt d6 thi khong co chu trinh va co V - I c(;lnh.Thea h~ qua III.I.b, s6 drnh trong G khi do tho~i:
V-I <VeT) ~ V (T E G)
Do do: VeT) = V
Thea dinh Iy III.2 ta suy ra T la mQt cay, va do dinh nghla caybaa trllm ta co T la diy baa trum clla G
+ N€u khong thanh cong (k 7:- V-I):
Tu thll~t toan Kruskal => T khong ch(ta (V - I) c(;lnh nhltngvJn t(;lOthanh mQt d6 thi can khong co chu trinh, do do T Ia mQt rung