Bài giảng Phân tích và thiết kế thuật toán - Bài 1: Giới thiệu phân tích và thiết kế thuật toán trình bày định nghĩa thuật toán, tính chất của thuật toán, biểu diễn thuật toán; độ phức tạp thuật toán, hướng tiếp cận, phân lớp độ phức tạp.
27/01/2015 Phân tích Thiết kế THUẬT TỐN Hà Đại Dương duonghd@mta.edu.vn Web: fit.mta.edu.vn/~duonghd Bài - Giới thiệu PHÂN TÍCH VÀ THIẾT KẾ THUẬ TỐN 27/01/2015 NỘI DUNG I Giới thiệu Mục đích Nội dung mơn học Hình thức Kiểm tra, Thi đánh giá kết Tài liệu tham khảo II Thuật toán Định nghĩa Tính chất Biểu diễn NỘI DUNG III Độ phức tạp thuật toán Giới tiệu Hướng tiếp cận Phân lớp độ phức tạp IV Bài tập 27/01/2015 I Giới thiệu MỤC ĐÍCH • Cung cấp kiến thức việc đánh giá thuật tốn • Lý thuyết • Thực nghiệm • Kiến thức, kỹ thuật giải toán máy tính: • Trực tiếp • Gián tiếp • Thiết kế thuật giải • • • • Chia để trị Quy hoạch động Tìm kiếm cục … I Giới thiệu NỘI DUNG • Tổng quan thuật tốn độ phức tạp thuật tốn • Đánh giá thuật tốn: • Lý thuyết (tốn học sơ cấp) • Thực nghiệm • Đệ quy phương pháp đánh giá • Đánh giá số thuật tốn thơng dụng • Thuật tốn tìm kiếm • Thuật tốn xếp 27/01/2015 I Giới thiệu NỘI DUNG • Các phương pháp giải tốn máy tính • Trực tiếp • Gián tiếp • Kỹ thuật thiết kế thuật toán • • • • Chia để trị Giải thuật tham lam Quy hoạch động Tìm kiếm cục I Giới thiệu HÌNH THỨC KIỂM TRA • 10% Chun cần • 20% Thường xuyên (bài tập, kiểm tra) • 70% Thi cuối kỳ (vấn đáp): Sinh viên thực tập lớn với yêu cầu: • Cài đặt thuật tốn cho tốn đặt ra, • Chạy với liệu phát sinh ngẫu nhiên, đếm số phép gán so sánh, vẽ đồ thị, tính phương sai, độ lệch chuẩn -> Ước lượng độ phức tạp thuật tốn • Tính tốn lý thuyết so sánh với thực nghiệm • Viết báo cáo, vấn đáp trả lời câu hỏi đặt 27/01/2015 I Giới thiệu TÀI LIỆU THAM KHẢO • Slide giảng • Bài giảng Thiết kế Đánh giá Thuật toán, Trần Xuân Sinh, NXB, ĐHQG, 2010 • Cẩm nang thuật toán, Robert Sedgewich - Trần Đan Thư dịch (tái lần 2), NXB KHKT, 2006 • Cấu trúc liệu giải thuật, Trần Xuân Lôi, NXB ĐH Quốc Gia, 2006 • Giải tốn máy tính (3 tập), Hoàng Kiếm, NXB Giáo dục, 2005 I Giới thiệu TÀI LIỆU THAM KHẢO • Giải thuật lập trình (bài giảng chuyên đề), Lê Minh Hồng, ĐHSP, 2002 • Computer Algorithms Introduction to Design and Analysis, AddisonWesley, 1988 • Algorithms and Complexity, Herbert S Wilf, University of Pennsylvania, Philadelphia 1999 • Algorithm Design, Jon Kleinberg, Eva Tardos Pearson, 2006 27/01/2015 II Thuật toán ĐỊNH NGHĨA Có nhiều cách phát biểu chấp nhận, đó: 1) 2) II Thuật tốn TÍNH CHẤT 27/01/2015 II Thuật tốn TÍNH CHẤT II Thuật tốn TÍNH CHẤT 27/01/2015 II Thuật tốn TÍNH CHẤT II Thuật tốn BIỂU DIỄN THUẬT TỐN 27/01/2015 II Thuật toán THUẬT GIẢI III Độ phức tạp thuật tốn GIỚI THIỆU • Kích thước tốn n (có thể hiểu số phần tử cần phải xử lý tốn) • Ví dụ: Sắp xếp danh sách n sinh viên • Tìm phần tử X mảng có n phần tử • … • Với tốn có nhiều thuật giải (chương trình) • Chương trình • Chương trình • Chương trình (thuật giải) tốt? 27/01/2015 III Độ phức tạp thuật toán GIỚI THIỆU • Đánh giá độ phức tạp thời gian tính tốn (Vì thời gian cịn phụ thuộc vào máy tính cụ thể) • Đánh giá theo tổng số phép tốn (gán, so sánh) • Vì việc đánh giá phụ thuộc vào n nên độ phức tạp thuật toán hiểu hàm phụ thuộc vào n, f(n) III Độ phức tạp thuật toán HƯỚNG TIẾP CẬN • Đánh giá f(n) nào? 10 27/01/2015 III Độ phức tạp thuật toán HƯỚNG TIẾP CẬN • Hướng tiếp cận thực nghiệm III Độ phức tạp thuật tốn HƯỚNG TIẾP CẬN • Ước lượng tiệm cận(lý thuyết): • Ý nghĩa: • Định nghĩa: 11 27/01/2015 III Độ phức tạp thuật toán HƯỚNG TIẾP CẬN • Ước lượng tiệm cận(lý thuyết): III Độ phức tạp thuật tốn HƯỚNG TIẾP CẬN • Ước lượng tiệm cận(lý thuyết): 12 27/01/2015 III Độ phức tạp thuật tốn HƯỚNG TIẾP CẬN • Ước lượng tiệm cận(lý thuyết): III Độ phức tạp thuật toán HƯỚNG TIẾP CẬN • Ước lượng tiệm cận(lý thuyết): 13 27/01/2015 III Độ phức tạp thuật toán HƯỚNG TIẾP CẬN • Ước lượng tiệm cận(lý thuyết): III Độ phức tạp thuật tốn HƯỚNG TIẾP CẬN • Ước lượng tiệm cận(lý thuyết): 14 27/01/2015 III Độ phức tạp thuật toán HƯỚNG TIẾP CẬN • Ước lượng tiệm cận(lý thuyết): III Độ phức tạp thuật toán PHÂN LỚP CÁC HÀM 15 27/01/2015 III Độ phức tạp thuật toán PHÂN LỚP CÁC HÀM III Độ phức tạp thuật toán PHÂN LỚP CÁC HÀM 16 27/01/2015 III Độ phức tạp thuật tốn MỘT SỐ VẤN ĐỀ KHÁC • Sự phụ thuộc/không phụ thuộc vào phân bố liệu III Độ phức tạp thuật toán MỘT SỐ VẤN ĐỀ KHÁC • Tính O (lớn) dựa quy tắc Cộng/Nhân 17 27/01/2015 NỘI DUNG BÀI HỌC I Giới thiệu II Thuật toán III Độ phức tạp thuật toán IV Bài tập Nêu định nghĩa, tính chất cách thức biểu diễn thuật toán Cho tốn sau: a) Tính nghiệm phương trình bậc 2: ax2+bx+c=0, a≠0 b) Tính tổng bình phương n số tự nhiên c) Tìm số có giá trị x dãy x1, x2,…,xn d) Tìm số có giá trị lớn dãy x1, x2,…,xn Hãy tìm thuật tốn để giải tốn trên, mơ tả thuật tốn sử dụng ngôn ngữ tự nhiên tính chất thuật tốn Mơ tả thuật toán dạng sơ đồ khối Mơ tả thuật tốn dạng giả mã 18 ... III Độ phức tạp thuật toán PHÂN LỚP CÁC HÀM 15 27/ 01/ 2 015 III Độ phức tạp thuật toán PHÂN LỚP CÁC HÀM III Độ phức tạp thuật toán PHÂN LỚP CÁC HÀM 16 27/ 01/ 2 015 III Độ phức tạp thuật toán MỘT SỐ... nhận, đó: 1) 2) II Thuật tốn TÍNH CHẤT 27/ 01/ 2 015 II Thuật tốn TÍNH CHẤT II Thuật tốn TÍNH CHẤT 27/ 01/ 2 015 II Thuật tốn TÍNH CHẤT II Thuật tốn BIỂU DIỄN THUẬT TỐN 27/ 01/ 2 015 II Thuật tốn THUẬT GIẢI... đáp trả lời câu hỏi đặt 27/ 01/ 2 015 I Giới thiệu TÀI LIỆU THAM KHẢO • Slide giảng • Bài giảng Thiết kế Đánh giá Thuật tốn, Trần Xn Sinh, NXB, ĐHQG, 2 010 • Cẩm nang thuật toán, Robert Sedgewich