1. Trang chủ
  2. » Cao đẳng - Đại học

Thuật toán tìm đường đi ngắn nhất và xây dựng ứng dụng

57 446 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 436,62 KB

Nội dung

MỤCLỤC LỜICẢMƠN...1 LỜICAMĐOAN...2 MỞĐẦU...5 Chương1CÁCKHÁINIỆMCƠBẢNVỀLÝTHUYẾTĐỒTHỊ...8 1.1.. Yêucầu Donhữngnhiệmvụđãnêutrên,luậnvănphảithựchiệnđượcnhữngyêucầusau: - Phươngphápchuyêngia:

Trang 1

LỜICẢMƠN

EmsẽkhônghoànthànhluậnvănnếukhôngcósựhướngdẫnvàchỉbảocủacôgiáoLưuThịBíchHương.EmxinchânthànhcảmơnsựhướngdẫncủaCô

Xinchânthànhcảmơnsựgiúpđỡ,độngviêncủacácbạnlớpK34-CNTTtrongquátrìnhthựchiệnluậnvănnày

Làsinhv i ê n lầnđầunghiêncứukhoahọcc h ắcchắnđ ề tàicủae m khôngtránhkhỏinhữngthiếusót,vìvậyemrấtmongsựđónggópýkiếnc ủacácthầycôgiáovàcácbạnđểđềtàicủaemđượchoànthiện.Mộtlầnnữaemxinchânthànhcảmơncônglaodạydỗchỉbảocủacácthầycôgiáo.Kínhchúcquýthầyc ôgiáomạnhkhoẻ,tiếptụcđạtđượcnhiềuthắnglợitrongnhgiêncứukhoahọcvàsựnghiệptrồngngười

Emxinchânthànhcảmơn!

HàNội,tháng04năm2012Sin

hviênthựchiện

NgôThịQuyên

Trang 2

NgôThịQuyên

Trang 3

MỤCLỤC

LỜICẢMƠN 1

LỜICAMĐOAN 2

MỞĐẦU 5

Chương1CÁCKHÁINIỆMCƠBẢNVỀLÝTHUYẾTĐỒTHỊ 8

1.1 Địnhnghĩađồthị 8

1.2 Cácthuậtngữcơbản 12

1.3 Địnhnghĩađườngđi,chutrình,đồthịliênthông 15

1.4 Mộtsốkháiniệm 19

1.4.1 Đườngđingắnnhấtxuấtpháttừmộtđỉnh 20

1.4.2. ThuậttoánDijkstra 21

1.4.3 Đườngđitrongđồthịkhôngcóchutrình 24

1.4.4 Đườngđingắnnhấtgiữatấtcảcáccặp đỉnh 28

Chương2THUẬTTOÁNTÌM ĐƯỜNGĐINGẮNNHẤT 29

2.1 ThuậttoántìmkiếmBreathFirstSearch(BFS) 29

2.2 ThuậttoántìmkiếmDepthFirstSearch(DFS) 33

2.3 ThuậttoántìmkiếmDepthwiseSearch 34

2.4 Thuậttoántìmkiếmtốtnhấtđầutiên 35

2.5. Thuậttoántìmđườngđ i cóg i á thànhnhỏnhất T 38

2.6. Tìmkiếmcựctiểusửdụnghàmđánhgiá –ThuậttoánA* 41

2.7. Thuậttoántìmkiếmleođồi 44

2.8. Tìmkiếmvớitrithứcbổsung 47

Chương3XÂYDỰNGỨNGDỤNG 48

3.1. Phátbiểubàitoán 48

Trang 4

3.2. Giảiquyếtbàitoán 49 KẾTLUẬNVÀHƯỚNGPHÁTTRIỂN 54 TÀILIỆUTHAMKHẢO 55

Trang 5

