Bài giảng Phân tích và thiết kế thuật toán: Đệ quy và đánh giá - Phạm Thế Bảo
Số trang: 9
Loại file: pdf
Dung lượng: 224.86 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Phân tích và thiết kế thuật toán - Đệ quy và đánh giá trình bày các nội dung như: Thuật toán đệ quy, các loại đệ quy, các phương pháp khử đệ quy, thành lập phương trình đệ quy, giải phương trình đệ quy, phương pháp truy hồi,... Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Phân tích và thiết kế thuật toán: Đệ quy và đánh giá - Phạm Thế Bảo 27/03/2008 ĐỆ QUY VÀ ĐÁNH GIÁ Phạm Thế Bảo Khoa Toán – Tin học Trường Đại học Khoa học Tự nhiên Tp.HCMThuật toán đệ quy• Là mở rộng cơ bản nhất của khái niệm thuật toán.• Tư tưởng giải bài toán bằng đệ quy là đưa bài toán ệ tại hiện ạ về mộtộ bài toán cùng g loại, ạ , cùng g tính chất (đồng dạng) nhưng ở cấp độ thấp hơn, quá trình này tiếp tục cho đến khi bài toán được đưa về một cấp độ mà tại đó có thể giải được. Từ cấp độ này ta lần ngược để giải các bài toán ở cấp độ cao hơn cho đến khi giải xong bài toán ban đầu.• Ví dụ: – định nghĩa giai thừa: n!=n*(n-1)! với 0!=1 – Dãy Fibonacci: f0=1, f1=1 và fn =fn-1+fn-2 ∀n>1 – Danh sách liên kết. – ... Phạm Thế Bảo 1 27/03/2008• Mọi thuật toán đệ quy gồm 02 phần: – Phần cơ sở: Là các trường hợp không cần thực hiện lại thuật toán (không yêu cầu gọi đệ quy). Nếu thuật toán đệ quy không có phần này thì sẽ bị lặp vô hạn và sinh lỗi khi thực hiện. Đôi lúc gọi là trường hợp dừng. – Phần đệ quy: Là phần trong thuật toán có yêu cầu gọi đệ quy, quy yêu cầu thực hiện thuật toán ở một cấp độ thấp hơn. Phạm Thế BảoCác loại đệ quyCó 03 loại đệ quy: 1. Đệ quy đuôi: Là loại đệ quy mà trong một cấp đệ quy chỉ có duy nhất một lời gọi đệ quy xuống cấp thấp. Ví dụ: i. Tính giai thừa giaiThua(int n){ if(n==0) giaiThua = 1; else giaiThua= n*giaiThua(n-1); } Phạm Thế Bảo 2 27/03/2008 ii. Tìm kiếm nhị phân int searchBinary(int left,int right, intx){ if(left 27/03/2008 3. Đệ quy hỗ tương Là dạng đệ quy mà trong đó việc gọi có xoay g, như A gọ vòng, gọi B,, B gọ gọi C,, và C gọ gọi A. Đây y là trường hợp rất phức tạp. Ví dụ: i. Đường Hilbert ii. Đường Sierpinski Phạm Thế BảoCác phương pháp khử đệ quy1. Vòng lặp2. Bằng ằ stack Phạm Thế Bảo 4 27/03/2008 Thành lập phương trình đệ quy• Phương trình đệ quy là một phương trình biểu diễn mối quan hệ giữa T(n) và T(k). T(k) Với T(n) là “thời thời gian gian” thực hiện chương trình với kích thước dữ liệu nhập là n, T(k) là “thời gian” thực hiện chương trình với kích thước dữ liệu nhập là k, k0, phải gọi đệ quy giaiThua(n-1) nên tốn T(n-1), sau khi có kết quả phải nhân kết quả với n và gán lại vào giaiThua. Thời gian đểể thực hiện pháp nhân và gán là hằngằ C2. Phạm Thế Bảo 5 27/03/2008Vậy ta có ⎧C neáu n=0 T ( n) = ⎨ 1 ⎩T (n − 1) + C2 neáu n>0Ví dụ: d PhPhương pháp há MergeSort M S t Chia dãy ban đầu thành 2 dãy gần bằng nhau. Chia đến khi nào chỉ còn một phần tử thì dừng chia. Trộn các dãy lại thành dãy hoàn chỉnh được sắp xếp.Lý luận tương tự ta có: ⎧C1 neáu n=1 ⎪ T ( n) = ⎨ n ⎪⎩ 2T ( ) + nC2 neáu n>1 2 Phạm Thế Bảo Giải phương trình đệ quy 1. Phương pháp truy hồi 2. Đoán nghiệm 3. Lời giải tổng quát của một lớp các phương trình đệ quy 4. Phương pháp hàm sinh Phạm Thế Bảo 6 27/03/2008Phương pháp truy hồi• Thay thế các giá trị trong phương trình để suy ra T(n). T( )Ví dụ: giải phương trình ⎧C ne ...
Nội dung trích xuất từ tài liệu:
Bài giảng Phân tích và thiết kế thuật toán: Đệ quy và đánh giá - Phạm Thế Bảo 27/03/2008 ĐỆ QUY VÀ ĐÁNH GIÁ Phạm Thế Bảo Khoa Toán – Tin học Trường Đại học Khoa học Tự nhiên Tp.HCMThuật toán đệ quy• Là mở rộng cơ bản nhất của khái niệm thuật toán.• Tư tưởng giải bài toán bằng đệ quy là đưa bài toán ệ tại hiện ạ về mộtộ bài toán cùng g loại, ạ , cùng g tính chất (đồng dạng) nhưng ở cấp độ thấp hơn, quá trình này tiếp tục cho đến khi bài toán được đưa về một cấp độ mà tại đó có thể giải được. Từ cấp độ này ta lần ngược để giải các bài toán ở cấp độ cao hơn cho đến khi giải xong bài toán ban đầu.• Ví dụ: – định nghĩa giai thừa: n!=n*(n-1)! với 0!=1 – Dãy Fibonacci: f0=1, f1=1 và fn =fn-1+fn-2 ∀n>1 – Danh sách liên kết. – ... Phạm Thế Bảo 1 27/03/2008• Mọi thuật toán đệ quy gồm 02 phần: – Phần cơ sở: Là các trường hợp không cần thực hiện lại thuật toán (không yêu cầu gọi đệ quy). Nếu thuật toán đệ quy không có phần này thì sẽ bị lặp vô hạn và sinh lỗi khi thực hiện. Đôi lúc gọi là trường hợp dừng. – Phần đệ quy: Là phần trong thuật toán có yêu cầu gọi đệ quy, quy yêu cầu thực hiện thuật toán ở một cấp độ thấp hơn. Phạm Thế BảoCác loại đệ quyCó 03 loại đệ quy: 1. Đệ quy đuôi: Là loại đệ quy mà trong một cấp đệ quy chỉ có duy nhất một lời gọi đệ quy xuống cấp thấp. Ví dụ: i. Tính giai thừa giaiThua(int n){ if(n==0) giaiThua = 1; else giaiThua= n*giaiThua(n-1); } Phạm Thế Bảo 2 27/03/2008 ii. Tìm kiếm nhị phân int searchBinary(int left,int right, intx){ if(left 27/03/2008 3. Đệ quy hỗ tương Là dạng đệ quy mà trong đó việc gọi có xoay g, như A gọ vòng, gọi B,, B gọ gọi C,, và C gọ gọi A. Đây y là trường hợp rất phức tạp. Ví dụ: i. Đường Hilbert ii. Đường Sierpinski Phạm Thế BảoCác phương pháp khử đệ quy1. Vòng lặp2. Bằng ằ stack Phạm Thế Bảo 4 27/03/2008 Thành lập phương trình đệ quy• Phương trình đệ quy là một phương trình biểu diễn mối quan hệ giữa T(n) và T(k). T(k) Với T(n) là “thời thời gian gian” thực hiện chương trình với kích thước dữ liệu nhập là n, T(k) là “thời gian” thực hiện chương trình với kích thước dữ liệu nhập là k, k0, phải gọi đệ quy giaiThua(n-1) nên tốn T(n-1), sau khi có kết quả phải nhân kết quả với n và gán lại vào giaiThua. Thời gian đểể thực hiện pháp nhân và gán là hằngằ C2. Phạm Thế Bảo 5 27/03/2008Vậy ta có ⎧C neáu n=0 T ( n) = ⎨ 1 ⎩T (n − 1) + C2 neáu n>0Ví dụ: d PhPhương pháp há MergeSort M S t Chia dãy ban đầu thành 2 dãy gần bằng nhau. Chia đến khi nào chỉ còn một phần tử thì dừng chia. Trộn các dãy lại thành dãy hoàn chỉnh được sắp xếp.Lý luận tương tự ta có: ⎧C1 neáu n=1 ⎪ T ( n) = ⎨ n ⎪⎩ 2T ( ) + nC2 neáu n>1 2 Phạm Thế Bảo Giải phương trình đệ quy 1. Phương pháp truy hồi 2. Đoán nghiệm 3. Lời giải tổng quát của một lớp các phương trình đệ quy 4. Phương pháp hàm sinh Phạm Thế Bảo 6 27/03/2008Phương pháp truy hồi• Thay thế các giá trị trong phương trình để suy ra T(n). T( )Ví dụ: giải phương trình ⎧C ne ...
Tìm kiếm theo từ khóa liên quan:
Phân tích thuật toán Thiết kế thuật toán Bài giảng Phân tích thuật toán Thuật toán đệ quy Phương pháp khử đệ quy Phương trình đệ quyGợi ý tài liệu liên quan:
-
Giáo trình Toán rời rạc: Phần 1 - Nguyễn Gia Định
67 trang 219 0 0 -
Bài giảng chuyên đề Phân tích và thiết kế thuật toán: Chia để trị
27 trang 212 0 0 -
3 trang 156 3 0
-
Tiểu luận ngành Khoa học máy tính: Thiết kế và phân tích thuật toán
36 trang 117 0 0 -
Bài giảng Phân tích thiết kế thuật toán: Chương 3 - Nguyễn Văn Linh
87 trang 106 0 0 -
Giáo trình Thiết kế và đánh giá thuật toán - Trần Tuấn Minh
122 trang 35 0 0 -
Giáo trình thiết kế và đánh giá thuật toán - Trần Tuấn Minh
122 trang 32 0 0 -
Bài giảng Phân tích và thiết kế thuật toán (Phần 1) - ĐH Phương Đông
69 trang 30 0 0 -
514 trang 30 0 0
-
Bài giảng Cơ sở lập trình nâng cao - Chương 5: Phương pháp thiết kế thuật toán – nhánh cận
28 trang 28 0 0