Giáo trình phân tích giải thuật

83 623 3
Giáo trình phân tích giải thuật

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình phân tích giải thuật

Collected by The_Wall (11/10/2005) M c tiêu Ki n th c c b n c n có h c ch ng Tài li u tham kh o có liên quan n ch ng N i dung: I.1 - S c n thi t ph i phân tích gi i thu t I.2 - Th i gian th c hi n c a gi i thu t I.3 - T su t t ng ph c t p c a gi i thu t I.4 - Cách tính ph c t p I.5 - Phân tích ch ng trình quy V n nghiên c u c a trang k ti p Trong ch ng s nghiên c u v n sau: · S c n thi t ph i phân tích gi i thu t · Th i gian th c hi n c a ch · T su t t ng ng trình ph c t p c a gi i thu t · Tính th i gian th c hi n c a ch · Phân tích ch I.1- S ng trình ng trình quy C N THI T PH I PHÂN TÍCH GI I THU T Trong gi i m t tốn có th có m t s gi i thu t khác nhau, v n c n ph i ánh giá gi i thu t ó l a ch n m t gi i thu t t t (nh t) Thơng th ng ta s c n c vào tiêu chu n sau: 1.- Gi i thu t úng n 2.- Gi i thu t n gi n 3.- Gi i thu t th c hi n nhanh V i yêu c u (1), ki m tra tính úng n c a gi i thu t có th cài t gi i thu t ó cho th c hi n máy v i m t s b d li u m u r i l y k t qu thu c so sánh v i k t qu ã bi t Th c cách làm khơng ch c ch n b i có th gi i thu t úng v i t t c b d li u ã th nh ng l i sai v i m t b d li u ó V l i cách làm ch phát hi n gi i thu t sai ch ch a ch ng minh c úng Tính úng n c a gi i thu t c n ph i c ch ng minh ng toán h c T t nhiên u không n gi n v y s không c p n ây Khi vi t m t ch ng trình s d ng m t vài l n yêu c u (2) quan tr ng nh t Chúng ta c n m t gi i thu t d vi t ch ng trình nhanh chóng có c k t q a , th i gian th c hi n ch ng trình khơng c cao dù ch ng trình ó c ng ch s d ng m t vài l n mà Tuy nhiên m t ch Giáo trình mơn Phân tích Gi i Thu t – ng trình I c s d ng nhi u l n thì yêu c u ti ït ki m th i gian C C N TH Trang Collected by The_Wall (11/10/2005) th c hi n ch ng trình l i r t quan tr ng c bi t i v i nh ng ch ng trình mà th c hi n c n d li u nh p l n ó yêu c u (3) s c xem xét m t cách k Ta g i hi u qu th i gian th c hi n c a gi i thu t I.2- TH I GIAN TH C HI N C A GI I THU T I.2.1- Th i gian th c hi n ch ng trình I.2.2n v o th i gian th c hi n I.2.3- Th i gian th c hi n tr ng h p x u nh t M t ph ng pháp xác nh hi u qu th i gian th c hi n c a m t gi i thu t l p trình o ng th i gian th c hi n c a ho t ng m t máy tính xác nh i v i t p h p c ch n l c li u vào Th i gian th c hi n không ch ph thu c vào gi i thu t mà ph thu c váo t p ch th a máy tính, ch t l ng c a máy tính k x o c a ng i l p trình S thi hành c ng có th u ch nh th c hi n t t t p c bi t d li u vào c ch n v t qua tr ng i này, nhà khoa h c máy tính ã ch p nh n tính ph c t p c a th i gian c ti p c n nh m t s o l ng c n s th c thi c a gi i thu t Thu t ng tính hi u qu s c p n s o l ng c bi t i i s ph c t p th i gian tr ng h p x u nh t I.2.1- Th i gian th c hi n ch ng trình Th i gian th c hi n m t ch ng trình m t hàm c a kích th kích th c ( l n) c a d li u vào Ví d 1-1: Ch t h ng s c d li u vào, ký hi u T(n) ó n ng trình tính t ng c a n s có th i gian th c hi n T(n) = cn ó c Th i gian th c hi n ch ng trình m t hàm khơng âm, t c T(n) ≥0 ∀n≥0 I.2.2n v o th i gian th c hi n n v c a T(n) không ph i n v o th i gian bình th ng nh gi , phút giây mà th c xác nh b i s l nh c th c hi n m t máy tính lý t ng ch Ví d 1-2: Khi ta nói th i gian th c hi n c a m t ch ng trình y c n cn ch th th c thi ng ng trình T(n) = cn có ngh a I.2.3- Th i gian th c hi n tr ng h p x u nh t Nói chung th i gian th c hi n ch ng trình khơng ch ph thu c vào kích th c mà cịn ph thu c vào tính ch t c a d li u vào Ngh a d li u vào có kích th c nh ng th i gian th c hi n ch ng trình có th khác Ch ng h n ch ng trình s p x p dãy s nguyên t ng d n, ta cho vào dãy có th t th i gian th c hi n khác v i ta cho vào dãy ch a có th t , ho c ta cho vào m t dãy ã có th t t ng th i gian th c hi n c ng khác so v i ta cho vào m t dãy ã có th t gi m Vì v y th ng ta coi T(n) th i gian th c hi n ch ng trình tr ng h p x u nh t li u vào có kích th óc n, t c là: T(n) th i gian l n nh t th c hi n ch ng trình i v i m i d li u vào có kích th c n I.3- T SU T T NG VÀ Giáo trình mơn Phân tích Gi i Thu t – PH C T P C A GI I THU T I C C N TH Trang Collected by The_Wall (11/10/2005) I.3.1- T su t t ng I.3.2- Khái ni m ph c t p c a gi i thu t I.3.1- T su t t ng Ta nói r ng hàm khơng âm T(n) có n0 cho T(n) f(n) v i m i n n0 Ta có th ch ng minh su t t ng f(n) c a nó” su t t ng (growth rate) f(n) n u t n t i h ng s c c r ng “Cho m t hàm không âm T(n) b t k , ta ln tìm ct Ví d 1-3: Gi s T(0) = 1, T(1) = t ng quát T(n) = (n+1)2 t n0 = c = v i m i n d dàng ch ng minh r ng T(n) = (n+1)2 4n2 v i m i n 1, t c t su t t ng c a T(n) n2 Ví d 1-4: T su t t ng c a hàm T(n) = 3n3 + 2n2 n3 Th c v y, cho n0 = c = ta d dàng ch ng minh r ng v i m i n 3n3 + 2n2 5n3 I.3.2- Khái ni m ph c t p c a gi i thu t Gi s ta có hai gi i thu t P1 P2 v i th i gian th c hi n t ng ng T1(n) = 100n2 (v i t su t t ng n2) T2(n) = 5n3 (v i t su t t ng n3) Gi i thu t s th c hi n nhanh h n? Câu tr i ph thu c vào kích th c d li u vào V i n < 20 P2 s nhanh h n P1 (T2a[j] then Swap(a[j-1], a[j]); end; Trong cách vi t trên, ch ng trình Bubble g i ch ng trình Swap, ó tính th i gian th c hi n c a Bubble, tr c h t ta c n tính th i gian th c hi n c a Swap D th y th i gian th c hi n a Swap O(1) ch bao g m l nh gán Trong Bubble, l nh {3} g i Swap nên ch t n O(1), l nh {2} th c hi n n-i l n, m i l n t n O(1) nên t n O(n-i) L nh {1} th c hi n n-1 l n nên I.5- PHÂN TÍCH CÁC CH NG TRÌNH QUY I.5.1- Thành l p ph ng trình quy I.5.2- Gi i ph ng trình quy V i ch ng trình có g i ch ng trình quy, ta khơng th áp d ng cách tính nh a trình bày m c I.4.4 b i m t ch ng trình quy s g i b n thân ph quy V i ch ng trình quy, tr c h t ta c n thành l p ph ng trình quy, sau ó gi i ng trình quy, nghi m c a ph ng trình quy s th i gian th c hi n c a ch ng trình I.5.1- Thành l p ph ng trình quy Ph ng trình quy m t ph ng trình bi u di n m i liên h gi a T(n) T(k), ó T(n) th i gian th c hi n ch ng trình v i kích th c d li u nh p n, T(k) th i gian th c hi n ch ng trình v i kích th c d li u nh p k, v i k < n thành l p c ph ng trình quy, ta ph i c n c vào ch ng trình quy Ví d 1-9: Xét hàm tính giai th a vi t b ng gi i thu t quy nh sau: function Giai_thua(n:integer): integer; begin if n=0 then Giai_thua :=1 else Giai_thua := n* Giai_thua(n-1); end; i T(n) th i gian th c hi n vi c tính n giai th a, T(n-1) th i gian th c hi n vi c tính n-1 giai th a Trong tr ng h p n=0 ch ng trình ch th c hi n m t l nh gán Giai_thua:=1, nên t n O(1), ó ta có T(0) = C1 Trong tr ng h p n>0 ch ng trình ph i g i quy Giai_thua(n-1), vi c i quy t n T(n-1), sau có k t qu c a vi c g i quy, ch ng trình ph i nhân k t qu ó i n gán cho Giai_thua Th i gian th c hi n phép nhân phép gán m t h ng C2 V y ta có Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang Collected by The_Wall (11/10/2005) ây ph ng trình quy tính th i gian th c hi n c a ch ng trình quy Giai_thua Ví d 1-10: Chúng ta xét th t c MergeSort m t cách phác th o nh sau: function MergeSort (L:List ; n:integer) : List; var L1,L2 : List; begin if n = then return(L) else begin Chia L thành n a L1 L2 , m i m t n a có dài n/2; return(Merge(MergeSort (L1 , n/2), MergeSort(L2, n/2))); end; end; Ch ng h n s p x p danh sách L g m ph n t 7, 4, 8, 9, 3, 1, 6, ta có mơ hình minh h a a MergeSort nh sau: Hàm MergeSort nh n m t danh sách có dài n tr v m t danh sách ã c s p x p Th c Merge nh n hai danh sách ã c s p L1 L2 m i danh sách có dài n/2, tr n chúng l i v i c m t danh sách g m n ph n t có th t Gi i thu t chi ti t c a Merge ta s bàn sau, ch ý r ng th i gian Merge danh sách có dài n/2 O(n) Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang Collected by The_Wall (11/10/2005) G i T(n) th i gian th c hi n MergeSort m t danh sách n ph n t T(n/2) th i gian th c hi n MergeSort m t danh sách n/2 ph n t , ta có th vi t ph ng trình quy nh sau: Trong ó c1 th i gian ph i t n L có dài Trong tr ng h p n > 1, th i gian c a MergeSort c chia làm hai ph n Ph n g i quy MergeSort m t danh sách có dài n/2 T(n/2) ó ta có 2T(n/2) Ph n th hai bao g m phép th n >1, chia danh sách L thành hai n a b ng Merge Ba thao tác l y th i gian không i i v i phép th ho c t l v i n i v i ng t Merge Nh v y h ng c2 c ch n c2n th i gian t ng làm vi c ó ngo i tr g i quy I.5.2- Gi i ph Có ba ph ng trình quy ng pháp gi i ph ng trình 1.- Ph ng pháp truy h i 2.- Ph ng pháp oán nghi m quy: 3.- L i gi i t ng quát c a m t l p ph Ph ng trình quy ng pháp truy h i Dùng quy thay th b t k T(m) v i m < n vào phía ph i c a ph ng trình cho n t t T(m) v i m > c thay th b i bi u th c c a T(1) Vì T(1) ln h ng nên có cơng th c c a T(n) ch a s h ng ch liên quan n n h ng s Gi i ph ng trình Ví d 1-10: Gi i ph ng trình: Ta có: Gi s n = 2k, trình suy r ng s k t thúc i =k, ó ta có: T(n) = 2kT(1) + kC2n Vì 2k = n nên k = logn v i T(1) =C1 nên ta có Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang Collected by The_Wall (11/10/2005) T(n) = C1n + C2nlogn Hay T(n) O(nlogn) oán nghi m Ta oán m t nghi m f(n) dùng ch ng minh quy n p Thông th ch ng t r ng T(n) f(n) v i m i n ng f(n) m t hàm quen thu c nh logn, n, nlogn, n2, n3, 2n, n!, nn ch ốn d ng c a f(n) ó có m t vài tham s ch a xác nh (ch ng h n f(n) = an v i a ch a xác nh) trình ch ng minh quy n p ta s suy di n giá tr thích p c a tham s Ví d 1-11: Gi i ph ng trình quy Gi s oán f(n) = anlogn V i n = ta th y r ng cách ốn nh v y khơng cb i anlog n có giá tr khơng ph thu c vào giá tr c a a Vì th ta th ti p theo f(n) = anlogn + b V i n = ta có, T(1) = C1 f(1) = b, mu n T(1) Gi s r ng T(k) Gi s n f(1) b C1 (*) aklogk + b v i m i k < n (I.2).Ta s ch ng minh T(n) anlogn + b 2, t (I.1) ta có T(n) = 2T(n/2) + C2n Áp d ng (I.2) v i k = n/2 < n ta có: T(n) = 2T(n/2) + C2n 2[an/2log(n/2) + b] + C2n T(n) anlogn - an + 2b + C2n T(n) (anlogn + b) + [b + (C2 - a)n] N u l y a T(n) (anlogn + b) + [b +(C2 - C2 - b )n ] T(n) (anlogn + b) + (1-n) b T(n) an logn + b C2 + b (**) ta N u ta l y a b cho c (*) (**) u tho mãn T(n) D dàng ta có b = C1 a= C1 +C2 ta c T(n) Giáo trình mơn Phân tích Gi i Thu t – I c an logn + b v i m i n (C1 + C2)nlogn + C1 v i m i n C C N TH Trang Collected by The_Wall (11/10/2005) Hay nói cách khác T(n) O(nlogn) i gi i t ng quát cho m t l p ph ng trình quy gi i tốn kích th c n, ta chia toán ã cho thành a tốn con, m i tóan có kích th c n/b Gi i toán t ng h p k t qu l i c k t qu c a toán ã cho i toán c ng làm nh v y K thu t s d n n m t ch ng trình quy Gi thi t r ng m i tốn kích th c l y m t n v th i gian th i gian chia tốn kích th c n thành tốn kích th c n/b t ng h p k t qu t toán c l i gi i c a toán ban u d(n) (Ch ng h n i v i thí d MergeSort, có a = b = 2, d(n) = C2n/C1 Xem C1 m t n v ) G i T(n) th i gian Ta s d ng ph Gi s n = bk ta gi i tốn kích th ng pháp truy h i gi i ph c n ta có ph ng trình quy: ng trình c: T(n/bk) = T(1) = Thay vào v i i = k ta có: Hàm ti n tri n, nghi m thu n nh t nghi m riêng Trong ph ng trình quy (I.1) hàm th i gian d(n) c g i hàm ti n tri n (driving function) Trong công th c (I.2), ak = nlogba c g i nghi m thu n nh t (homogeneous solutions) Nghi m thu n nh t nghi m xác d(n) = v i m i n Nói m t cách khác, nghi m thu n nh t bi u di n th i gian gi i t t c toán Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 10 ... l n nên I.5- PHÂN TÍCH CÁC CH NG TRÌNH QUY I.5.1- Thành l p ph ng trình quy I.5.2- Gi i ph ng trình quy V i ch ng trình có g i ch ng trình quy, ta khơng th áp d ng cách tính nh a trình bày m c... ng trình mà g i ã c ánh giá Cu i ta tính th i gian cho ch ng trình Gi s ta m t h th ng ch ng trình g i theo s sau: Ch ng trình A g i hai ch ng trình B C, ch ng trình B g i hai ch B1 B2, ch ng trình. .. V i m i gi i thu t s nghiên c u ph n: gi i thu t, ví d , ch ánh giá Giáo trình mơn Phân tích Gi i Thu t – I ng trình phân tích C C N TH Trang 16 Collected by The_Wall (11/10/2005) II.2.1-

Ngày đăng: 16/08/2012, 13:43

Hình ảnh liên quan

Ch ngh ns px p danh sách L gm 8 ph nt 7, 4, 8, 9, 3, 1, 6 ,2 ta có mô hình minh ha a MergeSort nh  sau: - Giáo trình phân tích giải thuật

h.

ngh ns px p danh sách L gm 8 ph nt 7, 4, 8, 9, 3, 1, 6 ,2 ta có mô hình minh ha a MergeSort nh sau: Xem tại trang 7 của tài liệu.
Hình 2-2: Sp xp xen - Giáo trình phân tích giải thuật

Hình 2.

2: Sp xp xen Xem tại trang 19 của tài liệu.
Hình 2-3: S px pn t - Giáo trình phân tích giải thuật

Hình 2.

3: S px pn t Xem tại trang 20 của tài liệu.
i nút 2 cho nút 5. Xét li nút 5 thì nó vn úng v trí nên t ac cây mi trong hình 2-9. - Giáo trình phân tích giải thuật

i.

nút 2 cho nút 5. Xét li nút 5 thì nó vn úng v trí nên t ac cây mi trong hình 2-9 Xem tại trang 28 của tài liệu.
A: array[1..n] of RecordType; - Giáo trình phân tích giải thuật

array.

[1..n] of RecordType; Xem tại trang 32 của tài liệu.
Hình 2-13 minh ha vi c ni hai danh sách. - Giáo trình phân tích giải thuật

Hình 2.

13 minh ha vi c ni hai danh sách Xem tại trang 32 của tài liệu.
Hình 2-13: Sp xp theo hai k - Giáo trình phân tích giải thuật

Hình 2.

13: Sp xp theo hai k Xem tại trang 34 của tài liệu.
Ví d 3-3: Bi u th c5 + 2* 3-4 sc bi u d in bi cây trong hình 3-8: - Giáo trình phân tích giải thuật

d.

3-3: Bi u th c5 + 2* 3-4 sc bi u d in bi cây trong hình 3-8: Xem tại trang 46 của tài liệu.
d hình dung t as xét hai bài toán quen th uc là bài toán TSP và bài toán cái ba lô. - Giáo trình phân tích giải thuật

d.

hình dung t as xét hai bài toán quen th uc là bài toán TSP và bài toán cái ba lô Xem tại trang 52 của tài liệu.
· Nút gc là nút bi u d in cho cu hình bao gm t tc các ph ng án. - Giáo trình phân tích giải thuật

t.

gc là nút bi u d in cho cu hình bao gm t tc các ph ng án Xem tại trang 53 của tài liệu.
Ví d 3-8: V is li u cho trong ví d 3-7 nói trên, ta tính cn di ca nút g cA (hình 3-13) nh  sau: - Giáo trình phân tích giải thuật

d.

3-8: V is li u cho trong ví d 3-7 nói trên, ta tính cn di ca nút g cA (hình 3-13) nh sau: Xem tại trang 54 của tài liệu.
Ví d 3-12: Cho th G bao gm 5 nh a, b, c, d,e và dài cá cc nh c cho trong hình 3- 3-17. - Giáo trình phân tích giải thuật

d.

3-12: Cho th G bao gm 5 nh a, b, c, d,e và dài cá cc nh c cho trong hình 3- 3-17 Xem tại trang 60 của tài liệu.
Li thê mc nh ab =3, bc nh bc =4 t ac cây có giá là16 (Hình 3-18c).             Thêm c nh be = 3, b  c nh ae = 7 ta c cây có giá là 12 - Giáo trình phân tích giải thuật

i.

thê mc nh ab =3, bc nh bc =4 t ac cây có giá là16 (Hình 3-18c). Thêm c nh be = 3, b c nh ae = 7 ta c cây có giá là 12 Xem tại trang 61 của tài liệu.
Ph ng án ban u là chu trình (ab c de a) có giá (t ng dà i) là 25. (Hình 3-20a). - Giáo trình phân tích giải thuật

h.

ng án ban u là chu trình (ab c de a) có giá (t ng dà i) là 25. (Hình 3-20a) Xem tại trang 62 của tài liệu.
N gi ta có th mô hình hóa bn th gi ib ng mt th không có h ng, trong óm inh bi u - Giáo trình phân tích giải thuật

gi.

ta có th mô hình hóa bn th gi ib ng mt th không có h ng, trong óm inh bi u Xem tại trang 64 của tài liệu.
Hình 4-1 mô th at ng c ab nh trong, bm và b nh ngoài trong thao tá cc và ghi p tin - Giáo trình phân tích giải thuật

Hình 4.

1 mô th at ng c ab nh trong, bm và b nh ngoài trong thao tá cc và ghi p tin Xem tại trang 68 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan