Thuat Toan Tham Lam

Embed Size (px)

DESCRIPTION

Thuật toán

Citation preview

  • Nguyn Thanh CmNi DungTHUT TON V PHC TP C1CHIA TR C2QUY HOCH NG C3THUT TON THAM LAM C4THUT TON QUAY LUIC5

  • Nguyn Thanh Cm4.14.2Thut ton tham lam Mt s bi ton minh ha THUT TON THAM LAM

  • Nguyn Thanh Cm4.14.1.14.1.2Thut ton tham lam c im chung ca thut ton tham lam Thut ton tham lam THUT TON THAM LAMS khc nhau gia thut ton tham lam v thut ton quy hoch ng 4.1.3

  • Nguyn Thanh Cm4.1.1 c im chung ca thut ton tham lam Mt bi ton thc hin cu trc con ti u (optimal substructure) nu cch gii quyt ti u ca bi ton cha ng cch gii quyt ti u nhng bi ton con ca n.i vi nhiu bi ton, thut ton tham lam hu nh khng cho ra li gii ti u ton cc, v chng thng khng chy trn tt c cc trng hp. Tuy nhin, cc thut ton ny vn hu ch v chng d thit k v cho ra cc c lng tt v li gii ti u.Nu mt thut ton tham lam cho ra kt qu ti u ton cc cho mt lp bi ton no , th thut ton thng s c chn la, v n chy nhanh hn cc phng php ti u ha khc nh quy hoch ng

  • Nguyn Thanh Cm4.1.2 Thut ton tham lam Thut tham lam c 05 thnh phn:Mt tp hp cc ng vin C (candidate), t to ra li gii. Mt hm la chn Select(C), theo la chn ng vin tt nht b sung vo li gii. Mt hm kh thi Feasible(S x), dng quyt nh nu mt ng vin c th c dng xy dng li gii. Mt hm mc tiu Solution(S), n nh gi tr ca li gii hoc mt li gii cha hon chnh. Mt hm nh gi, ch ra khi no ta tm ra mt li gii hon chnh.

  • Nguyn Thanh Cm4.1.2 Thut ton tham lam Thut tham lam:void Greedy; //Gi s C l tp cc ng c vin{S = ; // S l li gii xy dng theo thut ton While( (C 0) and not Solution(S)){ x Select(C); C = C\x; If (Feasible(S x)) S = S x} If (Solution(S)) Return S }

  • Nguyn Thanh Cm4.1.2 Thut ton tham lam Chng minh tnh ng n: ch ra thut ton khng cho li gii ng ch cn a ra mt phn v dVic chng minh thut ton ng kh hn nhiu v ta s nghin cu c th trong phn sau y :Lp lun bin i (Exchange Argument)Gi s cn chng minh thut ton A cho li gii ng. A(I) l li gii tm c bi thut ton A i vi b d liu I. Cn O l li gii ti u ca bi ton vi b d liu ny.Ta cn tm cch xy dng php bin i bin i O thnh O sao cho:O cng tt khng km g O (Ngha l O vn ti u). O ging vi A(I) nhiu hn O.Gi s xy dng c php bin i va nu. chng minh tnh ng n da vo hai s chng minh sau 1)Chng minh bng phn chng: Gi s A khng ng n, hy tm b d liu I sao cho A(I) khc vi li gii ti u ca bi ton. Gi O l li gii ti u ging vi A(I) nht => A(I) khc O. Dng php bin i chng ta c th bin i O O sao cho O vn ti u v O ging vi A(I) hn => mu thun gi thit O l li gii ti u ging vi A(I) nht.2)Chng minh trc tip: O l li gii ti u. Bin i O O ging vi A(I) hn l O. Nu O = A(I) th A(I) chnh l phng n ti u ngc li bin i O O ging vi A(I) hn. C th ta thu c dy O, O ,O ..ngy cng ging hn, v ch c mt s hu hn iu kin so snh nn ch sau mt s hu hn ln php bin i s kt thc v l ti A(I).

  • Nguyn Thanh Cm4.1.3 S khc nhau gia thut ton tham lam v thut ton quy hoch ng Ton b phng php ti u c th t c, t vic chn ti u trong tng bc chn. V kha cnh ny, thut ton tham lam khc vi thut ton quy hoch ng ch: Trong quy hoch ng chng ta thc hin chn cho tng bc, nhng vic la chn ny ph thuc vo cch gii quyt cc bi ton con. Vi thut ton tham lam, ti mi bc chng ta chn bt c ci g l tt nht vo thi im hin ti, v sau gii quyt cc vn pht sinh t vic chn ny. Vn chn thc hin bi thut ton tham lam khng ph thuc vo vic la chn trong tng lai hay cch gii quyt cc bi ton con. V vy khc vi quy hoch ng, gii quyt cc bi ton con theo kiu bottom-up (t di ln), thut ton tham lam thng s dng gii php top-down (t trn xung).

  • Nguyn Thanh Cm4.24.2.14.2.2Mt s bi ton minh ha Bi ton ng i ca ngi giao hng Bi ton cc on thng khng giao nhau THUT TON THAM LAMBi ton ci ba l 4.2.3Bi ton cy khung nh nht 4.2.4

  • Nguyn Thanh Cm4.2.1 Bi ton ng i ca ngi giao hng Bi ton: C mt ngi i giao hng, cn i giao hng tai n thnh ph. Xut pht ti mt thnh ph no i qua cc thnh ph khc giao hng v tr v thnh ph ban u. Mi thnh ph ch n 1 ln khong cch t mt thnh ph n cc thnh ph khc l xc nh. Gi thit rng, mi thnh ph u c ng i n cc thnh ph cn li. Khong cch gia hai thnh ph c th l khong cch a l, c th l cc ph di chuyn hoc thi gian di chuyn. Ta gi chung l di. Hy tm mt chu trnh (mt ng i khp kn tha mn iu kin trn) sao cho tng di cc cnh l nh nht, hay ni cch khc l tm mt phng n c gi tr nh nht. Bi ton ny cng c gi l bi ton ngi du lch.

    Mt cch tng qut, c th khng tn ti mt ng i gia hai thnh ph a v b no . Trong trng hp ta cho ng i o gia a v b vi di bng

  • Nguyn Thanh Cm4.2.1 Bi ton ng i ca ngi giao hng Bi ton ny c nhiu ng dng rt quan trng. Th d mt my hn cc im c iu khin bi my tnh. Nhim v ca n l hn mt s im d nh trn mt tm kim loi. Ngi th hn bt u t mt im bn ngoi tm kim loi v kt thc ti chnh im ny, do tm kim loi phi c di chuyn n im cn hn c a vo v tr hn ( tng t nh ta a tm vi vo u mi kim ca my khu). Cn tm mt phng n di chuyn tm kim loi sao cho vic di chuyn t nht.Hnh nh sau minh ha bi ton trn:

  • Nguyn Thanh Cm4.2.1 Bi ton ng i ca ngi giao hng Vi phng php vc cn ta xt tt c cc chu trnh, mi chu trnh tnh tng di cc cnh ca n ri chn mt chu trnh c tng di nh nht. Tuy nhin chng ta cn xt tt c (n-1)! chu trnh. Tht vy do mi chu trnh i qua tt c cc nh (thnh ph) nn ta c nh mt nh. T nh ny ta c n-1 cnh ti n-1 nh khc nn ta c n-1 cch chn cnh u tin ca chu trnh. Sau khi chn c cnh u tin chng ta c n-2 cch chn cnh th hai, do ta c (n-1)(n-2) cch chn hai cnh. C l lun nh vy ta s c (n-1)! cch chn chu trnh khc nhau. V l mt thut ton vi thi gian ln hn hm m.

  • Nguyn Thanh Cm4.2.1 Bi ton ng i ca ngi giao hng p dng k thut tham lam ta c:B1: Sp xp cc cnh theo th t tng ca diB2: Xt cc cnh c di t nh n ln a vo chu trnhB3: Mt cnh s c a vo chu trnh s tha mn: Khng to thnh mt chu trnh con Khng to thnh mt nh c cp >= 3Lp li bc ba cho n khi c mt chu trnh.

  • Nguyn Thanh Cm4.2.1 Bi ton ng i ca ngi giao hng

    Th d: cho bi ton TSP vi 6 nh c cho bi cc ta sau: c(1,7) d(15,7) b(4,3) e(15,4)

    a(0,0) f(18,0) 6 thnh ph c tt c 15 cnh. l cc cnh ab, ac, ad, ae, af, bc, bd, be, bf, cd, ce, cf, de, df, ef. di cc cnh y l khong cch Euclide trong cnh de = 3 l nh nht nn de c chn vo chu trnh. K n l 3 cnh ab,bc ef u c di 5 c 3 cnh u tha mn hai iu kin ni trn nn u c chn vo chu trnh, cnh c di nh nht k tip l ac = 7.08 nhng khng th a cnh ny vo chu trnh v n s to ra chu trnh con (abca) cnh df cng b l do tng t. Cnh be cng c xem xt ri cng b loi do to ra nh b v nh e c cp 3, tng t chng ta cng loi bd. cd l cnh tip theo c xt v c chn cui cng ta c chu trnh abcdefa vi tng di l 50. y ch l mt phng n tt. Phng n ti u l chu trnh acdefba vi tng di l 48.39

  • Nguyn Thanh Cm4.2.1 Bi ton ng i ca ngi giao hng

    c(1,7) d(15,7) c(1,7) d(15,7)

    b(4,3) e(15,4) b(4,3) e(15,4)

    a(0,0) f(18,0) a(0,0) f(18,0)

  • Nguyn Thanh Cm4.2.1 Bi ton ng i ca ngi giao hng Thut ton:void Tsp { chutrinh = 0 // sp xp cc cnh trong E theo th t tng ca di Gia = 0 while E0 do { if(cnh c th chn) //khng to thnh chu trnh Chutrinh = chutrinh + [e] Gia = gia + dica e } E = E [e] } phc tp ca thut ton:Vi th n nh y ta c n(n-1)/2 cnh. Hn na thut ton ch ph thuc vo vic sp xp theo s khng gim theo di ca cc cnh. Nn phc tp ca thut ton c O(n) nu chn phng php sp xp QuickSort.

  • Nguyn Thanh Cm4.24.2.14.2.2Mt s bi ton minh ha Bi ton ng i ca ngi giao hng Bi ton cc on thng khng giao nhau THUT TON THAM LAMBi ton ci ba l 4.2.3Bi ton cy khung nh nht 4.2.4

  • Nguyn Thanh Cm4.2.2 Bi ton cc on thng khng giao nhau Bi ton u vo: Cho h cc on thng mu ra: Tp cc on thng khng giao nhau c lc lng ln nht. ng dng thc t: Bi ton xp thi gian biu cho cc hi tho, bi ton phc v khch hnh trn mt my, bi ton la chn hnh ng (V d c n li mi d tic bt u bi ai kt thc bi bj, hy la chn sao cho i c nhiu tic nht).

  • Nguyn Thanh Cm4.2.2 Bi ton cc on thng khng giao nhau xut cc thut ton:Greedy 1: Sp xp cc on thng theo th t tng dn ca u mt tri, bt u t tp S l tp rng, ta ln lt xp cc on thng trong danh sch sp xp v b sung on thng ang xt vo S nu n khng c im chung vi bt c on no trong S. Thut ton:void Greedy1; { S = ; //S l tp cc on thng cn tm

    While (C 0){ (ai, bi) on u tin trong C; C = C\(ai, bi);If ()S = S (ai, bi)} }

  • Nguyn Thanh Cm4.2.2 Bi ton cc on thng khng giao nhau phc tp ca thut ton ch yu l nm th tc sp xp. Nu c n on thng th ta cn c O(nlogn) sp xp bng phng php sp xp MergeSort.Tuy nhin Greedy1 khng cho li gii ti u. V d

    Ta thy rng thut ton s la chn d tic 1, trong khi phng n ti u ca bi ton l (D tic 2, D tic 3)

  • Nguyn Thanh Cm4.2.2 Bi ton cc on thng khng giao nhau Greedy2: Ta chn on c di ngn nht b xung vo S. Tuy nhin thut ton tham lam ny cng khng cho kt qu ti u. Sau y l v d

    Khi thut ton s la chn (d tic 1) trong khi li gii ti u ca thut ton l (d tic 2, d tic 3).

  • Nguyn Thanh Cm4.2.2 Bi ton cc on thng khng giao nhau Greedy3: Xp xp cc on thng theo th t khng gim ca mt phi. Bt u t tp S l tp rng, ta ln lt xt cc on trong danh sch theo th t sp xp v b xung on thng ang xt vo S nu n khng c im chung vi bt c on no trong S. (D tic no kt thc sm s c xt trc).

  • Nguyn Thanh Cm4.2.2 Bi ton cc on thng khng giao nhau Mnh 1: Thut ton Greedy3 cho li gii ti u ca bi ton v cc on thng khng giao nhau.Chng Minh: Gi s Greedy3 khng cho li gii ng. Phi tm b d liu C sao cho thut ton khng cho li gii ti u. Gi s G3(C) l li gii tm c bi Greedy3. Gi O l li gii ti u c s on thng chung vi G3(C) l ln nht. Gi X l on thng u tin c trong G3(C) nhng khng c trong O. on ny l tn ti, v nu tri li th G3(C) O ( mu thun v gi thit G3(C) O ) hay G3(C) O ( Cng mu thun v khi thut ton phi chn on thng X) (O cng c sp xp ging G3(C)).Gi Y l on u tin k t bn tri ca O khng c mt trong G3(C). on Y cng phi tn ti (Chng minh tng t nh trn).Khi mt phi ca on X phi bn tri (nh hn) mt phi ca on Y, v nu tri li thut ton s chn Y thay v X. Xt R rng O gm cc on thng khng giao vi nhau, bi v X khng giao vi bt k on no bn tri n trong O (do G3(C) l chp nhn c) cng nh khng giao vi bt c on no bn phi n trong O (Do mt phi ca X nh hn mt phi ca Y v Y khng giao vi bt c on no bn phi Y trong O). Do O c cng lc lng vi O nn O cng l ti u Tuy nhin ta thy rng O ging vi G3(C) hn l O => mu thun vi gi thit. phc tp tnh ton: phc tp ca thut ton ch yu ph thuc vo th tc sp xp.

  • Nguyn Thanh Cm4.24.2.14.2.2Mt s bi ton minh ha Bi ton ng i ca ngi giao hng Bi ton cc on thng khng giao nhau THUT TON THAM LAMBi ton ci ba l 4.2.3Bi ton cy khung nh nht 4.2.4

  • Nguyn Thanh Cm4.2.3 Bi ton ci ba l Bi ton: Mt nh thm him cn sp n vt vo ba l ca mnh thc hin mt cuc thm him bc cc, vt th i c khi lng l wi, c gi tr l ci (wi, ci N), ba l ch c th mang c khi lng ti a l b (b N). Vy nh thm him cn chn mang nhng vt no? Ta c th tm tt bi ton nh sau:C = {1,2,3,..n}: tp ch s ca vt. Tm I C. Sao cho ;

  • Nguyn Thanh Cm4.2.3 Bi ton ci ba l xut thut ton tham lam Greedy1: Sp xp theo th t khng tng ca gi tr. Xt cc vt theo th t xp, ln lt cht cc vt ang xt vo ba l nu dung lng cn li trong ba l cha n.Tham s ca bi ton l n = 3; b = 19. vt 1 2 3Gi tr 20 16 8Trng lng 14 106Thut ton s la chn vt 1 vi tng gi tr l 20, trong khi li gii ti u ca bi ton l la chn ( vt 2, vt 3 ) vi tng gi tr l 24.

  • Nguyn Thanh Cm4.2.3 Bi ton ci ba l Greedy2: Sp xp vt khng gim ca trng lng. Ln lt cht cc vt vo ba l theo th t sp xp.Tham s ca bi ton l n = 3; b = 11 vt 1 2 3Gi tr 10 16 28Trng lng 5 6 10Thut ton s la chn ( vt 1, vt 2) vi tng gi tr l 26, trong khi li gii ti u ca bi ton l ( vt 3) vi tng gi tr l 28

  • Nguyn Thanh Cm4.2.3 Bi ton ci ba l Greedy3: Sp xp cc vt theo th t khng tng ca gi tr mt n v trng lng (ci /wi). Ln lt xt:

    Tham s ca bi ton: n = 2; b 2.

    Khi thut ton ch la chn c vt 1 vi tng gi tr l 10, trong khi li gii ti u ca bi ton la chn vt 2 vi tng gi tr l 10b-1 ( 10.2-1 = 19 > 10).

  • Nguyn Thanh Cm4.2.3 Bi ton ci ba l Greedy4: Gi Ij l li gii thu c theo thut ton Greedyj (j = 1, 2, 3). Gi

    nh l: Li gii I4 tho mn bt ng thc

    Trong f* l gi tr ti u ca bi ton.

  • Nguyn Thanh Cm4.24.2.14.2.2Mt s bi ton minh ha Bi ton ng i ca ngi giao hng Bi ton cc on thng khng giao nhau THUT TON THAM LAMBi ton ci ba l 4.2.3Bi ton cy khung nh nht 4.2.4

  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht Bi tonCho G = (V, E) l th v hng lin thng vi tp nh V = {1, 2,, n} v tp cnh E gm m cnh. Mi cnh e ca th G c gn vi mt s thc c(e) gi l di ca n. Gi s H = (V, T) l cy khung ca th G. Ta gi di c(H) ca cy khung H l tng di ca cc cnh ca n.

    Bi ton t ra l, trong s tt c cc cy khung ca th G, hy tm cy khung c di nh nht

  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht Th d:

  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht Gii bi ton cy khung nh nht:lit k tt c cc cy khung ca th v chn trong s chng cy khung nh nht. Phng php nh vy trong trng hp th y s i hi thi gian c nn-2 ->khng th thc hin c. Thut ton Kruskal v thut ton Prim. C hai thut ton Kruskal v Prim u da trn t tng ca cc gii thut tham lam mi bc ca thut ton ta chn v b sung vo cy khung cnh c trng s nh nht c th.

  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht Thut ton Kruskal:Thut ton s xy dng tp cnh T ca cy khung nh nht H = (V, T) theo cc bc: B1: Sp xp cc cnh ca th G theo th t khng gim ca di. B2: T = , B3: Trong khi |T|
  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht void Kruskal;{T = ; while ((|T|
  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht Tm cy khung nh nht ca th T = {(3,5), (4,6), (4,5), (1,3),(1,2)} l cy khung nh nht cn tmVi trng lng: 4+8+9+17+20 =58

  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht Thut ton PrimThut ton Kruskal lm vic km hiu qu i vi nhng th dy ( th vi s cnh m n(n-1)/2). Trong trng hp thut ton Prim t ra hiu qu hn. Thut ton Prim cn c gi l phng php ln cn gn nht.

  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht Thut ton PrimTrong phng php ny, bt u t mt nh s ty ca th G, u tin ta ni s vi nh ln cn gn n nht, chng hn l nh y. Ngha l trong s cc cnh k vi nh s, cnh (s,y) c di nh nht. Tip theo trong s cc cnh k vi hai nh s hoc y ta tm cnh c di nh nht, cnh ny dn n nh th ba z, v ta thu c cy b phn gm ba nh v hai cnh. Qu trnh ny s c tip tc cho n khi ta thu c cy gm n nh v n-1 cnh s chnh l cy khung nh nht cn tm.

  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht Gi s th cho ta bi ma trn trng s C={c[i,j], i, j = 1..n}. Trong qua trnh thc hin thut ton, mi bc c th nhanh chng chn nh v cnh cn b sung vo cy khung, cc nh ca th s c gn cho cc nhn. Nhn ca mt nh v s gm hai phn v c dng [d[v], near[v]], trong near[v] dng ghi nhn di ca cnh c di nh nht trong cc cnh ni nh v vi cc nh ca cy khung ang xy dng (ta s gi l khong cch t nh v n tp nh ca cy khung), ni mt cch chnh xc d[v] = min{c[v,w]: w thuc VH} (= c[v,z]), cn near[v] ghi nhn nh ca cy khung gn v nht (near[v] = z).

  • Nguyn Thanh Cm4.2.4 Bi ton cy khung nh nht void Prim;{Chn s l mt nh no ca th; VH = [s]; T = 0; D[s] = 0; near[s] = s; for (v thuc V\VH ) { d[v] = c[s,v]; Near[v] = s; } Stop = false; while (not stop) {tm u thuc V\VH tha mn: d[u] = min {d[v]: u thuc V\VH}; VH = VH hp [u]; T = T hp {(u, near[u])}; if (|VH| = n) {H = (VH, T) l cy khung nh nht ca th; Stop = true; }else for (v thuc V\VH ) if (d[v] > c[u, v] ) { d[v] = c[u,v]; Near[v] = u; } }}

    TRNG CAO NG CNTT HU NGH ViT - HN KHOA KHOA HC MY TNH-----------***-----------

    [email protected]