Bai Giang Phan Tich Thiet Ke Va Danh Gia Thuat Toan

download Bai Giang Phan Tich Thiet Ke Va Danh Gia Thuat Toan

of 74

Transcript of Bai Giang Phan Tich Thiet Ke Va Danh Gia Thuat Toan

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