Đồthịđượcsửdụngđểgiảiquyếtcácbàitoántrongnhiềulĩnhvựckhácnhau.Chẳnghạn,đồthịcóthểs ử dụngđ ể x á c địnhcácmạchvòngtrongvấnđềgiảitíchmạchđiện.Chúngtacóthểphânbiệtcáchợpchấthoáhọchữucơkhácnhauvớicùngcôngthứcphântửnhưngkhácnhauvềcấutrúcphânt ửnhờđồthị.Chúngt acóthểxácđịnhxemhaimáytínhtrongmạngcóthểtraođổithôngtinđượcvớinhauhaykhôngnhờmôhìnhđồthịc ủ a mạngmáytính.Đồthịcótrọngsốtrêncáccạnhcóthểsửdụngđểgiảic ác

b ài toánnhư:tìmđườngđingắnnhấtgiữahaithànhphốtrongcùngmộtmạnggiaothông.Chúngtacònsử dụngđ ồthịđểgiảicácbàitoánvề lậplịch,thờikhoábiểu,v à phânb ố tầnsốchocáctrạmphát thanhv à truyềnhình

Chínhvìvậy,emchọnđềtài“Thuậttoántìmđườngđingắnnhấtvàxâyd ựngứngdụng”nhằmtì mhiểul à cáckháiniệmcơbản,c á c bàitoánứngdụngqua

ntrọngcủalýthuyếtđồthị,cácthuậttoántìmđườngđingắnnhất vàxâydựngứngdụngcàiđặtchươngtrìnhtrênmáytính

Trang 6

1.2 Mụcđích

Tìmhiểulàcáckháiniệmcơbản,cácbàitoánứngdụngquantrọngcủalýthuyếtđồthị,cácthuậttoántìmđườngđingắnnhất vàxâydựngứngdụng

2 Nhiệmvụ, yêucầu

2.1 Nhiệmvụ

Phảinêuđượccáckháiniệmcơbảnvềlýthuyếtđồthị,thuậttoántìmđườngđingắnnhấtcho,nhằmmụcđíchmôphỏngquátrìnhhiểnthịđườngđ idựatrênngônngữVisualC#

2.2 Yêucầu

Donhữngnhiệmvụđãnêutrên,luậnvănphảithựchiệnđượcnhữngyêucầusau:

- Phươngphápchuyêngia:Thamkhảoýkiếncủacácchuyêng ia để

cóthểthiếtkếchươngtrìnhphùhợpvớiyêucầuthựctiễn,nộidungx ửlýnhanhđápứngyêucầungàycàngcaocủangườisửdụng

Trang 7

4.2 Phạmvinghiêncứu

Phạmvilu ậnvăncủaemdừnglạiởviệcnghiêncứumộtphầnứngdụngtrongviệctìmđườngđingắnnhất

5 Ýnghĩakhoahọccủađềtài

Nếuđềtài“Thuậttoántìmđườngđingắnnhấtvàxâydựngứngdụng”đ

ượcthựchiệnthìnósẽtrởthànhmộttàiliệuthamkhảochosinhviêntrongviệcnghiêncứucácthuậttoántìmđườngđingắnnhất

6 Cấutrúccủakhoáluận

Ngoàiphầnmởđầuvàkếtluận,khoáluậnbaogồm3chương:Chương1.C

áckháiniệmcơbảncủalýthuyếtđồthị

Chương2.Lýthuyếtvềthuậttoántìmđườngđingắnnhất.Chương3.Xâydựngứngdụng

Trang 8

thểhìnhdungđƣợctạisaolạicầnđếncácloạiđồthịkhácnhau,chúngtasẽnêuvídụsửdụngchúngđểmôtảmộtmạngmáytính.Giảsửtacómộtmạnggồmcácmáytínhvàcáckênhđiệnthoại(gọitắtlàtênthoại)nốicácmáytínhnày.Chúngtacóthểbiểudiễncácvịtríđặtmáytínhbởicácđiểmvàcáckênhthoạinốichúngbởicácđoạnnối,xemhình1

Trang 9

Hình2 Sơđồmạngmáytínhvớiđakênhthoại

