Bai Tap Toan Roi Rac Truong Dh Su Pham Ky Thuat Hung Yen

Embed Size (px)

Citation preview

  • TRNG I HC S PHM K THUT HNG YN

    KHOA CNG NGH THNG TIN

    BI TP

    HC PHN TON RI RC 2

    Trnh o to

    H o to

    :

    :

    i hc

    Chnh quy/Lin thng

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 2

    LI NI U

    C th ni ton hc ri rc l mn tin quyt v hiu qu nht ngi hc

    nng cao t duy ton hc trong phn tch, thit k thut ton v rn luyn k nng

    lp trnh vi nhng thut ton phc tp. Khng nhng th n cn l ca ng

    ngi hc c th tip cn vi rt nhiu modul trong khoa hc my tnh (nh

    Chng trnh dch, l thuyt tnh ton, Tr tu nhn to,...). Bi tp cng c

    v nng cao kin thc trong mn hc ny

    V ni dung, bm st vi chng trnh ca nh trng v h thng bi tp

    cng c bin son theo cc chng l thuyt. Vi mi chng s c chia thnh

    4 phn:

    Phn A. Nhc li l thuyt: tm tt cc kin thc c bn, cc v d v cc

    lu hu ch, cc kinh nghim trong khi lp trnh

    Phn B. bi tp: a ra cc loi bi tp khc nhau, vi cc mc khc

    nhau.

    Phn C. Bi tp mu: Hng dn gii mt s bi tiu biu trong phn B, c

    phn tch thut ton v ci t chng trnh.

    Phn D. Bi tp t gii: Ngi hc thc hin vic gii cc bi tp ny

    Mong rng ti liu ny p ng c phn no nhu cu ca hc sinh, sinh vin. y

    l bn u tin chc chn cn rt nhiu sai st. Nhm tc gi mong nhn c s

    ng gp ca cc thy c gio, cc bn sinh vin v ca tt c nhng ai quan tm ti

    lnh vc ny.

    Hng Yn, thng 7 nm 2010

    B mn Cng ngh phn mm

    Khoa Cng ngh thng tin

    Trng i hc s phm k thut Hng Yn

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 3

    MC LC Bi 1: Cc khi nim c bn ca L thuyt th ............................................................5

    Mc tiu ...................................................................................................................5 a. Nhc li l thuyt ..................................................................................................5 b. bi tp..............................................................................................................5 c. Hng dn gii......................................................................................................6 d. Bi tp t gii .......................................................................................................7

    Bi 2: Biu din th trn my tnh..............................................................................10 Mc tiu .................................................................................................................10 a. Nhc li l thuyt ................................................................................................10 b. bi tp............................................................................................................10 c. Hng dn gii....................................................................................................10 d. Bi tp t gii .....................................................................................................14

    Bi 3: th Euler .........................................................................................................15 Mc tiu .................................................................................................................15 a. Nhc li l thuyt ................................................................................................15 b. bi tp............................................................................................................16 c. Hng dn gii....................................................................................................16 d. Bi tp t gii .....................................................................................................19

    Bi 4: th hamilton....................................................................................................20 Mc tiu .................................................................................................................20 a. Nhc li l thuyt ................................................................................................20 b. bi tp............................................................................................................20 c. Hng dn gii....................................................................................................20 d. Bi tp t gii .....................................................................................................22

    Bi 5: Tho lun ci t th, cc thut ton lit k chu trnh Euler v Hamilton. Tho lun v bi tp ln.................................................................................................23

    Mc tiu .................................................................................................................23 a. Nhc li l thuyt ................................................................................................23 b. bi tp............................................................................................................23 c. Hng dn gii....................................................................................................23 d. Bi tp t gii .....................................................................................................31

    Bi 6 Thut ton tm kim trn th v ng dng.........................................................34 Mc tiu .................................................................................................................34 a. Nhc li l thuyt ................................................................................................34 b. bi tp............................................................................................................34 c. Hng dn gii....................................................................................................34 d. Bi tp t gii .....................................................................................................51

    Bi 7: Cy v cy khung ................................................................................................52 Mc tiu .................................................................................................................52 a. Nhc li l thuyt ................................................................................................52 b. bi tp............................................................................................................53 c. Hng dn gii....................................................................................................54 d. Bi tp t gii .....................................................................................................55

    Bi 8: Tho lun v ci t thut ton tm cy khung nh nht trn th ......................58 Mc tiu .................................................................................................................58

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 4

    a. Nhc li l thuyt ................................................................................................58 b. bi tp............................................................................................................58 c. Hng dn gii....................................................................................................58 d. Bi tp t gii .....................................................................................................70

    Bi 9, 10: Bi ton tm ng i ngn nht ....................................................................71 Mc tiu .................................................................................................................71 a. Nhc li l thuyt ................................................................................................71 b. bi tp............................................................................................................71 c. Hng dn gii....................................................................................................73 d. Bi tp t gii .....................................................................................................92

    Bi 12: Bi ton lung cc i trong mng.....................................................................97 Mc tiu .................................................................................................................97 a. Nhc li l thuyt ................................................................................................97 b. bi tp............................................................................................................98 c. Hng dn gii....................................................................................................99 d. Bi tp t gii ...................................................................................................101

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 5

    Bi 1: Cc khi nim c bn ca L thuyt th Mc tiu

    - Lu tr c th trn my tnh theo nhng phng php khc nhau.

    - Ci t c chng trnh chuyn i gia cc phng php.

    - Sinh vin c kh nng t hc.

    a. Nhc li l thuyt

    - Hai nh x, y c gi l cp nh lin thng , nu hoc gia x v y c t nht mt

    xch ni vi nhau, hoc tn ti t nht mt ng i t y sang x.

    - th v hng G(V,E) c gi l th lin thng, nu mi cp nh ca n

    u lin thng.

    - th c hng G(V,E) c gi l th lin thng mch, nu mi cp nh ca

    n u lin thng.

    - Biu din dng hnh hc: Gi s c th G(V,E).

    Biu din nh: ly cc im trn mt phng hay trn khng gian tng ng

    vi cc phn t ca tp V v dng ngay k hiu cc phn t ny ghi trn cc

    im tng ng.

    Biu din cnh: Nu cnh a vi hai nh u l x,y th n c biu din

    bng on thng hay mt on cong ni gia hai im x, y v khng i qua cc

    im tng ng trong khng gian.

    Biu din cung: nu cung a c nh u l x, nh cui l y, th n c biu

    din bng mt on thng hoc on cong c nh hng i t x sang y v khng

    qua cc im tng ng trung gian khc.

    Hnh nhn c gi l dng biu din hnh hc ca th G(V, E). i khi

    ngi ta cng gi dng biu din hnh hc l mt th.

    b. bi tp

    Bi 1 Cho G th gm 4 phn G1, G2, G3 v G4 nh sau:

    a. Ch ra tp nh, cnh(v hng,c hng, khuyn,..) ca mi th cho? Ch

    loi th ?

    b. th G, G1, G2, G3, G4 v G5 c lin thng ko? Nu th ko lin thng hy

    ch ra cc thnh phn lin thng?

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 6

    c. th G, G1, G2, G3, G4 v G5 c chu trnh ko? Ch ra cc chu trnh ca th

    (nu c)?

    c. Hng dn gii

    Bi 1

    a.

    Tn th Tp nh V Tp cnh E Loi th

    G1 1,2,3,4 (1,2);(1,4);(2,3);(2,4);(3,4) V hng

    G2 5,6,7 (5,6);(5,7);(6,7) C hng

    G3 8,9 (8,9) V hng

    G4 0

    G 1,2,3,4,5,6,7,8,9,0 (1,2);(1,4);(2,3);(2,4);(3,4);

    (8,9)

    (5,6);(5,7);(6,7)

    Hn hp

    b.

    Tn th Tnh lin thng Tn thnh phn lin thng

    G1 C G1

    G2 C G2

    G1

    1

    4 3

    2 5

    7 6

    8

    9

    00

    G2 G3

    G4

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 7

    G3 C G3

    G4 C G4

    G Khng G1,G2,G3,G4

    c.

    Tn th C chu trnh? Tn chu trnh

    G1 C (1,2,4,1);(1,2,3,4,1);(2,3,4,2)

    G2 Khng

    G3 Khng

    G4 Khng

    G C (1,2,4,1);(1,2,3,4,1);(2,3,4,2)

    d. Bi tp t gii

    Bi 1. Mt qun o c n( n ) hn o v hai hn o bt k thuc qun o u

    c s u mi ng ngm ti mt trong nhng hn o ny u nh hn n. Chng

    minh rng t mt hn o ty thuc qun o ta c th i n mt hn o bt k

    khc ca qun o bng ng ngm.

    Bi 2 Khi v ngh h mi bn hc sinh ca lp 11A trng L Hng Phong u

    trao i a ch vi t nht mt na s bn trong lp. Chng minh rng trong thi

    gian ngh h mi bn ca lp 11A u c th bo tin trc tip hay gin tip cho cc

    bn trong lp.

    Bi 3 Trong mt cuc hp c ng hai i biu khng que nhau v mi i biu ny

    c mt s l ngi que n d. Chng minh rng lun lun c th xp mt s i

    bieetr ngi chen gia hai i bi ni trn , ngi ngi gia hai ngi m anh(

    ch) ta quen.

    Hng n:

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 8

    gii c bi ton trn trc ht ta xy dng cc th tng ng, sau vn

    dng kt qu ca nh l 4.1, h qu 4.1 v nh l 4.2 m suy ra kt lun.

    Xuy dng th

    nh: Ly cc im trong mt phng hay trong khng gian tng ng vi cc

    hn o thuc qun o ( cc bn hc sinh trong lp 11A, cc i biu n

    hp).

    Cnh: Hai im x, y c ni bng mt cnh khi v ch khi hai hn o x, y

    c ng ngm trc tip vi nhau( cc bn x, y trao i a ch cho nhau, cc

    i biu x, y quen nhau)

    - th nhn c k hiu bng G1 , (G2 , G3)

    - th G1 m t ton b li ng ngm trong qun o

    - th G2 m t ton b quan h trao i a ch trong lp 11A

    - th G3 m t ton b quen bit trong cc i biu trong cc i biu n

    d hp.

    Vn dng kt qu cc nh l suy ra kt lun

    - Do hai hn o bt k u c tng s u mi ng ngm khng nh hn n, nn

    hai nh bt k ca th G1 u c tng bc khng nh hn n. Bi vy theo nh l

    4.1. th G1 lin thng, nn hai hn o bt k c ng hm ni vi nhau.

    - V mi bn hc sinh trong lp 11A trao i a ch vi t nht mt na s bn tron

    lp, nn bc ca mi nh ca G2 khng nh hn mt na s nh ca th. Khi

    , theo h qu 4.1. th G2 lin thng. Bi vy hai nh x, y u c xch ni vi

    nhau. Khi thng qua cc bn tng ng vi cc nh thuc xch , m bn tng

    ng vi nh x bo tin c cho tng ng vi nh y v ngc li.

    - Hai i biu khng quen nhau, th hai nh tng ng khng k nhau. Mi i biu

    ny li c mt s l ngi quen n hp, nn trong th lin thng G3 c ng hai

    nh bc l v hai nh ny li khng k nhau. Khi d, theo nh l 4.2, hai nh ny

    lin thng nn c t nht mt xich ni gia hai nh ny. Gi s l mt trong

    nhng mi xch ni gia hai bc l ny. Da vo ta sp xp cc i biu tng

    ng ngi gia hai ngi m anh ch quen.

    Bi 4 Cho G th nh sau:

    Ch ra tp nh, cnh(v hng,c hng, khuyn,..) ca mi th cho? Ch

    loi th ? th c lin thng ko? Nu th ko lin thng hy ch ra cc

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 9

    thnh phn lin thng? th c chu trnh ko? Ch ra cc chu trnh ca th (nu

    c)?

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 10

    Bi 2: Biu din th trn my tnh Mc tiu

    - Nu c cc cch biu din th v biu din th trn my tnh trn my tnh.

    - a ra c ma trn k, danh sch cc cnh, cung tng ng vi 1 th cho

    trc.

    - Lu tr c th trn my tnh theo nhng phng php khc nhau.

    - - Phn tch c bi ton thc t tng ng phn l thuyt hc.

    - Sinh vin c kh nng t hc.

    a. Nhc li l thuyt

    b. bi tp

    Bi 1 Cho G th gm 4 phn G1, G2, G3 v G4 nh sau:

    a. Biu din cc th G,G1,G2,G3,G4 di dng ma trn k

    b. Biu din cc th G,G1,G2,G3,G4 di dng danh sch cnh(cung)

    c. Biu din cc th G,G1,G2,G3,G4 di dng danh sch k

    Bi 2 Ci t chng trnh nhp danh sch k ca th t bn phm v a danh

    sch ra mn hnh.

    c. Hng dn gii

    Bi 1

    G1

    1

    4 3

    2 5

    7 6

    8

    9

    00

    G2 G3

    G4

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 11

    Tn th a. ma trn k b. danh sch

    cnh(cung)

    c.danh sch k

    G1 1 2 3 4

    1 0 1 0 1

    2 1 0 0 1

    3 0 0 0 1

    4 1 1 1 0

    Danh sch cnh

    1 2

    1 4

    2 3

    2 4

    3 4

    1 2 4

    2 1 4

    3 4

    4 1 2 3

    G2 5 6 7

    5 0 0 1

    6 1 0 1

    7 0 0 0

    Danh sch cung

    5 6

    5 7

    6 7

    5 6 7

    6 7

    G3 8 9

    8 0 1

    9 1 0

    Danh sch cnh

    8 9

    8 9

    9 8

    G4 0

    0 0

    G 1 2 3 4 5 6 7 8 9 0

    1 0 1 0 1 0 0 0 0 0 0

    2 1 0 0 1 0 0 0 0 0 0

    3 0 0 0 1 0 0 0 0 0 0

    4 1 1 1 0 0 0 0 0 0 0

    5 0 0 0 0 0 0 1 0 0 0

    Danh sch cung

    1 2

    1 4

    2 1

    2 3

    2 4

    1 2 4

    2 1 4

    3 4

    4 1 2 3

    5 6 7

    6 7

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 12

    6 0 0 0 0 1 0 1 0 0 0

    7 0 0 0 0 0 0 0 0 0 0

    8 0 0 0 0 0 0 0 0 1 0

    9 0 0 0 0 0 0 0 1 0 0

    0 0 0 0 0 0 0 0 0 0 0

    3 2

    3 4

    4 1

    4 2

    4 3

    5 6

    5 7

    6 7

    8 9

    9 8

    0

    Bi 2 Chng trnh nhp danh sch k ca th t bn phm v a danh sch

    ra mn hnh

    Phn tch bi ton :

    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

    Chng trnh minh ha :

    Program AdjList;

    Const

    maxV=100;

    Type

    link=^node;

    node=record

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 13

    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:);

    for J:=1 to m do

    begin

    writeln(Danh sachcac dinh ke cua dinh ,j,:);

    t:=Ke[j];

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 14

    while t^.nextnil do

    begin

    write(t^.v:4);

    t:=t^.next;

    end;

    end;

    readln;

    End.

    d. Bi tp t gii

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 15

    Bi 3: th Euler Mc tiu

    - Kim tra c mt th bt k c l th euler hay khng.

    - p dng c thut ton tm chu trnh Euler, ng Euler, vi 1 th cho trc.

    - Lu tr c th trn my tnh theo nhng phng php khc nhau. Ci t

    c chng trnh chuyn i gia cc phng php.

    - Ci t c thut ton Tm chu trnh Euler.

    - Ci t c thut ton duyt th duyt theo chiu su hoc duyt theo chiu

    rng.

    - Sinh vin c kh nng t hc.

    a. Nhc li l thuyt

    - Chu trnh (t.. ng i) n cha tt c cc cnh (hoc cung) ca th (v

    hng hoc c hng) G c gi l chu trnh (t.. ng i) Euler. Mt th

    lin thng (lin thng yu i vi th c hng) c cha mt chu trnh (t..

    ng i) Euler c gi l th Euler (t.. na Euler).

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 16

    nh l

    th (v hng) lin thng G l th Euler khi v ch khi mi nh ca G u c

    bc chn.

    H qu

    th lin thng G l na Euler (m khng l Euler) khi v ch khi c ng hai

    nh bc l trong G.

    Thut ton vch c mt chu trnh Euler trong th lin thng G c bc ca mi

    nh l chn theo thut ton Fleury sau y.

    Xut pht t mt nh bt k ca G v tun theo hai quy tc sau:

    1. Mi khi i qua mt cnh no th xo n i; sau xo nh c lp (nu c);

    2. Khng bao gi i qua mt cu, tr phi khng cn cch i no khc.

    b. bi tp

    Bi 1: th sau c l th na Euler hay th Euler ko? Gii thch?

    c. Hng dn gii

    Bi 1: th sau c l th na Euler hay th Euler ko? Gii thch?

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 17

    th G1 l th na Euler

    Tht vy, cc nh a,b,e c bc l 2,4,4 l bc chn, cc nh c v d c bc l 3 l

    bc l

    th G2 l th na Euler

    Tht vy, cc nh c v d c bc l 2 l bc chn, cc nh a v c c bc l 1 l bc

    l

    a

    b

    e

    c

    d

    G1

    a

    d

    b

    c

    G2

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 18

    th G3 khng l th Euler

    Tht vy G3 c 3 nh a,d v g c bc l 1 l bc l

    G4

    th G4 l th na Euler v theo h qu..

    Tht vy, cc nh 3,4,5 c bc l 2 l bc chn, cc nh 1 v 2 c bc l 3 l bc l

    Bi 2

    g

    a

    d

    b

    c

    e

    f

    G3

    1

    2

    3 4

    5

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 19

    Xut pht t u, ta c th i theo cnh (u,v) hoc (u,x), gi s l (u,v) (xo

    (u,v)). T v c th i qua mt trong cc cnh (v,w), (v,x), (v,t), gi s (v,w) (xo

    (v,w)). Tip tc, c th i theo mt trong cc cnh (w,s), (w,y), (w,z), gi s (w,s)

    (xo (w,s)). i theo cnh (s,y) (xo (s,y) v s). V (y,x) l cu nn c th i theo mt

    trong hai cnh (y,w), (y,z), gi s (y,w) (xo (y,w)). i theo (w,z) (xo (w,z) v w)

    v theo (z,y) (xo (z,y) v z). Tip tc i theo cnh (y,x) (xo (y,x) v y). V (x,u) l

    cu nn i theo cnh (x,v) hoc (x,t), gi s (x,v) (xo (x,v)). Tip tc i theo cnh

    (v,t) (xo (v,t) v v), theo cnh (t,x) (xo cnh (t,x) v t), cui cung i theo cnh

    (x,u) (xo (x,u), x v u).

    d. Bi tp t gii

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 20

    Bi 4: th hamilton Mc tiu

    - Kim tra c mt th bt k c l th Hamilton hay khng.

    - p dng c thut ton tm chu trnh Hamilton, ng Hamilton, vi 1 th

    cho trc.

    - Lu tr c th trn my tnh theo nhng phng php khc nhau. Ci t

    c chng trnh chuyn i gia cc phng php.

    - Ci t c thut ton Tm chu trnh Halmiton.

    - Ci t c thut ton duyt th duyt theo chiu su hoc duyt theo chiu

    rng.

    - Sinh vin c kh nng t hc.

    a. Nhc li l thuyt

    - th Hamilton(na Hamilton) l th c cha mt chu trnh(ng i)

    Hamilton

    Hay

    ng i (x[1],x[2],,x[n]) c gi l ng i Hamilton nu x[i]x[j]

    (1i

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 21

    th G1 l th Hamilton

    th G2 l th na Hamilton

    th G3 khng c chu trnh hay ng i Hamilton

    a

    b

    e

    c

    d

    G1

    a

    d

    b

    c

    G2

    g

    a

    d

    b

    c

    e

    f

    G3

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 22

    G4

    th G4 l th Hamilton, v c chu trnh Hamilton (1,3,5,2,4,1)

    d. Bi tp t gii

    1

    2

    3 4

    5

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 23

    Bi 5: Tho lun ci t th, cc thut ton lit k chu trnh Euler v Hamilton. Tho lun v bi tp ln Mc tiu

    - Lu tr c th trn my tnh theo nhng phng php khc nhau.

    - Chuyn i gia cc kiu biu din th trn my tnh.

    - Nng cao kh nng lm vic nhm.

    - Rn luyn t duy sng to.

    - Phn tch c bi ton thc t tng ng phn l thuyt hc.

    - Sinh vin c kh nng t hc.

    a. Nhc li l thuyt

    Xem li trong bi 3 v bi 4

    b. bi tp

    Bi 1 Tm chu trnh Euler trong th G.

    Bi 2 Tm chu trnh Halmiton trong th G.

    c. Hng dn gii

    Bi 1 bi : Ci t chng trnh tm chu trnh Euler trong th G.

    Cho th G=(X,E) tn ti chu trnh Euler. Hy tm chu trnh (chi trnh Euler l

    chu trnh i qua tt c cc cnh ca th, mi cnh i qua ng mt ln).

    Phn tch bi ton :

    u vo: th G

    u ra: Chu trnh Euler (nu c)

    2. Thut ton:

    Xut pht t mt nh u bt k, khi i qua cnh no th xo cnh khi th v

    ghi li t tri sang phi. Khi thc hin thut ton cn lu nu gp cnh bc cu

    gia 2 thnh phn lin thng th ta phi xo ht thnh phn lin thng ri mi xo

    n cnh bc cu.

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 24

    Khi xo cnh bc cu th phi loi ht cc nh tr tri (ngha l khng k vi bt c

    nh no thuc th).

    Cu trc d liu:

    Biu din th bng ma trn k a(i,j), do lu khi xo i mt cnh ta ch vic

    gn a(i,j)=a(j,i)=0, ng thi phi lu cnh va xo vo mt mng khc: Mng Ctr.

    Mng lt: array [1Nmax] of integer dng trong th tc tm thnh phn lin thng

    (ging nh mt thut ton tm thnh phn lin thng trnh by trn).

    Mng dd: array [1Nmax] of Boolean, gi tr dd[i] cho bit nh i b loi khi

    th hay cha. Nu b li th dd[i]=True; ngc li dd[i]=False;

    Th tc

    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} ;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 25

    End

    Else

    Begin

    x STACK; CE x;

    End;

    End;

    End;

    Chng trnh minh ha :

    Program Chu_trinh_Euler;

    Const Nmax=100;

    Emax=100;

    Var a:array[1Nmax,1..Nmax]of integer;

    Ctr: array[1Emax,1,2]of integer;

    dd: array[1Nmax]of Boolean;

    lt: array[1Nmax]of integer;

    SolC,N:integer;

    (*Bin Solc l s cnh ca chu trnh, s tng ln mt n v mi khi ta i qua

    mt cnh*).

    Program Timtplt(k:integer);

    (* Th tc ny tm thnh phn lin thng ging nh thut ton tnh thnh phn

    lin thng trnh by trn ch khc mt im l ta ch tm tplt i vi cc nh cha

    b loi khi th *).

    Var i:integer;

    Begin lt[k]:=sotp;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 26

    For i=1 to N do

    If dd[i] and (lt[i]=0) and(a[i,k]=1)then

    Begin

    lt[i]:=sotp;

    Timtplt(i);

    End;

    End;

    Function KTLT (u,v:integer):Boolean;

    (* Hm ny kim tra xem khi ta xo cnh (u,v) i th th cn lin thng na hay

    khng? Nu cn th s tplt lun bng 1. y coi nh kim tra cnh (u,v) c phi l

    cnh bc cu hay khng*).

    Var i:integer;

    Begin(* u tin ta phi xo cnh (u,v) khi th ri mi tin hnh kim

    tra *).

    a[u,v]:=0;a[u,v]:=0;

    Fillchar(lt,sizeof(lt),0);

    (* on m sau tm s tplt ca th im ang xt *).

    Sotp:=0;

    For i=1 to N do

    If dd[i] and (lt[i]=0)then

    Begin

    inc(sotp);

    Timtplt(i);

    End;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 27

    If sotp=1 then KTLT=True

    Else

    Bengin (*nu khng c cnh bc cu th khi khi phc

    li cnh (u,v)*).

    a[u,v]:=1

    a[v,u]:=1

    KTLT:=False

    End;

    End;

    Procedure Timchutrinh;

    Var i,u,dem:integer;

    Begin solc:=0;

    u:=1;

    (* Chu trnh ca ta xut pht t nh 1, tuy nhin iu ny khng bt buc *)

    For i=1 to N do

    dd[i] true;

    (* Khi to tt c cc gi tr dd[i]=True ngha l cha c nh no b

    loi *)

    REPEAT

    Dem:=0;

    (* Bin m l s cnh k vi nh u *)

    Begin

    For i=1 to N do

    If a[u,i]=1 then

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 28

    Begin (*xo cnh (u,i) khi th *)

    a[u,i]:=0

    a[i,u]:=0

    (*Loi nh u khi th*)

    dd[u]:=False;

    (*ua cnh (u,i) vo chu trnh*).

    inc(solC);

    Ctr[solC,1]:=u;

    Ctr[solC,2]:=i;

    Break;

    End;

    End

    Else

    (*Ngc li nu cn nhiu cnh ni vi u ta tm mt cnh khng phi l cnh

    bc cu v xo cnh ng thi a n vo chu trnh*)

    If dem>1 then

    Begin

    For i=1 to N do

    If (a[u,i]=1 and dd[i] and KTLT(u,i)then

    (*Nu cnh (u,i) tho mn khng phi l cnh bc cu th ta chn:

    Ngha l n phi k vi u, cha b loi khi th v sau khi xo cnh k

    th th vn lin thng. Ring iu kin th 3 ta dng hm KTLT(u,i)

    kim tra xem khi xo cnh (u,i) i th th cn lin thng na hay khng*).

    Begin

    (*on m sau xo cnh (u,i) v a cnh ny

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 29

    vo chu trnh*).

    a[u,i]:=0

    a[i,u]:=0

    inc(solC);

    Ctr[solC,1]:=u;

    Ctr[solC,2]:=i;

    Break;

    (*Sau khi tm c nh i th ta phi thot khi vng lp For nu khng c

    lnh Break th chng trnh s chy sai*).

    End;

    End;

    (*Chun b cho php tip chu trnh ca chng ta li xut pht t nh*)

    u:=1;

    UNTIL dem=0;

    End;

    Procedure Ghifile;

    Var f:text;

    I:integer;

    Begin

    Assign(f,kq.out);Rewrite(f);

    For i:=1 to solC do

    writeln(f,Ctr[i,1], ,Ctr[i,2]);

    Close(f);

    BEGIN

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 30

    Docfile;

    Timchutrinh;

    Ghifile;

    END.

    Bi 2 bi : Lit k tt c cc chu trnh Hamilton ca th

    Phn tch bi ton :

    Thut ton sau y c xy dng da trn c s thut ton quay lui cho php lit

    k tt c cc chu trnh Hamilton ca th.

    Hnh di y m t cy tm kim theo thut ton va m t.

    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.

    Chng trnh minh ha :

    Procedure Hamilton(k);

    (* liet ke cac chu trinh Hamilton thu duoc bang viec phat trien day dinh (X[1],. . .

    , X[k-1]) cua do thi G=(V,E) cho boi danh sach ke: Ke(v), v V *)

    begin

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 31

    for y Ke(X[k-1]) do

    if (k =N+1) and (y=v0) then Ghinhan(X[1],. . . , X[n], v0)

    else

    if Chuaxet[y] then

    begin

    X[k]:=y;

    Chuaxet[y]:=false;

    Hamilton(k+1);

    Chuaxet[y]:=true;

    end;

    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.

    d. Bi tp t gii

    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

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 32

    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.

    Hy lp trnh gip Tng th k Lin hp quc b tr ch ngi quanh bn hp. Cc

    t chc c nh s t 1 ti N, 0 < N

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 33

    qut, hy sp N ngi ngi chung quanh bn trn sao cho mi ngi u ngi cnh

    ngi mnh quen. Bit mi ngi c t nht (N + 1)/2 ngi quen.

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 34

    Bi 6 Thut ton tm kim trn th v ng dng Mc tiu

    - Trnh by c tng, cch ci t v ci t c thut ton BFS, DFS.

    - Nu u nhc ca tng thut ton i vi tng loi th.

    - Phn tch c bi ton thc t tng ng phn l thuyt hc.

    - Sinh vin c kh nng t hc.

    - Rn luyn t duy sng to.

    a. Nhc li l thuyt

    b. bi tp

    Bi 1 Dng cy m t kt qu duyt chiu su v duyt theo chiu rng trn

    th sau:

    Bi 2 Cho th G=(X,E) vi tp cc nh X v tp cc cung E. Xt xem th c

    bao nhiu thnh phn lin thng, mi thnh phn lin thng bao gm nhng nh

    no?

    Bi 3 Thut ton tm ng i theo chiu su (thut ton duyt theo chiu su)

    Bi 4 Thut ton tm ng i theo chiu rng (thut ton duyt theo chiu rng)

    c. Hng dn gii

    Bi 1 Dng cy m t kt qu duyt chiu su v duyt theo chiu rng trn

    th sau:

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 35

    Duyt rng

    Duyt su:

    Bi 2 Thut ton tm s thnh phn lin thng

    Cho th G=(X,E) vi tp cc nh X v tp cc cung E. Xt xem th c

    bao nhiu thnh phn lin thng, mi thnh phn lin thng bao gm nhng nh

    no?

    Phn tch bi ton :

    3 5

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 36

    8 2 6 3

    1

    2

    2 7 9 2

    1 1 3 1

    4 1

    th vi cc thnh phn LT

    u vo:

    a. Biu din th bng ma trn k

    Dothi.txt Kq.txt

    9

    0 1 1 1 0 0 0 0 0

    1 0 1 0 0 0 0 0 0

    1 1 0 1 0 0 0 0 0

    1 0 1 0 0 0 0 0 0

    0 0 0 0 0 0 0 1 0

    0 0 0 0 0 0 1 0 1

    So tph cua do thi la:3

    TPLT 1 bao gom cac dinh: 1 2 3 4

    TPLT 2 bao gom cac dinh: 5 8

    TPLT 3 bao gom cac dinh: 6 7 9

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 37

    0 0 0 0 0 1 0 0 1

    0 0 0 0 1 0 0 0 0

    0 0 0 0 0 1 1 0 0

    Cu trc d liu

    u tin nh s cc nh l 0

    (Dng mt mng biu din cc thnh phn l mng chng ta cn tm, ban u

    ta gn tt c cc gi tr ca mng bng 0)

    Ly ra nh L gn lt[i]:=1

    + Duyt cc nh k ca 1 gp nh tip theo l nh 2 cha c nh s ta

    nh s 1 gn lt[2]:=1 sang bc tip theo.

    + Duyt cc nh k ca 2, gp nh 1 c nh s ri nn b qua, gp nh

    cha nh s nn nh s 1, gn lt[4]:=1 sang bc tip theo.

    + Duyt cc nh k ca 4, gp nh 1 nh s ri nn b qua. Gp nh 2 nh

    s ri nn b qua. Gp nh 3 cha nh s nn nh s 1, lt[3]:=1 sang bc tip

    theo.

    + Duyt cc nh k ca 3 gp ton cc nh nh s ri nn khng nh s

    na dng vic nh s.

    Nh vy ta tm c 1 thnh phn lin thng.

    Ly ra mt nh cha nh s v d ta ly nh 6

    Ta li lm nh trn ta li tm c thnh phn lin thng khc.

    Nh vy ta rt ra c Cu trc d liu ca bi ton ny.

    i vi th v cc cnh th ta c th dng ma trn k hoc danh sch k, v

    nn c t file n gin ho.

    Dng mt mng lt[1n] biu din TPLT lt[i]:=K nu nh i thuc thnh phn

    lin thng.

    Chng trnh minh ha :

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 38

    a. Biu din th bng ma trn k.

    a(i,j)=1 nu 2 nh i v j k nhau v =0 nu 2 nh i v j khng k nhau.

    Program tim_thanh_phan_lien_thong;

    Const Nmax=100;

    Type mang=array[1Nmax] of integer;

    Var lt:mang;

    a: array[1Nmax, 1Nmax] of byte;

    N:integer;

    Sotp: integer;

    (*Th tc ny c t file dothi.txt s N l s nh ca th ma trn k biu din

    th *)

    Procedure Docfile;

    Var i,j: integer;

    f: text;

    Begin

    Assign(f,dothi.txt);reset(f);

    Readln(f,N);

    For i:=1 to N do

    Read(f,a[i,j]);

    Close(f);

    End;

    (*Th tc quy ny dng tm cc nh thuc mt thnh phn lin thng *)

    Procedure Docfile;

    Var i,j: integer;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 39

    Begin lt[k]:=sotp;

    (*Duyt qua cc nh ca th *)

    For i:=1 to N do

    (*Nu nh i k vi k v cha nh du th ta gi th tc quy. Tm

    LT ngha l li nh du v duyt cc nh k ca i *)

    lf (lt[i]=0)and(a[i,k]=1)then

    TimLT(i);

    End;

    (*Th tc ny c coi nh bc 2 trong v d *)

    Procedure TimTPLT;

    Var i: integer;

    Begin sotp:=0;

    (*Duyt cc nh cha c nh du *)

    For i:=1 to N do

    (*Nu c mt nh cha thuc thnh phn lin thng no lt[i]=0 ngha

    l tm ra mt thnh phn mi nn ta tng s lng thnh phn v bt u ta i

    tm thnh phn lin thng mi bng th tc quy TimLT(i)*)

    lf lt[i]=0 then

    Begin

    Inc(sotp);

    TimLT(i);

    End;

    End;

    (*Th tc in ra cc thnh phn lin thng ca th *)

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 40

    Procedure Ghifile;

    Var i,j: integer;

    Begin

    Writeln(so thanh phan lien thong cua do thi l: ;sotp);

    For i:=1 to sotp do

    Begin

    Writeln(TPLT, i ,bao gom cac dinh:);

    For j:=1 to N do

    (*nu j thuc thnh phn lin thng th i th in ra *)

    lf lt[j]=i then

    Write(J, );

    Writeln;

    End;

    Readln;

    End;

    BEGIN

    Docfile;

    Tim TPLT;

    Ghifile;

    END.

    b. Biu din th bng danh sch cnh

    Ma trn ca chng ta ( v d trn) c vit di dng:

    2 3 4 9

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 41

    1 3 0 1 2 3 4

    2 4 0 2 1 3

    1 3 0 3 2 4

    8 0 0 4 1 3

    7 9 0 5 8

    6 9 0 6 7 9

    5 0 0 7 6 9

    6 7 0 85

    9 6 7

    a[i,9] l s lng cc nh k vi nh i;

    a[i,j] chnh l cc nh k vi cc nh i (j=1,2,3,)

    Khi th tc Docfile c vit li nh sau:

    Procedure Docfile;

    Var i,j,t: integer;

    f: text;

    Begin Assign(f,dothi.txt);reset(f);

    Readln(f,N);

    For i:=1 to sotp do

    Bengin

    Read(f,t);

    While not eoln(f) do

    Begin

    Read(f,t);

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 42

    Inc(j);

    a[i,j]:=t;

    End;

    a[i,0]:=j;

    End;

    Close(f);

    End;

    Th tc Ghifile v thuc tc TimTPLT khng c g thay i

    Th tc TimTPLT thay i nh sau:

    Procedure TimLT (k:integer);

    Var i: integer;

    Begin

    Lt[k]:=sotp;

    For i:=1 to a[k,0] do

    If lt[a[k,i]]=0 then

    TimLT(a[k,i]);

    End;

    Bi 3 bi : Thut ton tm ng i theo chiu su (thut ton duyt theo chiu

    su).Tm ng i gia hai nh xp v kt trn th G v hng v khng c trng

    s.

    Phn tch bi ton :

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 43

    Thut ton ca bi ton ny cng ging nh thut ton tm thnh phn lin

    thng ca th. Trong phn Cu trc d liu c dng mng trc lu ng i

    t nh xp n nh kt.

    Chng trnh minh ha :

    Program Duyetchieusau;

    Const Nmax=100;

    Type Mang=array[1Nmax] of integer;

    Matran= array[1Nmax,1Nmax] of integer;

    Var a:Matran;

    so,duong:mang;

    N:integer;

    (*th tc c tp v ghi tp ging nh bi trc ch c thm hai nh xp v kt

    *)

    Procedure Duyet (k:integer);

    Var i:integer;

    Begin

    For i:=1 to N do

    (*Duyt cc nh k vi k *)

    lf (a[i,k]=1)and(truoc[i]=0)then

    Begin (*ta gn nh i trc nh i l nh k *)

    Truoc[i]:=k;

    Duyet(i);

    End;

    End;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 44

    Procedure Duyetsau;

    Var i:integer;

    Begin

    For i:=1 to N do truoc[i]:=0

    Truoc[xp]:=-1;

    Duyet(xp);

    End;

    Procedure Timduong;

    (*th tc ny ging th tc tm ngc trong duyt chiu rng, nhng ch tm

    mt ng i ngn nht trong rt nhiu ng i ngn nht t xp n kt *).

    Var i,u: integer;

    Begin

    sold:=0;

    u:=kt;

    REPEAT

    Inc(sold);

    Duong[sold]:=u;

    U:=truoc[u];

    UNTIL u=-1;

    End;

    BEGIN

    Doctiep;

    Duyetsau;

    Timduong;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 45

    Ghitep;

    END.

    Bi 4 bi : Thut ton tm ng i theo chiu rng (thut ton duyt theo chiu

    rng). Cho th v hng G=(X,E). Hy tm ng i ngn nht gia 2 nh xp v

    kt cho trc (ng i ngn nht l xch c 2 u l xp v kt v i qua t cung hoc

    t nh nht).

    Phn tch bi ton

    S dng hng i gii quyt bi ton ny. Cch a mt nh ca th v

    ly 1 nh ra s dng phi tun theo mt quy tc nht nh.

    S dng mt mng nh du ng i truoc: array[1..Nmax] of integer

    Khi i t nh xp m mun c ng i ngn nht n u th ta phi qua nh

    truoc [u], mun c ng i ngn nht n truoc [u] th ta phi i qua truoc [truoc

    [u] ],

    Yu cu: Sau th tc duyt theo chiu rng th ta phi tm c mng truoc.

    Khi to gi tr ban u ca mng truoc bng 0.

    B1: Khi to hng i.

    a xp vo hng i. Gn truoc [xp]: = -1

    B2: REPEAT

    Ly 1 nh ra khi hng i. Gi s nh u.

    Duyt nhng nh k vi u, gi s duyt n nh v.

    - Nu trc [v] = 0 th ta a v vo hng i ng thi gn truoc [v]: = u.

    Ngha l mun i qua v th phi i qua nh trc l u;

    B3: Kim tra v c phi l kt hay khng, nu c th thot khi th tc;

    Nu truoc [v] 0 th b qua.

    UNITL (hng i rng) or (truoc [kt]0

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 46

    Hng i rng ngha l khng cn nh no trong hng i.

    Trn y l sn ca th tc duyt chiu rng, nu sau nhng bc ny m

    truoc [kt] = 0 ngha l khng tn ti ng i t xp n kt.

    B4: (Tim ng i thng qua mng truoc)

    Dng mt mng duong: array [1..Nmax] of integer biu din cc nh nm

    trn ng i. Mng ny th hin ng i ngc t kt v xp. Do khi in kt qu

    ra mn hnh ta phi in ngc t cui mng.

    Khi u u: = kt;

    sold: = 0 (s lng nh trn ng i khi u bng 0)

    REPEAT

    Tng sold ln 1 n v

    gn duong [sold]: = u;

    i ngc li bc trc u: = truoc [u];

    UNILT u = -1

    B5: In kt qu.

    Thut ton hi kh hiu. Bn s thy r trong phn ci t chng trnh.

    Cu trc d liu

    Mng 2 chiu a (ij) biu din ma trn lin thuc cc nh v cc cung ca

    th.

    Mng truoc v mng duong m t nh trn.

    Mng q (quene) m t cu trc ca hng i.

    Th tc

    Program Duyet _chieu_rong;

    Const Nmax = 100;

    Type mang = array [1..Nmax] of integer;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 47

    Var q,truoc,duong:mang;

    A:array [1..Nmax, 1..Nmax] of byte;

    Sold; N,xp,kt,qf,ql: integer;

    (* qf- queue first l con chy u hng i

    ql-queue last l con chy cui hng i*)

    Chng trnh minh ha :

    Procedure Docfile;

    Var ij: integer;

    f: text;

    Begin

    Assign (f, dothi.txt); reset (f);

    Readln (f,N);

    For i:= 1 to N do

    Forj:= 1 to N do

    Read (f,a[ i j]);

    Close(f);

    Readln (f,xp,kt);

    End;

    (*Th tc khi ng hng i *);

    Procedure InitQ;

    Begin

    ql: = 1

    qf: = 0

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 48

    End;

    (*Th tc a mt nh vo cui hng i *)

    Prcedure Put (k:integer);

    Begin

    q[ql]: = k;

    inc (ql);

    End;

    (*Hm ly mt nh ra khi hng i ly u hng i*)

    Function Get:integer;

    Begin

    Get:= q[qf];

    inc (qf);

    End;

    (*Hm kim tra hng i rng hay khng*)

    Function Qempty: Boolean;

    Begin

    Qempty: = (qf>ql);

    End;

    (*Th tc duyt chiu rng *)

    Procedure DuyetCR;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 49

    Var v,u:integer;

    Begin InitQ;

    Put (xp;

    Truoc [xp]: = -1;

    REPEAT

    U: = Get;

    (Duyt cc nh k ca u*)

    For v: = 1 to N do

    If (a[u,v] = 1 and (truoc [v]= 0) then

    Beign

    (*Nu v k vi u v cha i qua th nh du v a v vo hng i*)

    Truoc [v]: = u;

    Put (v);

    End;

    UNILT Qempty or (truoc [kt] 0);

    End;

    (*Th tc tm mng ng i t xp n kt dng ngc *)

    Procedure Timduong;

    Var u:integer;

    Begin sold: = 0;

    u:= kt;

    REPEAT

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 50

    inc (sold);

    Duong[sold]:=u;

    u:=truoc[u]:

    UNILT u = xp;

    End;

    (*Th tc in kt qu ra mn hnh *)

    Procedure Inkq;

    Var i:integer;

    Begin

    If truoc[kt]= 0 then

    Writeln (khong co duong di t ,xp, den, kt)

    else

    Begin Writeln (Duong di t , xp, den, kt);

    (*Khi in phi in ngc mng ng t sold tr v 1*)

    For i: = sold downto 1 do

    Write (duong[i], );

    End;

    Realn;

    End;

    BEGIN

    Docfile;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 51

    Duyet CR;

    (*Chc chn rng nu c ng i n nh kt th ta mi tm mng ng *)

    If truoc[kt]0 then

    Timduong;

    Inkq;

    END.

    d. Bi tp t gii

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 52

    Bi 7: Cy v cy khung Mc tiu

    Mc tiu ca bi ny ngi hc c kh nng:- Xc nh c mt ng i, mt

    chu trnh trong th bt k.

    - Biu din th trn my tnh bng cc phng php khc nhau.

    - p dng c thut ton Kruskal v Prim tm cy khung nh nht ng vi mt

    th xc nh. Ci t c thut ton.

    - Phn tch c bi ton thc t tng ng phn l thuyt hc.

    - Sinh vin c kh nng t hc.

    a. Nhc li l thuyt

    Cc nh ngha: th, cnh, cung, nh k, cy, cy khung.

    Cc phng php bin din th trn my tnh

    nh l 3.4.2: Cho T l mt th c n 2 nh. Cc iu sau l tng ng:

    1) T l mt cy.

    2) T lin thng v c n1 cnh.

    3) T khng cha chu trnh v c n1 cnh.

    4) T lin thng v mi cnh l cu.

    5) Gia hai nh phn bit bt k ca T lun c duy nht mt ng i s cp.

    6) T khng cha chu trnh nhng khi thm mt cnh mi th c c mt chu

    trnh duy nht.

    Bi ton cy khung nh nht

    Thut ton Kruskal vi tng chn dn

    B1: Chn cnh trng s nh nht

    B2: Chn cnh trng s nh nht trong cc cnh cn li

    B3: Chn cnh trng s nh nht trong cc cnh cn li, m ko to thnh chu

    trnh.

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 53

    Lp li bc 3 cho ti khi chn c n-1 cnh.

    Thut ton Prim vi tng lan ta. Gi s lan ta t nh A

    B1: Chn cnh trng s nh nht thuc A (tc c 1 u l nh A)

    Gi s l cnh (A,B)

    B2: Chn cnh trng s nh nht trong cc cnh cn li thuc A hoc B (tc c

    1 u l nh A hoc B). Gi s l cnh (C,B) hoc (C,A)

    B3: Chn cnh trng s nh nht trong cc cnh cn li thuc A hoc B hoc

    C, m ko to thnh chu trnh.

    Lp li bc 3 cho ti khi chn c n-1 cnh.

    b. bi tp

    Bi tp 1: Cho th v hng c trng s sau:

    Biu din th dng ma trn k, danh sch cnh(cung), danh sch lien kt.

    p dng thut ton Prim( xut pht ti nh 1) hoc Kruskal tm cy khung nh nht

    cho th trn.

    Bi 2 p dng thut ton Kruskal tm cy khung nh nht ca th cho trong

    hnh di y:

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 54

    c. Hng dn gii

    Bi tp 1:

    - Thut ton Prim vi tng lan ta, xut pht t nh 1 lan ta ta c cc cnh

    to thnh cy khung nh nht ln lt l: (1,5); (5,4);(4,2) v (4,3)

    Gi V(E) l tp cc nh(cnh) ca th,

    Vt(Et) l tp cc nh(cnh) ca cy khung nh nht cn tm.

    Thut ton Prim vi cc bc th t c miu t trong bng sau:

    Bc E Et Vt

    Khi to {} {1}

    1 {(1,5)} {1,5}

    2 { (1,5); (5,4); } {1,5,4}

    3 { (1,5); (5,4);(4,2) } {1,5,4,2}

    4 { (1,5); (5,4);(4,2) v

    (4,3) }

    {1,5,4,2,3}=V => dng

    Ch :

    Thut ton Kruskal vi tng chn dn cc nh c trng s nh nht trong cc

    cnh cn li, nu ko to thnh chu trnh. Qu trnh lp li cho ti khi chn c n-1

    cnh.

    Cc cnh c chn to thnh cy khung nh nht ln lt l: (2,4);(4,5);(4,3) v

    (1,5)

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 55

    - Thut ton Prim vi tng lan ta, xut pht t nh 4

    lan ta ta c cc cnh to thnh cy khung nh nht ln lt l: (4,2);(4,5);(4,3)

    v (1,5)

    Vi cc bc th t (t lm)

    Bi 2:

    Bc khi to. t T:= . Sp xp cc cnh ca th theo th t khng gim ca

    di ta c dy:

    (3,5) , (4,6) , (4,5) , (5,6) , (3,4) , (1,3) , (2,3) , (2,4) , (1,2)

    dy di tng ng ca chng

    4, 8, 9, 14, 16, 17, 18, 20, 23.

    ba ln gp u tin ta ln lt b sung vo tp T cc cnh (3,5) , (4,6) , (4,5). R

    rng nu thm cnh (5,6) vo T th s to thnh 2 cnh (4,5), (4,6) c trong T chu

    trnh. Tnh hung tng t cng xy ra i vi cnh (3,4) l cnh tip theo ca dy.

    Tip theo ta b sung cnh (1,3), (2,3) vo T v thu c tp T gm 5 cnh:

    T = { (3,5) , (4,6) , (4,5) , (1,3) , (2,3) }

    Chnh l tp cnh ca cy khung nh nht cn tm.

    d. Bi tp t gii

    Bi tp 1: Biu din th dng ma trn k, danh sch cnh(cung), danh sch lien

    kt.

    p dng thut ton Prim v Kruskal tm cy khung nh nht cho th sau:

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 56

    Bi tp 2 : Mng an ton

    Cho mt mng N (N

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 57

    Ma trn n gi ca mng l mng hai chiu A c N dng v N ct, m gi

    tr phn t A[i, j] chnh l n gi t my i sang my j.

    Cu 1: Cho trc mt mng, hy kim ra tnh an ton ca mng .

    Cu 2: Khi mng khng an ton c php b sung mt s knh truyn

    n tr thnh an ton. n gi mi knh truyn b sung theo c coi bng hai ln

    gi tr cc i n gi cc knh c. Mi knh b sung c coi c n gi nh

    nhau. Hy tm cch b sung cc knh mi m n gi mng l nh nht.

    Cu 3: Khi mng an ton hoc sau khi b sung knh mng an ton, hy in

    ra n gi mng v ma trn n gi.

    D liu vo: cho trong file INP.B2 vi cu trc nh sau:

    Dng u tin ghi 2 s n, m cch nhau bi du cch.

    Mi dng th i trong s m dng tip theo ghi thng tin v knh ni th i ca

    mng gm 3 s d[i], c[i], g[i] trong d[i], c[i] l ch s ca hai my tng ng vi

    knh ny v g[i] (nguyn dng) l chi ph truyn mt n v thng tin t my

    d[i] n my c[i] theo knh ny. Cc gi tr g[i] cho trc khng vt qu 40 (v

    nh vy n gi cc knh b sung khng vt qu 80).

    Kt qu: ghi ra file OUT.B2 theo qui cch sau:

    Dng u tin ghi 1 s nguyn p th hin mng c an ton hay khng v p c

    ngha l s lng knh cn b sung. p=0 c ngha mng an ton; p>0 c ngha mng

    khng an ton v cn b sung p knh na mng an ton vi chi ph b sung t

    nht.

    p dng tip theo ghi p knh b sung. Cch ghi nh trong file d liu vo.

    Dng tip theo ghi n gi ca mng an ton.

    N dng tip theo ghi ma trn n gi ca mng an ton: mi hng ca ma

    trn ghi trn mt dng.

    Bi tp 3: Xy dng ng ng nc

    C 1 trm cp nc v N im dn c. Hy xy dng chng trnh thit k tuyn

    ng ng nc cung cp n mi nh sao cho tng chiu di ng ng phi dng

    l t nht. Gi s rng cc ng ng ch c ni gia 2 im dn c hoc gia

    trm cp nc vi im dn c.

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 58

    Bi 8: Tho lun v ci t thut ton tm cy khung nh nht trn th Mc tiu

    - Ci t c thut ton xy dng tp cc chu trnh c bn.

    - Ci t c thut ton Prim, Kruskal a ra cy khung nh nht ca th cho

    trc.

    - M rng tng, m rng thut ton Prim.

    - Ci t c thut ton xy dng tp cc chu trnh c bn.

    - Phn tch c bi ton thc t tng ng phn l thuyt hc.

    - Sinh vin c kh nng t hc.

    - Rn luyn t duy sng to.

    a. Nhc li l thuyt

    b. bi tp

    Bi 1 Tm cy bao trm nh nht ca th G dung thut ton Kruskal

    Bi 2 Tm cy bao trm nh nht ca th G dung thut ton Prim

    c. Hng dn gii

    Bi 1 bi : Tm cy bao trm nh nht ca th G

    Phn tch bi ton :

    Trc ht ta phi xt v d sau:

    8 3

    2

    1 7 2 3 7

    5

    1 8

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 59

    2 1

    4 1 7 6

    6 1 9

    T tng ca thut ton l a tng cnh vo cy bt u t nhng cnh c trng s

    nh nht v lm cho n khi cy bao gm tt c cc nh ca th.

    Gi s T l cy bao trm cn tm. V tp V l tp bao gm cc tp Gi c tnh cht

    nh sau:

    - Gi c phn t l cc nh ca th m chng c ni vi nhau bi cc cnh

    c a vo T. T mt nh thuc Gi lun c ng i n mt nh khc cng

    thuc Gi.

    - Giao ca Gi v GJ bng rng.

    Vi nh ngha nh trn ta nhn thy r rng rng mi mt tp Gi thuc tp V l

    mt cy bao trm con nh nht. Nh vy thut ton ca chng ta nh mt bi ton

    quy np l gp nhng cy bao trm ny thnh nhng cy trm ln hn cho n khi

    n gm tt c cc nh ca th v ng nhin ta phi ni nhng cy bao trm Gi

    ny bng nhng cnh c trng s nh nht. Kt thc khi V = { {1,2,3,n} } = {X};

    Ban u:

    + Cy bao trm ca th l rng ngha l cha c cnh no c a vo cy bao

    trm. (T = ).

    + Gi chnh l nhng nh ca th => V = { {1}, {2}, {3},{n} }

    Thut ton c vit c th vi v d trn nh sau:

    - Khi to T = { }

    V = { {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9} }

    - a cnh nh nht (1,2) vo cy khi 1 c ni vi 2 nn thay {1} v {2}

    trong V bng {1,2}

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 60

    T = { (1,2) }

    V = { {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9} }

    - a cnh (4,5) vo cy:

    T = { (1,2); (4,5)}

    V = { {1,2}, {3}, {4,5}, {5}, {6}, {7}, {8}, {9} }

    - a cnh (5,6) vo cy:

    T = {(1,2); (4,5); (5,6)}

    V = { {1,2}, {3}, {4,5,6}, {7}, {8}, {9} }

    - a cnh (6,9) vo cy:

    T = {(1,2); (4,5); (5,6); (6,9)}

    V = { {1,2}, {3}, {4,5,6,9}, {7}, {8} }

    - a cnh (1,4) vo cy:

    T = {(1,2); (4,5); (5,6); (6,9); (1,4)}

    V = { {1,2,4,5,6,9}, {3}, {7}, {8} }

    - a cnh (5,7) vo cy:

    T = {(1,2); (4,5); (5,6); (6,9); (1,4); (5,7)}

    V = { {1,2,4,5,6,9}, {3}, {8} }

    - a cnh (3,5) vo cy:

    T = {(1,2); (4,5); (5,6); (6,9); (1,4); (5,7); (3,5)}

    V = { {1,2,3,4,5,6,7,9}; {8} }

    - a cnh (7,8) vo cy:

    T = {(1,2); (4,5); (5,6); (6,9); (1,4); (5,7); (3,5); (7,8)}

    V = { {1,2,3,4,5,6,7,8,9} }

    Kt thc v V = {X};

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 61

    Ch : Th t chn cc cnh a vo cy l u tin cc cnh c trng s b hn.

    Cu trc d liu

    Ta biu din th di dng lit k cc cung (ch p dng cho th nh)

    Nh vy dung mt mng hai chiu:

    e: array [1Emax, 1..3] of Integer

    vi e [i,3] l trng s ca cung (e[i,1], e[i,2],,emax)

    Mng T: array [1Emax, 1..2] of Integer biu din cc cnh c a vo T.

    Dng bin solT xc nh s lng cnh a vo cy T;

    (khi to solT: = 0 ngha l cy T = )

    Biu din V l tp hp ca cc tp hp rt phc tp, do ta dng mt Cu trc d

    liu n gin m phng tp V nh sau:

    Mng tap V: array[1Nmax] of integer

    Trong hai nh i v j thuc cng mt tp Gk no nu nh tap V[i] = tap [j]

    Nh vy ban u gi tr ca mng tapV l tapV[i] gn bng i;

    mi bc khi ta ghp cc nh ca 2 tp Gk v Gh thnh mt tp th ta ch vic gn

    c cc gi tr ca tp Gk bng gi tr ca tp Gh.

    V d vi N = 10;

    mt bc no

    mng tapV = [ 1,2,2,6,6,2,1,4,4,10]

    ta hiu l V = { {1,7}; {2,3,6}, {4,5}, {8,9}, {10} }

    n bc tip theo ta a cnh (4,6) vo cy ngha l cn gp 2 tp {2,3,6 }v {4,5}

    thnh mt. Ta gn tapV[4] = tapV[2;]

    tapV[5] = tapV[2;];

    Khi mng tapV = [1,2,2,2,2,2,1,4,4,10]

    iu ny rt c li khi ta gp hai tp hp con vi nhau.

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 62

    Vi ton b d liu c m t nh trn ta c phn ci t chng trnh:

    Chng trnh minh ha :

    Program kruskal;

    Const Nmax = 100;

    Emax = 1000;

    Type mangcanh = array [1..Emax, 1..2] of integer;

    Dinh = array [1Nmax] of integer;

    Var e,T; Mangcanh;

    TapV: Dinh;

    N, solE, solT: integer;

    (*solE l s cnh ca th cn solT l s cnh c a vo T*)

    Prrocudure Doctep;

    (* D liu vo gm c:

    - Dng u tin cha s N

    - T dng th hai tr i mi dng cha 3 s nguyn l 2 nh ca mt cnh v trng

    s ca cnh .

    *)

    Var f: text;

    i,j,k: integer;

    Begin Assign (f, cung.txt); Reset(f);

    Readln (F,N);

    SolE: = 0;

    While not eof(f) do

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 63

    begin Read (f,i,j,k);

    Inc(solE);

    e[solE,1]: = i;

    e[solE,2]: = j;

    e[solE,3]: = k;

    End;

    Close (f);

    End;

    Procedure Sapxep;

    (*Dng phng php sp xp ni bt sp xp cc cnh theo th t trng s t

    nh ti ln(*)

    Var ij : integer;

    Beign

    For i:= 1 to solE-1 do

    For j:= i + 1 to solE do

    If e[i,3] > e[j,3] then

    Doicho(i,j);

    End;

    Procedure Doicho (i,j;integer);

    Var temp: integer;

    Begin

    Temp: = e[i,1];

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 64

    e[i,1]: = e[j,1];

    e[j,1]: Temp;

    Temp: = e[i,2];

    e[i,2]: = e[j,2];

    e[j,2]: = Temp;

    Temp: = e[i,3];

    e[i,3]: = e[j,3];

    e[j,3]: = Temp;

    End;

    Procedure TimCay:

    Var i,k, temp:integer;

    Begin

    solT: = 0; (*T = *)

    For i: = 1 to N do

    TapV [i]: = i;

    K: = 0;

    While (not KttapV) and (K

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 65

    v thc hin tip. Ngc li th b qua cnh ny trnh to thnh chu trnh trong

    cy*)

    Begin

    Inc(solT);

    T [solT,1]: = e[k,1];

    T [solT,2]: = e[k,2];

    (* ng nht gi tr trong 2 tp con cha 2 nh e[k,1] v e[k,2] ca V*). a cnh

    vo cy khung.

    temp: = tapV [ e[k,2] ];

    For i: = 1 to N do

    If tapV [i] = temp then

    TapV [i]: = TapV [ e[i,2] ];

    End;

    End;

    End;

    Function KTtapV: Boolean;

    (*Hm kim tra xem cc gi tr ca tp V c bng nhau hay khng*)

    Var i: integer;

    Begin KTtapV: = True;

    For i: = 2 to N do

    If tapV [i] tapV [i] then

    Begin KTtapV: = False;

    Exit;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 66

    End;

    End;

    Procedure GhiTep;

    (*Ta ch vic a cy T ra mn hnh*)

    Var i: integer;

    begin

    Writeln ( Cac cung thuoc cay bao trum nho nhat T la:)

    For i: = 1 to solT do

    Writeln (T [i, l]; ; T[i,2];

    Readln;

    End;

    BEGIN

    DocTep;

    Sapxep;

    TimCay;

    GhiTep;

    END.

    Bi 2 bi : Tm cy bao trm nh nht ca th G

    Phn tch bi ton :

    Gi s T l cy bao trm ti thiu cn xy dng. Gi x ta bt u t nh u.

    Gi U l tp cc nh k vi cc nh c cung ni vi cy T;

    Khi to U = u;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 67

    T = ;

    B1: Chn (u,v) l cnh c trng s b nht vi u

    B2: a nh v vo tp U;

    B3: Nu U = X th kt thc; ngc li th quay li bc 1;

    Cu trc d liu

    Ta biu din th di dng lit k cc cung (ch p dng cho th nh)

    Nh vy dung mt mng hai chiu:

    e: array [1Emax, 1..3] of Integer

    vi e [i,3] l trng s ca cung (e[i,1], e[i,2],,emax)

    Mng T: array [1Emax, 1..2] of Integer biu din cc cnh c a vo T.

    Dng bin solT xc nh s lng cnh a vo cy T;

    (khi to solT: = 0 ngha l cy T = )

    Biu din V l tp hp ca cc tp hp rt phc tp, do ta dng mt Cu trc d

    liu n gin m phng tp V nh sau:

    Mng tap V: array[1Nmax] of integer

    Trong hai nh i v j thuc cng mt tp Gk no nu nh tap V[i] = tap [j]

    Nh vy ban u gi tr ca mng tapV l tapV[i] gn bng i;

    mi bc khi ta ghp cc nh ca 2 tp Gk v Gh thnh mt tp th ta ch vic gn

    c cc gi tr ca tp Gk bng gi tr ca tp Gh.

    V d vi N = 10;

    mt bc no

    mng tapV = [ 1,2,2,6,6,2,1,4,4,10]

    ta hiu l V = { {1,7}; {2,3,6}, {4,5}, {8,9}, {10} }

    n bc tip theo ta a cnh (4,6) vo cy ngha l cn gp 2 tp {2,3,6 }v {4,5}

    thnh mt. Ta gn tapV[4] = tapV[2;]

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 68

    tapV[5] = tapV[2;];

    Khi mng tapV = [1,2,2,2,2,2,1,4,4,10]

    iu ny rt c li khi ta gp hai tp hp con vi nhau.

    Tp U l tp cc nh c cung ni vi T, khai bo T,X: set of 1Nmax;

    Cc thnh phn d liu khc khai bo ging nh phn trc.

    Program Prim;

    Const Nmax = 100;

    Emax = 1000;

    Type mangcanh = array [1Emax, 1...3]of integer;

    Tap = set of 1Nmax;

    Var e,T: Mangcanh;

    VT X: Tap; {X: Tp nh ca th; VT: Tp nh ca cy}

    N, solE, solT: integer;

    (*Th tc c file v ghi file tng t nh trn*)

    Procedure Timcay;

    Var k,i,j: integer;

    TrongsoMin: Longint;

    Begin

    solT: = 0; VT = [xp]

    X: = [ ];

    For i: = 1 to N do

    X: = X + [i];

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 69

    REPEAT

    (*Tm cnh (u,v) sao cho u v c trng s nh nht *)

    TrongsoMin: = MaxLongint;

    For k: = 1 to solE do

    Begin

    If (e[k,l] in VT and not e[k,2] in VT and (e[k,3] < TrongsoMin)

    then

    Begin

    i: = e[k,1];

    j: = e[k,2];

    TrongsoMin: = e[k,3;

    End;

    If not e[k,1] in VT and (e[k,2] in VT and (e[k,3] < TrongsoMin)

    then

    Begin

    i: = e[k,2];

    j: = e[k,1];

    TrongsoMin: = e[k,3];

    End;

    (*a j vo tp U*)

    vT = VT + [j];

    (*a cnh (i,j) vo cy T*)

    inc(solT);

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 70

    T [solT,1]: = i;

    T [solT,2]: = j;

    UNILT U = X;

    End;

    BEGIN

    Docfile;

    Timcay;

    Ghifile;

    END.

    d. Bi tp t gii

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 71

    Bi 9, 10: Bi ton tm ng i ngn nht Mc tiu

    Mc tiu ca bi ny ngi hc c kh nng:- Biu din th trn my tnh bng

    cc phng php khc nhau.

    - p dng c thut ton ford-bellman v dijkstra tm ng i ngn nht ng vi

    mt th xc nh. Ci t c thut ton.

    - Phn tch c bi ton thc t tng ng phn l thuyt hc.

    - Sinh vin c kh nng t hc.

    a. Nhc li l thuyt

    Thut ton dijkstra vi tng lan ta v lu 1 ch s ti mi nh.

    tm li ng i ngn nht, ta lu c tn nh lin k trc n trn ng i

    ngn nht.

    b. bi tp

    Bi tp 1: Biu din th dng ma trn k, danh sch cnh(cung).

    p dng thut ton Dijkstra tm ng i ngn nht t nh 5 ti cc nh cn li

    cho th sau:

    Bi2 Tm ng i ngn nht t 1 n cc nh cn li ca th

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 72

    Bi 3 a th

    Nh bc a th c vic bn, bc a th rt st rut mun v nh ngay

    nhng bc phi a mt th quan trng cho anh B qun Ba nh. Hin ti

    bc qun Thanh Xun. ng i t ch bc ti nh anh B phi i qua mt s

    qun huyn khc vi khong cch gia cc qun nh sau. Hy gip bc a

    th tm ng i ngn nht vi thi gian t nht bc c th v nhanh chng

    gii quyt cng vic gia nh.

    Bi 4 H bt mi

    Mt con h ng trn i cao nhn xung khu rng v pht hin ra 5 con mi

    5 v tr khc nhau. Con h mun bt con Nai trong s 5 con vt l Nai, G,

    Hu, Th, B n tht. Khi con H mun bt con Nai , n phi chy qua

    ng m 4 con vt cn li ang ng. V tr v khong cch m cc con vt

    c biu din nh sau. Tm ng i qung ng m con H phi chy

    l ngn nht bt c con Nai.

    Bi 5 Mo bt chut

    Mo Tom(1) rnh ch chut nh Jeny(4) ang n trm phomat. T ch Tom n

    Jeny c ci x nc(2), chu cy cnh (3), gh sofa(5) vi thi gian Tom chy

    n cc vt trn v gia cc vt cng nh thi gian Tom chy t cc vt

    n Jeny nh sau: x nc chu cy cnh

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 73

    Tom Jeny

    gh sofa

    Tom c th chy n np ch cc vt trn rnh v bt Jeny. Tm thi gian

    nh nht Tom chy n bt Jeny m khng b Jeny pht hin(nh np vo cc

    vt c trn ng i)

    Bi 6 Cho th c trng s G = (X,E). Tm ng i ngn nht gia 2 nh xp v

    kt thc ca th

    c. Hng dn gii

    Bi 1:

    Biu din th dng ma trn k nh sau:

    0 18 M 13 12

    18 0 11 3 M

    M 11 0 5 9

    13 3 5 0 4

    12 M 9 4 0

    Dng thut ton Dijkstra gim trng s 1 ln ti mi nh ta c:

    K hiu:

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 74

    D[i] : Ch s ti nh i (Tng trng s t nh xut pht ti nh i, c cp nht

    theo tng bc ca thut ton)

    T[i] : Tn nh k ngay trc nh i trn ng i ngn nht c cp nht theo

    tng bc ca thut ton

    Bc nh 5

    c

    chn

    Cc nh

    cha xt

    D[1],T[1] D[2],T[2] D[3],T[3] D[4],T[4]

    Khi to

    1

    2

    3

    4

    5

    4

    2

    3

    1

    1,3,4,2

    1,3,2

    1,3

    1

    12,5

    12.5

    12,5

    12,5

    12,5

    7,4

    7,4

    7,4

    7,4

    9,5

    9,5

    9,5

    9,5

    9,5

    4,5

    4,5

    4,5

    4,5

    4,5

    Trong , bc khi to c cho trong dng u tin.

    Thc hin bc 1, trong D[v], vi v=1, 2, 3, 4 dng u tin, th D[4 ]

    = 4 l nh nht nn nh 4 c chn. Ta xc nh li cc D[v] cho cc nh cn li

    1, 2 v 3. Ch c D[2] l nh i v D[2] = 7, v D[4] + c(4,2) = 4 + 3 = 7 < .

    Tip tc thc hin cc bc 2, 3, 4 ta thu c di ng i ngn nht t

    nh 0 ti cc nh 1, 2, 3, 4 c cho dng cui cng trong bng, chng hn

    di ng i ngn nht t 5 ti 2 l D[2] = 7 v l di ca ng i 542.

    Bi2 Tm ng i ngn nht t 1 n cc nh cn li ca th

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 75

    Kt qu tnh ton theo thut ton c trnh by theo bng di y: Quy c vit

    hai thnh phn ca nhn theo th t d[v]. nh c nh du * l nh c chn

    c nh nhn bc lp ang xt, nhn ca n khng bin i cc bc tip theo, v

    th ta nh du (-).

    Bc lp nh 1 nh 2 nh 3 nh 4 nh 5 nh 6

    Khi 0, 1 1, 1* , 1 , 1 , 1 , 1

    1 - - 6, 2 3, 2* , 1 8, 2

    2 - - 4, 4* - 7, 4 8, 2

    3 - - - 7, 4 5, 3*

    4 - - - 6, 6* -

    Bi 3 Nh bc a th c vic bn, bc a th rt st rut mun v nh ngay

    nhng bc phi a mt th quan trng cho anh B qun Ba nh. Hin ti bc

    qun Thanh Xun. ng i t ch bc ti nh anh B phi i qua mt s qun

    huyn khc vi khong cch gia cc qun nh sau

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 76

    Hy gip bc a th tm ng i ngn nht vi thi gian t nht bc c th v

    nhanh chng gii quyt cng vic gia nh.

    *Phn tch bi ton: Bc a th cn chuyn th t qun Thanh Xun ti Qun Ba

    nh nhng li khng c ng i trc tip t qun Thanh Xun ti qun Ba nh

    m phi i qua mt s qun khc. Vi im xut pht l qun Thanh Xun tm cc

    con ng c th i ti qun Ba nh v tnh khong cch gia hai qun khi i

    qua cc con ng khc nhau.

    Ta tnh khong cch t Qun Thanh Xun (Q.TX) ti cc Q.Thanh Tr (Q.TT),

    Q.Hong Mai (Q.HM), Q.Ty H (Q.TH), Q.H ng (Q.H). Ta thy khng c

    ng i trc tip t Q.Thanh Xun n Q.H ng, nn cn 3 s la chn l i

    qua Q.TT, Q.HM v Q.TH. Ta c khong cch tng ng l:

    Q.TX Q.TT = 1km;

    Q.TX Q.HM = 7km;

    Q.TX Q.TH = 6km;

    NX: Qung ng t Q.TX n Q.TT ngn nht vi 1km. Vy ta s chn v nh

    du li i ny.

    Tip tc tnh ng i t Q.TT n Q.HM, Q.TH, Q.H v Q.B . Ta c:

    Q.TT Q.HM = ;

    Q.TT Q.TH = 3km;

    Q.TT Q.H = 4km;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 77

    Q.TT Q.B = 1km;

    NX: Qung ng t Q.TT n Q.B l ngn nht 1km v l ch ca chuyn i.

    Vy tng khong cch t Q.TX Q.B l 1+1=2km.

    Gi s cc nh 1,2,3,4,5,6 tng ng vi cc qun Thanh Xun, Hong Mai, Ty

    H, Thanh Tr, H ng v qun Ba nh. Ta c th sau:

    Tm ng i ngn nht t qun Thanh Xun ti Ba nh l tm ng i ngn

    nht gia t nh 1 ti nh 6 ca th trn. p dng thut ton Dijkstra ta c bng

    sau:

    1 2 3 4 5 6

    Khi to -1,0* 1, 1, 1, 1, 1,

    1 ---- 1,7 1,6 1,1* ---- ----

    2 ---- ---- 4,4 ---- 4,5 4,2*

    3 ---- ---- ----* ---- 6,4 ----

    4 ---- ---- ---- ---- ----* ----

    T bng trn ta thy con ng ngn nht i t nh 1 ti nh 6 l 1 4 6

    vi trng s l 2, ni cch khc bc a th c th i t qun Thanh Xun ti qun

    Thanh Tr v ti qun Ba nh vi qung ng l 2km.

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 78

    Bi 4 Mt con h ng trn i cao nhn xung khu rng v pht hin ra 5 con mi

    5 v tr khc nhau. Con h mun bt con Nai trong s 5 con vt l Nai, G,

    Hu, Th, B n tht. Khi con H mun bt con Nai , n phi chy qua

    ng m 4 con vt cn li ang ng. V tr v khong cch m cc con vt c

    biu din nh sau. Tm ng i qung ng m con H phi chy l ngn nht

    bt c con Nai.

    *Phn tch bi ton: Con h khng th bt c tt c 5 con vt , v n ch c th

    chn 1. Trong cc con ng i n ch con Nai m n mun bt , c nhng

    con ng di v ngn khc nhau. N phi tnh ton sao cho qung ng chy n

    con Nai l ngn nht phng con vt nhn thy t xa v b chy.

    Gi v tr H, B, Th, Hu, Nai tng ng l 1,2,3,4 vi cc nh ca th sau:

    i t 1 n 5 ta tnh khong cch t 1 n cc nh cn li:

    1 2 = 4

    1 3 =

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 79

    1 4 =

    1 5 =

    Ta thy c ng i duy nht l 12.

    Tip tc tnh khong cch t 2 3, 4, 5 ta c:

    2 3 = 10

    2 4 = 2

    2 5 = 8

    NX: Qung ng 2 4 l nh nht. nh du v chn con ng ny.

    Khi chn ng i, nu ng no c chn v nh du s khng c xt li

    na. Vy cn li 2 nh cha xt l 3 v 5, nhng khng c ng i trc tip t 4

    3, ch cn ng 4 5 vi khong cch l 1km v l mc ch ca bi ton.

    KL: ng i ngn nht t 1 5 l 1 2 4 5 vi khong cch l 1+4+2=7

    p dng thut ton Djstral ta c bng sau:

    1 2 3 4 5

    Khi to -1,0* 1, 1, 1, 1,

    1 ---- 1,4* ---- ---- ----

    2 ---- ---- 2,14 2,6* 2,12

    3 ---- ---- ---- ---- 4,7*

    4 ---- ---- ---- ---- ----

    Nhn vo bng trn ta thy ng i ngn nht t 1 n 5 l 1 - 2 - 4 - 5 vi trng s

    l 7.

    Ni cch khc con H mun bt v n tht con Nai th H phi i qua ch con B v

    con Hu.

    Bi 5

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 80

    Mo Tom(1) rnh ch chut nh Jeny(4) ang n trm phomat. T ch Tom n

    Jeny c ci x nc(2), chu cy cnh (3), gh sofa(5) vi thi gian Tom chy

    n cc vt trn v gia cc vt cng nh thi gian Tom chy t cc vt

    n Jeny nh sau: x nc chu cy cnh

    Tom Jeny

    gh sofa

    Tom c th chy n np ch cc vt trn rnh v bt Jeny. Tm thi gian

    nh nht Tom chy n bt Jeny m khng b Jeny pht hin(nh np vo cc

    vt c trn ng i)

    Bi lm:

    Gi s v tr cc i tng tng ng vi cc nh 1, 2, 3, 4, 5 ca th sau:

    Phn tch tng t nh 2 bi ton trn ta s tm c con ng cn tm

    p dng thut ton Dijkstra tm ng i ngn nht t 1 4

    1 2 3 4 5

    Khi to -1,0* 1, 1, 1, 1,

    1 ---- 1,3* ---- ---- 1,12

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 81

    2 ---- ---- 2,8 ---- 2,7*

    3 ---- ---- ---- 5,15* ----

    4 ---- ---- ---- ---- ----

    Da vo bng trn ta c con ng ngn nht l 1 2 5 - 4 vi thi gian l 15

    Bi 6 Cho th c trng s G = (X,E). Tm ng i ngn nht gia 2 nh xp v

    kt thc ca th.

    Phn tch bi ton :

    Phng php 1: Ti mi nh thc hin vic gim trng s nhiu ln.

    Bi ton ny cng dng mng truoc nh du cc nh trn ng i nh trn v

    dng cu trc hng i.

    C mt im mi l n cn thm mt mng trongso: array[1Nmax] of (tu vo bi ton c th l kiu real hoc kiu longint).

    Trongso[i] bng tng trng s ca cc cung nm trn ng i tnh t nh xp cho

    n i. Bi ton ca chng ta tr thnh tm mng trongso[i] sao cho n t gi tr

    nh nht.

    Thut ton ca phn ny rt ging thut ton duyt chiu rng nhng ci tin mt

    cht l c gn thm mng trng s.

    Khi duyt cc nh k ca mt nh u va ly ra khi hnh i, gp mt nh i k

    vi u ta khng cn bit truoc[i] l nh no, m ta ch quan tm ng i t u n i

    c ngn hn ng c khng (trongso[i]???trongso [u] +a[u,i].

    Trongso [i] chnh l ng i c n nh i, trongso [u] + a[u,i] l ng i mi t

    nh u i n.

    Nu ng mi ngn hn ngha l trongso[u] + a[u,i]

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 82

    truoc[i]:= u;

    Thut ton c trnh by c th nh sau:

    Khi to:

    - Mng trongso [i] = Maxlongint;

    - Truoc [xp]: = -1;

    - Khi ng hng i v a xp vo;

    Thc hin bc lp.

    REPEAT

    - Ly 1 nh khi hng i gn vo bin u;

    - Duyt cc nh i k vi u;

    (Nu ng i mi ngn hn ng i c th thc hin gim trng s cho i)

    Nu trongso[i]>trongso[u] +a[u,i] th

    + trongso[i]:= trongso[u] + a[u,i];

    + truoc [i]:= u;

    UNILT ;

    Chng trnh minh ha :

    Program DIJSTRA_phuongphap1;

    Const Nmax = 100;

    Type MATRANKE = array[1Nmax, 1Nmax] of integer;

    MANG = array [1Nmax] of Longint;

    Var a: MATRANKE;

    q, duong, truoc, trongso: MANG;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 83

    N, sold, xp, kt, qf, ql: Integer;

    fifo: text:

    (*fi: file input la tep doc du lieu vao

    fo: file output la tep doc du lieu ra*)

    Procedore Doctep;

    Var i,j: integer;

    Begin

    Asign (fi,matran:inp); Reset(fi);

    Readln (fi, N);

    For i: = 1 to N do

    For j: = 1 to N do

    Read (fi, a[i,j]);

    Readln (f,xp,kt);

    Close (f);

    End;

    Procedure InitQ:

    (*Thu tuc khoi dong hang doi *)

    Begin

    qf: = 0;

    ql:= 1;

    End;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 84

    Procedure Put (u:integer);

    (*Dua mot phan tu vao hang doi *)

    Begin

    Inc(ql);

    q[ql]: = u;

    End;

    Function Get: Integer;

    (*Ham lay mot phan tu ra khoi hang doi*)

    Begin

    Get:= q[qf];

    inc [qf];

    End;

    Function Qempty: Boolean;

    (*Ham kiem tra hang doi da rong hay cha*)

    Begin

    Qempty:= (qf>ql);

    End;

    Procudure Dijstra

    (*Thu tuc duyet Dijstra theo phuong phap 1: giam trong so nhieu lan*)

    Var i, u: integer;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 85

    Begin (*cac buoc khoi tao (giong trong phan thuat toan)*)

    truoc[xp]:= -1;

    Fullhar() = For i:= 0 to N do Trongso[i]:= MaxLongint;

    Trongso[xp]:= 0;

    InitQ;

    Put(xp);

    (*Bat dau vong lap*)

    REPEAT

    (*Lay mot dinh khoi hang doi gan vao bien u*)

    u:= Get;

    For i:= 1 to N do

    (*Duyet tat ca cac dinh i cua do thi*)

    If (a[u,i]>=0) and (trongso [i]>trongso [u] + a[u,i]then

    (*Neu dinh i ke voi u va duong di cu lon hon duong di moi

    thi:*)

    Begin (*Gan lai gia tri duong di moi*)

    trongso [i]:= trongso [u] +a[u,i];

    (*danh dau duong di moi den i qua dinh truoc do la u*)

    truoc [i]:= u;

    Put(i);

    End;

    UNILTQempty: (*Ket thuc khi khong di duoc nua*)

    End;

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 86

    Procedure Timnguoc;

    Var u:integer;

    Begin

    sold:= 0; (*Mng ng rng*)

    (*Ban u gn u bng kt*)

    u:= kt;

    Repeat

    (*Vi mi bc lp ghi u vo mng duong*)

    Inc(sold);

    duong[sold]:= u;

    (*Mun n bc tip theo phi gn u = truoc [u]*)

    u:= truoc[u];

    Unilt u = -1; (*Ket thuc khi u:= -1 do luc truoc ta gan truoc [xp]= -1).

    End;

    procedure Ghitep:

    Var ij:integer;

    Begin

    Asign (fo, kq.out); Rewrite (fo);

    If truoc [kt] 0 then

    Begin Timnguoc;

    For i:= sold downto 1 do

    Write (fo, duong [i], )

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 87

    End else

    Writeln (f,0);

    Close (fo);

    End;

    BEGIN

    Doctep;

    Dijstra;

    Ghitep;

    END.

    Phng php 2: Gim trng s 1 ln ti mi nh.

    lm r thut ton ny ta xt v d c th sau:

    G= (X,E) a ra hnh v

    Mng ma trn trng s nh sau:

    3

    5

    1 4

    2 6

    7

    Ta tm ng i bt u t nh 1.

    -1 1 2 5 -1 -1 -1

    1 -1 -1 3 -1 -1 -1

    2 -1 -1 7 -1 -1 -1

    5 3 7 -1 5 -1 13

    -1 -1 -1 5 -1 2 -1

    -1 -1 -1 -1 2 -1 6

    -1 -1 -1 13 -1 6 -1

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 88

    Cc bc thc hin ca thut ton i vi v d ny nh sau:

    (M = MaxLongint). Trnh t thc hin mi bc t tri sang phi.

    Bc

    nh c

    trng s

    nh nht

    trong B

    Tp A Tp B Mng trongso Mng Truoc

    B1 [1] [2,3,4,5,6,7] [0,M,M,M,M,M,M] [-1,0,0,0,0,0,0,]

    B2 [1] [2,3,4,5,6,7] [0,1,2,5,M,M,M] [-1,1,1,1,0]

    B3 2 [1,2] [3,4,5,6,7] [0,1,2,4,M,M,M] [-1,1,1,2,0,0,0]

    B4 3 [1,2,3] [4,5,6,7] [0,1,2,4,M,M,M] [-1,1,1,2,0,0,0]

    B5 4 [1,2,3,4] [5,6,7] [0,1,2,4,8,M,17] [-1,1,1,2,4,0,4]

    B6 5 [1,2,3,4,5] [6,7] [0,1,2,4,8,10,17] [-1,1,1,2,4,5,4]

    B7 6 [1,2,3,4,5,6] [7] [0,1,2,4,8,10,16] [-1,1,1,2,4,5,6]

    B8 7 [1,2,3,4,5,6,7] [] nt Nt

    B9 Kt thc

    Bi ton ny cng dng mng trc nh du cc nh trn ng i nh trn

    nhng khng dng cu trc hng i.

    Dng mt mng trongso: array [1Nmax] of (tu vo bi ton

    c th l kiu real hoc kiu longint).

    Trongso [i] bng tng trng s ca cc cung nm trn ng i t nh xp cho n

    i. Bi ton ca chng ta tr thnh tm mng trongso [i] sao cho n t gi tr nh

    nht.

    Chia tp cc nh ca th X thnh 2 phn

    a. Tp cc nh c trng s c gn c nh A.

    b. Tp cc nh c trng s c gn tm thi B.

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 89

    Trong sut qu trnh duyt nhng nh c a vo tp A th trng s ca nh

    khng thay i v l di ng i ngn nht t xp n n, nhng nh tp B c

    trng s thay i n khi nh nht th c a vo tp A. Cch thay i trng s

    nh nht c th hin nh sau:

    B1: Khi to

    Khi to cc gi tr ca mng trongso = Maxlongint (hoc Maxreal)

    Lp hai tp A v B. Ban u A rng cn B = X

    Duyt tt c cc nh u k vi nh xp th gn trongso [u] = a[u, xp] v truoc[u] =

    xp;

    REPEAT

    B2: Tm nh v thuc tp B c trng s nh nht.

    a nh v vo tp A (B/{v}; A + {v})

    B3: Duyt tt c cc nh i thuc B m k vi v

    Nu trongso[i]>trongso[v]+ a[i,v] th

    + Gn li trongso [i]:= trongso[v] + a[i,v];

    + ng thi gn truoc [i]:= v;

    UNILT ;

    Cu trc d liu

    Ma trn k biu din quan h ca th:

    a(i;j) = -1 nu i khng ni vi j

    >= nu i ni vi j v a(a,j) l trng s ca cung 9i,j).

    Mng truoc v trongso c m t nh trn.

    Mng duong lu cc nh trn ng i.

    biu din tp A v B ta dng kiu tp hp.

    tap:set of

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 90

    Trong phn ci t trn, khai bo tp A ch l minh ho cho thut ton cn trong bi

    ton ny khng cn thit phi s dng tp A, ta hiu ngm khi loi mt phn t khi

    tp B th ngha l ta a n vo tp A.

    Chng trnh minh ha :

    Program Difstra_Phuongphap2;

    Const Nmax = 100;

    Type Mang = array [0Nmax] of Longint;

    Tapcacdinh = set of aNmax;

    Var a: array[1Nmax, 1Nmax] of integer;

    duong, truoc, trongso: Mang;

    N, sold, xp, kt: Integer;

    tap A, tap B: set of Tapcacdinh;

    (*Ch trnh by th tc Dijstra, cc th tc khc tng t nh phn trn *)

    Prcedure Dijstra;

    Var i, u, v: integer;

    Begin (*B1 khi to cc gi tr cn thit *)

    For i;= 0 to N do

    Trongso [i]:= MaxLongint;

    (*Khi to tp B l tp tt c cc nh ca th*)

    tapB: = [ ];

    For i:= 1 to N do

    tap B:= tapB +[i];

    (*a xp vo tp A*)

    tapA:= [xp]

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 91

    tapB: = tapB - [xp];

    truoc[xp]:= -1;

    (*Tm cc nh k vi xp gn trng s v nhn cho nhng nh *)

    For i:= 1 to N do

    if a [xp;i]>=0 then

    Begin

    trongso[i]:= a[xp,i];

    truoc[i]:= xp

    End;

    REPEAT

    (*Tm nh v c trng s nh nht trong tp B v a vo tp A, loi khi tp

    B*).

    j: = Dinh_co_trong_so_min;

    tapA:= tapA + [j];

    tapB:= tapB + [j];

    (*Tm tt c cc nh thuc B k vi nh v v thc hin vic gim trng s

    cho chng*).

    For i:= 1 to N do

    If (i in tapB) and (a [i,j]>=0 and(trongso[i]>trongso[j] + a[i,j]) then

    Begin

    trongso [i]: = trongso[j] + a[i,j];

    truoc[i]:= j;

    End;

    UNILT tapB = [ ];

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 92

    End;

    (*Hm tm nh c trng s nh nht trong cc nh thuc tp B*)

    Function Dinh_co_trong_so_min: Integer;

    Var i,t: integer;

    Begin tS [it]:= maxint

    For i:= 1 to N do

    If (i in tap B and (trongso[i] < trongso[t] then

    t:=i;

    Dinh_co_trong_so_+min:= t

    End;

    d. Bi tp t gii

    Bi tp 1: p dng thut ton Dijkstra tm ng i ngn nht cho th sau:

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 93

    Bi tp 2: 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 3: Tm hnh trnh tn t xng nht

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 94

    Trn mt mng li giao thng, mt ngi mun i t im A n im B

    bng xe my. Xe cha c ti a 3 lt xng v chy 100km ht 2,5 lt. Cc trm

    xng ch c t cc im dn c, khng t gia ng v ngi ny khng

    mang theo bt k thng cha xng no khc. Hy vit chng trnh nhp vo mng

    li giao thng v xc nh gip ngi ny tuyn ng i t A n B sao cho t

    tn xng nht.

    Bi tp 4: Di chuyn gia cc o

    Trn mt o quc, c N hn o. Gi s tt c cc o u c hnh dng l

    hnh ch nht nm ngang. Trn mi hn o c th c sn bay nm trung tm o,

    c th c cng nm 4 gc o. Trn mi o u c tuyn ng xe but ni 4

    gc o vi nhau v vi trung tm o. Gia 2 o c th i li bng my bay nu

    c 2 o u c sn bay v c th i li bng tu nu c 2 o u c cng.

    Gi s rng:

    - Cc tuyn ng (b, khng, thy) u l ng thng.

    - Chi ph cho mi km v tc ca mi loi phng tin l:

    Phng tin Tc

    (km/h)

    Chi ph

    (/km)

    My bay 1000 1000

    Xe but 70 100

    Tu thy 30 50

    Hy vit chng trnh xc nh tuyn ng v cch di chuyn gia 2 hn

    o trong o quc sao cho:

    - Thi gian di chuyn t nht.

    - Chi ph di chuyn t nht.

    - Thi gian di chuyn t nht nhng vi mt s tin chi ph khng qu

    ng.

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 95

    - Chi ph di chuyn t nht nhng vi thi gian di chuyn khng vt qu T

    gi.

    Bi tp 5: Tm ng ngn nht

    Gi s X l tp cc khu dn c, U l tp cc ng s ni lin cc khu . Ta

    gi s mi ch giao nhau ca cc con ng u thuc X. Vi con ng u, s l(u)

    l di ca u tnh bng km. Hy ch ra tuyn ng i t mt khu i sang khu j sao

    cho tng chiu di l nh nht.

    Bi tp 6: ng i trn li

    Cho 1 ma trn A[M, N], mi phn t ca n cha 1 s t nhin. T 1 (i, j)

    ta c th i sang k n (c chung 1 cnh) nu gi tr ca k ny nh hn gi tr

    lu trong (i, j). Hy tm 1 ng i t (i, j) ti (k, l) trn ma trn sao cho phi i

    qua t nht. Hy tm 1 ng i t (i, j) ti (k, l) trn ma trn sao cho tng gi

    tr cc phi i qua nh nht.

    Bi tp 7 : Tm ng vi chi ph phi tr cho php

    C N thnh ph c nh s t 1..N ni vi nhau bng cc on ng mt

    chiu. Mi on ng bao gm 2 thng s : di v chi ph i ca on ng.

    A sng ti thnh ph 1 v A mun di chuyn n thnh ph N nhanh nht c

    th.

    Bn hy gip A tm ra ng i ngn nht t thnh ph 1 n thnh ph N

    m A c kh nng chi tr tin.

    D liu vo : ROADS.IN

    - Dng u tin cha s nguyn K, 0

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 96

    + L l di ca on ng, 1

  • Bi tp TON RI RC 2 B mn Cng ngh phn mm - 2010

    Trang 97

    Bi 12: Bi ton lung cc i trong mng Mc tiu

    - Trnh by c t tng ch o ca thut ton Ford_Fulkerson v ci t c

    thut ton.

    - Phn tch c bi ton thc t tng ng phn l thuyt hc.

    - Sinh vin c kh nng t hc.

    a. Nhc li l thuyt

    nh ngha 1. Ta gi mng l th c hng G = (V,E), trong c duy

    nht mt nh s khng c cung i vo gi l im pht, duy nht mt nh t khng

    c cung i ra gi l im thu v mi cung e = (v,w) E c gn vi mt s

    khng m c(e) = c(v,w) gi l kh nng thng qua ca cung e.

    nh ngha 2. Gi s cho mng G = (V,E). Ta gi lung f trong mng G =

    (V,E) l nh x f: E R+ gn cho mi cung e =(v,w)