Chg 6-DoThi12341234

download Chg 6-DoThi12341234

of 37

description

Đồ thị - Tin học nâng cao

Transcript of Chg 6-DoThi12341234

  • Chng 5: Gii thut trn th5.1. Cu trc lu tr th bng danh sch k5.2. Tm kim trn th5.3. Cy bao trm ngn nht5.4. Sp xp tp

  • 5.1. Lu tr bng danh sch kDanh sch cc nh v1, v2,..., vnDanh sch k ca mi nh Adj(vi) , i=1..n

  • 5.2. Tm kim trn thTm kim u tin chiu suTm kim u tin chiu rngTm ng i ngn nht

    K hiu: V(G)=tp cc nh ca G, E(G)=tp cc cnh ca G. Hm Color(u) ch trng thi cc nh trong qu trnh tm kim. Color(u) nhn mt trong 3 gi tr : WHITE, GRAY, BLACK. Lc u, Color(u)=WHITE ngha l cha c xt, vi nhng nh u bt u xt, Color(u)=GRAY, khi u xt xong Color(u)=BLACK

  • Ni dung bi ton tm kimCho th G=(V,E) v mt nh s. Xut pht t nh s, hy duyt qua tt c cc nh ca th

    K hiu: V(G)=tp cc nh ca G, E(G)=tp cc cnh ca G.Hm Color(u) ch trng thi cc nh trong qu trnh tm kim. Color(u) nhn mt trong 3 gi tr : WHITE, GRAY, BLACK. Lc u, Color(u)=WHITE ngha l cha c xt, vi nhng nh u bt u xt, Color(u)=GRAY, khi u xt xong Color(u)=BLACK

  • 5.2.1. Tm kim u tin chiu su (DFS)Procedure DFS(G) {Khi to: Mi nh u cha c xt }for each u V[G] do color[u]:= WHITE ;for each nh u V[G] do if color[u] = WHITE then DFS-Visit (u) Procedure DFS-Visit (u)color[u] := GRAYfor each v Adj[u] do if color[v] =WHITE then DFS-Visit (v) color[u]:= BLACKTh tc quy:

  • Tm kim u tin chiu su (DFS)Procedure DFS(G,s) For each u in V[G] do color[u]:= WHITE ;color[s]:=GRAY;Push(s,Stack)While Stack # u:= Pop(Stack); if c v Adj(u) and color(v)=WHITE then color(v):=GRAY ; Push(v,Stack); else color(u):=BLACK;end;CH :Hm Push(v,Stack) t phn t v vo nh ngn xp StackHm Pop(Stack) ly phn t ng nh ngn xp ra khi ngn xp Th tc khng quy:

  • V d:DFS(A)

    Stack (Sm)vAdj(v) Trngnh trngnh enAAB,C,D,EB,C,D,E,FA,BBCC,D,E,FA,B,CCE,FD,E,FA,B,C,EED,FEA,B,CCFDA,B,C,FFDA,B,C,F,DDDA,B,C,FFFA,B,CCCA,BBBAAARng

  • V d: DFS(A) (tip)

  • V d: DFS(A) (tip)

  • 5.3.2. Tm kim u tin chiu rng (BFS)Procedure BFS(G,s) for each u V[G] do color[u]:= WHITE;Prev(u)=Null; color[s]:=GRAY;Q:= {s}While Q # do u:= Head(Q); /*ly u l phn t ng u hng i xt*/For each v Adj(u) if color(v)= WHITE then color(v):=GRAY; Prev(v):= u; ENQUEUE(Q,v);/*t v vo cui hng i*/DeQueue(Q,u);/* G u khi hng i */Color(u):= BLACK;

  • V d:BFS(A)

    QueuevAdj(v) Trngnh trngnh enAAB,C,D,EB,C,D,E,FAB,C,D,EBFBC,D,ECFFCD,E,FDDE,FEEFFFRng

  • Q=B,C,D,EV d:BFS(A)Q=C,D,EQ=E,FQ=D,E,FQ=FQ=Rng

  • 5.2.3. Tm ng i ngn nhtINPUT: G= Hm trng s W: E R+nh s VOUTPUT:ng i ( di) ngn nht t nh s ti tt c cc nh trong G

  • Gii thut DIJSKTRAT chc d liu

    Vi mi u V(G), t L(u) l di ng i ngn nht t s n u, Pre(u) l nh ng trc nh u trn ng i ngn nht t s n u.Gi S l tp cc nh u c tnh xong gi tr hm L(u);Gi Q l hng i c u tin gm cc nh cha tnh xong L(u);

  • Gii thut DIJSKTRA- ngn ng t nhin

    1. {Khi to} Vi mi vV(G) t L(v):= +, Pre(u)=Null ; L(s):=0; Q:= {} (rng)

    2. {Lp: Mi bc tnh xong L(u) ca mt nh u} 2.1. Nu mi nh ca G nm trong Q th dng. 2.2. Chn nh u c L(u) nh nht, cha nm trong S b sung vo S Vi mi v Adj(u) {tnh li L(v)} nu L(v)> L(u)+W(u,v) th t li L(v):= L(u)+W(u,v) ; Pre(v):=u; Quay li 2.1

  • Gi m gii thut DIJSKTRAGi m- Khi toFor each v in V(G) do L(v):= +; Pre(v):= Null; Q:=V(G); L(s)= 0; Ch gii: Hm Q l hng i u tin lc u gm tt c cc nh ca G

  • Gii thut DIJSKTRAGi m- Vng lpWhile Q # do u:=ExtrackMin(Q); S:=S U {u} For each v in Adj(u) do if L(v)> L(u)+ W(u,v) then L(v):= L(u)+ W(u,v); Ch :Q l hng i c u tin vi tiu chun Disk(u) nh nht;ExtrackMin(Q) l th tc ly phn t c gi tr hm Disk(u) nh nht khi Q

  • V d: Dng gii thut DIJSKTRA Tm ng i ngn nht t A ti tt c cc nh ca G.Gi tr hm L(u) qua cc bc

    B sung vo SABCDEFG0A03492F03392B033782C0337826G0337826D0337826E0337826

  • M t tng bc

  • 6.3. Tm cy bao trm nh nhtGii thut PrimGii thut Kruskal INPUT: G= lin thng, n nh, m cnhHm trng s : E R+OUTPUT:T= cy bao trm nh nht

  • Gii thut PrimM t bng ngn ng t nhin/*Khi to: mi nh cha xt*/V:={s}, E={} (rng); n=1; While n < n do Begin Chn cnh (u,v) vi u V, v V-V c (u,v) nh nht V:=V {v} ; E:= E {(u,v)} ; n:=n+1; End;Ghi ch: lp trnh cn dng mt Cu trc ng cc tiu v mt hng i c u tin

  • Gi m Gii thut PRIMProcedure PRIM(G,w,r);Q:=V(G)For each u in Q do Key(u):= +;Key(r):=0;Pre(r):=Null;While Q # do u:= Extract(Q); for each v in Adj(u) do if v Q and Key(v) < w(u,v) then Key(v):= w(u,v); Pre(v):=u; Ghi ch: Q l mt cu trc hng i c u tin theo tiu chun gi tr hm Key(u) nh nht;Th tc Extract(Q)ly phn nh c Key(u) nh nht khi Q;

  • V d: Gii thut PRIM

    B sung loi b cnh c xtB sung cnhB sung nhAAB,AC,AD,AFABBBE,BDAFFFC,FGFGGGC,GD,GEACCCDCDDGEE 7 nh

  • Gii thut PRIM (tip)

  • c trng ca gii thut PRIMTrong qu trnh xy dng , T lun l mt cy con ca G. Khi T cha tt c cc nh ca G, T tr thnh cy bao trm ca G

  • Gii thut KRUSKALM t bng ngn ng t nhinV:={}, E={} (rng); m=0; While m < n-1 do Begin Chn cnh (u,v) c (u,v) nh nht sao cho khi thm vo E th T khng c chu trnh E:= E {(u,v)} ; m:=m+1;End;

  • Gi m gii thut KRUSKALProcedure KRUSCALA:= For each u in V(G) do Make-Set(u);Sp xp cc cnh ca E(G) theo trong s khng gim w;For each (u,v) in E(G) if Find-Set(u) Find-Set(v) then A:= A U (u,v); Union(u,v);Ch :A l rng cc cy trong qu trnh xy dngMake_Set(u) l th tc to mt tp ch gm mt phn t u;Hm File-Set(u) tm tp hp c cha phn t uTh tc Union(u,v) thc hin php hp hai tp cha u v v.

  • Gii thut Kruskal- V d

    Cnh xtCc cy trong rngChnAB(3){A},{B},{C},{D},{E}, {F},{G}ABAD(4){A,B},{D},{C},{E},{F}, {G}ADFG(4){A,B,D}, {C},{E},{F},{G}FGBD(5){A,B,D}, {C},{E},{F,G}--CF(6){A,B,D}, {C},{E},{F,G}CFAF(6){A,B,D}, {E},{C,F,G}AFAC(7){A,B,D,C,F,G}, {E}----DG(8){A,B,D,C,F,G}, {E}----EG(8){A,B,D,C,F,G}, {E}EGDC(9){A,B,D,C,F,G,E}--BE(9){A,B,D,C,F,G,E}--

  • Gii thut KRUSKAL: V d Trong qu trnh xy dng T lun khng c chu trnh nn l mt rngBACDEFG36746945988

  • c im ca gii thut KRUSKALTrong qu trnh xy dng T c l cy khng?Trong qu trnh xy dng T lun khng c chu trnh nn l mt rng, c th khng l mt cyKhi no mt cnh (u,v) to thnh mt chu trnh vi cc cnh c trong T ?Khi hai u mt u, v thuc cng mt cy ca T

  • 6.4. Sp xp t pBi ton: Cho mt th c hng, hy xp cc nh trn mt ng thng sao cho cc cnh lun hng t tri sang phiBACFED

  • Gii thut sp xp tpNgn ng t nhin m t thut ton tm sp xp tp ca G=(V,E) nh sau:Nu mi nh ca G u c bc vo >0 th G khng c sp xp tp.Nu v V(G) c bc vo bng 0 (khng c cnh i vo) th n t n u danh sch, xa v v cc cnh xut pht t v khi G c G. Tip tc lm nh trn vi G .

  • Sp xp tp V dA BFBDFCECFEEFF

  • Tm cy bao trm theo chiu su1. Chn nh bt k v0 cho vo cy T2. Xt nh v mi cho vo T v cha xt xong: Nu c nh u k vi v v cha nm trong T th b xung cnh (v,u) v nh u vo T; thay v bng u tip tc xt nh u nh vi v; Nu tt c cc nh k vi v u nm trong T th nh v c xt xong v quay li xt nh ng trc v trong qu trnh tm kimNu nh v0 c xt xong th dng.

  • V d BACDEFG

    XtB xung cnh v nh(v)A(AB), nh B(B)=AB(BD), nh D (D)=BD(DC), nh C (C)=DC(CF), nh F(F)=CFKhng cn,quay li CCKhng cn, quay li DD(CG), nh GG(GE), nh E

  • Tm cy bao trm theo chiu rng

  • Ht chng