Địnhnghĩa2.MộtđađồthịG=(V,E)gồmmộttậpkhácrỗngVmàcácphầntửc

ủanógọilàcácđỉnhvàmộthọEvàcácphầntửcủanógọilàcáccạnh,đólàcáccặpkhôngcóthứtựcủacácđỉnhphân

biệt.Haicạnhđượcgọilàcạnhbộihaysongsongnếuchúngcùngtươngứngvớimộtcặpđỉnh

Trang 10

Hình3 SơđồmạngmáytínhvớikênhthôngbáoRõràng,mỗiđơnđồthịđềulàđađồthị,nhưngkhôngphảiđađồthịnàocũnglàđơnđồthị,vìtrongđađồthịcóhaihaynhiềuhơncạnhnốimộtc ặ p đỉnhnàođó

Trongmạngmáytínhcóthểcónhữngkênhthoạinốimộtmáytínhnàođ ó vớichínhnó(chẳnghạnvớimụcđíchthôngbáo).Mạngn h ư vậyđượcchotronghình3.Nhưvậyđađồthịkhôngthểmôtảđượcmạngnhưvậy,bởivìcónhữngkhuyên(cạnhnốimộtđỉnhvóichínhnó).Trong trườnghợpnàychúngtacầnsửdụngđếnkháiniệmgiảđồthịvôhướng,đượcđịnhnghĩanhưsau:

Địnhnghĩa3.MộtgiảđồthịG=(V,E)gồmmộttậpkhácrỗngVmàcácphầntử

củanógọilàcácđỉnhvàmộthọEvàcácphầntửcủanógọilàcáccạnh,đólàcáccặpkh ôngcóthứtựcủacácđỉnh(khôngnhấtthiếtlàphânbiệt).

VớivV,nếu(v,v)Ethìtanóicómộtkhuyêntạiđỉnhv

Cáckênhthoạitrongmạngmáytínhcóthểchỉchophéptruyềntintheomộtc h i ề u C

hẳnghạntronghình4máychủởHàNộichỉcóthểnhậntintừcác

Trang 11

máyởđịaphương,cómộtsốmáychỉcóthểgửitinđi,còncáckênhthoạichophéptruyềntintheocảhaichiềuđượcthaythếbởihaicạnhcóhướngngượcchiềunhau

Hình4.MạngmáytínhvớicáckênhthoạimộtchiềuTađiđếnđịnhnghĩasau:

Địnhnghĩa4.MộtđồthịcóhướngG

=(V,E)gồmmộttậpkhácrỗngV màcácphầntửcủanógọilàcácđỉnhvàmộttập Emàcácphầntửcủanógọilàcáccung, đólàcáccặpcóthứtựcủacácphầntửthuộcV.

Nếutrongmạngcóthểcóđakênhthoạimộtchiều,tasẽphảisửdụngđếnkháini

ệmđađồthịcóhướng:

Địnhnghĩa5.MộtđađồthịcóhướngG=(V,E)gồmmộttậpkhácrỗngVmàc

ácphầntửcủanógọilàcácđỉnhvàmộthọEmàcácphầntửcủanógọilàcáccung,đól àcáccặpcóthứtựcủacácphầntửthuộcV.

Trongcácphầntiếptheo,chủyếuchúngtasẽlàmviệcvớiđơnđồthịv ô hướngvàđơnđồthịcóhướng.Vìvậy,đểchongắngọn,tasẽbỏ

quatínht ừđơnmỗikhinhắcđếnchúng

Trang 12

1.2 Cácthuậtngữcơbản

Trongmụcnày,chúngtasẽtrìnhbàymộtsốthuậtngữcơbảncủalýthuyếtđồthị.Trướctiên,taxétcácthuậtngữmôtảcácđỉnhvàcạnhcủađồthịvôhướng

Định nghĩa6.Haiđỉnhuvà

vtrongđồthị(vôhướng)G=(V,E)đượcgọilàliềnkềnếu(u,v)E.Nếue=(u,v)thì egọilàcạnhliênthuộcvớicácđỉnhuvàv.Cạnhecũngđược

