Bai Giang Phan Tich Thiet Ke Va Danh Gia Thuat Toan

Embed Size (px)

Citation preview

B GIAO THNG VN TI TRNG I HC HNG HI B MN: KHOA HO C MA Y TI NH KHOA: CNG NGH THNG TIN BI GING PHN TCH THIT K V NH GI THUT TON TN HC PHN : Phn tch thit k v nh gi thut ton M HC PHN : 17208 TRNH O TO : I HC CHNH QUY DNG CHO SV NGNH : CNG NGH THNG TIN

HI PHNG - 2010 i Tn hc phn: Phn tich thi t kva anh gia thu t toan Loi hc phn: 2 B mn ph trch ging dy: Khoa hc My tnhKhoa ph trch: CNTT M hc phn: 17208Tng s TC:3 TS titL thuytThc hnh/XeminaT hcBi tp ln n mn hc 604515000 iu kin tin quyt: Sinh vin phi hc xongcc hc phn sau mi c ng k hc phn ny: Ky thut lp trinh, C u truc d li u, Ton ri rac Mc tiu ca hc phn: -Cung cp cc kin thc c bn vthut ton, cu trc d liu. -Cung c p cac ki n thc vchi n l c xy d ng va anh gia thu t toan -Rn luyn t duy khoa hc. Ni dung ch yu Gm 4 phn: -Cc kin thc c bn v thut ton. -Cc kin thc c bn v sp xp v tim kim d liu. -Cc chin lc thi t kthu t toan : chin lc chia tr, chin lc quay lui, chin lc qui hoach ng, chin lc tham lam -Ki n thc c ban vanh gia phc ta p thu t toan. Ni dung chi tit ca hc phn: TN CHNG MC PHN PHI S TIT TSLTTH/XeminaBTKT Chng I. Cc khi nim c bn54010 1.1. Gii thiu v thut ton 1.1.1 Khi nim v thut ton. 1.1.2. Cc phng php biu din thut ton 1.1.3. Cc v d biu din thut ton s khi 1.2. phc tap thut ton 1.2.1.Cc k hiu ,hm nh gi phc tap thu t toan 1.2.2. Cc lp thut ton 1.3.M i quan h gia c u truc d li u va giai thu t 1.4. M t svi du1 2 0,5 0,5 1 Chng II. S p x p va tim ki m157521 2.1. Bi ton sp xp 2.1.1. S p x p trong 2.1.2. S p x p ngoai 2.1.3. anh gia thu t toan s p x p 2.2. Cc thut ton sp xp c bn 2.2.1. S p x p cho n (Selection Sort) 2.2.2. S p x p i chtr c ti p (Exchange Sort) 2.2.3. S p x p chen (Insertion Sort) 2.2.4. S p x p n i bo t (Bubble Sort) 2.2.5. So sanh cac thu t toan s p x p c ban 0,5 3 2,5 1 ii TN CHNG MC PHN PHI S TIT TSLTTH/XeminaBTKT 2.3. S p x p vun ng 2.3.1. C u truc Heap 2.3.2. Thu t toan xy d ng c u truc Heap 2.3.3. Thu t toan s p x p vun ng 2.4. Timkim tuyn tnh 2.4.1. Bi ton tim kim 2.4.2. Thu t toan tim ki m tuy n tinh 2,5 1 1,5 1 1 Chng III. qui va chi n l c vet ca n116320 3.1. Khi nim v quy 3.1.1. Gii thut quy v th tc quy 3.1.2. Thit k gii thut quy 3.1.3. Hiu lc ca quy. 3.1.4. quy v quy nap ton hc. 3.2. Chi n l c vet ca n (Bruteforce) 3.3. Chi n l c qui quay lui (backtracking) 3.3.1. Vector nghi m 3.3.2. Th tc qui 3.3.3. Cc gi tr c 3.3.4. i u ki n ch p nh n 3.3.5. M t sbai toan backtracking i n hinh 1 0,5 1 1 1 0,5 1 1 2 1 1 Chng IV. Chi n l c chia tri 116311 4.1. C s cua chi n l c chia tri 4.2. Thu t toan s p x p b ng tr n 4.2.1. Thu t toan tr n hai Run 4.2.2. S p x p b ng tr n 4.3. S p x p nhanh (Quick sort) 4.3.1. Chi n l c phn hoa ch 4.3.2. Quick sort 4.4. Tim kim nh phn 4.5. Thu t ton nhn s nguyn 4.5.1. Thu t toan nhn tay 4.5.2. Thu t toan chia tri 4.6. M t sbai toan khac 0,5 1,5 1,5 1 1 0,5 1 1 1 1 Chng V. Qui hoa ch ng126321 5.1. Chi n l c qui hoa ch ng 5.1.1. Cc iu kin p dng 5.1.2. Cc bc trong qui hoach ng 5.1.3. Cc kiu qui hoach ng 5.2. Bi ton day s Fibonaci 5.2.1. Thu t toan qui 5.2.2. Thu t toan qui hoa ch ng 5.3. Bi ton day con chung di nht 5.4. Bi ton nhn ma trn 5.5. M t svi dukhac 1,5 1 1 1,5 1 0,5 1 1 0,5 1 1 Chng VI. Chi n l c tham lam64110 6.1. Nguyn t c tham lam 6.2. Bi ton i tin 6.3. Bi ton sp lch cc s kin 6.3.1. Thu t toan qui 0,5 1 2 1 iii TN CHNG MC PHN PHI S TIT TSLTTH/XeminaBTKT 6.3.2. Thu t toan theo chi n l c tham lam 6.4. So sanh chi n l c tham lam vi chi n l c qui hoa ch ng 0,5 1 Nhim v ca sinh vin : Thamdccbuithuyttrinhcagiovin,thc,tlmbitpdogiovingiao, tham d cc bi kim tra nh k v cui k. Ti liu hc tp : -NguynHuin,Giotrnhmtsvnvthutton,NXBGiodc, 2003 -inh Manh Tng. Cu trc d liu v thut ton. NXB ai hc Quc gia H ni. 2002. -Nguyn Quc Lng, Hong c Hi. Cu trc d liu + gii thut = chng trnh. NXB Gio dc. 1996 -Richard Neapolitan v KumarssNaimipour,FoundationsofAlgorithmsUsing C++ Pseudocode, Third Edition, Jones and Bartlett Publishers, 2004. -ThomasH.Cormen,CharlesE.Leiserson,RonaldL.Rivest,CliffordStein, Introduction to Algorithms, Second Edition, MIT Press, 2001. Hnh thc v tiu chun nh gi sinh vin:-Hinh thc thi cui k : Thi vn p. -Sinh vin phi m bo cc iu kin theo Quy ch ca Nh trng v ca B Thang im: Thang im ch A, B, C, D, F im nh gi hc phn: Z = 0,3X + 0,7Y. BigingnyltiliuchnhthcvthngnhtcaBmnKhoahcMytnh, Khoa Cng ngh Thng tin v c dng ging day cho sinh vin. Ngy ph duyt://20 Trng B mn: ThS. Nguyn Hu Tun (k v ghi r h tn) Bi ging mn hc: Phn tich thi t kva nh gi gii thut iv MC LC LI NI U ............................................................................................................................ 1 CHNG I: CAC KHAI NIM C BN ................................................................................ 2 1. Thu t toan (gii thut) - Algorithm ............................................................................... 2 1.1. i nh nghia thu t toan ............................................................................................. 2 1.2. c trng ca thut ton ........................................................................................ 2 2. Bi u di n thu t toan ...................................................................................................... 2 2.1. M t cc bc thc hin ....................................................................................... 2 2.2. S dng s (lu ) gii thut (flowchart) ....................................................... 3 3. phc tap thut ton Algorithm Complexity .......................................................... 4 3.1. Cc tiu ch nh gi thut ton ............................................................................. 4 3.2. anh gia thi gian th c hi n thu t ton ................................................................. 4 3.3. Cc nh nghia hinh thc v phc tap thut ton ............................................. 5 3.4. Cc lp thut ton .................................................................................................. 7 4. C u truc d li u Data structure .................................................................................. 9 5. Cc chin lc thit k thut ton. ................................................................................ 9 5.1. Duyt ton b (Exhausted search) ......................................................................... 9 5.2. qui quay lui Backtracking ............................................................................. 9 5.3. Chia tri (Divide and Conquer) .......................................................................... 9 5.4. Chi n l c tham lam (Greedy) ............................................................................ 10 5.5. Qui hoa ch ng (Dynamic Programming) .......................................................... 11 6. Bi tp ......................................................................................................................... 11 CHNG II: SP XP (SORTING) V TM KIM (SEARCHING) .................................. 13 1. Bi ton sp xp .......................................................................................................... 13 1.1. S p x p trong (Internal Sorting) .......................................................................... 13 1.2. S p x p ngoi (External Sorting) ......................................................................... 13 1.3. S p x p gin tip .................................................................................................. 13 1.3. Cc tiu chun nh gi mt thut ton sp xp .................................................. 14 2. Cc phng php sp xp c bn ................................................................................ 15 2.1. S p x p cho n (Selection sort) .............................................................................. 15 2.2. S p x p i chtr c ti p (Exchange sort) ........................................................... 17 2.3. S p x p chen (Insertion sort) ............................................................................... 19 2.4. S p x p n i bo t (Bubble sort) .............................................................................. 21 Bi ging mn hc: Phn tich thi t kva nh gi gii thut v 2.5. So snh cc thut ton sp xp c bn ................................................................. 23 3. C u truc d li u Heap, s p x p vun ng (Heap sort). ............................................... 24 4. Tim kim tuyn tnh .................................................................................................... 31 5. Cc vn khac .......................................................................................................... 33 6. Bi tp ......................................................................................................................... 33 CHNG III: QUI V CHIN LC VET CN .......................................................... 34 1.Khi nim qui ..................................................................................................... 34 2.Chi n l c vet ca n (Brute force) ............................................................................. 34 3.Chi n l c quay lui (Back tracking / try and error) ................................................ 35 CHNG IV: CHIN L C CHIA TRI ......................................................................... 38 1.C s ca chin lc chia tri (Divide and Conquer) .......................................... 38 2.S p x p tr n (Merge sort)........................................................................................ 38 3.S p x p nhanh (Quick sort) ..................................................................................... 43 4.Tim kim nh phn .................................................................................................. 46 5.Bi tp ..................................................................................................................... 48 CHNG V: QUI HOA CH NG ........................................................................................ 49 1.Chin lc qui hoa ch ng ..................................................................................... 49 2.Bi ton 1: Day Fibonaci ......................................................................................... 49 3.Bi ton 2: Bi ton nhn day cc ma trn .............................................................. 51 4.Phng phap qui hoa ch ng .................................................................................. 53 5.Bi ton day con chung di nht ............................................................................. 53 6.Bi tp ..................................................................................................................... 57 CHNG VI: CHIN L C THAM LAM (GREEDY) ....................................................... 60 1.Nguyn tc tham lam............................................................................................... 60 2.Bi ton i tin ...................................................................................................... 60 3.Bi ton lp lch....................................................................................................... 61 4.So snh chin lc tham lam v qui hoach ng .................................................... 64 TI LIU THAM KHO ........................................................................................................ 65 THI THAM KHO ............................................................................................................ 66 Bi ging mn hc: Phn tich thi t kva nh gi gii thut 1 LI NI U C u truc d li u va cc chin lc thit k thut ton l cc linh vc nghin cu gn lin vi nhau va la m t trong nhng linh v c nghin cu lu i cua khoa ho c may tinh . H u h t cc chng trinh c vit ra , chay trn my tnh , d ln hay nho, d n gin hay phc tap , u phi s dng cc cu trc d liu tun theo cc trinh t , cch thc lm vic no o, chnh l cc gii thut . Vi c hi u bi t vcac thu t toanv cc chin lc xy dng thut toncho phep cc lp trinh vin, cc nha khoa ho c may tinh co n n tang ly thuy t vng ch c , co nhiu l a cho n hn trong vi c a ra cac giai phap cho cac bai toan th c t .Vi vy vic hc tp mn ho c Phn tich thi t kva danh gia giai thu t l mt i u quan tro ng. Ti liu ny da trn nhng kinh nghim v nghin cu m tc gi a c rt , thu thp trong qu trinh ging day mn hc C u truc d li u va giai thu t tai khoa Cng ngh Thng tin, ai hc Hng hi Vit nam, cng vi s tham kh o cua cac tai li u cua cac ng nghi p , cc tc gi trong v ngoi nc ,t i n tr c tuy n Wikipedia .Vi b y chng c chia thnh cc ch khc nhau t cac khai ni m c ban cho ti thu t toan s p x p , tim kim, cc chi n l c thi t kthu t toan nh qui , quay lui , qui hoa ch ng, tham lam hy vng s cung cp cho cc em sinh vin ,cc ban c gi mt ti liu b ch .Mcdartcgng song vn khng trnh khoi mt s thiu sot, hy vng s c cc ban b ng nghip, cc em sinh vin, cc ban c gi gop chn thnh ti co th hon thin hn na ti liu ny.XingilicmnchnthnhticcbanbngnghipvBanchnhimkhoa Cng ngh Thng tin a tao iu kin gip ti liu ny co th hon thnh. Hi phng, thng 04nm 2010 Tc gi Nguy n Hu Tun Bi ging mn hc: Phn tich thi t kva nh gi gii thut 2 CHNG I: CC KHI NIM C BN 1. Thu t toan (gii thut) - Algorithm 1.1. i nh nghia thu t toan Co rt nhiu cc nh nghia cung nh cch pht biu khc nhau v nh nghia ca thut ton.Theo nh cu n sach giao khoa n i ti ng vi t vthu t toanlIntroductionto Algorithms(Second Edition cua Thomas H .Cormen,Charles E .Leiserson,Ronald L . Rivest va Clifford Stein )thi thut ton c nh nghia nh sau : m t thu t toan la m t thu tc tnh ton xc nh(well-defined) nh n cac gia tri ho c m t t p cac gia tri go i la input va sinh ra ra m t vai gia tri ho c m t t p gia tri c go i la output.Noi mt cch khc cc thut ton ging nh l cc cch thc ,qui trinh hoan thanh m t cng vi c cuthxac i nh(well-defined) no o. Vi th mt oan ma chng trinh tnh cc phn t ca day s Fibonaci l mt ci t ca mt thut ton c th . Th m chi m t ham n gian c ng hai scung la m t thu t toan hoan chinh , m c d o l mt thut ton n gin. 1.2. c trng ca thut ton Tnh ng n :Thu t toan c n phai am bao cho m t k t qua ung sau khi th c hi n i vi cac bd li u u vao . y co thnoi la c trng quan tro ngnh t i vi m t thu t ton. Tnh dng: thu t toan c n phai am bao se dng sau m t shu ha n bc.Tnh xc nh: Cc bc ca thut ton phi c pht biu ro rng , c th, trnh gy nh p nh ng ho c nh m l n i vi ngi o c va hi u, ci t thut ton. Tnh hiu qu: thu t toan c xem la hi u qua n u nh no co kha nng giai quy t hi u qu bi ton t ra trong thi gian hoc cc iu kin cho phep trn thc t p n g c yu c u cua ngi dung. Tnh ph qut :thu t toan c go i la co tinh phquat(phbi n)n u no co thgiai quy t c m t lp cac bai toan tng t . Ngoi ra mi thut ton theo nh nghia u nhn cc gitr u vo c gi chung l cc gi tr d liuInput. K t qua cua thu t toan(thng la m t k t qua cuthnao o tuy theo cc bi ton v thut ton c th) c go i la Output. 2. Bi u di n thu t toan Thng c hai cch biu din mt thut ton, cch th nht l m t cc bc thc hin ca thut ton, cch th hai l s dng s gii thut. 2.1. M t cc bc thc hin biudinthuttonngitamtchnhxcccbcthchincathutton, ngn ng dng m t thut ton c th l ngn ng t nhin hoc mt ngn ng lai ghp gia ngn ng t nhin vi mt ngn ng lp trinh no o gi l cc oan gi m lnh. Bi ging mn hc: Phn tich thi t kva nh gi gii thut 3 V d: m t thut ton tim c s chung ln nht ca hai s nguyn. Input: Hai s nguyn a, b. Output: c s chung ln nht ca a, b. Thut ton: Bc 1: N u a=b th USCLN(a, b)=a. Bc 2: N u a > b th tm USCLN ca a-b v b, quay lai bc 1; Bc 3: Nu a < b th tm USCLN ca a v b-a, quay lai bc 1; 2.2. S dng s (lu ) gii thut (flowchart) M t trong nhng cach phbi n bi u di n thu t toan la s du ng s thu t toan (Algorithm Flowchart). S thu t toan s du ng cac ky hi u hinh kh i c ban ta o thanh m t m ta mang tnh hinh thc(cch ny ro rng hn so vi vic m t cc bc thc hin thut ton )ca thu t toan. Chng ta co th hinh dung vic s dng s gii thut m t thut ton ging nh dung cac ban ve m ta c u truc cua cac toa nha. Cc khi c bn ca mt s thut ton Bt uKt thcNhp xut d liuCu lnhiu kinS12345 Kh i 1: Kh i b t u thu t toan, chi co duy nht mt ng ra; Kh i 2: Kh i k t thuc thu t toan, co th co nhiu ng vo; Khi 3: Th c hi n cu lnh (co th l mt hoc nhiu cu lnh); g m m t ng vao va m t ng ra; Khi 4: R nhnh, ki m tra bi u thc iu kin (bi u thc Boolean), n u biu thc ung thu t toan se i theo nhanh ng(True),nu bi uthc sai thu t toan se i theo nhanh Sai (False). Bi ging mn hc: Phn tich thi t kva nh gi gii thut 4 Kh i 5: Cc cu lnh nhp v xut d liu. 3. phc tp thut ton Algorithm Complexity 3.1. Cc tiu ch nh gi thut ton Thng thng nhgi mc tt, xu v so snh cc thut toncng loai,c th da trn hai tiu chu n: + Thu t toan n gian, dhi u, dcai t. + Da vo thi gian thc hin v ti nguyn m thut ton s dng thc hin trn cc b d liu. Trn thc t cc thut ton hiu qu th khng d hiu, cc ci t hiu qu cung khng ddngthchinvhiucmtcchnhanhchng.Vmtiucvnghchllcc thuttoncnghiuquthcngkhhiu,citcngphctaplaicnghiuqu(khng philcnocungng).Vithnhgivsosnhccthuttonngitathngda trnphctapvthigianthchincathutton,gilphctapthutton (algorithmcomplexity).Vbnchtphctapthuttonlmthmclng(cth khngchnhxc)sphptnhmthuttoncnthchin(toddngsuyrathigian thc hin ca thut ton) i vi mt b d liu input co kch thc N. N c th l s phn t ca mng trong trng hp bi ton sp xp hoc tm kim, hoc c th l ln ca s trong bi ton kim tra s nguyn t chng han. 3.2. anh gia thi gian th c hi n thu t ton minh ha vic nh gi phc tap thut ton ta xem xt v d v thut ton sp xp chn (selection sort) v sp xp i ch trc tip (exchange sort) nh sau: Ci t ca thut ton sp xp chn: for(i=0;i