1. Trang chủ
  2. » Luận Văn - Báo Cáo

THUẬT TÓAN VÀ ĐỘ PHỨC TẠP CỦA NÓ Bài giảng điện tử

67 5 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 67
Dung lượng 410,18 KB

Nội dung

THUẬT TỐN VÀ ĐỘ PHỨC TẠP CỦA NĨ Bài giảng điện tử Ts Lê Xuân Đại Trường Đại học Bách Khoa TP HCM Ngày 30 tháng năm 2011 Nội dung Thuật toán độ phức tạp Đánh giá thời gian thực thuật toán nào? Dùng O(f (x)) để đánh giá thời gian thực thuật toán Các quy tắc để đánh giá thời gian thực thuật toán Các thuật toán độ phức tạp Bài tập Thuật toán độ phức tạp Thuật toán dãy hữu hạn bước, bước mơ tả xác phép tốn, hành động cần thực hiện, ta lời giải toán Thuật toán độ phức tạp Thuật toán dãy hữu hạn bước, bước mô tả xác phép tốn, hành động cần thực hiện, ta lời giải toán Một vấn đề quan trọng thuật toán ta phải đánh giá so sánh thuật toán với Nói chung tiêu chuẩn để đánh giá thuật tốn tốt hay khơng chủ yếu dựa độ phức tạp nó, tức dựa số thời gian cần dùng để thực Thuật toán độ phức tạp Thuật toán dãy hữu hạn bước, bước mơ tả xác phép toán, hành động cần thực hiện, ta lời giải toán Một vấn đề quan trọng thuật toán ta phải đánh giá so sánh thuật tốn với Nói chung tiêu chuẩn để đánh giá thuật toán tốt hay không chủ yếu dựa độ phức tạp nó, tức dựa số thời gian cần dùng để thực Tiêu chuẩn: Thuật tốn sử dụng tiết kiệm nguồn tài nguyên máy tính đặt biệt chạy nhanh được, gọi tính hiệu thuật tốn Tính hiệu thuật toán gồm nhân tố bản: Thuật toán độ phức tạp Thuật toán dãy hữu hạn bước, bước mô tả xác phép tốn, hành động cần thực hiện, ta lời giải toán Một vấn đề quan trọng thuật toán ta phải đánh giá so sánh thuật toán với Nói chung tiêu chuẩn để đánh giá thuật tốn tốt hay khơng chủ yếu dựa độ phức tạp nó, tức dựa số thời gian cần dùng để thực Tiêu chuẩn: Thuật toán sử dụng tiết kiệm nguồn tài nguyên máy tính đặt biệt chạy nhanh được, gọi tính hiệu thuật tốn Tính hiệu thuật tốn gồm nhân tố bản: Dung lượng không gian nhớ cần thiết để lưu liệu vào, kết tính toán trung gian kết thuật toán Thuật toán độ phức tạp Thuật toán dãy hữu hạn bước, bước mô tả xác phép tốn, hành động cần thực hiện, ta lời giải toán Một vấn đề quan trọng thuật toán ta phải đánh giá so sánh thuật toán với Nói chung tiêu chuẩn để đánh giá thuật tốn tốt hay khơng chủ yếu dựa độ phức tạp nó, tức dựa số thời gian cần dùng để thực Tiêu chuẩn: Thuật toán sử dụng tiết kiệm nguồn tài nguyên máy tính đặt biệt chạy nhanh được, gọi tính hiệu thuật tốn Tính hiệu thuật tốn gồm nhân tố bản: Dung lượng không gian nhớ cần thiết để lưu liệu vào, kết tính toán trung gian kết thuật toán Thời gian cần thiết để thực thuật toán Một thuật tốn có hiệu xem thuật tốn có thời gian chạy so với thuật tốn khác Có cách tiếp cận để đánh giá thời gian thực thuật toán: phương pháp thử nghiệm phương pháp lý thuyết Có cách tiếp cận để đánh giá thời gian thực thuật toán: phương pháp thử nghiệm phương pháp lý thuyết Trong phương pháp thử nghiệm, ta viết chương trình cho chạy chương trình với liệu vào khác máy tính Thời gian chạy chương trình phụ thuộc vào nhân tố sau: Một tốn thường có nhiều thuật tốn để giải, thuật tốn khác có độ phức tạp khác Đánh giá độ phức tạp thuật toán cách phân tích, so sánh tìm thuật tốn thuật tốn tối ưu Ví dụ Xét tốn tính giá trị đa thức P(x) = an x n + an−1 x n−1 + + a1 x + a0 , x = x0 ; Một tốn thường có nhiều thuật tốn để giải, thuật tốn khác có độ phức tạp khác Đánh giá độ phức tạp thuật toán cách phân tích, so sánh tìm thuật tốn thuật tốn tối ưu Ví dụ Xét tốn tính giá trị đa thức P(x) = an x n + an−1 x n−1 + + a1 x + a0 , Thuật tốn Tính giá trị hạng tử đa thức Với i=1 đến n tính x0i Tính n i=1 x0i + a0 = P(x0 ) x = x0 ; Một tốn thường có nhiều thuật tốn để giải, thuật tốn khác có độ phức tạp khác Đánh giá độ phức tạp thuật toán cách phân tích, so sánh tìm thuật tốn thuật tốn tối ưu Ví dụ Xét tốn tính giá trị đa thức P(x) = an x n + an−1 x n−1 + + a1 x + a0 , x = x0 ; Thuật tốn Tính giá trị hạng tử đa thức Với i=1 đến n tính x0i Tính n i=1 x0i + a0 = P(x0 ) Thuật tốn Đa thức P(x) viết dạng P(x) = ( ((an x + an−1 )x )x + a0 P := an Với i=1 đến n: P = Px0 + an−i Như vậy, P(x0 ) = P Một toán thường có nhiều thuật tốn để giải, thuật tốn khác có độ phức tạp khác Đánh giá độ phức tạp thuật toán cách phân tích, so sánh tìm thuật tốn thuật tốn tối ưu Ví dụ Xét tốn tính giá trị đa thức P(x) = an x n + an−1 x n−1 + + a1 x + a0 , x = x0 ; Thuật tốn Tính giá trị hạng tử đa thức Với i=1 đến n tính x0i Tính n i=1 x0i + a0 = P(x0 ) Thuật tốn Đa thức P(x) viết dạng P(x) = ( ((an x + an−1 )x )x + a0 P := an Với i=1 đến n: P = Px0 + an−i Như vậy, P(x0 ) = P n(n + 3) n(n + 1) +n = phép tính Thuật tốn cần 2 Một tốn thường có nhiều thuật toán để giải, thuật toán khác có độ phức tạp khác Đánh giá độ phức tạp thuật toán cách phân tích, so sánh tìm thuật tốn thuật tốn tối ưu Ví dụ Xét tốn tính giá trị đa thức P(x) = an x n + an−1 x n−1 + + a1 x + a0 , x = x0 ; Thuật tốn Tính giá trị hạng tử đa thức Với i=1 đến n tính x0i Tính n i=1 x0i + a0 = P(x0 ) Thuật tốn Đa thức P(x) viết dạng P(x) = ( ((an x + an−1 )x )x + a0 P := an Với i=1 đến n: P = Px0 + an−i Như vậy, P(x0 ) = P n(n + 3) n(n + 1) +n = phép tính Thuật tốn cần 2 Thuật tốn cần 2n phép tính Ví dụ Phân tích thuật tốn Euclide tìm ước số chung lớn số nguyên dương a,b Input: a,b số nguyên dương Output: ước số chung lớn hai số a,b Function USCLN(a,b) Begin x:=a; y:=b; While y = Begin r:=x mod y; x:=y; y:=r; End; USCLN:=x; End; Ví dụ Phân tích thuật tốn Euclide tìm ước số chung lớn số nguyên dương a,b Input: a,b số nguyên dương Output: ước số chung lớn hai số a,b Function USCLN(a,b) Begin x:=a; y:=b; While y = Begin r:=x mod y; x:=y; y:=r; End; USCLN:=x; End; Để đánh giá độ phức tạp thuật toán trên, ta đếm số phép chia thực theo thuật toán Mệnh đề Giả sử cặp số a, b (a>b) đòi hỏi n phép chia thuật tốn Euclide Khi a fn+1 , b fn , {fn } dãy Fibonacci, xác định công thức truy hồi fn+2 = fn + fn+1 , n 2, f0 = f1 = có cơng  thức tường minh √ n+1 √ n+1 1+ 1−  − fn = √  2 Mệnh đề Giả sử cặp số a, b (a>b) đòi hỏi n phép chia thuật tốn Euclide Khi a fn+1 , b fn , {fn } dãy Fibonacci, xác định công thức truy hồi fn+2 = fn + fn+1 , n 2, f0 = f1 = có cơng  thức tường minh √ n+1 √ n+1 1+ 1−  − fn = √  2 Mệnh đề Đặt m = max{a, b}, thuật tốn địi hỏi khơng q log3/2 (2m/3) phép chia Vậy độ phức tạp thuật toán Euclide O(log3/2 (2m/3)) Bài tập Bài tập Đánh giá độ phức tạp thuật tốn sau: Thuật tốn tìm phần tử lớn dãy hữu hạn số thực Bài tập Đánh giá độ phức tạp thuật toán sau: Thuật tốn tìm phần tử lớn dãy hữu hạn số thực Thuật tốn tìm phần tử bé tập tập hợp số tự nhiên Bài tập Đánh giá độ phức tạp thuật toán sau: Thuật toán tìm phần tử lớn dãy hữu hạn số thực Thuật tốn tìm phần tử bé tập tập hợp số tự nhiên Thuật toán xếp lại dãy theo thứ tự tăng dần Thuật tốn tìm phần tử lớn dãy hữu hạn số thực ... kiểu thứ tự đếm v1 , v2 , , giá trị có kiểu với E Case E of v1 : S1 ; v2 : S2 ; , : Sn ; End câu lệnh Đánh giá thời gian thực lệnh Case giống lệnh If ◮ ◮ Nếu S1 , S2 , , Sn câu lệnh,... kiểu thứ tự đếm v1 , v2 , , giá trị có kiểu với E Case E of v1 : S1 ; v2 : S2 ; , : Sn ; End câu lệnh Đánh giá thời gian thực lệnh Case giống lệnh If Nếu S câu lệnh, E biểu thức logic While... kiểu thứ tự đếm v1 , v2 , , giá trị có kiểu với E Case E of v1 : S1 ; v2 : S2 ; , : Sn ; End câu lệnh Đánh giá thời gian thực lệnh Case giống lệnh If Nếu S câu lệnh, E biểu thức logic While

Ngày đăng: 22/12/2022, 16:05

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

TÀI LIỆU LIÊN QUAN

w