Trang 13

ỉnhglàđỉnhcôlập,avàdlàcácđỉnhtreo.Bậccủađỉnhcótínhchấtsau:

Địnhlý1.GiảsửG=(V,E)làđồthịvôhướngvớimcạnh.Khiđó2m=∑ deg(v) Chứngm i n h R õ ràngtrongmỗicạnhe = ( u , v ) đượctínhmộtlầntrongd

eg(u)vàmộtlầntrongdeg(v).Từđósuyratổngtấtcảcácbậccủacácđỉnhbằnghailầnsốcạnh

haitrongvếphảiởtrênlàsốchẵn.Từđósuyratổngthứnhất(chínhlàtổngbậccủacácđỉnhbậclẻ)cũngphảilàsốchẵn,dotấtcảcácsốhạngcủanólàsốlẻ,nêntổngnàyp h

ả ig ồ m mộts ố chẵnc á c sốhạng.Vìvậy,s ố đỉnhb ậ c l ẻ phảil à sốchẵn

Taxétcácthuậtngữtươngtựchođồthịcóhướng

Địnhnghĩa8.Nếue=(u,v)làcungcủađồthịcóhướngGthìtanóihaiđỉnhuv

àvlàkềnhau,vànóicung(u,v)nốiđỉnhuvớiđỉnhvhoặccũng

Trang 14

nóicungnàylàđirakhỏiđỉnhuvàđivàođỉnhv.Đỉnhu(v)sẽđượcgọilàđỉnhđầu(cuối )củacung(u,v).

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

Domỗicung(u,v)sẽđượctínhmộtlầntrongbánbậcvàocủađỉnhvvàmộtlầntrongbánbậc racủađỉnhunênta có

Địnhlý2.GiảsửG=(V,E)làđòthịcóhướng, khiđó:

∑deg+(v)=∑deg-(v)=|E|

Rấtnhiềutínhchấtcủađồthịcóhướngkhôngphụthuộcvàohướngtrêncáccungcủanó.Vì

vậy,trongnhiềutrườnghợpsẽthuậntiệnhơnnếutab ỏ quahướngtrêncáccungcủađồthị.Đồthịvôhướngthuđượcbằngcách

Trang 15

Đườngđinóitrêncòncóthểbiểudiễndướidạngcáccạnh:( x 0 ,x 1 )

,(x 1 ,x 2 ), ,( x n-1 ,x n ).

Đỉnhugọilàđỉnhđầu,cònđỉnhvgọilàđỉnhcuốicủađườngđi.Đườngđi

cóđỉnhđầutrùngvớiđỉnhcuối(tứclàu=v)đượcgọilàchutrình.Đườngđi haychutr ìnhđượcgọilàđơnnếunhưkhôngcócạnhnàobịlặplại.

Vídụ4.Trênđồthịvôhướngchotronghình1:a,d,c,f,elàđườngđiđơnđộdà

i4.Cònd,e,c,akhônglàđườngđi,do(e,c)khôngphảilàcạnhcủađồthị.Dãyb,c,f,e,blàchutrìnhđộdài4.Đường đia,b,e,d,a,bcóđộdàilà5khôngphảilàđườngđiđơn,docạnh(a,b)cómặttrongnóhailần

Hình7.ĐườngđitrênđồthịKháiniệmđườngđivàchutrìnhtrênđồthịcóhướngđượcđịnhnghĩahoàntoàntươngtựnhưtrườnghợpđồthịvôhướng,chỉkháclàtachúýđếnhướngtrêncáccung

Trang 16

Địnhnghĩa11.Đườngđi độ dàintừđỉnhuđến đỉnv,trongđónlàsốnguyêndương,trênđồthịcóhướngG=(V,A)làdãyx o ,x 1 , ,

x n-1 ,x n trongđóu=x 0 ,v=x n ,(x i ,x i+1 )A,i=0,1,2, ,n-1

