1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Phân tích thiết kế và giải thuật - Chương 1: Kỹ thuật phân tích giải thuật

59 39 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 59
Dung lượng 2,89 MB

Nội dung

Bài giảng Phân tích thiết kế và giải thuật - Chương 1: Kỹ thuật phân tích giải thuật cung cấp cho người học các kiến thức: Tại sao cần phải phân tích giải thuật, tiêu chuẩn đánh giá giải thuật, phương pháp đánh giá. Mời các bạn cùng tham khảo.

KỸ THUẬT PHÂN TÍCH GIẢI THUẬT • Tại cần phải phân tích giải thuật ? • Tiêu chuẩn đánh giá giải thuật • Phương pháp đánh giá • Bài tập • Với phần lớn tốn, thường có nhiều giải thuật khác để giải tốn • Làm cách để chọn giải thuật tốt để giải tốn? • Làm cách để so sánh giải thuật giải toán? => Cần đánh giá giải thuật để lựa chọn giải thuật tốt • Đánh giá giải thuật - Tính đắn • Chạy liệu thử • Chứng minh lý thuyết (bằng tốn học chẳng hạn) - Tính đơn giản -> Thường sử dụng vài lần - Tính nhanh chóng (thời gian thực thi) • Quan trọng chương trình thực thi nhiều lần, chương trình có khối lượng liệu nhập lớn • Hiệu thời gian thực thi • Đo thời gian thực chương trình - Lập trình đo thời gian thực - Phụ thuộc vào tập lệnh máy tính - Kỹ người lập trình - Dữ liệu đầu vào Tính độ phức tạp thời gian thực giải thuật = độ đo thực thi giải thuật  Độ phức tạp thời gian thực giải thuật thường tính trường hợp xấu • Đo thời gian thực hiện: - Thời gian thực chương trình hàm kích thước liệu vào, ký hiệu T(n) - Hàm T(n) ≥  n  0, với n kích thước (độ lớn) liệu đầu vào - Ví dụ: Chương trình tính tổng n số có thời gian thực T(n) = cn c số • Đơn vị đo thời gian thực - - Đơn vị tính: số lệnh bản, số thị, … Ví dụ: Khi ta nói thời gian thực chương trình T(n) = Cn có nghĩa chương trình cần Cn thị thực thi • Thời gian thực chương trình khơng phụ thuộc vào kích thước mà cịn phụ thuộc vào tính chất liệu vào • Dữ liệu vào có kích thước thời gian thực chương trình khác - Ví dụ: chương trình xếp dãy số nguyên tăng dần Nhập vào dãy số nguyên => Dãy số nhập vào có thể: có thứ tự, chưa có thứ tự, có thứ tự tăng có thứ tự giảm => Thời gian thực trường hợp: tốt nhất, xấu nhất, trung bình • Tỷ suất tăng (growth rate): T(n) có tỷ suất tăng f(n) tồn C > n0 cho T(n)  Cf(n) n  n0 - - Cho hàm không âm T(n), tồn tỷ suất tăng f(n) - Ví dụ: T(0) = 1, T(1) = 4, T(n) = (n+1)2, Đặt n0 = c = với n ≥ 1, ta có T(n) = (n+1)2 ≤ 4n2 với n ≥ 1, => Tỷ suất tăng T(n) n2 • Ví dụ: chứng minh rằng: Tỷ suất tăng T(n) = 3n3 + 2n2 n3 Giải – Chọn n0 = C = với n ≥ 0, ta có 3n3 + 2n2 ≤ 5n3 Tỷ suất tăng T(n) n3 • Quy tắc: T(n) đa thức n tỷ suất tăng bậc cao n • Cho giải thuật - P1 có T1(n) = 100n2  tỷ suất tăng n2 - P2 có T2(n) = 5n3  tỷ suất tăng n3 Giải thuật chạy nhanh ?  phụ thuộc vào kích thước liệu vào Xét n  20 T1(n) > T2(n) Xét n  20 T1(n)  T2(n) So sánh tỷ suất tăng so sánh trực tiếp hàm T(n)  10 Nếu nghiệm lớn nghiệm riêng độ phức tạp nghiệm • Nếu nghiệm riêng lớn nghiệm độ phức tạp nghiệm riêng • • Tuy nhiên, tính nghiệm khơng phải lúc dễ! 45 Ta tính nghiệm riêng trường hợp d(n) có dạng đặc biệt • • Hàm nhân, hàm có tính chất nhân (multiplicative function): + - Hàm d(n) có tính nhân d(x.y) = d(x).d(y) - Ví dụ: d(n) = n2 hàm nhân d(x.y) = (x.y)2 = x2.y2 = d(x).d(y) + d(n) = 3n2 khơng phải hàm nhân 46 • Nếu d(n) hàm nhân, ta có nghiệm riêng: • Hay nghiệm riêng 47 • Trường hợp 1: Nếu a > d(b), ak > [d(b)]k T ( n)  O (a k )  O (a logb n )  O (n logb a ) • Trường hợp 2: Nếu a < d(b), ak < [d(b)]k T (n)  O(d (b)k )  O(d (b)logb n )  O(nlogb d (b ) ) • Trường hợp 2: Nếu a = d(b), T ( n)  O ( n logb a log b n) 48 • Giải phương trình đệ quy sau với T(1) = 49 Ví dụ: GPT với T(1) = - Phương trình có dạng phương trình tổng quát - d(n)=n hàm nhân - a = b = d(b) = b = < a = - T(n) = O(nlogba) = O(nlog4) = O(n2) - 50 16/06/2014 Ví dụ: GPT với T(1) = Phương trình có dạng phương trình tổng quát - d(n) = n2 hàm nhân - a = b = - d(b) = b2 = = a - T(n) = O(nlogbalogbn) = O(nlog4logn) = O(n2logn) - 51 Ví dụ: GPT với T(1) =      Phương trình có dạng phương trình tổng qt d(n)=n3 hàm nhân a = b = d(b) = b3 = > a T(n) = O(nlogbd(b)) = O(nlog8) = O(n3) 52 16/06/2014 Ví dụ: GPT với T(1) = - PT thuộc dạng phương trình tổng quát d(n) = nlogn hàm nhân - Nghiệm = nlogba = nlog2 = n - Do d(n) = nlogn hàm nhân nên ta phải tính nghiệm riêng cách xét trực tiếp k 1 j k j a d( b )  j 0 53 k 1 k 1 j 0 j 0 NR   a j d(b k  j )   j 2k  j log 2k  j k (k  1) NR   (k  j ) log   O(2k k ) j 0 k 1 k k - Theo giải phương trình đệ quy tổng quát n = bk nên k = logbn, b = nên 2k = n k = logn, - NR= O(nlog2n) > NTN = n - Vậy O(nlog2n) 54 Bài tập • Bài 1: Tính thời gian thực đoạn chương trình sau: a) Tính tổng số Sum := 0; for i:=1 to n begin readln(x); Sum := Sum + x; end; 55 Bài tập • Bài 1: Tính thời gian thực đoạn chương trình sau: b) Tính tích hai ma trận vng cấp n C = A*B: for i := to n for j := to n begin c[i,j] := 0; for k := to n c[i,j] := c[i,j] + a[i,k] * b[k,j]; end; 56 Bài tập • Bài 2: Giải phương trình đệ quy sau với T(1) = a) T(n) = 3T(n/2) + n b) T(n) = 3T(n/2) + n2 c) T(n) = 8T(n/2) + n3 57 Bài tập • Bài 3: Giải phương trình đệ quy sau với T(1) = a) T(n) = 4T(n/3) + n b) T(n) = 4T(n/3) + n2 c) T(n) = 9T(n/3) + n2 58 Bài tập • Bài 4: Giải phương trình đệ quy sau với T(1) = a) T(n) = T(n/2) + b) T(n) = 2T(n/2) + logn c) T(n) = 2T(n/2) + n d) T(n) = 2T(n/2) + n2 59 ... phân tích giải thuật ? • Tiêu chuẩn đánh giá giải thuật • Phương pháp đánh giá • Bài tập • Với phần lớn tốn, thường có nhiều giải thuật khác để giải tốn • Làm cách để chọn giải thuật tốt để giải. .. sánh giải thuật giải toán? => Cần đánh giá giải thuật để lựa chọn giải thuật tốt • Đánh giá giải thuật - Tính đắn • Chạy liệu thử • Chứng minh lý thuyết (bằng tốn học chẳng hạn) - Tính đơn giản -> ... chương trình - Lập trình đo thời gian thực - Phụ thuộc vào tập lệnh máy tính - Kỹ người lập trình - Dữ liệu đầu vào Tính độ phức tạp thời gian thực giải thuật = độ đo thực thi giải thuật  Độ

Ngày đăng: 31/10/2020, 15:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN