Chapter5 Cac ky thuat thiet ke giai thuat

Embed Size (px)

Citation preview

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    1/89

    1

    Chng 5

    Cc k thut thit k gii thut

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    2/89

    2

    Ni dung

    1. Qui hoch ng2. Gii thut tham lam

    3. Gii thut quay lui

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    3/89

    3

    1. Qui hoch ng

    Quy hoch ng (dynamic programming) gii cc bi ton

    bng cch kt hp cc li gii ca cc bi ton con ca biton ang xt.

    Phng php ny kh dng khi cc bi ton con khng clp i vi nhau, tc l khi cc bi ton con c dng chungnhng bi ton chu (subsubproblem).

    Qui hoch ng gii cc bi ton chu dng chung nymt ln v lu li gii ca chng trong mt bng v sau

    khi phi tnh li khi gp li bi ton chu .Qui hoch ng c p dng cho nhng bi ton ti uha (optimization problem).

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    4/89

    4

    Bn bc ca qui hoch ng

    S xy dng mt gii thut qui hoch ng c th c chialm bn bc:

    3. c trng ha cu trc ca li gii ti u.

    2. nh ngha gi tr ca li gii ti u mt cch quy.

    3. Tnh tr ca li gii ti u theo kiu t di ln.

    4. Cu to li gii ti u t nhng thng tin c tnhton.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    5/89

    5

    Th d1: Nhn xu ma trn

    Cho mt chui gm n matrn, v ta mun

    tnh tch cc ma trn.A1 A2 An (5.1)

    Tch ca xu ma trn ny c gi l m-ng-ngoc-y-

    (fully parenthesized) nu n l mt ma trn n hoc l tchca hai xu ma trn m-ng-ngoc-y- .Th d: A1 A2 A3 A4 c th c m-ng-ngoc-y-theo 5cch:

    (A1(A

    2(A

    3A

    4)))

    (A1((A2A3)A4)((A1A2)(A3A4))(A1(A2A3))A4)

    (((A1A2)A3)A4)

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    6/89

    6

    Cch m ta m ng ngoc mt xu ma trn c nh hngrt ln n chi phtnh tch xu ma trn.Th d: A1 10 100

    A2 100 5A3 5 50

    (A1(A2A3)) thc hin10.000.5 + 10.5.50 = 5000 + 2500= 7500 php nhn v hng.

    (A1(A2A3)) thc hin100.5.50 + 10.100.50 = 25000 + 50000 = 75000php nhn vhng.

    Hai chi ph trn rt khc bit nhau.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    7/89

    7

    Pht biu bi ton nhn xu ma trn

    Bi ton tnh tch xu ma trn:'Cho mt chui gm n matrn, vi mi

    i = 1, 2, , n, ma trn Ai c kch thc pi-1 pi, ta m-ng-ngoc tch ny sao cho ti thiu ha tng s php nhn v

    hng.

    y l mt bi ton ti u ha thuc loi kh.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    8/89

    8

    Cu trc ca mt cch m ng ngoc ti u

    Bc 1: c trng ha cu trc ca mt li gii ti u.Dng Ai..j k hiu ma trn kt qu ca vic tnhAi Ai+1Aj.Mt s m ng ngoc ti u ca tch xu ma trn A1.A2 AnTch xu ngay ti v tr nm gia A

    k

    v Ak+1

    vi mt tr nguynk, 1 k < n. Ngha l, trc tin ta tnh cc chui ma trn A1..kand Ak+1..n v ri nhn chng vi nhau cho ra A1.n.

    Chi ph ca s m ng ngoc ti u ny = chi ph tnh Al..k

    +ch ph tnh Ak+1..n, + chi ph nhn chng li vi nhau.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    9/89

    9

    Din t li gii mt cch quy

    y, nhng bi ton con ca ta l bi ton xc nh chi ph

    ti u ng vi s m ng ngoc cho chui Ai.Ai+1 Aj vi1 i j n.

    t m[i, j] l tng s ti thiu cc php nhn v hng c

    i hi tnh ma trn Ai..j. Chi ph ca cch r nht tnhA1..n s c ghi m[1, n].

    Gi s rng s m ng ngoc ti u tch itch chui Ai

    Ai+l Aj ti gia Akand Ak+l, vi i k

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    10/89

    10

    Mt cng thc quy

    Nh vy, nh ngha quy cho chi ph ti thiu ca mt

    s m ng ngoc cho Ai Ai+l Aj l nh sau:

    m[i, j] = 0 nu i = j,= min {m[i, k] + m[k + 1, j] + pi-1pkpj.}

    nu i < j. (5.2)

    gip theo di cch to mt li gii ti u, hy nhngha:

    s[i, j]: tr ca kti chng ta tch tch xu ma trnAiAi+1Aj t n mt s m ng ngoc ti u.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    11/89

    11

    Mt nhn xt quan trng

    Mt nhn xt quan trng l''S m ng ngoc ca xu con A1A2....Ak bn trong s mng ngoc ti u ca xu A1A2An cng phi l mt s mng ngoc ti u''.

    Nh vy, mt li gii ti u cho bi tan tch xu ma trncha ng trong n nhng li gii ti u ca nhng bi toncon.

    Bc th hai ca phng php qui hoch ng l nh ngha

    tr ca li gii ti u mt cch quy theo nhng li gii tiu ca nhng bi ton con.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    12/89

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    13/89

    13

    Th tc tnh hai bng m v s

    procedure MATRIX-CHAIN-ORDER(p, m, s);begin

    n:= length[p] - 1; for i: = 1 to n do m[i, i] := 0; forl:=2 to n do /* l: length of the chain */ for i:= 1 to n l+ 1 do begin

    j:= i + l 1;m[i, j]:= ; /* initialization */

    for k:= i to j-1 do begin

    q:= m[i, k] + m[k + 1, j] + pi-1pkpj;

    ifq < m[i, j] then begin m[i, j]: = q; s[i, j]: = kendend

    endend

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    14/89

    14

    Mt th d: Tnh tch xu ma trn

    V ta nh ngha m[i, j] ch cho i < j, ch phn ca bng m

    trn ng cho chnh mi c dng.

    Cho cc ma trn vi kch thc nh sau:A1 30 35A2 35 15A3 15 5A4 5 10A5 10 20A6 20 25Hnh 5.1 trnh by bng m v s c tnh bi th tcMATRIX-CHAIN-ORDER vi n = 6.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    15/89

    15

    Mt th d v tnh tch xu ma trn (tt.)Mng m

    i

    1 2 3 4 5 6 6 15125 10500 51375 3500 5000 05 11875 7125 2500 1000 0

    j 4 9357 4375 750 03 7875 2625 0

    2 15750 01 0

    Mng s Hnh 5.1i

    1 2 3 4 5

    6 3 3 3 5 55 3 3 3 4

    j 4 3 3 33 1 22 1

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    16/89

    16

    Mt th d v tnh tch xu ma trn (tt.)

    m[2,5] = min

    = 7125 k = 3 for A2..5

    2 5

    1 2 5

    1 4 5

    m[2,2] m[3,5] p.p p 0 2500 35.15.20 13000

    m[2,3] m[4,5] p p p 2625 100 35.5.30 7125

    m[2,4] m[5m5] p p p 4375 0 35.10.20 11375

    + + = + + = + + = + + = + + = + + =

    Bc 4 ca phng php qui hoch ng l to mt li giiti u t nhng thng tin tnh ton.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    17/89

    17

    Bc 4: To mt li gii ti u

    Ta dng mng s[1..n, 1..n] xc nh cch tt nht tnh

    tch xu ma trn. Mi phn t s[i, j] ghi tr ofk sao cho ti s m ng ngoc ti u tch i xu AiAi+1 Aj thnhhai on ti Akv Ak+1.

    Cho trc chui ma trn A = , bng s v ccch s ivj,th tc quy MATRIX-CHAIN-MULTIPLYsauy tnh tch xu ma trn Ai..j,. Th tc tr v kt qu quatham s AIJ.

    Vi lnh gi ban u lMATRIX-CHAIN-MULTIPLY(A,s, 1, n, A1N)

    Th tc s tr v kt qu ma trn tch sau cng vi mngA1N.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    18/89

    18

    Tnh li gii

    procedure MATRIX-CHAIN-MULTIPLY(A, s, i, j, AIJ);begin ifj > i then begin

    MATRIX-CHAIN-MULTIPLY(A, s, i, s[i, j], X);

    MATRIX-CHAIN-MULTIPLY(A,s, s[i, j]+1, j, Y);MATRIX-MULTIPLY(X, Y, AIJ);

    endelse

    assign Ai to AIJ;end;

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    19/89

    19

    C hai thnh phn then cht m mt bi ton ti u ha phic c th p dng qui hoch ng:

    (1) tiu cu trc ti u (optimal substructure) v

    (2) cc bi ton con trng lp (overlapping subproblems).

    Tiu cu trc ti u

    Mt bi ton c tnh cht tiu cu trc ti u nu li gii tiu cha trong n nhng li gii ti u ca nhng bi ton

    con.

    Cc thnh phn ca quy hoch ng

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    20/89

    20

    Nhng bi ton con trng lp

    Khi mt gii thut quy gp li cng mt bi ton con

    nhiu ln, ta bo rng bi ton ti u ha c nhng bi toncon trng lp.

    Gii thut quy hoch ng li dng nhng bi ton contrng lp bng cch gii mi bi ton con mt ln, ct ligii vo trong mt bng m bng ny s c tham khon khi cn.

    Cc gii thut quy lm vic t trn xungtrong khi cc

    gii thut quy hoch ng lm vic t di ln, Cch sauhu hiu hn .

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    21/89

    21

    Th d 2: Bi ton chui con chung di nht

    Mt chui con (subsequence) ca mt chui (sequence) l

    chui y sau khi b i mt vi phn t.

    Th d: Z = l mt chui con caX = vi chui ch s .

    Cho hai chui X v Y, ta bo Z l chui con chung(commonsubsequence) ca X v Y nu Z l mt chui con ca c haichui X v Y.

    Trong bi ton chui con chung di nht, ta c cho hai

    chui X = v Y = v mun tmchui con chung di nht(LCS) ca X v Y.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    22/89

    22

    Tiu cu trc ti u ca bi ton chui conchung di nht

    Th d: X = v Y = l LCS ca X and Y.

    Cho chui X = , ta nh ngha tin t th ica

    X, vi i= 0, 1, , m, l Xi= .

    nh l 6.1Cho X = v Y = l nhng

    chui, v Z = l LCS ca X v Y.

    1. Nu xm = yn th zk = xm = yn v Zk-1 l LCS ca Xm-1 v Yn-

    1.

    2. Nu xm yn, th zk xm hm Z l LCS ca Xm-1 v Y.3. Nu xm yn, th zk yn hm Z l LCS ca X v Yn-1.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    23/89

    23

    tm mt LCS ca X v Y, ta c th cn tm LCS ca X v

    Yn-1 v LCS ca Xm-1 v Y. Nhng mi trong hai bi toncon ny c nhng bi ton chu tm Xm-1 v Yn-1.

    Gi c[i, j] l chiu di ca LCS ca hai chui Xi v Yj. Nu

    = 0 hayj= 0, th LCS c chiu di 0. Tnh cht tiu cutrc ti u ca bi ton LCS cho ra cng thc quy sau:

    0 nu i =0 hay j = 0

    c[i, j] = c[i-1, j-1]+1 nu i, j > 0 v xi

    = yj

    max(c[i, j-1],c[i-1,j]) nu i,j >0 v xi yj (5.3)

    Li gii quy

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    24/89

    24

    Da vo phng trnh (5.3), ta c th vit mt gii thut

    quy tm chiu di ca mt LCS ca hai chui. Tuynhin, chng ta dng qui hoch ng tnh li giitheo cch t di ln.

    Th tc LCS-LENGTH c hai chui X =

    v Y = l u vo.

    Th tc lu cc tr c[i, j] trong bng c[0..m, 0..n]. Ncng duy tr bng b[1..m, 1..n] n gin ha vic toli gii ti u.

    Tnh chiu di ca mt LCS

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    25/89

    25

    procedure LCS-LENGTH(X, Y)begin

    m: = length[X]; n: = length[Y]; for i: = 1 to m do c[i, 0]: = 0; for j: = 1 to n do c[0, j]: = 0; for i: = 1 to m do

    for j: = 1 to n doifxi = yjthen

    begin c[i, j]: = c[i-1, j-1] + 1; b[i, j]: = endelse ifc[i 1, j] > = c[i, j-1] then

    begin c[i, j]: = c[i 1, j]; b[i, j]: = endelse

    begin c[i, j]: = c[i, j-1]; b[i, j]: = endend;

    Hnh 5.2 sau y trnh by ma trn c ca th d.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    26/89

    26

    yj B D C A B A

    4 3 3 2 2 1 0

    4 4 3 2 2 1 0

    3 3 2 2 2 1 0

    3 3 2 2 1 1 0

    2 2 2 2 1 1 0

    2 2 1 1 1 1 0

    1 1 1 0 0 0 0

    0000000

    xiA

    B

    C

    B

    D

    A

    B

    Hnh 5.2

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    27/89

    27

    Bng b c th c dng to mt LCS ca

    X = and Y =

    Th tuc quy sau y in ra mt LCS ca X v Y. Lnh gi u tin lPRINT-LCS(b, X, n, m).

    procedure PRINT-LCS(b, X, i, j)

    beginifi 0 and j 0 then

    ifb[i, j] = '' '' then begin PRINT-LCS(b, X, i- 1 , j - l ) ;

    print xi

    end else ifb[i,j] = '''' then

    PRINT-LCS (b, X, i-1, j) else PRINT-LCS(b, X, i, j-1)

    end;

    Thi gian tnh tonca th tc PRINT-LCS l O(m+n), v tnht ihayjgim mtn v trong mi

    chng ca quy.

    To chui con chung di nht

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    28/89

    28

    Th d 3. Bi ton ci ti (Knapsack)

    'Mt k trm t nhp vo mt ca hiu tm thy c n mt

    hng c trng lng v gi tr khc nhau, nhng y chmang theo mt ci ti c sc cha v trng lng ti a lM. Bi ton ci ti l tm mt t hp cc mt hng m ktrm nn b vo ci ti t mt gi tr cao nht vinhng mn hng m y mang i.

    Bi ton ny c th gii bng qui hoch ngbng cchdng hai bng costv bestsau y:

    cost[i]cha gi tr ti a m c th thc hin c vi mt

    ci ti c sc cha i

    cost[i] = cost[i size[j]] + val[j]

    best[i]cha mt hng cui cng b vo ti nhm t c

    gi tr ti a.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    29/89

    29

    Mt th d ca bi ton ci ti

    value 4 5 10 11 13

    name A B C D E

    Hnh 5.3 Mt th d ca bi ton ci ti

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    30/89

    30

    for i: = 0 to M do cost[i]: = 0;for j: = 1 to N do /* each of item type */begin

    for i:= 1 to M do /* i means capacity */ifi size[j] > = 0 then

    ifcost[i] < (cost[i size[j]] + val[j]) thenbegin

    cost[i]: = cost[i size[j]] + val[j]; best[i]: = jend;

    end;

    Gii thut quy hoch ng cho bi ton ci ti

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    31/89

    31

    Mt th hin ca ci ti

    K 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

    j=1cost[k] 0 0 4 4 4 8 8 8 12 12 12 16 16 16 20 20 20best[k] A A A A A A A A A A A A A A Aj=2cost[k] 0 0 4 5 5 8 9 10 12 13 14 16 17 18 20 21 22best[k] A B B A B B A B B A B B A B Bj=3cost[k] 0 0 4 5 5 8 10 10 12 14 15 16 18 18 20 22 24best[k] A B B A C B A C C A C C A C Cj=4cost[k] 0 0 4 5 5 8 10 11 12 14 15 16 18 20 21 22 24

    best[k] A B B A C D A C C A C C D C Cj=5cost[k] 0 0 4 5 5 8 10 11 13 14 15 17 18 20 21 23 24best[k] A B B A C D E C C E C C D E C

    Hnh 5.4 Cc mng costv bestca mt th d bi ton ci ti

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    32/89

    32

    Ghi Ch:

    Bi ton ci ti c th d dng gii c nu M khng ln,nhng khi M ln th thi gian chy tr nn khng th chpnhn c.

    Phng php ny khng th lm vic c khi M v trng

    lng/kch thc l nhng s thc thay v s nguyn.

    Tnh cht 5.1.1 Gii thut qui hoch ng gii bi ton citi c thi gian chy t l viNM.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    33/89

    33

    Cc gii thut ti u ha thng i qua mt s bc vi mt

    tp cc kh nng la chn ti mi bc. Mt gii thut thamlam thng chn mt kh nng m xem nhtt nht ti lc.

    Tc l, gii thut chn mt kh nng ti u cc b vi hy

    vng s dn n mt li gii ti u ton cc.Vi th d ca gii thut tham lam:

    - Gii thut Prim tnh cy bao trm ti thiu

    - Gii thut Dijkstra gii bi tan nhng li i ngnnht t mt nh ngun (single-source shortest pathsproblem).

    Gii thut tham lam

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    34/89

    34

    Gi s ta c mt tp S = {1, 2, , n} gm n hot ng mcng mun s dng cng mt ti nguyn, th d nh mtging ng, m ch c th c dng bi mt hot ngti mt lc.

    Mi hot ng ic thi im bt u si v mt thi im ktthc fi, m si fi. Nu c la chn, hot ng idin ratrong thi khong [si, fi). Hot ng ivjl tng thch nu

    thi khong [si, fi) v [sj, fj) khng ph lp ln nhau (tc l, i

    vjl tng thch nu si >= fj hay sj >= fi).

    Bi ton xp lch cc hot ng l chn ra mt chui cchot ng tng thch vi nhau v c s hot ng nhiu

    nht.

    Bi ton xp lch cho cc hot ng (Activity-Selection Problem)

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    35/89

    35

    Gii thut tham lam cho bi ton xp lch cchot ng

    Trong th tc p dng gii thut tham lam gii bi tonxp lch cc hot ng, ta gi s rng cc hot ng nhp voc sp theo th t tngca thi im kt thc:f1 f2 fn.procedure GREED-ACTIVITY-SELECTOR(S, f) ; /* s isthe array keeping the set of activities and f is the array keepingthe finishing times */begin

    n := length[s]; A := {1}; j: = 1; for i: = 2 to n do ifsi >= fjthen /* i is compatible with all activities in A */

    begin A: = A {i}; j: = i end

    end

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    36/89

    36

    Th tc Greedy-activity-selector

    Hot ng c chn bi th tc GREEDY-ACTIVITY-

    SELECTER thng l hot ng vi thi im kt thc smnhtm c th c xp lch mt cch hp l. Hot ng cchn theo cch tham lam theo ngha n s li c hi xp lch cho c nhiu hot ngkhc.

    Gii thut tham lam khng nht thit em li li gii ti u.Tuy nhin th tc GREEDY-ACTIVITY-SELECTOR thngtm c mt li gii ti u cho mt th hin ca bi ton xplch cc hot ng.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    37/89

    37

    i si fi

    1 1 4

    2 3 5

    3 0 6

    4 5 7

    5 3 86 5 9

    7 6 10

    8 8 119 8 12

    10 2 13

    11 12 14

    Hnh 5.5 Mt th dca bi ton xp lch

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    38/89

    38

    Hai thnh phn chnh ca gii thut tham lam

    C hai tnh cht m cc bi ton phi c c th p dng

    gii thut tham lam l: (1) tnh cht la chn tham lam v(2) tiu cu trc ti u.

    La chn c thc hin bi gii thut tham lam ty thucvo nhng la chn lm cho n by gi, nhng n

    khng ty thuc vo bt k la chn trong tng lai haynhng li gii ca nhng bi ton con. Nh vy, mt giithut tham lam tin hnh theo kiu t trn xung, thc hinmi lc mt la chn tham lam.

    Tnh cht tiu cu trc ti u (Optimal Substructure)Mt bi tan c tnh cht tiu cu trc ti u nu mt ligii ti u cha trong n nhng li gii ti u cho nhngbi ton con.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    39/89

    39

    S khc bit gia qui hoch ng v gii thut tham lam

    khi dng gii bi ton ti u l rt t nh.Bi ton ci ti dng 0-1 c nh nghi nh sau:

    'Mt k trm t nhp vo mt ca hiu tm thy n loi mnhng c trng lng v gi tr khc nhau (mn hng th ic gi

    tr vi la v trng lng wi), nhng ch c mt ci ti vi sccha v trng lng lM mang cc mn hng. Bi ton ci til tm mt t hp cc mn hng m k trm nn chn b vo citi t c mt gi tr ti a vi nhng mn hng m y lyi..

    Bi ton ny c gi l bi ton ci ti dng0-1 v mimn hng th hoc l ly i hoc l b li, k trm khngth ly i ch mt phn ca mn hng.

    Gii thut tham lam so snh vi quy hoch ng

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    40/89

    40

    Bi ton ci ti dng phn s (Fractionalknapsack problem)

    Trong bi ton ci ti dng phn s, tnh tit cng nh vy,nh k trm c th ly i mt phn ca mt mn hng.

    C hai bi ton u c tnh cht tiu cu trc ti u.

    i vi bi ton ci ti dng 0-1, xt mt t hp nng M km em li gi tr cc i. Nu ta ly mn hng thjra khiti, nhng mn hng cn li cng l t hp em li gi tr lnnht ng vi trng lng ti a M - wj m k trm c th ly

    i t n-1 loi mt hng tr mt hng thj.

    i vi bi ton ci ti dng phn s, xt trng hp khi taly ra khi ti wj-wk ca mt hng thj, nhng mn hng

    cn li cng l t hp em li gi tr ln nht ng vi trnglng M (wjw) m k trm c th ly i t n-1 loi mt

    hng tr mt hng thj.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    41/89

    41

    Bi ton ci ti dng phn s (tt.)

    Ta dnggii thut tham lam cho bi ton ci ti dng phn

    s v qui hoch ngcho bi ton ci ti dng 1-0. gii bi ton ci ti dng phn s, trc tin ta tnh h sgi tr tin trn mt n v trng lng (vi/wi)ca tng mthng.

    K trm bt u bng cch ly cng nhiu cng tt mthng c h s vi/wiln nht. Khi loi mt hng ny cnm k trm cn c th mang thm c na th y s cngnhiu cng tt mt hng c h s vi/wiln nh v c nh thcho n khi y khng cn c th mang thm na.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    42/89

    42

    Hnh 5.6

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    43/89

    43

    procedure GREEDY_KNAPSACK(V, W, M, X, n);

    /* V, W are the arrays contain the values and weights of n objectsordered so that V

    i

    /Wi

    Vi+1

    /Wi+1

    . M is the knapsack capacity and X is

    solution vector */

    B qua thi giansp th t ccmn hng, gii

    thut ny c phc tp O(n).

    var rc: real; i: integer;begin for i:= 1 to n do X[i]:= 0;

    rc := M ; // rc = remaining knapsackcapacity // for i := 1 to n do begin

    ifW[i] > rc then exit;X[i] := 1; rc := rc W[i]

    end; ifi n then X[i] := rc/W[i]end

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    44/89

    44

    M Huffman

    Ch ny lin quan n vn nn file (file

    compression). Cc m Huffman l k thut c dngph bin v rt hu hiu cho vic nn d liu, tit kimt 20% n 90% l in hnh.

    Bc u tin ca vic xy dng m Huffman l mtn s xut hin (frequency) ca mi k t trong tp tinc m ha.

    Gi s chng ta c mt tp tin 100000 k t m chng

    ta mun lu tr dng nn.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    45/89

    45

    a b c d e f

    Tn s 45 13 12 16 9 5

    M c chiu di c nh 000 001 010 011 100 101M c chiu di thay i 0 101 100 111 1101 1100

    Chng ta xt bi ton thit k mt m nh phn cho k t

    (binary character code) theo mi k t dc din tbng mt trng bit nh phn.

    Nu chng ta dng mt m c chiu di c nh (3 bit) din t 6 k t:

    a = 000, b = 001, . . . , f = 101

    Th cn tt c 300000 bit m ha ton tp tin.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    46/89

    46

    M c chiu di thay i

    Mt m c chiu di thay i(variable-length code) c th lm

    vic tt hn mt m c chiu di c nh, n cho nhng k thay xut hin nhng m ngn v nhng k t hay xut hinnhng m di hn.

    a = 0, b = 101, . . . f = 1100

    M ny i hi:

    (45. 1 + 13 .3 + 12.3 + 16.3 + 9.4 + 5.4).1000 = 224000 bits

    biu din tp tin, tit kim c 25 %.

    V y cng chnh l m ti u cho tp tin ny.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    47/89

    47

    M phi-tin t (Prefix-code)

    y ta ch xt nhng cch m ha m khng c m ca k t

    no l tin t(prefix) ca m ca mt k t khc. Nhng cchm ha nh vy c gi l m phi tin t(prefix-free-code)hay m tin t(prefix-code).

    C th chng minh c rng s nn tin ti u c thc hin

    bi mt cch m ha k t v l m phi tin t.M phi tin t c a chung v n lm n gin s m hav gii m.

    - S m ha l n gin; ta ch cn ghp k cc m ca cc kt li vi nhau th s biu din c mi k t trong tp tin.

    - S gii m cn mt s biu din thun tin cho m phi tin tsao chophn u ca m c nht ra mt cch d dng.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    48/89

    48

    M phi tin t v cy nh phn

    Biu din cho mt m phi tin t l mt cy nh phn vi mi

    nt l tng ng vi cc k t c cho.Chng ta phn gii mt m nh phn cho mt k t nh lmt li i t nt r n nt l ca k t y, m 0 ng vi rsang con bn tri v 1 ngha l r sang con bn phi.

    M ti u ca mt tp tin thng c biu din bng mtcy nh phn y (full binary tree). Mt cy nh phn y l mt cy nh phn m mi nt khng phi l c haicon.

    Nu C l tp k t m t cc k t ly ra, th cy nh phncho m phi tin t ti u c ng |C| nt l, mi nt l chomt k t, v ng |C|-1 nt ni.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    49/89

    49

    100

    58

    a:45 b:13 f:5e:9d:16c:12

    1486

    1428

    0 1

    0

    01

    10

    0

    1 0

    1

    e:9f:5

    14

    0 1

    30

    0

    d:16

    1

    b:13c:12

    25

    0 1

    55

    0 1

    a:45

    100

    0 1

    (a) (b)

    Hnh 5.7 So snh hai cch m ha

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    50/89

    50

    M phi tin t v cy nh phn (tt.)

    Cho mt cy T tng ng vi mt m phi tin t, chng ta c

    th tnh tng s bit cn m ha mt tp tin.Vi mi k tc trong tp k t C, dngf(c) k hiu tn sxut hin ca c trong tp tin v dT(c) l chiu di ca m cho

    k tc.Th s bit i hi m ha tp tin l

    B(T) = f(c)dT(c)cC

    M chng ta coi l chi phca cy nh phn T.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    51/89

    51

    Huffman xut mt gii thut tham lam cu to mt

    m phi tin t ti u c gi l m Huffman (Huffmancode).

    Gii thut to mt cy nh phn T tng ng vi m ti utheo kiu t di ln. Gii thut bt u vi mt tp gm |C|

    nt l v thc hin mt chui gm |C| tc v trn to racy cui cng.

    Mt hng i c u tin Q, ly tr kha theo tn sf, cdng nhn din hai i tng c tn s nh nht trn

    li vi nhau.Kt qu ca vic trn hai i tng l mt i tng mi mtn s l tng tn s ca hai i tng m c trn.

    Cu to m Huffman

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    52/89

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    53/89

    h t ii th t H ff

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    54/89

    54

    phc tp ca gii thut Huffman

    Gi s Q c hin thc ha bi mt heap nh phn.

    Cho mt tp C gm n k t, vic khi to ca Q cthc thi vi thi gian O(n).

    Vng lpfor c thc thi chnh xc gm |n|-1 ln, v v

    mi tc v lm vic trn heap i hi O(lgn), vng lpny ng gp chi ph O(nlgn) vo thi gian tnh ton.

    Nh vy, thi gian tnh ton ca gii thut HUFFMANtrn tp n k t s l O(nlgn).

    Gii th t l i

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    55/89

    55

    Gii thut quay lui

    Mt phng php tng qut gii quyt vn : thit k

    gii thut tm li gii cho bi tan khng phi l bm theomt tp qui lut tnh tan c xc nh m l bng cchth v sa sai (trial and error).

    Khun mu thng thng l phn r qu trnh th v sa

    sai thnh nhng cng tc b phn. Thng th nhng cngtc b phn ny c din t theo li quy mt cchthun tin v bao gm vic thm d mt s hu hn nhngcng tc con.

    Ta c th coi ton b qu trnh ny nh l mt qu trnh tmkim (search process) m dn dn cu to v duyt qua mtcy cc cng tc con.

    Bi t i hi (Th K i ht

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    56/89

    56

    Cho mt bn c n n vi n2 . Mt con hip s c dichuyn tun theo lut chi c vua c t trn bn c ti u tin c ta x0, y0.

    Vn l tm mt l trnh gm n2 1 bc sao cho ph tonb bn c (mi c ving ng mt ln).

    Cch r rng thu gim bi ton ph n2 l xt bi ton,hoc l

    - thc hin bc i k tip, hay

    - pht hin rng khng kim c bc i hp l no.

    Bi ton ng i ca con hip s (The KnightsTour Problem)

    d

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    57/89

    57

    procedure try next move;begin initialize selection of moves;

    repeat

    select next candidate from list of next moves;ifacceptable thenbegin

    record move;ifboard not full then

    begintry next move; (5.3.1)

    ifnot successful then erase previousrecordingend

    enduntil (move was successful) (no more candidates)

    end

    C h bi di d li

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    58/89

    58

    Chng ta din t bn c bng mt ma trn h.

    type index = 1..n ;var h: array[index, index] ofinteger;h[x, y] = 0: cha h c vingh[x, y] = i: c ving ti bc chuyn th i

    (1 i n2

    )iu kin board not full c th c din t bng i < n2.

    u, v: ta ca n.

    iu kin acceptable c th c din t bng(1un) (1vn) (h[u,v]=0)

    Cch biu din d liu

    d t (i i t i d b l )

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    59/89

    59

    procedure try(i: integer; x,y : index; var q: boolean);var u, v: integer; q1 : boolean;begin initialize selection for moves;

    repeat let u, v be the coordinates of the next move ;if(1un) (1vn) (h[u,v]=0) thenbegin h[u,v]:=i;

    ifi < sqr(n) then (5.3.2)begin

    try(i + 1, u, v, q1); if q1 then h[u,v]:=0endelse q1:= true

    end

    until q1 (no more candidates);q:=q1

    end

    Cho ta ca hin hnh c 8 kh nng chn k

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    60/89

    60

    Cho ta ca hin hnh , c 8 kh nng chn ktip i ti. Chng c nh s t 1 n 8 nh sau:

    76

    85

    14

    23

    S tinh ch sau cng

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    61/89

    61

    S tinh ch sau cng

    Cch n gin nht t c ta u, v tx, y l bng

    cch cng sai bit to ti hai mng a v b.V kc dng nh s ng vin (candidate) k tip.

    program knightstour (output);

    const n = 5; nsq = 25;type index = 1..nvar i,j: index; q: boolean;s: set ofindex;a,b: array [1..8] ofinteger;h: array [index, index] ofinteger;

    (i i i d b l )

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    62/89

    62

    procedure try (i: integer; x, y: index; var q:boolean);var k,u,v : integer; q1: boolean;begin k:=0;

    repeat

    k:=k+1; q1:=false; u:=x+a[k]; v:=y+b[k];if(u in s) (v in s) then

    ifh[u,v]=0 thenbegin

    h[u,v]:=i;

    ifi < nsq thenbegin

    try(i+1, u,v,q1);if q1 then h[u,v]:=0

    end

    else q1:=trueenduntil q1 (k =8);q:=q1

    end {try};

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    63/89

    63

    begins:=[1,2,3,4,5];

    a[1]:= 2; b[1]:= 1;a[2]:= 1; b[2]:= 2;a[3]:= 1; b[3]:= 2;a[4]:= 2; b[4]:=1;a[5]:= 2; b[5]:= 1;

    a[6]:= 1; b[6]:= 2;a[7]:= 1; b[7]:= 2;a[8]:= 2; b[8]:= 1;for i:=1 to n do

    for j:=1 to n do h[i,j]:=0;

    h[1,1]:=1; try (2,1,1,q);ifq then

    for i:=1 to n dobegin

    for j:=1 to n do write(h[i,j]:5);writeln

    endelse writeln (NO

    SOLUTION)end.

    Th khi b l h i i khi

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    64/89

    64

    Th tc quy c khi ng bng lnh gi vi ta khi u x0,

    y0 , t chuyn i bt u.

    H[x0,y0]:= 1; try(2, x0, y0, q)

    Hnh 5.3.1 trnh by mt li gii t c vi v tr vi n = 5.

    231231825

    41724138

    11227219

    16520914

    21101561

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    65/89

    65

    T th d trn ta i n vi mt kiu gii quyt vn mi:

    c im chnh l

    bc hng v li gii y v ghi li thng tin

    v bc ny m sau n c th b tho gv xa ikhi pht hin rng bc ny khng dn n ligii y , tc l mt bc i dn n tnh th btc(dead-end). (Hnh vi ny c gi l quay lui

    -bactracking.)

    Khun mu tng qut ca gii thut quay lui

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    66/89

    66

    procedure try;begin intialize selection of candidates;repeat

    select next;ifacceptable thenbegin

    record it;ifsolution incomplete thenbegin

    try next step; (5.3.3)ifnot successful then cancel recording

    endend

    until successful no more candidatesend

    Khun mu tng qut ca gii thut quay lui

    procedure try (i: integer);N t i i

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    67/89

    67

    procedure try (i: integer);vark : integer;begin k:=0;

    repeat

    k:=k+1; select k-th candidate;ifacceptable thenbegin

    record it;ifi

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    68/89

    68

    Bi ton ny c C.F. Gauss kho st nm 1850,

    nhng ng ta khng hon ton gii quyt c.

    Tm con hu c t vo bn c sao cho khng ccon hu no c th tn cng con hu no.

    Dng khun mu hnh 5.3.1, ta s c c mt thtc sau cho bi ton 8 con hu:

    Bi ton 8 con hu

    procedure try (i: integer);

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    69/89

    69

    procedure try (i: integer);begin

    initialize selection of positions for i-th queen;repeat

    make next selection;ifsafe thenbegin

    setqueen;

    ifi < 8 thenbegintry (i + 1);ifnot successful then remove queen

    end

    enduntil successful no more positionsend

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    70/89

    Vic chn tr cho cc mc b1 b2 c1 c2 c xc nh

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    71/89

    71

    Vic chn tr cho cc mc b1, b2, c1, c2 c xc nhbi cch m cc ch s ca cc mng b v c c tnh.Hy ch rng trn cng mt ng cho chiutt c cc s c cng gi tr ca tng hai ta i+j,v trn cng mt ng chp chiu diagonal, tt ccc s c cng gi tr ca hiu hai ta (i j).

    Nh vy, pht biu setqueen c tinh ch nh sau:

    x[i]:=j; a[j]:=false; b[i+j]:=false;c[i-j]:=false;Pht biu removequeen c chi tit ha nh sau:

    a[j] = true; b[i+j] = true ; c[i-j] := trueiu kinsafe c din t nh sau:

    a[j] b[i+j] c[i-j]

    program eightqueeen1(output); begin

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    72/89

    72

    program eightqueeen1(output);{find one solution to eight queensproblem}var i : integer; q: boolean;

    a : array [1..8] ofboolean;b : array [2..16] ofboolean;c : array [7..7] ofboolean;x : array [1..8] ofinteger;procedure try(i: integer; var q:

    boolean);var j: integer;begin

    j:=0;repeat

    j:=j+1; q:=false;ifa[j] b[i+j] c[i-j] then

    beginx[i]:=j;a[j]:=false; b[i+j]:=false;c[i-j]:=false;

    ifi

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    73/89

    73

    beginfor i:= 1 to 8 do a[i]:=true;for i:= 2 to 16 do b[i]:=true;

    for i:= 7 to 7 do c[i]:=true;try (1,q);ifq thenfor i:=1 to 8 do

    write (x[i]:4);writelnend

    Mt li gii ca bi ton 8 con hu c cho hnh v sau:

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    74/89

    74

    H

    H

    H

    H

    H

    H

    H

    H1

    23

    4

    5

    6

    7

    8

    S m rng: Tm tt c cc li gii

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    75/89

    75

    S m rng l tm khng ch mt li gii m tt c

    nhng li gii ca bi ton cho.

    Phng php:Mt khi mt li gii c tm thy vghi li, ta tip tc xt ng vin k trong qu trnh chn

    ng vin mt cch c h thng.Khun mu tng qut c dn xut t (5.3.4) vc trnh by nh sau:

    S m rng: Tm tt c cc li gii

    procedure try(i: integer);

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    76/89

    76

    procedure try(i: integer);var k: integer;begin

    for k:=1 to m dobeginselect k-th candidate;ifacceptable thenbegin

    record it;ifi

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    77/89

    77

    g g g, g gca qu trnh chn, pht biu repeatc thay th bng phtbiufor

    program eightqueens(output);var i: integer;a: array [1.. 8] ofboolean;b: array [2.. 16] ofboolean;c: array [7.. 7] ofboolean;

    x: array [1.. 8] ofinteger;procedure print;var k : integer;begin

    for k : 1 to 8 do write(x[k]:4);writeln

    end {print};

    procedure try (i:integer);var j: integer;begin

    for j:=1 to 8 doifa[j] b[i+j] c[i-j] then

    beginx[i]:=j;a[j]:=false; b[i+j]:= false;c[i-j]:=false;ifi < 8 then try(i+1) else print;

    a[j]:=true; b[i+j]:= true;c[i-j]:= true;end

    end {try};

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    78/89

    78

    beginfor i:= 1 to 8 do a[i]:=true;

    for i:= 2 to 16 do b[i]:=true;for i:= 7 to 7 do c[i]:=true;try(1);

    end.

    Gii thut m rng c th sn sinh tt c 92 li giicho bi ton 8 con hu.

    Nhng tht ra ch c 12 li gii tht s khc bitnhau.

    Mi hai li gii c lit k trong bng sau:

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    79/89

    79

    Mi hai li gii c lit k trong bng sau:x1 x2 x3 x4 x5 x6 x7 x8 N

    =========================================================

    1 5 8 6 3 7 2 4 8761 6 8 3 7 4 2 5 2641 7 4 6 8 2 5 3 2001 7 5 8 2 4 6 3 1362 4 6 8 3 1 7 5 5042 5 7 1 3 8 6 4 400

    2 5 7 4 1 8 6 3 722 6 1 7 4 8 3 5 2802 6 8 3 1 4 7 5 2402 7 3 6 8 5 1 4 2642 7 5 8 1 4 6 3 160

    2 8 6 1 3 5 7 4 336

    Nhng gi tr ct N ch s ln th tm mt an ton. Trungbnh cn 161 php th trong 92 li gii ny.

    Cy khng gian trng thi

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    80/89

    80

    Cy khng gian trng thi

    tin din t gii thut quay lui, ta xy dng cu trc cyghi nhng la chn c thc hin. Cu trc cy nyc gi l cy khng gian trng thi(state space tree) haycy tm kim (search tree).

    Nt r ca cy din t trng thi u tin trc khi qutrnh tm kim li gii bt u.

    Cc nt mc u tin trong cy din t nhng la chnc lm ng vi thnh phn u tin ca li gii.

    Cc nt mc th ha trong cy din t nhng la chnc lm ng vi thnh phn th hai ca li gii v cc

    mc k tip tng t nh th.

    Mt nt trn cy KGTT c gi l trin vng nu n tng

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    81/89

    81

    Mt nt trn cy KGTT c gi l trin vngnu n tngng vi li gii b phn m s c th dn n li gii y; tri li, n c gi l mt li gii khng trin vng.

    Cc nt l din t nhng trng hp b tc (dead end) haynhng li gii y .

    Th d: Cho mt bi ton nh sau:

    Tp bin: X, Y, Z.

    Gn tr t tp {1,2} vo cc bin sao cho tha mn cc rngbuc: X = Y, X Z, Y > Z.

    Hy gii bi ton bng mt gii thut quay lui.Cy khng gian trng thi ca bi ton ny c cho hnhv sau:

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    82/89

    82

    X =1 X =2

    Y = 1

    Y=2

    Y = 1Y=2

    Z =1Z =2

    Z=1Z=2

    li gii

    Hnh 5.9 Th d v cy Khng Gian Trng Thi

    phc tp ca gii thut quay lui

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    83/89

    83

    phc tp ca gii thut quay lui

    Thi gian tnh ton ca cc gii thut quay lui thngl hm m (exponential).

    Nu mi nt trn cy khng gian trng thi c trungbnh nt con, v chiu di ca li i li gii l N, ths nt trn cy s t l vi N.Thi gian tnh ton ca gii thut quy tng ngvi s nt trn cy khng gian trng thi nn c

    phc tp hm m.

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    84/89

    Gii thut DFS ci bin

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    85/89

    85

    Gii thut DFS ci bin

    iu ny c th thc hin c bng cch sa li th tc visit

    nh sau:procedure visit( k: integer);var t: integer;

    beginid := id +1; val[k]:= id;

    for t:= 1 to V do ifa[k, t] = 0 then visit(t);

    id := id 1; val[k] := 0end;

    Mt th d v bi ton TSP

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    86/89

    86

    A

    F

    2

    D

    B C

    1

    1

    42

    1

    G

    E

    6

    1

    2

    IH 2

    3

    J K

    L M

    1

    3

    1

    4

    1

    2

    Hnh 5.10

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    87/89

    tng nhnh v cn

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    88/89

    88

    g

    Khi p dng gii thut DFS ci bin sinh ra mi li i n,

    trong qu trnh tm kim mt li i tt nht (tng trng snh nht) cho bi ton TSP, c mt k thut ta nhnh quantrng l kt thc s tm kim ngay khi thy rng n khng thno thnh cng c.

    Gi s mt li i c ch phx c tm thy. Th tht v ch duyt tip trn li i cha-y- no m chi ph cho nhin gi ln hnx. iu ny c th c thc hin bngcch khng gi quy th tc visitnu li i cha-y-

    hin hnh ln hn chi ph ca li i y tt nhtcho nby gi.

    tng nhnh v cn (tt.)

  • 8/14/2019 Chapter5 Cac ky thuat thiet ke giai thuat

    89/89

    g ( )

    R rng ta s khng b stli i chi ph nh nht no nu ta

    bm st mt chin lc nh vy.K thut tnh cn (bound) ca cc li gii cha-y- hn ch s li gii phi d tm c gi lgii thut nhnh vcn.

    Gii thut ny c th p dng khi c chi ph c gn vo ccli i.