Đườngđinóitrêncòncóthểbiểudiễndướidạngcáccung:( x 0 ,x 1 )

,( x 1 ,x 2 ), ,( x n-1 ,x n ).

Đỉnhugọilàđỉnhđầu,cònđỉnhvgọilàđỉnhcuốicủađườngđi.Đườngđi

cóđỉnhđầutrùngvớiđỉnhcuối(tứclàu=v)đượcgọilàchutrình.Đườngđ i haychutr ìnhđượcgọilàđơnnếunhưkhôngcócungnàobịlặplại.

Vídụ5.Trênđồthịcóhướngchotronghình7:a,d,c,f,elàđườngđiđơnđộd

ài4.Cònd,e,c,akhônglàđườngđido(e,c)khôngphảilàcungcủađồthị.Dãyb,c,f,e,blàchutrìnhđộdài4.Đườngđia,b,e,d,a,bcóđộdàilà5khôngphảilàđườngđiđơn,docung(a,b)cómặttrongnóhailần

Xétmộtmạngmáyt í n h Mộtcâuhỏiđặtr a l à haimáytínhb ấ t k ỳ trongmạngnàycóthểtraođổiđượcthôngtinvớinhauhoặctrựctiếpquakênhnốichúnghoặcthôngquamộthoặcvàimáyt í n h trunggiantrongmạng?

Nếusử dụngđồ thịđể biểudiễnmạngmáytínhn ày (trongđócácđỉnhcủađồthịtươngứngvớicácmáytính,còncáccạnhtươngứngvớicáckênhnối)câuhỏiđóđượcphátbiểutrongngônngữđồthịnhưsau:Tồntạih a y chăngđườngđigiữamọicặpđỉnhcủađồthị?

Địnhnghĩa12.ĐồthịvôhướngG=(V,E)đượcgọilàliênthôngnếuluôntìm

đượcđườngđigiữahaiđỉnhbấtkỳcủanó.

Nhưvậyhaimáytínhbấtkỳtrongmạngcóthểtraođổithôngtinđượcvớinhaukhivàchỉkhiđồ thịtươngứngvớimạngnàylàđồthịliênthông

thông

Vídụ6.Tronghình8:ĐồthịGlàliênthông,đồthịHlàkhôngliên

Trang 17

Hình8.ĐồthịliênthôngGvàđồthịHgồm3thànhphầnliênthôngH1,H2, H3.

Địnhnghĩa13.TagọiđồthịconcủađồthịG=(V,E)làđồthịH=(W,F),tr

ongđóWVvà FE

Trongtrườnghợpđồthịlàkhôngliênthông,nósẽrãrathànhmộtsốđ ồ thịconliênthôngđôimộtkhôngcóđỉnhchung.Nhữngđồthịconliênthôngnhưvậytasẽgọilà

Địnhnghĩa14.Đỉnhvđượcgọilàđỉnhrẽnhánhnếuviệcloạibỏvcùngvới

cáccạnhliênthuộcvớinókhỏiđồthịlàmtăngsốthànhphầnliênthôngcủađồthị.Cạn

heđượcgọilàcầunếuviệcloạibỏnókhỏiđồthịlàmtăngsốthànhphầnliênthôngcủa

đồthị.

Trang 18

Vídụ8.TrongđồthịG ởhình8,đỉnhdvàelàđỉnhrẽnhánh,còncáccạnh(d,g)và(e,f) làcầu.

Đốivớiđồthịcóhướng,cóhaikháiniệmliênthôngphụthuộcvàoviệctacóxétđếnhướngtrêncáccunghaykhông

Địnhnghĩa1 5 ĐồthịcóhướngG=(V,A)đ ư ợ c gọilàliênthôngmạnhnếul

uôntìmđượcđườngđigiữahaiđỉnhbấtkỳcủanó.

Địnhnghĩa16.ĐồthịcóhướngG=(V,A)đượcgọilàliênthôngyếunếuđồthị

vôhướngtươngứngvớinólàđồthịvôhướngliênthông.

Rõràngnếuđồthịlàliênthôngmạnhthìnócũnglàliênthôngyếu,nhưngđiềungượclạilàkhôngluônđúng,nhưchỉratrongvídụdướiđây

Vídụ9.Tronghình9đồthịG làliênthôngmạnh,cònHlàliênthôngyếunhưngkhônglàliênthôngmạnh

Hình9.ĐồthịliênthôngmạnhG,ĐồthịliênthôngyếuH

Mộtcâuhỏiđặtralàkhinàocóthểđịnhhướngcáccạnhcủamộtđồthịvôhướngliênthôngđểcóthểthuđượcmộtđồthịcóhướngliênthôngmạnh?

Tasẽgọiđồthịnhưvậylàđồthịđịnhhướngđược.Địnhlýdướiđâychotatiêuchuẩnnhậnbiếtmộtđồthịcólàđịnhhướngđượchaykhông

Địnhlý3.Đồthịvôhướngliênthônglàđịnhhướngđượckhivàchỉk h i mỗicạ

nhcủanónằmtrênítnhấtmộtchutrình.

Trang 19

Chứngminh.Điềukiệncần.Giảsử(u,v)làmộtcạnhcủađồthị,từsựtồntại

đườngđicóhướngtừuđếnvvàngượclạisuyra(u,v)phảinằmtrênítnhấtmộtchutrình

Điềukiệnđủ.Thủtụcsauđâychophépđịnhhướngcáccạnhcủađồthịđểthuđ

ượcđồthịcóhướngliênthôngmạnh.GiảsửClàmộtchutrìnhnàođótrong

đồthị.Địnhhướngcáccạnhtrênchutrìnhnàytheomộthướngđivòngtheonó.Nếutấtcáccạnhcủađồthịlàđãđượcđịnhhướngthìkếtthúcthủtục Ngượclại,Clàmộtcạnhchưađịnhhướngcóchungđỉnhvớiítnhấtmộttrongsốcác

chutrìnhC chứacạnhe.ĐịnhhướngcáccạnhchưađượcđịnhhướngcủaC’theomộthướngdọctheochutrìnhnày(không định hướnglạicáccạnhđãcóhướng).Thủtụctrênsẽđượclặplạichođếnkhitấtcảcáccạnhcủađồthịđượcđịnhhướng.Khiđótathuđượcđồthịcóhướngliênthôngmạnh

1.4 Mộtsốkháiniệm

TrongphầnnàychúngtachỉxétđồthịcóhướngG=(V,E)và|V|=n,

|E|

=mvớicáccungđượcgántrọngsố,nghĩalà,mỗicung(u,v)Ecủan ó đượcđặttươngứngvớimộtsốthựca(u,v)gọilàtrọngsốcủanó.Chúngtasẽđặta(u,v)=

,nếu(u,v)E.Nếudãyv0,v1, ,vplàmộtđườngđitrên

Bàitoántìmđườngđingắnnhấttrênđồthịdướidạngtổngquátcóthểđượcphátbiểudướidạngtổngquátnhưsau:Tìmđườngđicóđộdàinhỏnhấttừmộtđỉnhxuấtp

Trang 20

hấttừsđếntcònđộdàicủanó,sẽkíhiệulàd(s,

Trang 21

t)vàcòngọilàkhoảngcáchtừsđếnt(khoảngcáchđịnhnghĩanhưvậycót h ể

l à sốâm).Nếunhưkhôngtồntạiđườngđitừsđếntthìtađặtd(s,t)=từđótathấychutrìnhtrongđồthịcóđộdàidương,thìtrongđườngđin g ắ nnhấtkhôngcóđỉnhnà

olặplại(đườngđinhưthếgọilàđườngđicơbản).

Mặtkhác,nếutrongđồthịcóchutrìnhvớiđộdàiâm(gọilàchutrìnhâm)thìkh

oảngcáchgiữa

1sốcặpđỉnhnàođócủađồthịcóthểlàkhôngxácđịnh.Bởivì,bằngcáchđivòngtheochutrìnhnàymộtsốđủlớnlần,tacóthểchỉrađườngđigiữacácđỉnhnàycóđộdàinhỏhơnbấtkìsốthựcchotrướcnào.Trongtruờnghợpnhưvậy,cóthểđặtvấnđềt ì m đườngđicơbảnngắnnhất,tuynhiênbàitoánđặtrasẽtrởnênphứctạphơnrấtnhiều,bởivìnóchứabàitoánxétsựtồntạiđườngđiHamintơntrongđồthịnhưlàmộttrườnghợpriêng

Trướchết,cầnchúýrằngnếubiếtkhoảngcáchtừsđếnt,thìđườngđingắnnhấttừsđếnt,trongtrườnghợptrọngsốkhôngâm,cóthểtìmmộtcách dễdàng.Đểtìmđườngđi,chỉcầnchúýlàđốivớicặpđỉnhs,tVt u ỳ ý(st)luôntìmđượcđỉnhvsaocho:

d(s,t) =d(s,v)+a(v,t)Thựcvậy,đỉnhvnhưvậychínhlàđỉnhđitrướcđỉnhttrongđườngđingắnnhất

t ừ s đếnt Tiếptheo,t a cóthểt ìm đượcu s a o chod ( s, v)=d(s,u)

+a(u,v), Từgiảthiếtvềtínhkhôngâmcủacáctrọngsốdễdàngsuyrarằngdãyt,v,u, khôngchứađỉnhlặplạivàkếtthúcởđỉnhs.Rõràngdãythuđượcxácđịnhđườngđingắnnhấttừsđếnt

1.4.1 Đườngđingắnnhấtxuấtpháttừmộtđỉnh

PhầnlớncácthuậttoántìmkhoảngcáchgiữahaiđỉnhsvàtđượcxâydựngnhờThuậttoántính toán,màtacóthểmôtảđạithểnhưsau:từmatrận

Trang 22

ngắnnhấttừsđếnnó.Cácnhãnnàysẽđượcbiếnđổitheothủtụclặp,màởmỗimộtbướ

cl ặ p cómộtnhãntạmthờitrởthànhnhãncốđịnh.Nếunhãncủamộtđỉnhnàođót r ở thànhc ố địnhthìn ó sẽ chot a khôngphảil à cậntrênmàl à độdàiđườngđingắnnhấttừđỉnhsđếnnó.Thuậttoánđượcmôtảnhưsau:

Trang 24

KíhiệuS1làtậpcácđỉnhcónhãncốđịnh,S2làtậpcácđỉnhcónhãntạmthờiởbướclặpđangxét.Kếtthúcmỗibướclặpnhãntạmthờid(v)chot a độdàicủađườngđingắnnhấttừsđếnvchỉquanhữngđỉnhnằmhoàntoàntrongtậpS1.Giảsửrằng,đườngđingắnnhấttừuđếnu*khôngnằmtrọntrongtậpS1,tứclànóđiquaítnhấtmộtđỉnhcủatậpS2.GọizS2l à đỉnhđầutiênnhưvậytrênđườngđinày.Dotrọngsốtrêncáccunglàkhôngâm,nênđoạnđường từsđến u*cóđộdàiL>0vàd(z)<d(u*)-

L <d(u*)

Bấtđẳngthứcnàylàmâuthuẫnvớicáchxácđịnhđỉnhu*làđỉnhcónhãntạmthờinhỏnhất.Vậyđườngđinngắnnhấttừsđếnu*phảinằmtrọntrongtậpS1,vàvìthếd[u*]làđộdàicủanó.DoởlầnlặpđầutiênS1={s}vàsaumỗilầnlặptachỉthêmvàoS1mộtđỉnhu*nêngiảthiếtlàd(v)chođộdàiđườngđingắnnhấttừsđếnvvớimọiv

 S1làđúngvớibướcl ặ p đầutiên.Theoquinạplàsuyrathuậttoánchotađườngđingắnnhấttừsđếnmọiđỉnhcủađồthị

Vídụ10.Tìmđườngđingắnnhấttừđỉnh1đếncácđỉnhcònlạicủađồthịởhìn

hsau:

Trang 25

đỉnhđượcchọnđểcốđịnhnhãnởbướclặpđangxét,nhãncủanókhôngbiếnđổiởcácbướctiếptheo,vìthếtađánhdấu

Nếuchỉcầntìmđườngđingắnnhấttừsđếnmộtđỉnhtnàođóthìtacóthểkếtthúcthuậttoánkhitrởthànhcónhãncốđịnh

1.4.3 Đườngđitrongđồthịkhôngcóchutrình

Bâygiờtaxéttrườnghợpriêngthứhaicủabàitoántìmđườngđingắnnhất,màđ

ể giảinóc ó t h ể x â y dựngthuậttoánvớiđộphứct ạ p tínhtoánO ( n2),đólàđồthịkhôngcóchutrình(còntrọngsốtrêncáccungcóthểlàc á c sốthựctuỳý).Trướchếttachứng minhđịnhlýsau:

Địnhlý5.GiảsửGlàđồthịkhôngcóchutrình.Khiđócácđỉnhcủan ó cóthểđ

ánhsốsaochomỗicungcủađồthịchỉhướngtừđỉnhcóchỉsốnhỏhơnđếnđỉnhcóchỉs ốlớnhơn,nghĩalàmỗicungcủanócóthểbiểudiễndướidạng(v[i],

v[j]),trongđói<j.

Vídụ11.Đồthịtronghìnhsaucócácđỉnhđượcđánhsốthỏamãnđiềukiệnn

êutrongđịnhlý

Trang 26

Hình10.ĐồthịkhôngcóchutrìnhĐểchứngminhđịnhlýtamôtảthuậttoánsau,chophéptìmracáchđánhsốthỏamãnđiềukiệnđịnhlý.

Trang 27

gc ó chutrình,vàthủtụcđượclặp lạivớiđồthịmớinày Quá trìnhđósẽđượctiếptụcchođếnkhitấtcảcácđinỉhcủađồthịđượcđánhsố.

Tathấy:

1) Rõràngtrongbướckhởitạotaphảiduyệtquatấtcảcáccungcủađồth

tatốncỡO(m)phéptoán,trongđómlàsốcungcủađồthị.Tiếptheomỗilầnđánhsốmộtđỉnh,

Trang 28

đểthựchiệnviệcloạibỏđỉnhđãđượcđánhsốcùngvớicáccungđirakhỏin ó ,chúngtasẽphảiduyệtquatấtcảcáccungnày.Suyrađểđánhsốtấtcảc á c đỉnhcủađồthịchúngtasẽphảduyệttấtcảcáccungcủađồthịmộtlầnnữa.

VậyđộphứctạpthuậttoánlàO(m)

2) Thuậttoáncóthểđểkiểmtraxemđồthịcóchứachutrìnhhaykhông?Thựcvậy,nếukếtthúcthuậttoánvẫncòncóđỉnhchưađượcđánhsố(num<n)thìđiềuđócónghĩalàđồthịchứachutrình

Docóthuậttoánđánhsốtrên,nênkhixétđồthịkhôngcóchutrìnhtac ó thểgiảthiếtlàcácđỉnhcủanóđượcđánhsốsaochomỗicungchỉđitừđỉnhcóchỉsốnhỏđếnđỉnhcóchỉsốlớnhơn.Thuậttoántìm đườngđingắnnhấttrênđồthịkhôngcóchutrìnhđượcmôtảtrongsơđồsauđây:

ProcedureCritical_Path;

(*Tìmđườngđingắnnhấttừđỉnhnguồnđếntấtcảcácđỉnhcònlạitrênđồthịkhôngcóchutrình*)

Ngày đăng: 06/01/2018, 10:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w